[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