diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td index 4db7e1c3ef87..2ec2f9027502 100644 --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -5340,30 +5340,25 @@ multiclass SS41I_pmovx_rrrm opc, string OpcodeStr, X86MemOperand MemOp, multiclass SS41I_pmovx_rm_all opc, string OpcodeStr, X86MemOperand MemOp, X86MemOperand MemYOp, - OpndItins SSEItins, OpndItins AVXItins, - OpndItins AVX2Itins, Predicate prd> { - defm NAME : SS41I_pmovx_rrrm; + OpndItins itins, Predicate prd> { + defm NAME : SS41I_pmovx_rrrm; let Predicates = [HasAVX, prd] in defm V#NAME : SS41I_pmovx_rrrm, VEX, VEX_WIG; + VR128, VR128, itins>, VEX, VEX_WIG; let Predicates = [HasAVX2, prd] in defm V#NAME#Y : SS41I_pmovx_rrrm, VEX, VEX_L, VEX_WIG; + VR256, VR128, itins>, VEX, VEX_L, VEX_WIG; } multiclass SS41I_pmovx_rm opc, string OpcodeStr, X86MemOperand MemOp, X86MemOperand MemYOp, Predicate prd> { defm PMOVSX#NAME : SS41I_pmovx_rm_all; + SSE_INTALU_ITINS_SHUFF_P, prd>; defm PMOVZX#NAME : SS41I_pmovx_rm_all; + SSE_INTALU_ITINS_SHUFF_P, prd>; } defm BW : SS41I_pmovx_rm<0x20, "bw", i64mem, i128mem, NoVLX_Or_NoBWI>;