summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2017-02-20 07:00:34 +0000
committerCraig Topper <craig.topper@gmail.com>2017-02-20 07:00:34 +0000
commita5fa2e40f9c2b0c1830c1b06d1fd28acdd8b1fdd (patch)
treeb68a1e7c1d8b35b5d5a875e760216b202c21c9be
parentcb5b45cc36aa7125a63a48e7aec15fad0af2895f (diff)
downloadbcm5719-llvm-a5fa2e40f9c2b0c1830c1b06d1fd28acdd8b1fdd.tar.gz
bcm5719-llvm-a5fa2e40f9c2b0c1830c1b06d1fd28acdd8b1fdd.zip
[AVX-512] Fix mistake in the immediate swizzle for some of the VPTERNLOG patterns.
llvm-svn: 295638
-rw-r--r--llvm/lib/Target/X86/X86InstrAVX512.td4
-rw-r--r--llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll2
2 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index 484ace999ce..b3b8452067c 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -8899,8 +8899,8 @@ def VPTERNLOG213_imm8 : SDNodeXForm<imm, [{
uint8_t Imm = N->getZExtValue();
// Swap bits 2/4 and 3/5.
uint8_t NewImm = Imm & 0xc3;
- if (Imm & 0x02) NewImm |= 0x10;
- if (Imm & 0x10) NewImm |= 0x02;
+ if (Imm & 0x04) NewImm |= 0x10;
+ if (Imm & 0x10) NewImm |= 0x04;
if (Imm & 0x08) NewImm |= 0x20;
if (Imm & 0x20) NewImm |= 0x08;
return getI8Imm(NewImm, SDLoc(N));
diff --git a/llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll b/llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll
index cc89ee54c1b..547250a717f 100644
--- a/llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll
+++ b/llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll
@@ -190,7 +190,7 @@ define <16 x i32> @vpternlog_v16i32_012_mask1(<16 x i32> %x0, <16 x i32> %x1, <1
; CHECK-LABEL: vpternlog_v16i32_012_mask1:
; CHECK: ## BB#0:
; CHECK-NEXT: kmovw %edi, %k1
-; CHECK-NEXT: vpternlogd $90, %zmm2, %zmm0, %zmm1 {%k1}
+; CHECK-NEXT: vpternlogd $78, %zmm2, %zmm0, %zmm1 {%k1}
; CHECK-NEXT: vmovdqa64 %zmm1, %zmm0
; CHECK-NEXT: retq
%res = call <16 x i32> @llvm.x86.avx512.mask.pternlog.d.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x2, i32 114, i16 -1)
OpenPOWER on IntegriCloud