[llvm] [Hexagon] Have fast-math-libcalls.ll use the hexagonv65 cpu (PR #149647)

Sudharsan Veeravalli via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 20 07:54:38 PDT 2025


================

----------------
svs-quic wrote:

Yeah we have `F2_dfadd`, `F2_dfsub` added in `v66` and have an expansion for `DfMpy` that was added in `v67`.

Adding the relevant patterns from HexagonPatterns.td:

```
let Predicates = [HasV66] in {
  def: OpR_RR_pat<F2_dfadd,     pf2<fadd>,    f64, F64>;
  def: OpR_RR_pat<F2_dfsub,     pf2<fsub>,    f64, F64>;
}

def DfMpy: OutPatFrag<(ops node:$Rs, node:$Rt),
  (F2_dfmpyhh
    (F2_dfmpylh
      (F2_dfmpylh
        (F2_dfmpyll $Rs, $Rt),
      $Rs, $Rt),
    $Rt, $Rs),
  $Rs, $Rt)>;

let Predicates = [HasV67,UseUnsafeMath], AddedComplexity = 50 in {
  def: Pat<(fmul F64:$Rs, F64:$Rt), (DfMpy $Rs, $Rt)>;
}

let Predicates = [HasV67] in {
  ........

  def: Pat<(fmul F64:$Rs, F64:$Rt), (DfMpy (F2_dfmpyfix $Rs, $Rt),
                                           (F2_dfmpyfix $Rt, $Rs))>;
}
```

Maybe I'll add one RUN line with v68 and retain the one with hexagonv5? Are there any plans to remove these old versions from the upstream code?

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


More information about the llvm-commits mailing list