[llvm] [AArch64] Remove unnecessary extloadi32 -> i32 pattern. NFCI (PR #159527)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 18 02:01:59 PDT 2025
https://github.com/davemgreen created https://github.com/llvm/llvm-project/pull/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.
>From 97b6c145c11c3060351cad815e4b711df79c5045 Mon Sep 17 00:00:00 2001
From: David Green <david.green at arm.com>
Date: Thu, 18 Sep 2025 09:55:50 +0100
Subject: [PATCH] [AArch64] Remove unnecessary extloadi32 -> i32 pattern. NFCI
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.
---
llvm/lib/Target/AArch64/AArch64InstrInfo.td | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
index 3fcafc6d35090..8fc3b25dbe94a 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