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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits