@@ -13526,35 +13526,6 @@ SDValue SITargetLowering::performXorCombine(SDNode *N,
13526
13526
SDValue LHS = N->getOperand(0);
13527
13527
SDValue RHS = N->getOperand(1);
13528
13528
13529
- // Fold the fneg of a vselect into the v2 vselect operands.
13530
- // xor (vselect c, a, b), 0x80000000 ->
13531
- // bitcast (vselect c, (fneg (bitcast a)), (fneg (bitcast b)))
13532
- if (VT == MVT::v2i32 && LHS.getNumOperands() > 1) {
13533
-
13534
- const ConstantSDNode *CRHS0 = dyn_cast<ConstantSDNode>(RHS.getOperand(0));
13535
- const ConstantSDNode *CRHS1 = dyn_cast<ConstantSDNode>(RHS.getOperand(1));
13536
- SDValue LHS_0 = LHS.getOperand(0);
13537
- SDValue LHS_1 = LHS.getOperand(1);
13538
-
13539
- if (LHS.getOpcode() == ISD::VSELECT && CRHS0 &&
13540
- CRHS0->getAPIntValue().isSignMask() &&
13541
- shouldFoldFNegIntoSrc(N, LHS_0) && CRHS1 &&
13542
- CRHS1->getAPIntValue().isSignMask() &&
13543
- shouldFoldFNegIntoSrc(N, LHS_1)) {
13544
-
13545
- SDLoc DL(N);
13546
- SDValue CastLHS =
13547
- DAG.getNode(ISD::BITCAST, DL, MVT::v2f32, LHS->getOperand(1));
13548
- SDValue CastRHS =
13549
- DAG.getNode(ISD::BITCAST, DL, MVT::v2f32, LHS->getOperand(2));
13550
- SDValue FNegLHS = DAG.getNode(ISD::FNEG, DL, MVT::v2f32, CastLHS);
13551
- SDValue FNegRHS = DAG.getNode(ISD::FNEG, DL, MVT::v2f32, CastRHS);
13552
- SDValue NewSelect = DAG.getNode(ISD::VSELECT, DL, MVT::v2f32,
13553
- LHS->getOperand(0), FNegLHS, FNegRHS);
13554
- return DAG.getNode(ISD::BITCAST, DL, VT, NewSelect);
13555
- }
13556
- }
13557
-
13558
13529
const ConstantSDNode *CRHS = dyn_cast<ConstantSDNode>(RHS);
13559
13530
13560
13531
if (CRHS && VT == MVT::i64) {
@@ -13565,24 +13536,24 @@ SDValue SITargetLowering::performXorCombine(SDNode *N,
13565
13536
13566
13537
// Make sure to apply the 64-bit constant splitting fold before trying to fold
13567
13538
// fneg-like xors into 64-bit select.
13568
- if (LHS.getOpcode() == ISD::SELECT && VT == MVT::i32) {
13569
- // This looks like an fneg, try to fold as a source modifier.
13570
- if (CRHS && CRHS->getAPIntValue().isSignMask() &&
13571
- shouldFoldFNegIntoSrc(N, LHS)) {
13572
- // xor (select c, a, b), 0x80000000 ->
13573
- // bitcast (select c, (fneg (bitcast a)), (fneg (bitcast b)))
13574
- SDLoc DL(N);
13575
- SDValue CastLHS =
13576
- DAG.getNode(ISD::BITCAST, DL, MVT::f32, LHS->getOperand(1));
13577
- SDValue CastRHS =
13578
- DAG.getNode(ISD::BITCAST, DL, MVT::f32, LHS->getOperand(2));
13579
- SDValue FNegLHS = DAG.getNode(ISD::FNEG, DL, MVT::f32, CastLHS);
13580
- SDValue FNegRHS = DAG.getNode(ISD::FNEG, DL, MVT::f32, CastRHS);
13581
- SDValue NewSelect = DAG.getNode(ISD::SELECT, DL, MVT::f32,
13582
- LHS->getOperand(0), FNegLHS, FNegRHS);
13583
- return DAG.getNode(ISD::BITCAST, DL, VT, NewSelect);
13584
- }
13585
- }
13539
+ // if (LHS.getOpcode() == ISD::SELECT && VT == MVT::i32) {
13540
+ // // This looks like an fneg, try to fold as a source modifier.
13541
+ // if (CRHS && CRHS->getAPIntValue().isSignMask() &&
13542
+ // shouldFoldFNegIntoSrc(N, LHS)) {
13543
+ // // xor (select c, a, b), 0x80000000 ->
13544
+ // // bitcast (select c, (fneg (bitcast a)), (fneg (bitcast b)))
13545
+ // SDLoc DL(N);
13546
+ // SDValue CastLHS =
13547
+ // DAG.getNode(ISD::BITCAST, DL, MVT::f32, LHS->getOperand(1));
13548
+ // SDValue CastRHS =
13549
+ // DAG.getNode(ISD::BITCAST, DL, MVT::f32, LHS->getOperand(2));
13550
+ // SDValue FNegLHS = DAG.getNode(ISD::FNEG, DL, MVT::f32, CastLHS);
13551
+ // SDValue FNegRHS = DAG.getNode(ISD::FNEG, DL, MVT::f32, CastRHS);
13552
+ // SDValue NewSelect = DAG.getNode(ISD::SELECT, DL, MVT::f32,
13553
+ // LHS->getOperand(0), FNegLHS, FNegRHS);
13554
+ // return DAG.getNode(ISD::BITCAST, DL, VT, NewSelect);
13555
+ // }
13556
+ // }
13586
13557
13587
13558
return SDValue();
13588
13559
}
0 commit comments