[llvm] [AArch64][GlobalISel] Add `G_FMODF` intrinsic (PR #160061)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 22 03:13:36 PDT 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 h,cpp -- llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
``````````
: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/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
index 818fbc60b..c0e426c4a 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
@@ -300,10 +300,9 @@ private:
Type *OpType,
LostDebugLocObserver &LocObserver);
- LegalizeResult emitModfLibcall(MachineInstr &MI,
- MachineIRBuilder &MIRBuilder, unsigned Size,
- Type *OpType,
- LostDebugLocObserver &LocObserver);
+ LegalizeResult emitModfLibcall(MachineInstr &MI, MachineIRBuilder &MIRBuilder,
+ unsigned Size, Type *OpType,
+ LostDebugLocObserver &LocObserver);
public:
/// Return the alignment to use for a stack temporary object with the given
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h b/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
index 6f48c2afe..f1855efe1 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
@@ -2185,9 +2185,9 @@ public:
}
/// Build and insert \p Fract, \p Int = G_FMODF \p Src
- MachineInstrBuilder
- buildModf(const DstOp &Fract, const DstOp &Int, const SrcOp &Src,
- std::optional<unsigned> Flags = std::nullopt) {
+ MachineInstrBuilder buildModf(const DstOp &Fract, const DstOp &Int,
+ const SrcOp &Src,
+ std::optional<unsigned> Flags = std::nullopt) {
return buildInstr(TargetOpcode::G_FMODF, {Fract, Int}, {Src}, Flags);
}
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 17e7a0054..264fd7462 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -2365,8 +2365,8 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
case Intrinsic::modf: {
ArrayRef<Register> VRegs = getOrCreateVRegs(CI);
MIRBuilder.buildModf(VRegs[0], VRegs[1],
- getOrCreateVReg(*CI.getArgOperand(0)),
- MachineInstr::copyFlagsFromInstruction(CI));
+ getOrCreateVReg(*CI.getArgOperand(0)),
+ MachineInstr::copyFlagsFromInstruction(CI));
return true;
}
case Intrinsic::sincos: {
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 26f2b85bc..8ffb10cf1 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -704,9 +704,10 @@ LegalizerHelper::LegalizeResult LegalizerHelper::emitSincosLibcall(
return LegalizerHelper::Legalized;
}
-LegalizerHelper::LegalizeResult LegalizerHelper::emitModfLibcall(
- MachineInstr &MI, MachineIRBuilder &MIRBuilder, unsigned Size, Type *OpType,
- LostDebugLocObserver &LocObserver) {
+LegalizerHelper::LegalizeResult
+LegalizerHelper::emitModfLibcall(MachineInstr &MI, MachineIRBuilder &MIRBuilder,
+ unsigned Size, Type *OpType,
+ LostDebugLocObserver &LocObserver) {
MachineFunction &MF = *MI.getMF();
MachineRegisterInfo &MRI = MF.getRegInfo();
@@ -726,12 +727,10 @@ LegalizerHelper::LegalizeResult LegalizerHelper::emitModfLibcall(
.getReg(0);
auto &Ctx = MF.getFunction().getContext();
- auto LibcallResult =
- createLibcall(MIRBuilder, getRTLibDesc(MI.getOpcode(), Size),
- {DstFrac, OpType, 0},
- {{Src, OpType, 0},
- {StackPtrInt, PointerType::get(Ctx, AddrSpace), 1}},
- LocObserver, &MI);
+ auto LibcallResult = createLibcall(
+ MIRBuilder, getRTLibDesc(MI.getOpcode(), Size), {DstFrac, OpType, 0},
+ {{Src, OpType, 0}, {StackPtrInt, PointerType::get(Ctx, AddrSpace), 1}},
+ LocObserver, &MI);
if (LibcallResult != LegalizeResult::Legalized)
return LegalizerHelper::UnableToLegalize;
@@ -3386,16 +3385,17 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
return Legalized;
case TargetOpcode::G_FMODF: {
widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_FPEXT);
-
+
Register DstFrac = MI.getOperand(0).getReg();
Register DstInt = MI.getOperand(1).getReg();
Register DstFracWide = MRI.createGenericVirtualRegister(WideTy);
Register DstIntWide = MRI.createGenericVirtualRegister(WideTy);
Register SrcWide = MI.getOperand(2).getReg();
-
- MIRBuilder.buildInstr(TargetOpcode::G_FMODF, {DstFracWide, DstIntWide}, {SrcWide});
-
+
+ MIRBuilder.buildInstr(TargetOpcode::G_FMODF, {DstFracWide, DstIntWide},
+ {SrcWide});
+
MIRBuilder.buildFPTrunc(DstFrac, DstFracWide);
MIRBuilder.buildFPTrunc(DstInt, DstIntWide);
MI.eraseFromParent();
``````````
</details>
https://github.com/llvm/llvm-project/pull/160061
More information about the llvm-commits
mailing list