[llvm] [llvm-exegesis] Add AArch64 operand initializers, SetRegTo (PR #169912)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 28 05:03:50 PST 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp b/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
index 99b583ed5..d2926c243 100644
--- a/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
@@ -88,36 +88,38 @@ loadFPCRImmediate(MCRegister Reg, unsigned RegBitWidth, const APInt &Value) {
}
// Generates instructions to load an immediate value into a pair of W registers
-static std::vector<MCInst>
-loadWSeqPairImmediate(MCRegister Reg, unsigned RegBitWidth, const APInt &Value) {
+static std::vector<MCInst> loadWSeqPairImmediate(MCRegister Reg,
+ unsigned RegBitWidth,
+ const APInt &Value) {
MCRegister EvenReg = (Reg - AArch64::W0_W1) * 2 + AArch64::W0 + 0;
MCRegister OddReg = (Reg - AArch64::W0_W1) * 2 + AArch64::W0 + 1;
assert(Value.getBitWidth() <= RegBitWidth &&
"Value must fit in the Register");
MCInst LoadEven = MCInstBuilder(getLoadImmediateOpcode(RegBitWidth))
- .addReg(EvenReg)
- .addImm(Value.getZExtValue());
+ .addReg(EvenReg)
+ .addImm(Value.getZExtValue());
MCInst LoadOdd = MCInstBuilder(getLoadImmediateOpcode(RegBitWidth))
- .addReg(OddReg)
- .addImm(Value.getZExtValue());
+ .addReg(OddReg)
+ .addImm(Value.getZExtValue());
return {LoadEven, LoadOdd};
}
// Generates instructions to load an immediate value into a pair of X registers
-static std::vector<MCInst>
-loadXSeqPairImmediate(MCRegister Reg, unsigned RegBitWidth, const APInt &Value) {
+static std::vector<MCInst> loadXSeqPairImmediate(MCRegister Reg,
+ unsigned RegBitWidth,
+ const APInt &Value) {
MCRegister EvenReg = (Reg - AArch64::X0_X1) * 2 + AArch64::X0 + 0;
MCRegister OddReg = (Reg - AArch64::X0_X1) * 2 + AArch64::X0 + 1;
assert(Value.getBitWidth() <= RegBitWidth &&
"Value must fit in the Register");
MCInst LoadEven = MCInstBuilder(getLoadImmediateOpcode(RegBitWidth))
- .addReg(EvenReg)
- .addImm(Value.getZExtValue());
+ .addReg(EvenReg)
+ .addImm(Value.getZExtValue());
MCInst LoadOdd = MCInstBuilder(getLoadImmediateOpcode(RegBitWidth))
- .addReg(OddReg)
- .addImm(Value.getZExtValue());
+ .addReg(OddReg)
+ .addImm(Value.getZExtValue());
return {LoadEven, LoadOdd};
}
@@ -233,9 +235,16 @@ loadNZCVImmediate(MCRegister Reg, unsigned RegBitWidth, const APInt &Value) {
MCInst MoveFromNZCV =
MCInstBuilder(AArch64::MRS).addReg(TempReg1).addImm(AArch64SysReg::NZCV);
- MCInst LoadMask = MCInstBuilder(AArch64::MOVi64imm).addReg(TempReg2).addImm(0xf0000000);
- MCInst BitClear = MCInstBuilder(AArch64::BICXrr).addReg(TempReg1).addReg(TempReg1).addReg(TempReg2);
- MCInst OrrMask = MCInstBuilder(AArch64::ORRXrr).addReg(TempReg1).addReg(TempReg1).addImm(Value.getZExtValue());
+ MCInst LoadMask =
+ MCInstBuilder(AArch64::MOVi64imm).addReg(TempReg2).addImm(0xf0000000);
+ MCInst BitClear = MCInstBuilder(AArch64::BICXrr)
+ .addReg(TempReg1)
+ .addReg(TempReg1)
+ .addReg(TempReg2);
+ MCInst OrrMask = MCInstBuilder(AArch64::ORRXrr)
+ .addReg(TempReg1)
+ .addReg(TempReg1)
+ .addImm(Value.getZExtValue());
MCInst MoveToNZCV =
MCInstBuilder(AArch64::MSR).addImm(AArch64SysReg::NZCV).addReg(TempReg1);
``````````
</details>
https://github.com/llvm/llvm-project/pull/169912
More information about the llvm-commits
mailing list