[llvm] [AMDGPU] Convert more 64-bit lshr to 32-bit if shift amt>=32 (PR #138204)
via llvm-commits
llvm-commits at lists.llvm.org
Tue May 6 08:10:06 PDT 2025
================
@@ -5198,22 +5254,21 @@ SDValue AMDGPUTargetLowering::PerformDAGCombine(SDNode *N,
break;
}
- case ISD::SHL: {
+ case ISD::SHL:
+ case ISD::SRL: {
// Range metadata can be invalidated when loads are converted to legal types
// (e.g. v2i64 -> v4i32).
- // Try to convert vector shl before type legalization so that range metadata
- // can be utilized.
+ // Try to convert vector shl/srl before type legalization so that range
+ // metadata can be utilized.
if (!(N->getValueType(0).isVector() &&
DCI.getDAGCombineLevel() == BeforeLegalizeTypes) &&
DCI.getDAGCombineLevel() < AfterLegalizeDAG)
break;
- return performShlCombine(N, DCI);
- }
- case ISD::SRL: {
- if (DCI.getDAGCombineLevel() < AfterLegalizeDAG)
- break;
-
- return performSrlCombine(N, DCI);
+ if (N->getOpcode() == ISD::SHL) {
+ return performShlCombine(N, DCI);
+ } else {
----------------
LU-JOHN wrote:
Fixed.
https://github.com/llvm/llvm-project/pull/138204
More information about the llvm-commits
mailing list