From: Craig Topper Date: Tue, 31 Jan 2017 06:49:50 +0000 (+0000) Subject: [AVX-512] Fix copy and paste bug in execution domain fixing tables so that we can... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bde6e7c9dea7d564f3d8ebd3beb70fdb1298a980;p=llvm [AVX-512] Fix copy and paste bug in execution domain fixing tables so that we can convert 256-bit movnt instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293606 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 856fbf78037..cd030630a23 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -8669,7 +8669,7 @@ static const uint16_t ReplaceableInstrs[][3] = { // 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 }, diff --git a/test/CodeGen/X86/nontemporal-2.ll b/test/CodeGen/X86/nontemporal-2.ll index 92a35436d90..3d280b4e6bf 100644 --- a/test/CodeGen/X86/nontemporal-2.ll +++ b/test/CodeGen/X86/nontemporal-2.ll @@ -777,7 +777,7 @@ define void @test_arg_v8i32(<8 x i32> %arg, <8 x i32>* %dst) { ; ; 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> %arg, <4 x double>* %dst) { ; ; 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> %arg, <4 x i64>* %dst) { ; ; 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> %arg, <16 x i16>* %dst) { ; ; 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> %arg, <32 x i8>* %dst) { ; ; 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