================
@@ -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

Reply via email to