From: Simon Pilgrim Date: Wed, 26 Jul 2017 11:07:45 +0000 (+0000) Subject: [X86] Add urem vector test for non-uniform pow2 constants X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b04f6b41eb84d183a173e4099e4205704b5f1567;p=llvm [X86] Add urem vector test for non-uniform pow2 constants git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309104 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/X86/urem-power-of-two.ll b/test/CodeGen/X86/urem-power-of-two.ll index e57f35ddcc1..72f96776bab 100644 --- a/test/CodeGen/X86/urem-power-of-two.ll +++ b/test/CodeGen/X86/urem-power-of-two.ll @@ -101,15 +101,15 @@ define i8 @and_pow_2(i8 %x, i8 %y) { ret i8 %urem } -; A vector splat constant divisor should get the same treatment as a scalar. +; A vector constant divisor should get the same treatment as a scalar. -define <4 x i32> @vec_const_pow_2(<4 x i32> %x) { -; X86-LABEL: vec_const_pow_2: +define <4 x i32> @vec_const_uniform_pow_2(<4 x i32> %x) { +; X86-LABEL: vec_const_uniform_pow_2: ; X86: # BB#0: ; X86-NEXT: andps {{\.LCPI.*}}, %xmm0 ; X86-NEXT: retl ; -; X64-LABEL: vec_const_pow_2: +; X64-LABEL: vec_const_uniform_pow_2: ; X64: # BB#0: ; X64-NEXT: andps {{.*}}(%rip), %xmm0 ; X64-NEXT: retq @@ -117,3 +117,16 @@ define <4 x i32> @vec_const_pow_2(<4 x i32> %x) { ret <4 x i32> %urem } +define <4 x i32> @vec_const_nonuniform_pow_2(<4 x i32> %x) { +; X86-LABEL: vec_const_nonuniform_pow_2: +; X86: # BB#0: +; X86-NEXT: andps {{\.LCPI.*}}, %xmm0 +; X86-NEXT: retl +; +; X64-LABEL: vec_const_nonuniform_pow_2: +; X64: # BB#0: +; X64-NEXT: andps {{.*}}(%rip), %xmm0 +; X64-NEXT: retq + %urem = urem <4 x i32> %x, + ret <4 x i32> %urem +}