[llvm] [SDAG] fix miss opt: shl nuw + zext adds unnecessary masking (PR #172046)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 22:28:39 PST 2025
================
@@ -1673,8 +1673,10 @@ SDValue DAGCombiner::PromoteIntShiftOp(SDValue Op) {
SDLoc DL(Op);
SDValue N1 = Op.getOperand(1);
- SDValue RV =
- DAG.getNode(ISD::TRUNCATE, DL, VT, DAG.getNode(Opc, DL, PVT, N0, N1));
+ SDValue POp = DAG.getNode(Opc, DL, PVT, N0, N1);
+ if (Opc == ISD::SHL && Op->getFlags().hasNoUnsignedWrap())
+ POp = DAG.getNode(ISD::AssertZext, DL, PVT, POp, DAG.getValueType(VT));
----------------
actinks wrote:
done @arsenm @topperc
https://github.com/llvm/llvm-project/pull/172046
More information about the llvm-commits
mailing list