X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Favx-shuffle-x86_32.ll;h=a24bd46af41be72e7abd57bfbbf4c27d419f8cb0;hb=faf046c6c0a561e966f4ac671392c4b8e15c35a2;hp=5268ec3a56cde0241ea4e6095073af675f7570f6;hpb=44aac553f60553f240767bc0487e19372340623f;p=oota-llvm.git diff --git a/test/CodeGen/X86/avx-shuffle-x86_32.ll b/test/CodeGen/X86/avx-shuffle-x86_32.ll old mode 100755 new mode 100644 index 5268ec3a56c..a24bd46af41 --- a/test/CodeGen/X86/avx-shuffle-x86_32.ll +++ b/test/CodeGen/X86/avx-shuffle-x86_32.ll @@ -1,8 +1,25 @@ -; RUN: llc < %s -mtriple=i686-pc-win32 -mcpu=corei7-avx -mattr=+avx | FileCheck %s +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx | FileCheck %s +; Avoid unnecessary vinsertf128 define <4 x i64> @test1(<4 x i64> %a) nounwind { +; CHECK-LABEL: test1: +; CHECK: # BB#0: +; CHECK-NEXT: vextractf128 $1, %ymm0, %xmm1 +; CHECK-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1] +; CHECK-NEXT: retl %b = shufflevector <4 x i64> %a, <4 x i64> undef, <4 x i32> ret <4 x i64>%b - ; CHECK: test1: - ; CHECK: vinsertf128 - } +} + +define <8 x i16> @test2(<4 x i16>* %v) nounwind { +; CHECK-LABEL: test2: +; CHECK: # BB#0: +; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax +; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero +; CHECK-NEXT: retl + %v9 = load <4 x i16>, <4 x i16> * %v, align 8 + %v10 = shufflevector <4 x i16> %v9, <4 x i16> undef, <8 x i32> + %v11 = shufflevector <8 x i16> , <8 x i16> %v10, <8 x i32> + ret <8 x i16> %v11 +}