@@ -3235,6 +3235,7 @@ bool DAGTypeLegalizer::SplitVectorOperand(SDNode *N, unsigned OpNo) {
32353235
32363236 case ISD::VP_SETCC:
32373237 case ISD::STRICT_FSETCC:
3238+ case ISD::STRICT_FSETCCS:
32383239 case ISD::SETCC: Res = SplitVecOp_VSETCC (N); break ;
32393240 case ISD::BITCAST: Res = SplitVecOp_BITCAST (N); break ;
32403241 case ISD::EXTRACT_SUBVECTOR: Res = SplitVecOp_EXTRACT_SUBVECTOR (N); break ;
@@ -4236,7 +4237,8 @@ SDValue DAGTypeLegalizer::SplitVecOp_TruncateHelper(SDNode *N) {
42364237}
42374238
42384239SDValue DAGTypeLegalizer::SplitVecOp_VSETCC (SDNode *N) {
4239- bool isStrict = N->getOpcode () == ISD::STRICT_FSETCC;
4240+ unsigned Opc = N->getOpcode ();
4241+ bool isStrict = Opc == ISD::STRICT_FSETCC || Opc == ISD::STRICT_FSETCCS;
42404242 assert (N->getValueType (0 ).isVector () &&
42414243 N->getOperand (isStrict ? 1 : 0 ).getValueType ().isVector () &&
42424244 " Operand types must be vectors" );
@@ -4252,21 +4254,19 @@ SDValue DAGTypeLegalizer::SplitVecOp_VSETCC(SDNode *N) {
42524254 EVT PartResVT = EVT::getVectorVT (Context, MVT::i1, PartEltCnt);
42534255 EVT WideResVT = EVT::getVectorVT (Context, MVT::i1, PartEltCnt*2 );
42544256
4255- if (N-> getOpcode () == ISD::SETCC) {
4257+ if (Opc == ISD::SETCC) {
42564258 LoRes = DAG.getNode (ISD::SETCC, DL, PartResVT, Lo0, Lo1, N->getOperand (2 ));
42574259 HiRes = DAG.getNode (ISD::SETCC, DL, PartResVT, Hi0, Hi1, N->getOperand (2 ));
4258- } else if (N->getOpcode () == ISD::STRICT_FSETCC) {
4259- LoRes = DAG.getNode (ISD::STRICT_FSETCC, DL,
4260- DAG.getVTList (PartResVT, N->getValueType (1 )),
4260+ } else if (isStrict) {
4261+ LoRes = DAG.getNode (Opc, DL, DAG.getVTList (PartResVT, N->getValueType (1 )),
42614262 N->getOperand (0 ), Lo0, Lo1, N->getOperand (3 ));
4262- HiRes = DAG.getNode (ISD::STRICT_FSETCC, DL,
4263- DAG.getVTList (PartResVT, N->getValueType (1 )),
4263+ HiRes = DAG.getNode (Opc, DL, DAG.getVTList (PartResVT, N->getValueType (1 )),
42644264 N->getOperand (0 ), Hi0, Hi1, N->getOperand (3 ));
42654265 SDValue NewChain = DAG.getNode (ISD::TokenFactor, DL, MVT::Other,
42664266 LoRes.getValue (1 ), HiRes.getValue (1 ));
42674267 ReplaceValueWith (SDValue (N, 1 ), NewChain);
42684268 } else {
4269- assert (N-> getOpcode () == ISD::VP_SETCC && " Expected VP_SETCC opcode" );
4269+ assert (Opc == ISD::VP_SETCC && " Expected VP_SETCC opcode" );
42704270 SDValue MaskLo, MaskHi, EVLLo, EVLHi;
42714271 std::tie (MaskLo, MaskHi) = SplitMask (N->getOperand (3 ));
42724272 std::tie (EVLLo, EVLHi) =
0 commit comments