diff options
| author | Craig Topper <craig.topper@gmail.com> | 2017-02-21 04:26:10 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2017-02-21 04:26:10 +0000 |
| commit | d9fe6648686b64b76e363816f8dada5b6c3c6354 (patch) | |
| tree | c25f24309fad3b1cbb14809a36d0d928bf7a098e /llvm/test/CodeGen/X86/avx512-memfold.ll | |
| parent | 63b7d718449401b0e022ee13e2553a4c354b2a89 (diff) | |
| download | bcm5719-llvm-d9fe6648686b64b76e363816f8dada5b6c3c6354.tar.gz bcm5719-llvm-d9fe6648686b64b76e363816f8dada5b6c3c6354.zip | |
[AVX-512] Use sse_load_f32/f64 in place of scalar_to_vector and scalar load in some patterns.
llvm-svn: 295693
Diffstat (limited to 'llvm/test/CodeGen/X86/avx512-memfold.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/avx512-memfold.ll | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/llvm/test/CodeGen/X86/avx512-memfold.ll b/llvm/test/CodeGen/X86/avx512-memfold.ll index f072780a56f..d754b2b78f6 100644 --- a/llvm/test/CodeGen/X86/avx512-memfold.ll +++ b/llvm/test/CodeGen/X86/avx512-memfold.ll @@ -4,10 +4,9 @@ define i8 @test_int_x86_avx512_mask_cmp_ss(<4 x float> %a, float* %b, i8 %mask) { ; CHECK-LABEL: test_int_x86_avx512_mask_cmp_ss: ; CHECK: ## BB#0: -; CHECK-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero ; CHECK-NEXT: andl $1, %esi ; CHECK-NEXT: kmovw %esi, %k1 -; CHECK-NEXT: vcmpunordss %xmm1, %xmm0, %k0 {%k1} +; CHECK-NEXT: vcmpunordss (%rdi), %xmm0, %k0 {%k1} ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: andl $1, %eax ; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> @@ -25,10 +24,9 @@ declare i8 @llvm.x86.avx512.mask.cmp.ss(<4 x float>, <4 x float>, i32, i8, i32) define <4 x float> @test_mask_max_ss(<4 x float> %a, float* %b, i8 %mask) { ; CHECK-LABEL: test_mask_max_ss: ; CHECK: ## BB#0: -; CHECK-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero ; CHECK-NEXT: andl $1, %esi ; CHECK-NEXT: kmovw %esi, %k1 -; CHECK-NEXT: vmaxss %xmm1, %xmm0, %xmm0 {%k1} {z} +; CHECK-NEXT: vmaxss (%rdi), %xmm0, %xmm0 {%k1} {z} ; CHECK-NEXT: retq %b.val = load float, float* %b %bv0 = insertelement <4 x float> undef, float %b.val, i32 0 @@ -43,10 +41,9 @@ declare <4 x float> @llvm.x86.avx512.mask.max.ss.round(<4 x float>, <4 x float>, define <4 x float> @test_maskz_add_ss(<4 x float> %a, float* %b, i8 %mask) { ; CHECK-LABEL: test_maskz_add_ss: ; CHECK: ## BB#0: -; CHECK-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero ; CHECK-NEXT: andl $1, %esi ; CHECK-NEXT: kmovw %esi, %k1 -; CHECK-NEXT: vaddss %xmm1, %xmm0, %xmm0 {%k1} {z} +; CHECK-NEXT: vaddss (%rdi), %xmm0, %xmm0 {%k1} {z} ; CHECK-NEXT: retq %b.val = load float, float* %b %bv0 = insertelement <4 x float> undef, float %b.val, i32 0 @@ -64,10 +61,9 @@ declare <2 x double> @llvm.x86.avx512.mask.vfmadd.sd(<2 x double>, <2 x double>, define <2 x double> @test_int_x86_avx512_mask_vfmadd_sd(<2 x double> %a, <2 x double> %b, double* %c, i8 %mask){ ; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_sd: ; CHECK: ## BB#0: -; CHECK-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero ; CHECK-NEXT: andl $1, %esi ; CHECK-NEXT: kmovw %esi, %k1 -; CHECK-NEXT: vfmadd213sd %xmm2, %xmm1, %xmm0 {%k1} +; CHECK-NEXT: vfmadd213sd (%rdi), %xmm1, %xmm0 {%k1} ; CHECK-NEXT: retq %c.val = load double, double* %c %cv0 = insertelement <2 x double> undef, double %c.val, i32 0 |

