aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__algorithm
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2021-08-13 16:52:29 +0700
committerSerge Pavlov <sepavloff@gmail.com>2021-08-27 18:06:07 +0700
commitcdbe569fb6cd34e83b695485bfc5786d54b89017 (patch)
tree454adc5c91ab3734e427b4c653758318b0ba8ab2 /libcxx/include/__algorithm
parent199ac3a839d900a5274da019c0dca41aac61cf2c (diff)
downloadllvm-cdbe569fb6cd34e83b695485bfc5786d54b89017.zip
llvm-cdbe569fb6cd34e83b695485bfc5786d54b89017.tar.gz
llvm-cdbe569fb6cd34e83b695485bfc5786d54b89017.tar.bz2
[X86] Implement llvm.isnan(x86_fp80) as unordered comparison
x86_fp80 format allows values that do not fit any of IEEE-754 category. Previously they were recognized by intrinsic __builtin_isnan as NaNs. Now this intrinsic is implemented using instruction FXAM, which distinguish between NaNs and unsupported values. It can make some programs behave differently. As a solution, this fix changes lowering of the intrinsic. If floating point exceptions are ignored, llvm.isnan is lowered into unordered comparison, as __buildtin_isnan was implemented earlier. In strictfp functions the intrinsic is lowered using FXAM, which does not raise exceptions even for signaling NaN, as required by IEEE-754 and C standards. Differential Revision: https://reviews.llvm.org/D108037
Diffstat (limited to 'libcxx/include/__algorithm')
0 files changed, 0 insertions, 0 deletions