From 415a83febdaf5a098ab69e4fa40f56757dbc340b Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 20 Feb 2017 07:00:34 +0000 Subject: [PATCH] [AVX-512] Fix mistake in the immediate swizzle for some of the VPTERNLOG patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295638 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrAVX512.td | 4 ++-- test/CodeGen/X86/avx512-vpternlog-commute.ll | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index 484ace999ce..b3b8452067c 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -8899,8 +8899,8 @@ def VPTERNLOG213_imm8 : SDNodeXFormgetZExtValue(); // 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/test/CodeGen/X86/avx512-vpternlog-commute.ll b/test/CodeGen/X86/avx512-vpternlog-commute.ll index cc89ee54c1b..547250a717f 100644 --- a/test/CodeGen/X86/avx512-vpternlog-commute.ll +++ b/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) -- 2.50.1