diff options
| author | Craig Topper <craig.topper@gmail.com> | 2017-02-20 07:00:34 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2017-02-20 07:00:34 +0000 |
| commit | a5fa2e40f9c2b0c1830c1b06d1fd28acdd8b1fdd (patch) | |
| tree | b68a1e7c1d8b35b5d5a875e760216b202c21c9be | |
| parent | cb5b45cc36aa7125a63a48e7aec15fad0af2895f (diff) | |
| download | bcm5719-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.td | 4 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll | 2 |
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) |

