[llvm] [AArch64][GlobalISel] Add `G_FMODF` instruction (PR #160061)
Ryan Cowan via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 24 07:21:22 PDT 2025
================
@@ -3331,6 +3383,24 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC);
Observer.changedInstr(MI);
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},
----------------
HolyMolyCowMan wrote:
I don't think so, I attempted a few times but I get the following error:
```
Use of %2 does not have a corresponding definition on every path:
160r $h0 = COPY %2:fpr16
LLVM ERROR: Use not jointly dominated by defs.
```
https://github.com/llvm/llvm-project/pull/160061
More information about the llvm-commits
mailing list