[llvm] [AArch64][GlobalISel] Legalize F64 to BF16 fptruncates (PR #196077)

Cullen Rhodes via llvm-commits llvm-commits at lists.llvm.org
Thu May 7 06:08:23 PDT 2026


================
@@ -2659,6 +2658,15 @@ bool AArch64LegalizerInfo::legalizeFptrunc(MachineInstr &MI,
                                            MachineIRBuilder &MIRBuilder,
                                            MachineRegisterInfo &MRI) const {
   auto [Dst, DstTy, Src, SrcTy] = MI.getFirst2RegLLTs();
+
+  if (DstTy.isBFloat16() && SrcTy.isFloat64()) {
+    auto Mid =
+        MIRBuilder.buildInstr(AArch64::G_FPTRUNC_ODD, {LLT::float32()}, {Src});
+    MIRBuilder.buildInstr(AArch64::G_FPTRUNC, {Dst}, {Mid}).getReg(0);
----------------
c-rhodes wrote:

`.getReg(0)` can be dropped
```suggestion
    MIRBuilder.buildInstr(AArch64::G_FPTRUNC, {Dst}, {Mid});
```

https://github.com/llvm/llvm-project/pull/196077


More information about the llvm-commits mailing list