Fix VEX.vvvv encoding for AVX.BlendVariable
authorFei Peng <fei.peng@intel.com>
Wed, 11 Jul 2018 22:55:37 +0000 (15:55 -0700)
committerTanner Gooding <tagoo@outlook.com>
Thu, 12 Jul 2018 03:29:05 +0000 (20:29 -0700)
src/jit/emitxarch.cpp

index 7809c50e57432061d7caf51600c5ecd2511868a3..bdbf3356a96f6428695fd1b56281fd74779130c3 100644 (file)
@@ -293,6 +293,9 @@ bool emitter::IsDstDstSrcAVXInstruction(instruction ins)
         case INS_unpcklps:
         case INS_unpckhpd:
         case INS_unpcklpd:
+        case INS_vblendvps:
+        case INS_vblendvpd:
+        case INS_vpblendvb:
         case INS_vfmadd132pd:
         case INS_vfmadd213pd:
         case INS_vfmadd231pd:
@@ -9382,7 +9385,8 @@ BYTE* emitter::emitOutputAM(BYTE* dst, instrDesc* id, code_t code, CnsVal* addc)
         {
             regNumber src1 = id->idReg2();
 
-            if ((id->idInsFmt() != IF_RWR_RRD_ARD) && (id->idInsFmt() != IF_RWR_RRD_ARD_CNS))
+            if ((id->idInsFmt() != IF_RWR_RRD_ARD) && (id->idInsFmt() != IF_RWR_RRD_ARD_CNS) &&
+                (id->idInsFmt() != IF_RWR_RRD_ARD_RRD))
             {
                 src1 = id->idReg1();
             }