[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