diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-07-23 07:16:56 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-07-23 07:16:56 +0000 |
| commit | b6519db90dcb422020fcc7e78f655ad2f3821453 (patch) | |
| tree | eceb36551f03712a47060e5793c58ea8a4ea671d /llvm/test/CodeGen/X86/fma_patterns_wide.ll | |
| parent | 6172b0b3e9544599f3874be00fe6975651c38bbd (diff) | |
| download | bcm5719-llvm-b6519db90dcb422020fcc7e78f655ad2f3821453.tar.gz bcm5719-llvm-b6519db90dcb422020fcc7e78f655ad2f3821453.zip | |
[AVX512] Implement commuting support for EVEX encoded FMA3 instructions.
llvm-svn: 276521
Diffstat (limited to 'llvm/test/CodeGen/X86/fma_patterns_wide.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/fma_patterns_wide.ll | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/llvm/test/CodeGen/X86/fma_patterns_wide.ll b/llvm/test/CodeGen/X86/fma_patterns_wide.ll index bf9291c7119..98b6c496e08 100644 --- a/llvm/test/CodeGen/X86/fma_patterns_wide.ll +++ b/llvm/test/CodeGen/X86/fma_patterns_wide.ll @@ -218,8 +218,7 @@ define <16 x float> @test_16f32_fmadd_load(<16 x float>* %a0, <16 x float> %a1, ; AVX512-LABEL: test_16f32_fmadd_load: ; AVX512: # BB#0: ; AVX512-NEXT: vmovaps (%rdi), %zmm2 -; AVX512-NEXT: vfmadd213ps %zmm1, %zmm0, %zmm2 -; AVX512-NEXT: vmovaps %zmm2, %zmm0 +; AVX512-NEXT: vfmadd213ps %zmm1, %zmm2, %zmm0 ; AVX512-NEXT: retq %x = load <16 x float>, <16 x float>* %a0 %y = fmul <16 x float> %x, %a1 @@ -243,8 +242,7 @@ define <8 x double> @test_8f64_fmsub_load(<8 x double>* %a0, <8 x double> %a1, < ; AVX512-LABEL: test_8f64_fmsub_load: ; AVX512: # BB#0: ; AVX512-NEXT: vmovapd (%rdi), %zmm2 -; AVX512-NEXT: vfmsub213pd %zmm1, %zmm0, %zmm2 -; AVX512-NEXT: vmovapd %zmm2, %zmm0 +; AVX512-NEXT: vfmsub213pd %zmm1, %zmm2, %zmm0 ; AVX512-NEXT: retq %x = load <8 x double>, <8 x double>* %a0 %y = fmul <8 x double> %x, %a1 @@ -543,9 +541,8 @@ define <16 x float> @test_v16f32_interp(<16 x float> %x, <16 x float> %y, <16 x ; ; AVX512-LABEL: test_v16f32_interp: ; AVX512: # BB#0: -; AVX512-NEXT: vmovaps %zmm2, %zmm3 -; AVX512-NEXT: vfnmadd213ps %zmm1, %zmm1, %zmm3 -; AVX512-NEXT: vfmadd213ps %zmm3, %zmm2, %zmm0 +; AVX512-NEXT: vfnmadd213ps %zmm1, %zmm2, %zmm1 +; AVX512-NEXT: vfmadd213ps %zmm1, %zmm2, %zmm0 ; AVX512-NEXT: retq %t1 = fsub <16 x float> <float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0>, %t %tx = fmul <16 x float> %x, %t @@ -573,9 +570,8 @@ define <8 x double> @test_v8f64_interp(<8 x double> %x, <8 x double> %y, <8 x do ; ; AVX512-LABEL: test_v8f64_interp: ; AVX512: # BB#0: -; AVX512-NEXT: vmovapd %zmm2, %zmm3 -; AVX512-NEXT: vfnmadd213pd %zmm1, %zmm1, %zmm3 -; AVX512-NEXT: vfmadd213pd %zmm3, %zmm2, %zmm0 +; AVX512-NEXT: vfnmadd213pd %zmm1, %zmm2, %zmm1 +; AVX512-NEXT: vfmadd213pd %zmm1, %zmm2, %zmm0 ; AVX512-NEXT: retq %t1 = fsub <8 x double> <double 1.0, double 1.0, double 1.0, double 1.0, double 1.0, double 1.0, double 1.0, double 1.0>, %t %tx = fmul <8 x double> %x, %t @@ -728,8 +724,7 @@ define <16 x float> @test_v16f32_fma_fmul_x_c1_c2_y(<16 x float> %x, <16 x float ; ; AVX512-LABEL: test_v16f32_fma_fmul_x_c1_c2_y: ; AVX512: # BB#0: -; AVX512-NEXT: vfmadd231ps {{.*}}(%rip), %zmm0, %zmm1 -; AVX512-NEXT: vmovaps %zmm1, %zmm0 +; AVX512-NEXT: vfmadd132ps {{.*}}(%rip), %zmm1, %zmm0 ; AVX512-NEXT: retq %m0 = fmul <16 x float> %x, <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0> %m1 = fmul <16 x float> %m0, <float 16.0, float 15.0, float 14.0, float 13.0, float 12.0, float 11.0, float 10.0, float 9.0, float 8.0, float 7.0, float 6.0, float 5.0, float 4.0, float 3.0, float 2.0, float 1.0> |

