diff options
| author | Craig Topper <craig.topper@intel.com> | 2017-07-21 00:40:42 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2017-07-21 00:40:42 +0000 |
| commit | 31140ade70a995f32ff9001079be3f0e5139b521 (patch) | |
| tree | 5c63df47907120866cdc6bbcddb2a5ea1c453804 /llvm/test/CodeGen | |
| parent | d8e12128dc5d0c655442f44449461085c6f3d9b2 (diff) | |
| download | bcm5719-llvm-31140ade70a995f32ff9001079be3f0e5139b521.tar.gz bcm5719-llvm-31140ade70a995f32ff9001079be3f0e5139b521.zip | |
[AVX-512] Fix a bug that prevented some non-temporal loads from using the movntdqa instruction.
The bitconverts here had an input type of 128-bits and an output type of 256 bits. The input type should also have been 256 bits.
llvm-svn: 308702
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/X86/nontemporal-loads.ll | 39 |
1 files changed, 9 insertions, 30 deletions
diff --git a/llvm/test/CodeGen/X86/nontemporal-loads.ll b/llvm/test/CodeGen/X86/nontemporal-loads.ll index 3c916fd38c6..a9e42ad5f7b 100644 --- a/llvm/test/CodeGen/X86/nontemporal-loads.ll +++ b/llvm/test/CodeGen/X86/nontemporal-loads.ll @@ -211,20 +211,10 @@ define <8 x i32> @test_v8i32(<8 x i32>* %src) { ; AVX2-NEXT: vmovntdqa (%rdi), %ymm0 ; AVX2-NEXT: retq ; -; AVX512F-LABEL: test_v8i32: -; AVX512F: # BB#0: -; AVX512F-NEXT: vmovntdqa (%rdi), %ymm0 -; AVX512F-NEXT: retq -; -; AVX512BW-LABEL: test_v8i32: -; AVX512BW: # BB#0: -; AVX512BW-NEXT: vmovntdqa (%rdi), %ymm0 -; AVX512BW-NEXT: retq -; -; AVX512VL-LABEL: test_v8i32: -; AVX512VL: # BB#0: -; AVX512VL-NEXT: vmovaps (%rdi), %ymm0 -; AVX512VL-NEXT: retq +; AVX512-LABEL: test_v8i32: +; AVX512: # BB#0: +; AVX512-NEXT: vmovntdqa (%rdi), %ymm0 +; AVX512-NEXT: retq %1 = load <8 x i32>, <8 x i32>* %src, align 32, !nontemporal !1 ret <8 x i32> %1 } @@ -876,22 +866,11 @@ define <8 x i32> @test_arg_v8i32(<8 x i32> %arg, <8 x i32>* %src) { ; AVX2-NEXT: vpaddd %ymm1, %ymm0, %ymm0 ; AVX2-NEXT: retq ; -; AVX512F-LABEL: test_arg_v8i32: -; AVX512F: # BB#0: -; AVX512F-NEXT: vmovntdqa (%rdi), %ymm1 -; AVX512F-NEXT: vpaddd %ymm1, %ymm0, %ymm0 -; AVX512F-NEXT: retq -; -; AVX512BW-LABEL: test_arg_v8i32: -; AVX512BW: # BB#0: -; AVX512BW-NEXT: vmovntdqa (%rdi), %ymm1 -; AVX512BW-NEXT: vpaddd %ymm1, %ymm0, %ymm0 -; AVX512BW-NEXT: retq -; -; AVX512VL-LABEL: test_arg_v8i32: -; AVX512VL: # BB#0: -; AVX512VL-NEXT: vpaddd (%rdi), %ymm0, %ymm0 -; AVX512VL-NEXT: retq +; AVX512-LABEL: test_arg_v8i32: +; AVX512: # BB#0: +; AVX512-NEXT: vmovntdqa (%rdi), %ymm1 +; AVX512-NEXT: vpaddd %ymm1, %ymm0, %ymm0 +; AVX512-NEXT: retq %1 = load <8 x i32>, <8 x i32>* %src, align 32, !nontemporal !1 %2 = add <8 x i32> %arg, %1 ret <8 x i32> %2 |

