================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits