[llvm] r295638 - [AVX-512] Fix mistake in the immediate swizzle for some of the VPTERNLOG patterns.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 19 23:00:35 PST 2017


Author: ctopper
Date: Mon Feb 20 01:00:34 2017
New Revision: 295638

URL: http://llvm.org/viewvc/llvm-project?rev=295638&view=rev
Log:
[AVX-512] Fix mistake in the immediate swizzle for some of the VPTERNLOG patterns.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrAVX512.td
    llvm/trunk/test/CodeGen/X86/avx512-vpternlog-commute.ll

Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=295638&r1=295637&r2=295638&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Mon Feb 20 01:00:34 2017
@@ -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));

Modified: llvm/trunk/test/CodeGen/X86/avx512-vpternlog-commute.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-vpternlog-commute.ll?rev=295638&r1=295637&r2=295638&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512-vpternlog-commute.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512-vpternlog-commute.ll Mon Feb 20 01:00:34 2017
@@ -190,7 +190,7 @@ define <16 x i32> @vpternlog_v16i32_012_
 ; 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)




More information about the llvm-commits mailing list