diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-08-28 03:41:28 +0000 | 
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-08-28 03:41:28 +0000 | 
| commit | 5260c0894c692abac14546937a643db2309170f4 (patch) | |
| tree | c76808bcaba5d5376d3c86ccf296a975b4264649 /llvm/test | |
| parent | 76d06bc6132cb14ea2acf7b156ae5e0af184e499 (diff) | |
| download | bcm5719-llvm-5260c0894c692abac14546937a643db2309170f4.tar.gz bcm5719-llvm-5260c0894c692abac14546937a643db2309170f4.zip  | |
[x86] Clean up some tests to use FileCheck and combine two into a single
file.
Changing code that is covered by these tests is just too hard to debug
currently, and now it will be clear the nature of the changes.
llvm-svn: 216643
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/X86/2009-06-05-VZextByteShort.ll | 28 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/vec_set-3.ll | 47 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/vec_set-G.ll | 9 | 
3 files changed, 59 insertions, 25 deletions
diff --git a/llvm/test/CodeGen/X86/2009-06-05-VZextByteShort.ll b/llvm/test/CodeGen/X86/2009-06-05-VZextByteShort.ll index 50c62dfb73b..ffbe02c7135 100644 --- a/llvm/test/CodeGen/X86/2009-06-05-VZextByteShort.ll +++ b/llvm/test/CodeGen/X86/2009-06-05-VZextByteShort.ll @@ -1,9 +1,11 @@ -; RUN: llc < %s -march=x86 -mcpu=core2 > %t1 -; RUN: grep movzwl %t1 | count 2 -; RUN: grep movzbl %t1 | count 1 -; RUN: grep movd %t1 | count 4 +; RUN: llc < %s -march=x86 -mcpu=core2 | FileCheck %s  define <4 x i16> @a(i32* %x1) nounwind { +; CHECK-LABEL: a: +; CHECK:         shrl %[[R:[^,]+]] +; CHECK-NEXT:    movd %[[R]], %xmm0 +; CHECK-NEXT:    retl +    %x2 = load i32* %x1    %x3 = lshr i32 %x2, 1    %x = trunc i32 %x3 to i16 @@ -12,6 +14,12 @@ define <4 x i16> @a(i32* %x1) nounwind {  }  define <8 x i16> @b(i32* %x1) nounwind { +; CHECK-LABEL: b: +; CHECK:         shrl %e[[R:.]]x +; CHECK-NEXT:    movzwl %[[R]]x, %e[[R]]x +; CHECK-NEXT:    movd %e[[R]]x, %xmm0 +; CHECK-NEXT:    retl +    %x2 = load i32* %x1    %x3 = lshr i32 %x2, 1    %x = trunc i32 %x3 to i16 @@ -20,6 +28,12 @@ define <8 x i16> @b(i32* %x1) nounwind {  }  define <8 x i8> @c(i32* %x1) nounwind { +; CHECK-LABEL: c: +; CHECK:         shrl %e[[R:.]]x +; CHECK-NEXT:    movzwl %[[R]]x, %e[[R]]x +; CHECK-NEXT:    movd %e[[R]]x, %xmm0 +; CHECK-NEXT:    retl +    %x2 = load i32* %x1    %x3 = lshr i32 %x2, 1    %x = trunc i32 %x3 to i8 @@ -28,6 +42,12 @@ define <8 x i8> @c(i32* %x1) nounwind {  }  define <16 x i8> @d(i32* %x1) nounwind { +; CHECK-LABEL: d: +; CHECK:         shrl %e[[R:.]]x +; CHECK-NEXT:    movzbl %[[R]]l, %e[[R]]x +; CHECK-NEXT:    movd %e[[R]]x, %xmm0 +; CHECK-NEXT:    retl +    %x2 = load i32* %x1    %x3 = lshr i32 %x2, 1    %x = trunc i32 %x3 to i8 diff --git a/llvm/test/CodeGen/X86/vec_set-3.ll b/llvm/test/CodeGen/X86/vec_set-3.ll index d1d7608a041..bdd85213885 100644 --- a/llvm/test/CodeGen/X86/vec_set-3.ll +++ b/llvm/test/CodeGen/X86/vec_set-3.ll @@ -1,17 +1,40 @@ -; RUN: llc < %s -march=x86 -mattr=+sse2 -mcpu=penryn -o %t -; RUN: grep pshufd %t | count 2 +; RUN: llc < %s -march=x86 -mattr=+sse2 -mcpu=penryn | FileCheck %s -define <4 x float> @test(float %a) nounwind { -        %tmp = insertelement <4 x float> zeroinitializer, float %a, i32 1               ; <<4 x float>> [#uses=1] -        %tmp5 = insertelement <4 x float> %tmp, float 0.000000e+00, i32 2               ; <<4 x float>> [#uses=1] -        %tmp6 = insertelement <4 x float> %tmp5, float 0.000000e+00, i32 3              ; <<4 x float>> [#uses=1] -        ret <4 x float> %tmp6 +define <4 x float> @test(float %a) { +; CHECK-LABEL: test: +; CHECK:         movss {{.*}}, %xmm0 +; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,0,1,1] +; CHECK-NEXT:    retl + +entry: +  %tmp = insertelement <4 x float> zeroinitializer, float %a, i32 1 +  %tmp5 = insertelement <4 x float> %tmp, float 0.000000e+00, i32 2 +  %tmp6 = insertelement <4 x float> %tmp5, float 0.000000e+00, i32 3 +  ret <4 x float> %tmp6  } -define <2 x i64> @test2(i32 %a) nounwind { -        %tmp7 = insertelement <4 x i32> zeroinitializer, i32 %a, i32 2          ; <<4 x i32>> [#uses=1] -        %tmp9 = insertelement <4 x i32> %tmp7, i32 0, i32 3             ; <<4 x i32>> [#uses=1] -        %tmp10 = bitcast <4 x i32> %tmp9 to <2 x i64>           ; <<2 x i64>> [#uses=1] -        ret <2 x i64> %tmp10 +define <2 x i64> @test2(i32 %a) { +; CHECK-LABEL: test2: +; CHECK:         movd {{.*}}, %xmm0 +; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,0,1] +; CHECK-NEXT:    retl + +entry: +  %tmp7 = insertelement <4 x i32> zeroinitializer, i32 %a, i32 2 +  %tmp9 = insertelement <4 x i32> %tmp7, i32 0, i32 3 +  %tmp10 = bitcast <4 x i32> %tmp9 to <2 x i64> +  ret <2 x i64> %tmp10  } +define <4 x float> @test3(<4 x float> %A) { +; CHECK-LABEL: test3: +; CHECK:         xorps %[[X1:xmm[0-9]+]], %[[X1]] +; CHECK-NEXT:    movss %xmm0, %[[X1]] +; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = [[X1]][1,0,1,1] +; CHECK-NEXT:    retl + +  %tmp0 = extractelement <4 x float> %A, i32 0 +  %tmp1 = insertelement <4 x float> <float 0.000000e+00, float undef, float undef, float undef >, float %tmp0, i32 1 +  %tmp2 = insertelement <4 x float> %tmp1, float 0.000000e+00, i32 2 +  ret <4 x float> %tmp2 +} diff --git a/llvm/test/CodeGen/X86/vec_set-G.ll b/llvm/test/CodeGen/X86/vec_set-G.ll deleted file mode 100644 index 4a542feafaf..00000000000 --- a/llvm/test/CodeGen/X86/vec_set-G.ll +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: llc < %s -march=x86 -mattr=+sse2 | grep movss - -define fastcc void @t(<4 x float> %A) nounwind  { -	%tmp41896 = extractelement <4 x float> %A, i32 0		; <float> [#uses=1] -	%tmp14082 = insertelement <4 x float> < float 0.000000e+00, float undef, float undef, float undef >, float %tmp41896, i32 1		; <<4 x float>> [#uses=1] -	%tmp14083 = insertelement <4 x float> %tmp14082, float 0.000000e+00, i32 2		; <<4 x float>> [#uses=1] -	store <4 x float> %tmp14083, <4 x float>* null, align 16 -        ret void -}  | 

