[llvm] [LLVM][CodeGen][SVE] Use unpredicated instructions when there's no strictfp requirement. (PR #88166)
Paul Walker via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 10 09:08:50 PDT 2024
================
@@ -213,14 +213,31 @@ def AArch64fadd_p_contract : PatFrag<(ops node:$op1, node:$op2, node:$op3),
(AArch64fadd_p node:$op1, node:$op2, node:$op3), [{
return N->getFlags().hasAllowContract();
}]>;
+def AArch64fadd_p_nostrictfp : PatFrag<(ops node:$op1, node:$op2, node:$op3),
+ (AArch64fadd_p node:$op1, node:$op2, node:$op3), [{
+ // We're allowed to introduce new trapping behaviour.
+ return !MF->getFunction().getAttributes().hasFnAttr(llvm::Attribute::StrictFP);
+}]>;
def AArch64fadd_p_nsz : PatFrag<(ops node:$op1, node:$op2, node:$op3),
(AArch64fadd_p node:$op1, node:$op2, node:$op3), [{
return N->getFlags().hasNoSignedZeros();
}]>;
+
+def AArch64fmul_p_nostrictfp : PatFrag<(ops node:$op1, node:$op2, node:$op3),
+ (AArch64fmul_p node:$op1, node:$op2, node:$op3), [{
+ // We're allowed to introduce new trapping behaviour.
+ return !MF->getFunction().getAttributes().hasFnAttr(llvm::Attribute::StrictFP);
----------------
paulwalker-arm wrote:
OK, thanks for the feedback. I'll look into SVE support for the STRICT ISD nodes.
https://github.com/llvm/llvm-project/pull/88166
More information about the llvm-commits
mailing list