@@ -670,38 +670,6 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node)
670670 // Perform the actual "predicated" operation so that `embMaskOp1Reg` is the first operand..
671671 switch (intrinEmbMask.id )
672672 {
673- case NI_Sve_LoadVectorByteNonFaultingZeroExtendToInt16:
674- case NI_Sve_LoadVectorByteNonFaultingZeroExtendToInt32:
675- case NI_Sve_LoadVectorByteNonFaultingZeroExtendToInt64:
676- case NI_Sve_LoadVectorByteNonFaultingZeroExtendToUInt16:
677- case NI_Sve_LoadVectorByteNonFaultingZeroExtendToUInt32:
678- case NI_Sve_LoadVectorByteNonFaultingZeroExtendToUInt64:
679- case NI_Sve_LoadVectorInt16NonFaultingSignExtendToInt32:
680- case NI_Sve_LoadVectorInt16NonFaultingSignExtendToInt64:
681- case NI_Sve_LoadVectorInt16NonFaultingSignExtendToUInt32:
682- case NI_Sve_LoadVectorInt16NonFaultingSignExtendToUInt64:
683- case NI_Sve_LoadVectorInt32NonFaultingSignExtendToInt64:
684- case NI_Sve_LoadVectorInt32NonFaultingSignExtendToUInt64:
685- case NI_Sve_LoadVectorNonFaulting:
686- case NI_Sve_LoadVectorSByteNonFaultingSignExtendToInt16:
687- case NI_Sve_LoadVectorSByteNonFaultingSignExtendToInt32:
688- case NI_Sve_LoadVectorSByteNonFaultingSignExtendToInt64:
689- case NI_Sve_LoadVectorSByteNonFaultingSignExtendToUInt16:
690- case NI_Sve_LoadVectorSByteNonFaultingSignExtendToUInt32:
691- case NI_Sve_LoadVectorSByteNonFaultingSignExtendToUInt64:
692- case NI_Sve_LoadVectorUInt16NonFaultingZeroExtendToInt32:
693- case NI_Sve_LoadVectorUInt16NonFaultingZeroExtendToInt64:
694- case NI_Sve_LoadVectorUInt16NonFaultingZeroExtendToUInt32:
695- case NI_Sve_LoadVectorUInt16NonFaultingZeroExtendToUInt64:
696- case NI_Sve_LoadVectorUInt32NonFaultingZeroExtendToInt64:
697- case NI_Sve_LoadVectorUInt32NonFaultingZeroExtendToUInt64:
698- {
699-
700- GetEmitter ()->emitIns_R_R_R (insEmbMask, emitSize, targetReg, maskReg, embMaskOp1Reg,
701- opt);
702- break ;
703- }
704-
705673 case NI_Sve_And_Predicates:
706674 case NI_Sve_BitwiseClear_Predicates:
707675 case NI_Sve_Or_Predicates:
@@ -2175,14 +2143,14 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node)
21752143 case NI_Sve_LoadVectorUInt32NonFaultingZeroExtendToInt64:
21762144 case NI_Sve_LoadVectorUInt32NonFaultingZeroExtendToUInt64:
21772145 {
2178- if (intrin.numOperands == 2 )
2146+ if (intrin.numOperands == 3 )
21792147 {
2180- // We have extra argument which means there is a "use" of FFR here. Restore it back in FFR
2181- // register.
2182- assert (op2Reg != REG_NA);
2183- GetEmitter ()->emitIns_R (INS_sve_wrffr, emitSize, op2Reg, opt);
2148+ // We have extra argument which means there is a "use" of FFR here. Restore it back in FFR register.
2149+ assert (op3Reg != REG_NA);
2150+ GetEmitter ()->emitIns_R (INS_sve_wrffr, emitSize, op3Reg, opt);
21842151 }
2185- GetEmitter ()->emitIns_R_R (ins, emitSize, targetReg, op1Reg);
2152+
2153+ GetEmitter ()->emitIns_R_R_R_I (ins, emitSize, targetReg, op1Reg, op2Reg, 0 , opt);
21862154 break ;
21872155 }
21882156
0 commit comments