[llvm] 4839cc1 - [AArch64] Remove unnecessary extloadi32 -> i32 pattern. NFCI (#159527)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 22 01:46:20 PDT 2025
Author: David Green
Date: 2025-09-22T09:46:15+01:00
New Revision: 4839cc15583968618c87bc7f0a6b78341d3d6e2d
URL: https://github.com/llvm/llvm-project/commit/4839cc15583968618c87bc7f0a6b78341d3d6e2d
DIFF: https://github.com/llvm/llvm-project/commit/4839cc15583968618c87bc7f0a6b78341d3d6e2d.diff
LOG: [AArch64] Remove unnecessary extloadi32 -> i32 pattern. NFCI (#159527)
As far as I can tell this load pattern will not perform anything as it
could only trigger from a i32 MemVT extended to a i32.
Added:
Modified:
llvm/lib/Target/AArch64/AArch64InstrInfo.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
index 6cea453f271be..980636c1b562b 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
@@ -3844,7 +3844,7 @@ let AddedComplexity = 10 in {
}
-// zextload -> i64
+// zextload -> i32
multiclass ExtLoadTo32ROPat<ROAddrMode ro, SDPatternOperator loadop,
Instruction INSTW, Instruction INSTX> {
def : Pat<(i32 (loadop (ro.Wpat GPR64sp:$Rn, GPR32:$Rm, ro.Wext:$extend))),
@@ -3852,14 +3852,12 @@ multiclass ExtLoadTo32ROPat<ROAddrMode ro, SDPatternOperator loadop,
def : Pat<(i32 (loadop (ro.Xpat GPR64sp:$Rn, GPR64:$Rm, ro.Xext:$extend))),
(INSTX GPR64sp:$Rn, GPR64:$Rm, ro.Xext:$extend)>;
-
}
let AddedComplexity = 10 in {
// extload -> zextload
defm : ExtLoadTo32ROPat<ro8, extloadi8, LDRBBroW, LDRBBroX>;
defm : ExtLoadTo32ROPat<ro16, extloadi16, LDRHHroW, LDRHHroX>;
- defm : ExtLoadTo32ROPat<ro32, extloadi32, LDRWroW, LDRWroX>;
// zextloadi1 -> zextloadi8
defm : ExtLoadTo32ROPat<ro8, zextloadi1, LDRBBroW, LDRBBroX>;
More information about the llvm-commits
mailing list