sepavloff added a comment.
As mentioned in another review, using `fcmp` to represent `isnormal` in IR as
well as any other classification function would result in incorrect code in
strict mode. The source:
inline __attribute__((always_inline)) _Bool func(float x) {
return __builtin_isnormal(x);
}
_Bool check(float x) {
#pragma STDC FENV_ACCESS ON
return func(x);
}
in this case would produce code that uses FP comparisons to implement
`isnormal` (in the form of constrained intrinsics), this is incorrect. Using
correct representation is impossible in this case, as the information about
original check is already lost.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140294/new/
https://reviews.llvm.org/D140294
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits