[llvm] [NFC] Move fusion- to start of Fusion Feature Name (PR #185146)
Sam Elliott via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 6 18:17:57 PST 2026
https://github.com/lenary updated https://github.com/llvm/llvm-project/pull/185146
>From bafea9d018c4f716f38392ecf7ea37e112b043fa Mon Sep 17 00:00:00 2001
From: Sam Elliott <aelliott at qti.qualcomm.com>
Date: Fri, 6 Mar 2026 17:28:09 -0800
Subject: [PATCH 1/2] [NFC] Move fusion- to start of Fusion Feature Name
This makes it a lot easier to see all the available fusions, because
they appear together in the list.
---
llvm/include/llvm/Target/TargetMacroFusion.td | 2 +-
llvm/lib/Target/RISCV/RISCVMacroFusion.td | 24 ++++++++---------
llvm/test/CodeGen/RISCV/features-info.ll | 26 +++++++++----------
.../RISCV/machinelicm-address-pseudos.ll | 4 +--
.../CodeGen/RISCV/macro-fusion-lui-addi.ll | 10 +++----
llvm/test/CodeGen/RISCV/macro-fusions.mir | 8 +++---
llvm/test/TableGen/MacroFusion.td | 18 ++++++-------
7 files changed, 46 insertions(+), 46 deletions(-)
diff --git a/llvm/include/llvm/Target/TargetMacroFusion.td b/llvm/include/llvm/Target/TargetMacroFusion.td
index 3913a6f92015a..1f070853c3084 100644
--- a/llvm/include/llvm/Target/TargetMacroFusion.td
+++ b/llvm/include/llvm/Target/TargetMacroFusion.td
@@ -104,7 +104,7 @@ def OneUse : OneUsePred;
//
// `IsCommutable` means whether we should handle commutable operands.
class Fusion<string name, string fieldName, string desc, list<FusionPredicate> predicates>
- : SubtargetFeature<name, fieldName, "true", desc> {
+ : SubtargetFeature<"fusion-" # name, fieldName, "true", desc> {
list<FusionPredicate> Predicates = predicates;
bit IsCommutable = 0;
}
diff --git a/llvm/lib/Target/RISCV/RISCVMacroFusion.td b/llvm/lib/Target/RISCV/RISCVMacroFusion.td
index d2c1fc11831d9..73cdc6a492036 100644
--- a/llvm/lib/Target/RISCV/RISCVMacroFusion.td
+++ b/llvm/lib/Target/RISCV/RISCVMacroFusion.td
@@ -14,7 +14,7 @@
// lui rd, imm[31:12]
// addi(w) rd, rd, imm[11:0]
def TuneLUIADDIFusion
- : SimpleFusion<"lui-addi-fusion", "HasLUIADDIFusion",
+ : SimpleFusion<"lui-addi", "HasLUIADDIFusion",
"Enable LUI+ADDI macro fusion",
CheckOpcode<[LUI]>,
CheckOpcode<[ADDI, ADDIW]>>;
@@ -23,7 +23,7 @@ def TuneLUIADDIFusion
// auipc rd, imm20
// addi rd, rd, imm12
def TuneAUIPCADDIFusion
- : SimpleFusion<"auipc-addi-fusion", "HasAUIPCADDIFusion",
+ : SimpleFusion<"auipc-addi", "HasAUIPCADDIFusion",
"Enable AUIPC+ADDI macrofusion",
CheckOpcode<[AUIPC]>,
CheckOpcode<[ADDI]>>;
@@ -32,7 +32,7 @@ def TuneAUIPCADDIFusion
// slli rd, rs1, 48
// srli rd, rd, 48
def TuneZExtHFusion
- : SimpleFusion<"zexth-fusion", "HasZExtHFusion",
+ : SimpleFusion<"zexth", "HasZExtHFusion",
"Enable SLLI+SRLI to be fused to zero extension of halfword",
CheckAll<[
CheckOpcode<[SLLI]>,
@@ -49,7 +49,7 @@ def TuneZExtHFusion
// slli rd, rs1, 32
// srli rd, rd, 32
def TuneZExtWFusion
- : SimpleFusion<"zextw-fusion", "HasZExtWFusion",
+ : SimpleFusion<"zextw", "HasZExtWFusion",
"Enable SLLI+SRLI to be fused to zero extension of word",
CheckAll<[
CheckOpcode<[SLLI]>,
@@ -67,7 +67,7 @@ def TuneZExtWFusion
// srli rd, rd, x
// where 0 <= x < 32
def TuneShiftedZExtWFusion
- : SimpleFusion<"shifted-zextw-fusion", "HasShiftedZExtWFusion",
+ : SimpleFusion<"shifted-zextw", "HasShiftedZExtWFusion",
"Enable SLLI+SRLI to be fused when computing (shifted) word zero extension",
CheckAll<[
CheckOpcode<[SLLI]>,
@@ -84,7 +84,7 @@ def TuneShiftedZExtWFusion
// add rd, rs1, rs2
// ld rd, 0(rd)
def TuneLDADDFusion
- : SimpleFusion<"ld-add-fusion", "HasLDADDFusion", "Enable LD+ADD macrofusion",
+ : SimpleFusion<"ld-add", "HasLDADDFusion", "Enable LD+ADD macrofusion",
CheckOpcode<[ADD]>,
CheckAll<[
CheckOpcode<[LD]>,
@@ -106,7 +106,7 @@ defvar ShiftRight = [SRLI, SRLIW, SRAI, SRAIW];
// add(.uw) rd, rs1, rs2
// load rd, imm12(rd)
def TuneADDLoadFusion
- : SimpleFusion<"add-load-fusion", "HasADDLoadFusion", "Enable ADD(.UW) + load macrofusion",
+ : SimpleFusion<"add-load", "HasADDLoadFusion", "Enable ADD(.UW) + load macrofusion",
CheckOpcode<[ADD, ADD_UW]>,
CheckOpcode<Load>>;
@@ -114,7 +114,7 @@ def TuneADDLoadFusion
// auipc rd, imm20
// load rd, imm12(rd)
def TuneAUIPCLoadFusion
- : SimpleFusion<"auipc-load-fusion", "HasAUIPCLoadFusion",
+ : SimpleFusion<"auipc-load", "HasAUIPCLoadFusion",
"Enable AUIPC + load macrofusion",
CheckOpcode<[AUIPC]>,
CheckOpcode<Load>>;
@@ -123,7 +123,7 @@ def TuneAUIPCLoadFusion
// lui rd, imm[31:12]
// load rd, imm12(rd)
def TuneLUILoadFusion
- : SimpleFusion<"lui-load-fusion", "HasLUILoadFusion",
+ : SimpleFusion<"lui-load", "HasLUILoadFusion",
"Enable LUI + load macrofusion",
CheckOpcode<[LUI]>,
CheckOpcode<Load>>;
@@ -133,7 +133,7 @@ def TuneLUILoadFusion
// slli rd, rs1, imm12
// srli rd, rd, imm12
def TuneBFExtFusion
- : SimpleFusion<"bfext-fusion", "HasBFExtFusion",
+ : SimpleFusion<"bfext", "HasBFExtFusion",
"Enable SLLI+SRLI (bitfield extract) macrofusion",
CheckOpcode<[SLLI]>,
CheckOpcode<[SRLI]>>;
@@ -142,7 +142,7 @@ def TuneBFExtFusion
// addi rd, rs1, imm12
// load rd, imm12(rd)
def TuneADDILoadFusion
- : SimpleFusion<"addi-load-fusion", "HasADDILoadFusion",
+ : SimpleFusion<"addi-load", "HasADDILoadFusion",
"Enable ADDI + load macrofusion",
CheckOpcode<[ADDI]>,
CheckOpcode<Load>>;
@@ -151,7 +151,7 @@ def TuneADDILoadFusion
// shXadd(.uw) rd, rs1, rs2
// load rd, imm12(rd)
def TuneSHXADDLoadFusion
- : SimpleFusion<"shxadd-load-fusion", "HasSHXADDLoadFusion",
+ : SimpleFusion<"shxadd-load", "HasSHXADDLoadFusion",
"Enable SH(1|2|3)ADD(.UW) + load macrofusion",
CheckOpcode<[SH1ADD, SH2ADD, SH3ADD, SH1ADD_UW, SH2ADD_UW, SH3ADD_UW]>,
CheckOpcode<Load>>;
diff --git a/llvm/test/CodeGen/RISCV/features-info.ll b/llvm/test/CodeGen/RISCV/features-info.ll
index 05c932aa359e2..b2aa51444a88b 100644
--- a/llvm/test/CodeGen/RISCV/features-info.ll
+++ b/llvm/test/CodeGen/RISCV/features-info.ll
@@ -6,13 +6,8 @@
; CHECK-NEXT: 32bit - Implements RV32.
; CHECK-NEXT: 64bit - Implements RV64.
; CHECK-NEXT: a - 'A' (Atomic Instructions).
-; CHECK-NEXT: add-load-fusion - Enable ADD(.UW) + load macrofusion.
-; CHECK-NEXT: addi-load-fusion - Enable ADDI + load macrofusion.
; CHECK-NEXT: andes45 - Andes 45-Series processors.
-; CHECK-NEXT: auipc-addi-fusion - Enable AUIPC+ADDI macrofusion.
-; CHECK-NEXT: auipc-load-fusion - Enable AUIPC + load macrofusion.
; CHECK-NEXT: b - 'B' (the collection of the Zba, Zbb, Zbs extensions).
-; CHECK-NEXT: bfext-fusion - Enable SLLI+SRLI (bitfield extract) macrofusion.
; CHECK-NEXT: c - 'C' (Compressed Instructions).
; CHECK-NEXT: conditional-cmv-fusion - Enable branch+c.mv fusion.
; CHECK-NEXT: d - 'D' (Double-Precision Floating-Point).
@@ -47,20 +42,30 @@
; CHECK-NEXT: experimental-zvkgs - 'Zvkgs' (Vector-Scalar GCM instructions for Cryptography).
; CHECK-NEXT: f - 'F' (Single-Precision Floating-Point).
; CHECK-NEXT: forced-atomics - Assume that lock-free native-width atomics are available.
+; CHECK-NEXT: fusion-add-load - Enable ADD(.UW) + load macrofusion.
; CHECK-NEXT: fusion-add-mem - Enable ADD+LOAD/STORE macrofusion.
+; CHECK-NEXT: fusion-addi-load - Enable ADDI + load macrofusion.
+; CHECK-NEXT: fusion-auipc-addi - Enable AUIPC+ADDI macrofusion.
+; CHECK-NEXT: fusion-auipc-load - Enable AUIPC + load macrofusion.
+; CHECK-NEXT: fusion-bfext - Enable SLLI+SRLI (bitfield extract) macrofusion.
+; CHECK-NEXT: fusion-ld-add - Enable LD+ADD macrofusion.
; CHECK-NEXT: fusion-logic-imm-reg - Enable ANDI/ORI/XORI+AND/OR/XOR macrofusion.
; CHECK-NEXT: fusion-logic-reg-imm - Enable AND/OR/XOR+ANDI/ORI/XORI macrofusion.
; CHECK-NEXT: fusion-logic-reg-reg - Enable AND/OR/XOR+AND/OR/XOR macrofusion.
+; CHECK-NEXT: fusion-lui-addi - Enable LUI+ADDI macro fusion.
+; CHECK-NEXT: fusion-lui-load - Enable LUI + load macrofusion.
; CHECK-NEXT: fusion-mul-add - Enable MUL+ADD macrofusion.
; CHECK-NEXT: fusion-shift-bit-extract - Enable SLLI+SRLI/SRAI macrofusion.
+; CHECK-NEXT: fusion-shifted-zextw - Enable SLLI+SRLI to be fused when computing (shifted) word zero extension.
+; CHECK-NEXT: fusion-shxadd-load - Enable SH(1|2|3)ADD(.UW) + load macrofusion.
+; CHECK-NEXT: fusion-zexth - Enable SLLI+SRLI to be fused to zero extension of halfword.
+; CHECK-NEXT: fusion-zextw - Enable SLLI+SRLI to be fused to zero extension of word.
; CHECK-NEXT: h - 'H' (Hypervisor).
; CHECK-NEXT: i - 'I' (Base Integer Instruction Set).
-; CHECK-NEXT: ld-add-fusion - Enable LD+ADD macrofusion.
; CHECK-NEXT: log-vrgather - Has vrgather.vv with LMUL*log2(LMUL) latency
-; CHECK-NEXT: lui-addi-fusion - Enable LUI+ADDI macro fusion.
-; CHECK-NEXT: lui-load-fusion - Enable LUI + load macrofusion.
; CHECK-NEXT: m - 'M' (Integer Multiplication and Division).
; CHECK-NEXT: mips-p8700 - MIPS p8700 processor.
+; CHECK-NEXT: mipsexectl - 'XMIPSEXECTL' (MIPS execution control).
; CHECK-NEXT: no-default-unroll - Disable default unroll preference..
; CHECK-NEXT: no-sink-splat-operands - Disable sink splat operands to enable .vx, .vf,.wx, and .wf instructions.
; CHECK-NEXT: no-trailing-seq-cst-fence - Disable trailing fence for seq-cst store..
@@ -125,7 +130,6 @@
; CHECK-NEXT: sha - 'Sha' (Augmented Hypervisor).
; CHECK-NEXT: shcounterenw - 'Shcounterenw' (Support writeable hcounteren enable bit for any hpmcounter that is not read-only zero).
; CHECK-NEXT: shgatpa - 'Shgatpa' (SvNNx4 mode supported for all modes supported by satp, as well as Bare).
-; CHECK-NEXT: shifted-zextw-fusion - Enable SLLI+SRLI to be fused when computing (shifted) word zero extension.
; CHECK-NEXT: shlcofideleg - 'Shlcofideleg' (Delegating LCOFI Interrupts to VS-mode).
; CHECK-NEXT: short-forward-branch-ialu - Enable short forward branch optimization for RVI base instructions.
; CHECK-NEXT: short-forward-branch-iload - Enable short forward branch optimization for load instructions.
@@ -135,7 +139,6 @@
; CHECK-NEXT: shvsatpa - 'Shvsatpa' (vsatp supports all modes supported by satp).
; CHECK-NEXT: shvstvala - 'Shvstvala' (vstval provides all needed values).
; CHECK-NEXT: shvstvecd - 'Shvstvecd' (vstvec supports Direct mode).
-; CHECK-NEXT: shxadd-load-fusion - Enable SH(1|2|3)ADD(.UW) + load macrofusion.
; CHECK-NEXT: sifive7 - SiFive 7-Series processors.
; CHECK-NEXT: single-element-vec-fp64 - Certain vector FP64 operations produce a single result element per cycle.
; CHECK-NEXT: smaia - 'Smaia' (Advanced Interrupt Architecture Machine Level).
@@ -200,7 +203,6 @@
; CHECK-NEXT: xcvsimd - 'XCVsimd' (CORE-V SIMD ALU).
; CHECK-NEXT: xmipscbop - 'XMIPSCBOP' (MIPS Software Prefetch).
; CHECK-NEXT: xmipscmov - 'XMIPSCMov' (MIPS conditional move instruction (mips.ccmov)).
-; CHECK-NEXT: mipsexectl - 'XMIPSEXECTL' (MIPS execution control).
; CHECK-NEXT: xmipslsp - 'XMIPSLSP' (MIPS optimization for hardware load-store bonding).
; CHECK-NEXT: xqccmp - 'Xqccmp' (Qualcomm 16-bit Push/Pop and Double Moves).
; CHECK-NEXT: xqci - 'Xqci' (Qualcomm uC Extension).
@@ -286,8 +288,6 @@
; CHECK-NEXT: zcmp - 'Zcmp' (sequenced instructions for code-size reduction).
; CHECK-NEXT: zcmt - 'Zcmt' (table jump instructions for code-size reduction).
; CHECK-NEXT: zdinx - 'Zdinx' (Double in Integer).
-; CHECK-NEXT: zexth-fusion - Enable SLLI+SRLI to be fused to zero extension of halfword.
-; CHECK-NEXT: zextw-fusion - Enable SLLI+SRLI to be fused to zero extension of word.
; CHECK-NEXT: zfa - 'Zfa' (Additional Floating-Point).
; CHECK-NEXT: zfbfmin - 'Zfbfmin' (Scalar BF16 Converts).
; CHECK-NEXT: zfh - 'Zfh' (Half-Precision Floating-Point).
diff --git a/llvm/test/CodeGen/RISCV/machinelicm-address-pseudos.ll b/llvm/test/CodeGen/RISCV/machinelicm-address-pseudos.ll
index 2a1ba2f77edee..664041cca7686 100644
--- a/llvm/test/CodeGen/RISCV/machinelicm-address-pseudos.ll
+++ b/llvm/test/CodeGen/RISCV/machinelicm-address-pseudos.ll
@@ -4,9 +4,9 @@
; RUN: llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs < %s \
; RUN: | FileCheck -check-prefixes=RV64I,RV64NOFUSION %s
; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs < %s \
-; RUN: -mattr=+auipc-addi-fusion | FileCheck -check-prefixes=RV32I,RV32FUSION %s
+; RUN: -mattr=+fusion-auipc-addi | FileCheck -check-prefixes=RV32I,RV32FUSION %s
; RUN: llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs < %s \
-; RUN: -mattr=+auipc-addi-fusion | FileCheck -check-prefixes=RV64I,RV64FUSION %s
+; RUN: -mattr=+fusion-auipc-addi | FileCheck -check-prefixes=RV64I,RV64FUSION %s
; Verifies that MachineLICM can hoist address generation pseudos out of loops.
diff --git a/llvm/test/CodeGen/RISCV/macro-fusion-lui-addi.ll b/llvm/test/CodeGen/RISCV/macro-fusion-lui-addi.ll
index ed99e6030ebdf..e10bb0e6588c1 100644
--- a/llvm/test/CodeGen/RISCV/macro-fusion-lui-addi.ll
+++ b/llvm/test/CodeGen/RISCV/macro-fusion-lui-addi.ll
@@ -1,18 +1,18 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
;RUN: llc < %s -mtriple=riscv64 -mattr=+f -mcpu=sifive-u74 -target-abi=lp64f \
;RUN: | FileCheck %s --check-prefix=NOFUSION
-;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+lui-addi-fusion -mcpu=sifive-u74 \
+;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+fusion-lui-addi -mcpu=sifive-u74 \
;RUN: -target-abi=lp64f | FileCheck %s --check-prefix=FUSION
-;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+lui-addi-fusion,+use-postra-scheduler -mcpu=sifive-u74 \
+;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+fusion-lui-addi,+use-postra-scheduler -mcpu=sifive-u74 \
;RUN: -misched-postra-direction=topdown -target-abi=lp64f \
;RUN: | FileCheck %s --check-prefixes=FUSION-POSTRA,FUSION-POSTRA-TOPDOWN
-;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+lui-addi-fusion,+use-postra-scheduler -mcpu=sifive-u74 \
+;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+fusion-lui-addi,+use-postra-scheduler -mcpu=sifive-u74 \
;RUN: -misched-postra-direction=bottomup -target-abi=lp64f \
;RUN: | FileCheck %s --check-prefixes=FUSION-POSTRA,FUSION-POSTRA-BOTTOMUP
-;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+lui-addi-fusion,+use-postra-scheduler -mcpu=sifive-u74 \
+;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+fusion-lui-addi,+use-postra-scheduler -mcpu=sifive-u74 \
;RUN: -misched-postra-direction=bidirectional -target-abi=lp64f \
;RUN: | FileCheck %s --check-prefixes=FUSION-POSTRA,FUSION-POSTRA-BIDIRECTIONAL
-;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+lui-addi-fusion -target-abi=lp64f \
+;RUN: llc < %s -mtriple=riscv64 -mattr=+f,+fusion-lui-addi -target-abi=lp64f \
;RUN: | FileCheck %s --check-prefix=FUSION-GENERIC
@.str = private constant [4 x i8] c"%f\0A\00", align 1
diff --git a/llvm/test/CodeGen/RISCV/macro-fusions.mir b/llvm/test/CodeGen/RISCV/macro-fusions.mir
index ae5b52da2ac16..77fc03c4237fe 100644
--- a/llvm/test/CodeGen/RISCV/macro-fusions.mir
+++ b/llvm/test/CodeGen/RISCV/macro-fusions.mir
@@ -1,13 +1,13 @@
# REQUIRES: asserts
# RUN: llc -mtriple=riscv64-linux-gnu -x=mir < %s \
# RUN: -debug-only=machine-scheduler -start-before=machine-scheduler 2>&1 \
-# RUN: -mattr=+lui-addi-fusion,+auipc-addi-fusion,+zexth-fusion,+zextw-fusion,+shifted-zextw-fusion,+ld-add-fusion \
-# RUN: -mattr=+add-load-fusion,+auipc-load-fusion,+lui-load-fusion,+addi-load-fusion \
-# RUN: -mattr=+zba,+shxadd-load-fusion \
+# RUN: -mattr=+fusion-lui-addi,+fusion-auipc-addi,+fusion-zexth,+fusion-zextw,+fusion-shifted-zextw,+fusion-ld-add \
+# RUN: -mattr=+fusion-add-load,+fusion-auipc-load,+fusion-lui-load,+fusion-addi-load \
+# RUN: -mattr=+zba,+fusion-shxadd-load \
# RUN: | FileCheck %s
# RUN: llc -mtriple=riscv64-linux-gnu -x=mir < %s \
# RUN: -debug-only=machine-scheduler -start-before=machine-scheduler 2>&1 \
-# RUN: -mattr=+zba,+bfext-fusion | FileCheck --check-prefixes=CHECK-BFEXT %s
+# RUN: -mattr=+zba,+fusion-bfext | FileCheck --check-prefixes=CHECK-BFEXT %s
# CHECK: lui_addi:%bb.0
# CHECK: Macro fuse: {{.*}}LUI - ADDI
diff --git a/llvm/test/TableGen/MacroFusion.td b/llvm/test/TableGen/MacroFusion.td
index ca795efd141ea..fd6e902c24dad 100644
--- a/llvm/test/TableGen/MacroFusion.td
+++ b/llvm/test/TableGen/MacroFusion.td
@@ -41,7 +41,7 @@ def TestBothFusionPredicate: Fusion<"test-both-fusion-predicate", "HasBothFusion
"Test BothFusionPredicate",
[BothFusionPredicate]>;
-def TestFusion: SimpleFusion<"test-fusion", "HasTestFusion", "Test Fusion",
+def TestFusion: SimpleFusion<"test", "HasTestFusion", "Test Fusion",
CheckOpcode<[Inst0, Inst1]>,
CheckAll<[
CheckOpcode<[Inst1]>,
@@ -49,7 +49,7 @@ def TestFusion: SimpleFusion<"test-fusion", "HasTestFusion", "Test Fusion",
]>>;
let IsCommutable = 1 in
-def TestCommutableFusion: SimpleFusion<"test-commutable-fusion", "HasTestCommutableFusion",
+def TestCommutableFusion: SimpleFusion<"test-commutable", "HasTestCommutableFusion",
"Test Commutable Fusion",
CheckOpcode<[Inst0]>,
CheckAll<[
@@ -57,12 +57,12 @@ def TestCommutableFusion: SimpleFusion<"test-commutable-fusion", "HasTestCommuta
CheckRegOperand<0, X0>
]>>;
-def TestSingleFusion: SingleFusion<"test-single-fusion", "HasTestSingleFusion",
+def TestSingleFusion: SingleFusion<"test-single", "HasTestSingleFusion",
"Test SingleFusion",
Inst0, Inst2,
secondInstPred=CheckRegOperand<0, X0>>;
-def TestFirstSameRegFusion: Fusion<"test-first-same-reg-fusion", "HasTestFirstSameRegFusion",
+def TestFirstSameRegFusion: Fusion<"test-first-same-reg", "HasTestFirstSameRegFusion",
"Test FirstSameReg",
[FirstInstHasSameReg<0, 1>]> {
bit IsCommutable = 1;
@@ -265,11 +265,11 @@ def TestFirstSameRegFusion: Fusion<"test-first-same-reg-fusion", "HasTestFirstSa
// CHECK-PREDICATOR-NEXT: #endif // GET_Test_MACRO_FUSION_PRED_IMPL
// Check that we have generated target subfeature.
-// CHECK-SUBTARGET: { "test-both-fusion-predicate", "Test BothFusionPredicate", Test::TestBothFusionPredicate
-// CHECK-SUBTARGET: { "test-commutable-fusion", "Test Commutable Fusion", Test::TestCommutableFusion
-// CHECK-SUBTARGET: { "test-first-same-reg-fusion", "Test FirstSameReg", Test::TestFirstSameRegFusion
-// CHECK-SUBTARGET: { "test-fusion", "Test Fusion", Test::TestFusion
-// CHECK-SUBTARGET: { "test-single-fusion", "Test SingleFusion", Test::TestSingleFusion
+// CHECK-SUBTARGET: { "fusion-test", "Test Fusion", Test::TestFusion,
+// CHECK-SUBTARGET: { "fusion-test-both-fusion-predicate", "Test BothFusionPredicate", Test::TestBothFusionPredicate,
+// CHECK-SUBTARGET: { "fusion-test-commutable", "Test Commutable Fusion", Test::TestCommutableFusion,
+// CHECK-SUBTARGET: { "fusion-test-first-same-reg", "Test FirstSameReg", Test::TestFirstSameRegFusion,
+// CHECK-SUBTARGET: { "fusion-test-single", "Test SingleFusion", Test::TestSingleFusion,
// Check that we have generated `getMacroFusions()` function.
// CHECK-SUBTARGET: std::vector<MacroFusionPredTy> getMacroFusions() const final;
>From cb5bcb289758e290d8d755c896c02ec89a0844ae Mon Sep 17 00:00:00 2001
From: Sam Elliott <aelliott at qti.qualcomm.com>
Date: Fri, 6 Mar 2026 18:17:44 -0800
Subject: [PATCH 2/2] Fix tests/typos
---
llvm/lib/Target/RISCV/RISCVMacroFusion.td | 12 ++++++------
llvm/test/CodeGen/RISCV/features-info.ll | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Target/RISCV/RISCVMacroFusion.td b/llvm/lib/Target/RISCV/RISCVMacroFusion.td
index 73cdc6a492036..84064785f793e 100644
--- a/llvm/lib/Target/RISCV/RISCVMacroFusion.td
+++ b/llvm/lib/Target/RISCV/RISCVMacroFusion.td
@@ -161,7 +161,7 @@ def TuneSHXADDLoadFusion
// and/or/xor rd, rd, rs3
let IsCommutable = 1 in
def TuneFusionLogicRegReg
- : SimpleFusion<"fusion-logic-reg-reg", "HasFusionLogicRegReg",
+ : SimpleFusion<"logic-reg-reg", "HasFusionLogicRegReg",
"Enable AND/OR/XOR+AND/OR/XOR macrofusion",
CheckOpcode<LogicOp>,
CheckOpcode<LogicOp>>;
@@ -170,7 +170,7 @@ def TuneFusionLogicRegReg
// and/or/xor rd, rs1, rs2
// andi/ori/xori rd, rd, imm
def TuneFusionLogicRegImm
- : SimpleFusion<"fusion-logic-reg-imm", "HasFusionLogicRegImm",
+ : SimpleFusion<"logic-reg-imm", "HasFusionLogicRegImm",
"Enable AND/OR/XOR+ANDI/ORI/XORI macrofusion",
CheckOpcode<LogicOp>,
CheckOpcode<LogicImmOp>>;
@@ -180,7 +180,7 @@ def TuneFusionLogicRegImm
// and/or/xor rd, rd, rs2
let IsCommutable = 1 in
def TuneFusionLogicImmReg
- : SimpleFusion<"fusion-logic-imm-reg", "HasFusionLogicImmReg",
+ : SimpleFusion<"logic-imm-reg", "HasFusionLogicImmReg",
"Enable ANDI/ORI/XORI+AND/OR/XOR macrofusion",
CheckOpcode<LogicImmOp>,
CheckOpcode<LogicOp>>;
@@ -189,7 +189,7 @@ def TuneFusionLogicImmReg
// mul(w) rd, rs1, rs2
// add(w) rd, rd, rs3
def TuneFusionMulAdd
- : SimpleFusion<"fusion-mul-add", "HasFusionMulAdd",
+ : SimpleFusion<"mul-add", "HasFusionMulAdd",
"Enable MUL+ADD macrofusion",
CheckOpcode<[MUL, MULW]>,
CheckOpcode<[ADD, ADDW]>,
@@ -209,7 +209,7 @@ def TuneFusionMulAdd
// add rd, rs1, rs2
// load/store rt, 0(rd)
def TuneFusionAddMem
- : Fusion<"fusion-add-mem", "HasFusionAddMem",
+ : Fusion<"add-mem", "HasFusionAddMem",
"Enable ADD+LOAD/STORE macrofusion",
[
SecondFusionPredicateWithMCInstPredicate<
@@ -235,7 +235,7 @@ def TuneFusionAddMem
// srli(w)/srai(w) rd, rd, imm2
// where imm1 <= imm2
def TuneFusionShiftBitExtract
- : SimpleFusion<"fusion-shift-bit-extract", "HasFusionShiftBitExtract",
+ : SimpleFusion<"shift-bit-extract", "HasFusionShiftBitExtract",
"Enable SLLI+SRLI/SRAI macrofusion",
CheckOpcode<ShiftLeft>,
CheckOpcode<ShiftRight>,
diff --git a/llvm/test/CodeGen/RISCV/features-info.ll b/llvm/test/CodeGen/RISCV/features-info.ll
index b2aa51444a88b..c55283f6512e5 100644
--- a/llvm/test/CodeGen/RISCV/features-info.ll
+++ b/llvm/test/CodeGen/RISCV/features-info.ll
@@ -65,7 +65,6 @@
; CHECK-NEXT: log-vrgather - Has vrgather.vv with LMUL*log2(LMUL) latency
; CHECK-NEXT: m - 'M' (Integer Multiplication and Division).
; CHECK-NEXT: mips-p8700 - MIPS p8700 processor.
-; CHECK-NEXT: mipsexectl - 'XMIPSEXECTL' (MIPS execution control).
; CHECK-NEXT: no-default-unroll - Disable default unroll preference..
; CHECK-NEXT: no-sink-splat-operands - Disable sink splat operands to enable .vx, .vf,.wx, and .wf instructions.
; CHECK-NEXT: no-trailing-seq-cst-fence - Disable trailing fence for seq-cst store..
@@ -203,6 +202,7 @@
; CHECK-NEXT: xcvsimd - 'XCVsimd' (CORE-V SIMD ALU).
; CHECK-NEXT: xmipscbop - 'XMIPSCBOP' (MIPS Software Prefetch).
; CHECK-NEXT: xmipscmov - 'XMIPSCMov' (MIPS conditional move instruction (mips.ccmov)).
+; CHECK-NEXT: xmipsexectl - 'XMIPSEXECTL' (MIPS execution control).
; CHECK-NEXT: xmipslsp - 'XMIPSLSP' (MIPS optimization for hardware load-store bonding).
; CHECK-NEXT: xqccmp - 'Xqccmp' (Qualcomm 16-bit Push/Pop and Double Moves).
; CHECK-NEXT: xqci - 'Xqci' (Qualcomm uC Extension).
More information about the llvm-commits
mailing list