[llvm] [RISCV] Order the implicit defs on MC vset(i)vl(i) instructions the same as the pseudo version. (PR #129104)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 27 11:45:33 PST 2025
https://github.com/topperc updated https://github.com/llvm/llvm-project/pull/129104
>From ad1adb55fa2d5d96dc6f3107d66189569904e4da Mon Sep 17 00:00:00 2001
From: Craig Topper <craig.topper at sifive.com>
Date: Thu, 27 Feb 2025 11:16:47 -0800
Subject: [PATCH 1/2] [RISCV] Order the implicit defs on MC vset(i)vl(i)
instructions the same as the pseudo version.
This doesn't really matter, but its good to be consistent. There
is code that depends on the pseudo order so it was easier to change
the MC order.
---
llvm/lib/Target/RISCV/RISCVInstrFormatsV.td | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td b/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
index 6f27c98dd6183..3235b601d4774 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
@@ -68,7 +68,7 @@ class RVInstSetiVLi<dag outs, dag ins, string opcodestr, string argstr>
let Inst{11-7} = rd;
let Inst{6-0} = OPC_OP_V.Value;
- let Defs = [VTYPE, VL];
+ let Defs = [VL, VTYPE];
}
class RVInstSetVLi<dag outs, dag ins, string opcodestr, string argstr>
@@ -84,7 +84,7 @@ class RVInstSetVLi<dag outs, dag ins, string opcodestr, string argstr>
let Inst{11-7} = rd;
let Inst{6-0} = OPC_OP_V.Value;
- let Defs = [VTYPE, VL];
+ let Defs = [VL, VTYPE];
}
class RVInstSetVL<dag outs, dag ins, string opcodestr, string argstr>
@@ -101,7 +101,7 @@ class RVInstSetVL<dag outs, dag ins, string opcodestr, string argstr>
let Inst{11-7} = rd;
let Inst{6-0} = OPC_OP_V.Value;
- let Defs = [VTYPE, VL];
+ let Defs = [VL, VTYPE];
}
class RVInstVV<bits<6> funct6, RISCVVFormat opv, dag outs, dag ins,
>From 01175c249e266f704cc8a1f42d8c0f456bc37f99 Mon Sep 17 00:00:00 2001
From: Craig Topper <craig.topper at sifive.com>
Date: Thu, 27 Feb 2025 11:39:07 -0800
Subject: [PATCH 2/2] fixup! reorder implicit uses too.
---
llvm/lib/Target/RISCV/RISCVInstrFormatsV.td | 22 +++++++++----------
llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td | 4 ++--
llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td | 4 ++--
llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td | 2 +-
4 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td b/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
index 3235b601d4774..6ac6c5698ef27 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
@@ -120,7 +120,7 @@ class RVInstVV<bits<6> funct6, RISCVVFormat opv, dag outs, dag ins,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_OP_V.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -140,7 +140,7 @@ class RVInstVX<bits<6> funct6, RISCVVFormat opv, dag outs, dag ins,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_OP_V.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -159,7 +159,7 @@ class RVInstV2<bits<6> funct6, bits<5> vs2, RISCVVFormat opv, dag outs, dag ins,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_OP_V.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -179,7 +179,7 @@ class RVInstIVI<bits<6> funct6, dag outs, dag ins, string opcodestr,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_OP_V.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -198,7 +198,7 @@ class RVInstV<bits<6> funct6, bits<5> vs1, RISCVVFormat opv, dag outs,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_OP_V.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -220,7 +220,7 @@ class RVInstVLU<bits<3> nf, bit mew, RISCVLSUMOP lumop,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_LOAD_FP.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -242,7 +242,7 @@ class RVInstVLS<bits<3> nf, bit mew, bits<3> width,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_LOAD_FP.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -264,7 +264,7 @@ class RVInstVLX<bits<3> nf, bit mew, RISCVMOP mop, bits<3> width,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_LOAD_FP.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
@@ -286,7 +286,7 @@ class RVInstVSU<bits<3> nf, bit mew, RISCVLSUMOP sumop,
let Inst{11-7} = vs3;
let Inst{6-0} = OPC_STORE_FP.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
}
class RVInstVSS<bits<3> nf, bit mew, bits<3> width,
@@ -307,7 +307,7 @@ class RVInstVSS<bits<3> nf, bit mew, bits<3> width,
let Inst{11-7} = vs3;
let Inst{6-0} = OPC_STORE_FP.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
}
class RVInstVSX<bits<3> nf, bit mew, RISCVMOP mop, bits<3> width,
@@ -328,5 +328,5 @@ class RVInstVSX<bits<3> nf, bit mew, RISCVMOP mop, bits<3> width,
let Inst{11-7} = vs3;
let Inst{6-0} = OPC_STORE_FP.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
}
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
index dcc2e42ab96a8..78c4ed6f00412 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
@@ -26,7 +26,7 @@ class CustomRivosVXI<bits<6> funct6, RISCVVFormat opv, dag outs, dag ins,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_CUSTOM_2.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = NoConstraint;
let Constraints = "$vd = $vd_wb";
}
@@ -47,7 +47,7 @@ class CustomRivosXVI<bits<6> funct6, RISCVVFormat opv, dag outs, dag ins,
let Inst{11-7} = rd;
let Inst{6-0} = OPC_CUSTOM_2.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = NoConstraint;
}
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td b/llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
index 6c8ff2d163db2..7a79d438fb596 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
@@ -73,7 +73,7 @@ class RVInstVCCustom2<bits<4> funct6_hi4, bits<3> funct3, dag outs, dag ins,
let Inst{11-7} = rd;
let Inst{6-0} = OPC_CUSTOM_2.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = NoConstraint;
let ElementsDependOn = EltDepsVLMask;
}
@@ -97,7 +97,7 @@ class RVInstVCFCustom2<bits<4> funct6_hi4, bits<3> funct3, dag outs, dag ins,
let Inst{11-7} = rd;
let Inst{6-0} = OPC_CUSTOM_2.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = NoConstraint;
let ElementsDependOn = EltDepsVLMask;
}
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
index 470555769d493..fcbb2dbc76a37 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
@@ -46,7 +46,7 @@ class RVInstIVI_VROR<bits<6> funct6, dag outs, dag ins, string opcodestr,
let Inst{11-7} = vd;
let Inst{6-0} = OPC_OP_V.Value;
- let Uses = [VTYPE, VL];
+ let Uses = [VL, VTYPE];
let RVVConstraint = VMConstraint;
}
More information about the llvm-commits
mailing list