diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-09-29 05:54:28 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-09-29 05:54:28 +0000 |
commit | 816a1d7783e46de61fcb3f5de9fd8aed7dbee01e (patch) | |
tree | 4ebb20472b1db895014820b7823c9ffaea2c7158 /llvm/test/CodeGen | |
parent | 415f732249c324e05c797983197e43dfd7f9c4ae (diff) | |
download | bcm5719-llvm-816a1d7783e46de61fcb3f5de9fd8aed7dbee01e.tar.gz bcm5719-llvm-816a1d7783e46de61fcb3f5de9fd8aed7dbee01e.zip |
[X86] Add VBROADCASTF128/VBROADCASTI128 to execution domain fixing tables.
llvm-svn: 282684
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r-- | llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/subvector-broadcast.ll | 148 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll | 2 |
3 files changed, 55 insertions, 99 deletions
diff --git a/llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll b/llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll index bd4773a1a3c..d7a1422e992 100644 --- a/llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll +++ b/llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll @@ -505,12 +505,12 @@ define <4 x i64> @test_mm256_broadcastsi128_si256_mem(<2 x i64>* %p0) { ; X32-LABEL: test_mm256_broadcastsi128_si256_mem: ; X32: # BB#0: ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] ; X32-NEXT: retl ; ; X64-LABEL: test_mm256_broadcastsi128_si256_mem: ; X64: # BB#0: -; X64-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] ; X64-NEXT: retq %a0 = load <2 x i64>, <2 x i64>* %p0 %res = shufflevector <2 x i64> %a0, <2 x i64> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1> diff --git a/llvm/test/CodeGen/X86/subvector-broadcast.ll b/llvm/test/CodeGen/X86/subvector-broadcast.ll index fce8a3eedbe..3ba539e4795 100644 --- a/llvm/test/CodeGen/X86/subvector-broadcast.ll +++ b/llvm/test/CodeGen/X86/subvector-broadcast.ll @@ -152,17 +152,11 @@ define <8 x double> @test_broadcast_4f64_8f64(<4 x double> *%p) nounwind { } define <4 x i64> @test_broadcast_2i64_4i64(<2 x i64> *%p) nounwind { -; X32-AVX1-LABEL: test_broadcast_2i64_4i64: -; X32-AVX1: ## BB#0: -; X32-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX1-NEXT: retl -; -; X32-AVX2-LABEL: test_broadcast_2i64_4i64: -; X32-AVX2: ## BB#0: -; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: retl +; X32-AVX-LABEL: test_broadcast_2i64_4i64: +; X32-AVX: ## BB#0: +; X32-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax +; X32-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX-NEXT: retl ; ; X32-AVX512F-LABEL: test_broadcast_2i64_4i64: ; X32-AVX512F: ## BB#0: @@ -182,15 +176,10 @@ define <4 x i64> @test_broadcast_2i64_4i64(<2 x i64> *%p) nounwind { ; X32-AVX512DQ-NEXT: vbroadcasti64x2 (%eax), %ymm0 ; X32-AVX512DQ-NEXT: retl ; -; X64-AVX1-LABEL: test_broadcast_2i64_4i64: -; X64-AVX1: ## BB#0: -; X64-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX1-NEXT: retq -; -; X64-AVX2-LABEL: test_broadcast_2i64_4i64: -; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: retq +; X64-AVX-LABEL: test_broadcast_2i64_4i64: +; X64-AVX: ## BB#0: +; X64-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX-NEXT: retq ; ; X64-AVX512F-LABEL: test_broadcast_2i64_4i64: ; X64-AVX512F: ## BB#0: @@ -222,8 +211,8 @@ define <8 x i64> @test_broadcast_2i64_8i64(<2 x i64> *%p) nounwind { ; X32-AVX2-LABEL: test_broadcast_2i64_8i64: ; X32-AVX2: ## BB#0: ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X32-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X32-AVX2-NEXT: retl ; ; X32-AVX512F-LABEL: test_broadcast_2i64_8i64: @@ -255,8 +244,8 @@ define <8 x i64> @test_broadcast_2i64_8i64(<2 x i64> *%p) nounwind { ; ; X64-AVX2-LABEL: test_broadcast_2i64_8i64: ; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X64-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X64-AVX2-NEXT: retq ; ; X64-AVX512F-LABEL: test_broadcast_2i64_8i64: @@ -454,17 +443,11 @@ define <16 x float> @test_broadcast_8f32_16f32(<8 x float> *%p) nounwind { } define <8 x i32> @test_broadcast_4i32_8i32(<4 x i32> *%p) nounwind { -; X32-AVX1-LABEL: test_broadcast_4i32_8i32: -; X32-AVX1: ## BB#0: -; X32-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX1-NEXT: retl -; -; X32-AVX2-LABEL: test_broadcast_4i32_8i32: -; X32-AVX2: ## BB#0: -; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: retl +; X32-AVX-LABEL: test_broadcast_4i32_8i32: +; X32-AVX: ## BB#0: +; X32-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax +; X32-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX-NEXT: retl ; ; X32-AVX512-LABEL: test_broadcast_4i32_8i32: ; X32-AVX512: ## BB#0: @@ -472,15 +455,10 @@ define <8 x i32> @test_broadcast_4i32_8i32(<4 x i32> *%p) nounwind { ; X32-AVX512-NEXT: vbroadcasti32x4 (%eax), %ymm0 ; X32-AVX512-NEXT: retl ; -; X64-AVX1-LABEL: test_broadcast_4i32_8i32: -; X64-AVX1: ## BB#0: -; X64-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX1-NEXT: retq -; -; X64-AVX2-LABEL: test_broadcast_4i32_8i32: -; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: retq +; X64-AVX-LABEL: test_broadcast_4i32_8i32: +; X64-AVX: ## BB#0: +; X64-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX-NEXT: retq ; ; X64-AVX512-LABEL: test_broadcast_4i32_8i32: ; X64-AVX512: ## BB#0: @@ -502,8 +480,8 @@ define <16 x i32> @test_broadcast_4i32_16i32(<4 x i32> *%p) nounwind { ; X32-AVX2-LABEL: test_broadcast_4i32_16i32: ; X32-AVX2: ## BB#0: ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X32-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X32-AVX2-NEXT: retl ; ; X32-AVX512F-LABEL: test_broadcast_4i32_16i32: @@ -535,8 +513,8 @@ define <16 x i32> @test_broadcast_4i32_16i32(<4 x i32> *%p) nounwind { ; ; X64-AVX2-LABEL: test_broadcast_4i32_16i32: ; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X64-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X64-AVX2-NEXT: retq ; ; X64-AVX512F-LABEL: test_broadcast_4i32_16i32: @@ -619,17 +597,11 @@ define <16 x i32> @test_broadcast_8i32_16i32(<8 x i32> *%p) nounwind { } define <16 x i16> @test_broadcast_8i16_16i16(<8 x i16> *%p) nounwind { -; X32-AVX1-LABEL: test_broadcast_8i16_16i16: -; X32-AVX1: ## BB#0: -; X32-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX1-NEXT: retl -; -; X32-AVX2-LABEL: test_broadcast_8i16_16i16: -; X32-AVX2: ## BB#0: -; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: retl +; X32-AVX-LABEL: test_broadcast_8i16_16i16: +; X32-AVX: ## BB#0: +; X32-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax +; X32-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX-NEXT: retl ; ; X32-AVX512-LABEL: test_broadcast_8i16_16i16: ; X32-AVX512: ## BB#0: @@ -637,15 +609,10 @@ define <16 x i16> @test_broadcast_8i16_16i16(<8 x i16> *%p) nounwind { ; X32-AVX512-NEXT: vbroadcasti32x4 (%eax), %ymm0 ; X32-AVX512-NEXT: retl ; -; X64-AVX1-LABEL: test_broadcast_8i16_16i16: -; X64-AVX1: ## BB#0: -; X64-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX1-NEXT: retq -; -; X64-AVX2-LABEL: test_broadcast_8i16_16i16: -; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: retq +; X64-AVX-LABEL: test_broadcast_8i16_16i16: +; X64-AVX: ## BB#0: +; X64-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX-NEXT: retq ; ; X64-AVX512-LABEL: test_broadcast_8i16_16i16: ; X64-AVX512: ## BB#0: @@ -667,8 +634,8 @@ define <32 x i16> @test_broadcast_8i16_32i16(<8 x i16> *%p) nounwind { ; X32-AVX2-LABEL: test_broadcast_8i16_32i16: ; X32-AVX2: ## BB#0: ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X32-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X32-AVX2-NEXT: retl ; ; X32-AVX512F-LABEL: test_broadcast_8i16_32i16: @@ -700,8 +667,8 @@ define <32 x i16> @test_broadcast_8i16_32i16(<8 x i16> *%p) nounwind { ; ; X64-AVX2-LABEL: test_broadcast_8i16_32i16: ; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X64-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X64-AVX2-NEXT: retq ; ; X64-AVX512F-LABEL: test_broadcast_8i16_32i16: @@ -784,17 +751,11 @@ define <32 x i16> @test_broadcast_16i16_32i16(<16 x i16> *%p) nounwind { } define <32 x i8> @test_broadcast_16i8_32i8(<16 x i8> *%p) nounwind { -; X32-AVX1-LABEL: test_broadcast_16i8_32i8: -; X32-AVX1: ## BB#0: -; X32-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX1-NEXT: retl -; -; X32-AVX2-LABEL: test_broadcast_16i8_32i8: -; X32-AVX2: ## BB#0: -; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: retl +; X32-AVX-LABEL: test_broadcast_16i8_32i8: +; X32-AVX: ## BB#0: +; X32-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax +; X32-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX-NEXT: retl ; ; X32-AVX512-LABEL: test_broadcast_16i8_32i8: ; X32-AVX512: ## BB#0: @@ -802,15 +763,10 @@ define <32 x i8> @test_broadcast_16i8_32i8(<16 x i8> *%p) nounwind { ; X32-AVX512-NEXT: vbroadcasti32x4 (%eax), %ymm0 ; X32-AVX512-NEXT: retl ; -; X64-AVX1-LABEL: test_broadcast_16i8_32i8: -; X64-AVX1: ## BB#0: -; X64-AVX1-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX1-NEXT: retq -; -; X64-AVX2-LABEL: test_broadcast_16i8_32i8: -; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: retq +; X64-AVX-LABEL: test_broadcast_16i8_32i8: +; X64-AVX: ## BB#0: +; X64-AVX-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX-NEXT: retq ; ; X64-AVX512-LABEL: test_broadcast_16i8_32i8: ; X64-AVX512: ## BB#0: @@ -832,8 +788,8 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind { ; X32-AVX2-LABEL: test_broadcast_16i8_64i8: ; X32-AVX2: ## BB#0: ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X32-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X32-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X32-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X32-AVX2-NEXT: retl ; ; X32-AVX512F-LABEL: test_broadcast_16i8_64i8: @@ -865,8 +821,8 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind { ; ; X64-AVX2-LABEL: test_broadcast_16i8_64i8: ; X64-AVX2: ## BB#0: -; X64-AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] -; X64-AVX2-NEXT: vmovdqa %ymm0, %ymm1 +; X64-AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] +; X64-AVX2-NEXT: vmovaps %ymm0, %ymm1 ; X64-AVX2-NEXT: retq ; ; X64-AVX512F-LABEL: test_broadcast_16i8_64i8: diff --git a/llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll b/llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll index f3b6891349c..7c554bbee01 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll @@ -1333,7 +1333,7 @@ define <4 x i64> @splat128_mem_v4i64_from_v2i64(<2 x i64>* %ptr) { ; ; AVX2-LABEL: splat128_mem_v4i64_from_v2i64: ; AVX2: # BB#0: -; AVX2-NEXT: vbroadcasti128 {{.*#+}} ymm0 = mem[0,1,0,1] +; AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] ; AVX2-NEXT: retq ; ; AVX512VL-LABEL: splat128_mem_v4i64_from_v2i64: |