[llvm] [AMDGPU] Convert more 64-bit lshr to 32-bit if shift amt>=32 (PR #138204)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 9 18:12:21 PDT 2025
================
@@ -5209,21 +5264,19 @@ 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;
-
+ if (N->getOpcode() == ISD::SHL) {
+ return performShlCombine(N, DCI);
+ }
----------------
shiltian wrote:
```suggestion
if (N->getOpcode() == ISD::SHL)
return performShlCombine(N, DCI);
```
https://github.com/llvm/llvm-project/pull/138204
More information about the llvm-commits
mailing list