@@ -15627,13 +15627,15 @@ static bool canConvertToVcmpequb(SDValue &LHS, SDValue RHS) {
1562715627}
1562815628
1562915629SDValue convertTwoLoadsAndCmpToVCMPEQUB(SelectionDAG &DAG, SDNode *N,
15630- const SDLoc &DL, SDValue &LHS,
15631- SDValue RHS) {
15630+ const SDLoc &DL) {
15631+
15632+ assert(N->getOpcode() == ISD::SETCC && "Should be called with a SETCC node");
15633+
1563215634 ISD::CondCode CC = cast<CondCodeSDNode>(N->getOperand(2))->get();
1563315635 assert(CC == ISD::SETNE ||
1563415636 CC == ISD::SETEQ && "CC mus be ISD::SETNE or ISD::SETEQ");
15635- auto *LA = dyn_cast<LoadSDNode>(LHS );
15636- auto *LB = dyn_cast<LoadSDNode>(RHS );
15637+ auto *LA = dyn_cast<LoadSDNode>(N->getOperand(0) );
15638+ auto *LB = dyn_cast<LoadSDNode>(N->getOperand(1) );
1563715639
1563815640 // Following code transforms the DAG
1563915641 // t0: ch,glue = EntryToken
@@ -15717,7 +15719,7 @@ SDValue PPCTargetLowering::combineSetCC(SDNode *N,
1571715719 // and one vector compare instruction.
1571815720
1571915721 if (Subtarget.hasAltivec() && canConvertToVcmpequb(LHS, RHS))
15720- return convertTwoLoadsAndCmpToVCMPEQUB(DCI.DAG, N, SDLoc(N), LHS, RHS );
15722+ return convertTwoLoadsAndCmpToVCMPEQUB(DCI.DAG, N, SDLoc(N));
1572115723 }
1572215724
1572315725 return DAGCombineTruncBoolExt(N, DCI);
0 commit comments