[PATCH] D143765: [SVE] Add intrinsics for floating-point operations that explicitly undefine the result for inactive lanes.

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 10 10:27:20 PST 2023


paulwalker-arm added reviewers: kmclaughlin, david-arm, sdesmalen.
paulwalker-arm added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td:364
 def AArch64fmls_p : PatFrags<(ops node:$pg, node:$za, node:$zn, node:$zm),
-                             [(AArch64fma_p node:$pg, (AArch64fneg_mt node:$pg, node:$zn, (undef)), node:$zm, node:$za),
+                             [(int_aarch64_sve_fmls_u node:$pg, node:$za, node:$zn, node:$zm),
+                              (AArch64fma_p node:$pg, (AArch64fneg_mt node:$pg, node:$zn, (undef)), node:$zm, node:$za),
----------------
I contemplated lowering this and the following intrinsics to an idiom the PatFrags can already match but because there's no combines to optimise `AArch64fma_p` I figured I keep the operation as a single op and match the intrinsic directly.  When combines are in place seems like a better point to split the operations into their constituent parts.  That said, I'm happy to be told otherwise.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D143765/new/

https://reviews.llvm.org/D143765



More information about the llvm-commits mailing list