This patch adds a new set of fpbuiltin intrinsics to represent operations that are equivalent to common math library functions and basic operations, and adds a new call site attribute ("fp-max-error") to specify the required accuracy of these calls.
The purpose of these new IR constructs is to support alternate math library implementations and provide a general mechanism for selecting among multiple implementations based on specific requirements.
This is a follow-up to discussions here: https://discourse.llvm.org/t/rfc-floating-point-accuracy-control/66018
Is there any way to enforce this? If the constrained intrinsics are merged in with the non-constrained then we lose the safe-by-default property.
The paragraph above would be stronger if it said "must not" instead of using the word "should".