Index: lib/Target/X86/X86ISelLowering.cpp =================================================================== --- lib/Target/X86/X86ISelLowering.cpp +++ lib/Target/X86/X86ISelLowering.cpp @@ -30842,7 +30842,7 @@ // Nuke no-op shuffles that show up after combining. if (isNoopShuffleMask(Mask)) - return DCI.CombineTo(N.getNode(), N.getOperand(0), /*AddTo*/ true); + return N.getOperand(0); // Look for simplifications involving one or two shuffle instructions. SDValue V = N.getOperand(0); @@ -31290,9 +31290,8 @@ // a particular chain. if (SDValue Res = combineX86ShufflesRecursively( {Op}, 0, Op, {0}, {}, /*Depth*/ 1, - /*HasVarMask*/ false, DAG, Subtarget)) { - return DCI.CombineTo(N, Res); - } + /*HasVarMask*/ false, DAG, Subtarget)) + return Res; } return SDValue(); @@ -34228,9 +34227,8 @@ SDValue Op(N, 0); if (SDValue Res = combineX86ShufflesRecursively({Op}, 0, Op, {0}, {}, /*Depth*/ 1, - /*HasVarMask*/ false, DAG, Subtarget)) { - return DCI.CombineTo(N, Res); - } + /*HasVarMask*/ false, DAG, Subtarget)) + return Res; return SDValue(); } @@ -34289,9 +34287,8 @@ SDValue Op(N, 0); if (SDValue Res = combineX86ShufflesRecursively( {Op}, 0, Op, {0}, {}, /*Depth*/ 1, - /*HasVarMask*/ false, DAG, Subtarget)) { - return DCI.CombineTo(N, Res); - } + /*HasVarMask*/ false, DAG, Subtarget)) + return Res; } // Constant Folding. @@ -34329,9 +34326,8 @@ SDValue Op(N, 0); if (SDValue Res = combineX86ShufflesRecursively({Op}, 0, Op, {0}, {}, /*Depth*/ 1, - /*HasVarMask*/ false, DAG, Subtarget)) { - return DCI.CombineTo(N, Res); - } + /*HasVarMask*/ false, DAG, Subtarget)) + return Res; return SDValue(); } @@ -34785,9 +34781,8 @@ SDValue Op(N, 0); if (SDValue Res = combineX86ShufflesRecursively( {Op}, 0, Op, {0}, {}, /*Depth*/ 1, - /*HasVarMask*/ false, DAG, Subtarget)) { - return DCI.CombineTo(N, Res); - } + /*HasVarMask*/ false, DAG, Subtarget)) + return Res; } // Attempt to combine a scalar bitmask AND with an extracted shuffle. @@ -37195,9 +37190,8 @@ SDValue Op(N, 0); if (SDValue Res = combineX86ShufflesRecursively( {Op}, 0, Op, {0}, {}, /*Depth*/ 1, - /*HasVarMask*/ false, DAG, Subtarget)) { - return DCI.CombineTo(N, Res); - } + /*HasVarMask*/ false, DAG, Subtarget)) + return Res; } return SDValue();