X86: Properly decode shuffle masks when the constant pool type is weird
[oota-llvm.git] / lib / Target / X86 / X86MCInstLower.cpp
index 63ccded5ac9f85f15d9ca39b0b9807bc4314bd0b..460f88b0dd56a8587ca80aae197a7ae4d91dbeaf 100644 (file)
@@ -1161,7 +1161,7 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
 
     if (auto *C = getConstantFromPool(*MI, MaskOp)) {
       SmallVector<int, 16> Mask;
-      DecodePSHUFBMask(C, Mask);
+      DecodePSHUFBMask(C, TM.getSubtargetImpl()->getDataLayout(), Mask);
       if (!Mask.empty())
         OutStreamer.AddComment(getShuffleComment(DstOp, SrcOp, Mask));
     }