[llvm] r293606 - [AVX-512] Fix copy and paste bug in execution domain fixing tables so that we can convert 256-bit movnt instructions.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 30 22:49:50 PST 2017


Author: ctopper
Date: Tue Jan 31 00:49:50 2017
New Revision: 293606

URL: http://llvm.org/viewvc/llvm-project?rev=293606&view=rev
Log:
[AVX-512] Fix copy and paste bug in execution domain fixing tables so that we can convert 256-bit movnt instructions.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
    llvm/trunk/test/CodeGen/X86/nontemporal-2.ll

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=293606&r1=293605&r2=293606&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Tue Jan 31 00:49:50 2017
@@ -8669,7 +8669,7 @@ static const uint16_t ReplaceableInstrs[
   // AVX512 support
   { X86::VMOVLPSZ128mr,  X86::VMOVLPDZ128mr,  X86::VMOVPQI2QIZmr  },
   { X86::VMOVNTPSZ128mr, X86::VMOVNTPDZ128mr, X86::VMOVNTDQZ128mr },
-  { X86::VMOVNTPSZ128mr, X86::VMOVNTPDZ128mr, X86::VMOVNTDQZ128mr },
+  { X86::VMOVNTPSZ256mr, X86::VMOVNTPDZ256mr, X86::VMOVNTDQZ256mr },
   { X86::VMOVNTPSZmr,    X86::VMOVNTPDZmr,    X86::VMOVNTDQZmr    },
   { X86::VMOVSDZmr,      X86::VMOVSDZmr,      X86::VMOVPQI2QIZmr  },
   { X86::VMOVSSZmr,      X86::VMOVSSZmr,      X86::VMOVPDI2DIZmr  },

Modified: llvm/trunk/test/CodeGen/X86/nontemporal-2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/nontemporal-2.ll?rev=293606&r1=293605&r2=293606&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/nontemporal-2.ll (original)
+++ llvm/trunk/test/CodeGen/X86/nontemporal-2.ll Tue Jan 31 00:49:50 2017
@@ -777,7 +777,7 @@ define void @test_arg_v8i32(<8 x i32> %a
 ;
 ; VLX-LABEL: test_arg_v8i32:
 ; VLX:       # BB#0:
-; VLX-NEXT:    vmovntdq %ymm0, (%rdi)
+; VLX-NEXT:    vmovntps %ymm0, (%rdi)
 ; VLX-NEXT:    retq
   store <8 x i32> %arg, <8 x i32>* %dst, align 32, !nontemporal !1
   ret void
@@ -798,7 +798,7 @@ define void @test_arg_v4f64(<4 x double>
 ;
 ; VLX-LABEL: test_arg_v4f64:
 ; VLX:       # BB#0:
-; VLX-NEXT:    vmovntpd %ymm0, (%rdi)
+; VLX-NEXT:    vmovntps %ymm0, (%rdi)
 ; VLX-NEXT:    retq
   store <4 x double> %arg, <4 x double>* %dst, align 32, !nontemporal !1
   ret void
@@ -819,7 +819,7 @@ define void @test_arg_v4i64(<4 x i64> %a
 ;
 ; VLX-LABEL: test_arg_v4i64:
 ; VLX:       # BB#0:
-; VLX-NEXT:    vmovntdq %ymm0, (%rdi)
+; VLX-NEXT:    vmovntps %ymm0, (%rdi)
 ; VLX-NEXT:    retq
   store <4 x i64> %arg, <4 x i64>* %dst, align 32, !nontemporal !1
   ret void
@@ -840,7 +840,7 @@ define void @test_arg_v16i16(<16 x i16>
 ;
 ; VLX-LABEL: test_arg_v16i16:
 ; VLX:       # BB#0:
-; VLX-NEXT:    vmovntdq %ymm0, (%rdi)
+; VLX-NEXT:    vmovntps %ymm0, (%rdi)
 ; VLX-NEXT:    retq
   store <16 x i16> %arg, <16 x i16>* %dst, align 32, !nontemporal !1
   ret void
@@ -861,7 +861,7 @@ define void @test_arg_v32i8(<32 x i8> %a
 ;
 ; VLX-LABEL: test_arg_v32i8:
 ; VLX:       # BB#0:
-; VLX-NEXT:    vmovntdq %ymm0, (%rdi)
+; VLX-NEXT:    vmovntps %ymm0, (%rdi)
 ; VLX-NEXT:    retq
   store <32 x i8> %arg, <32 x i8>* %dst, align 32, !nontemporal !1
   ret void




More information about the llvm-commits mailing list