[clang] [llvm] [mlir] [IR] Make semantics of strictfp consistent v2 (PR #211769)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 4 05:19:15 PDT 2026
================
@@ -2800,7 +2800,8 @@ fn -> other_fn -> other_fn ; fn is norecurse
optimizations that require assumptions about the floating-point rounding
mode or that might alter the state of floating-point status flags that
might otherwise be set or cleared by calling this function. LLVM will
- not introduce any new floating-point instructions that may trap.
+ not introduce any new floating-point instructions that may trap. All
+ function definitions that contain strictfp calls must be marked strictfp.
----------------
artagnon wrote:
> If any FP operation in a function is constrained then they all must be constrained. This is required for correct LLVM IR.
I'm not 100% sure what this means: does it mean that a function that contains a constrained.fmuladd can never contain a sin or cos (for which there are no constrained variants)? The sin and cos would be marked strictfp in this case, as well as the function definition itself, if my understanding is correct, and they cannot be constant-folded, just like any constrained FP intrinsic. The issue could simply be that nobody got around to adding a constrained variant of the rest of the FP intrinsics?
https://github.com/llvm/llvm-project/pull/211769
More information about the llvm-commits
mailing list