diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-02-11 07:25:59 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-02-11 07:25:59 +0000 |
commit | e4092e9895fb8f62202b61586d76f8129991b16e (patch) | |
tree | 4d7aa0085167d98ed36a894b1f30967d60a85dc6 /test | |
parent | defd4bc77bab2df85b68cec9b42dcc580355bafc (diff) | |
download | llvm-e4092e9895fb8f62202b61586d76f8129991b16e.tar.gz llvm-e4092e9895fb8f62202b61586d76f8129991b16e.tar.bz2 llvm-e4092e9895fb8f62202b61586d76f8129991b16e.tar.xz |
AVX-512: Optimized BUILD_VECTOR pattern;
fixed encoding of VEXTRACTPS instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201134 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/avx512-build-vector.ll | 12 | ||||
-rw-r--r-- | test/MC/X86/avx512-encodings.s | 6 |
2 files changed, 17 insertions, 1 deletions
diff --git a/test/CodeGen/X86/avx512-build-vector.ll b/test/CodeGen/X86/avx512-build-vector.ll index bc4560b3f3..b5a2aa80ce 100644 --- a/test/CodeGen/X86/avx512-build-vector.ll +++ b/test/CodeGen/X86/avx512-build-vector.ll @@ -15,4 +15,16 @@ define <16 x i32> @test1(i32* %x) { define <16 x i32> @test2(<16 x i32> %x) { %res = add <16 x i32><i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, %x ret <16 x i32>%res +} + +; CHECK-LABEL: test3 +; CHECK: vinsertf128 +; CHECK: vinsertf64x4 +; CHECK: ret +define <16 x float> @test3(<4 x float> %a) { + %b = extractelement <4 x float> %a, i32 2 + %c = insertelement <16 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float %b, i32 5 + %b1 = extractelement <4 x float> %a, i32 0 + %c1 = insertelement <16 x float> %c, float %b1, i32 6 + ret <16 x float>%c1 }
\ No newline at end of file diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index b2f1d11e08..97c64a4dd2 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -46,4 +46,8 @@ vmovdqu64 %zmm0, %zmm1 {%k3} // CHECK: vmovd // CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x7e,0xb4,0x24,0xac,0xff,0xff,0xff] -vmovd %xmm22, -84(%rsp)
\ No newline at end of file +vmovd %xmm22, -84(%rsp) + +// CHECK: vextractps +// CHECK: encoding: [0x62,0xe3,0x7d,0x08,0x17,0x61,0x1f,0x02] +vextractps $2, %xmm20, 124(%rcx) |