Fold comparisons against a constant nan, and optimize ORD/UNORD
authorChris Lattner <sabre@nondot.org>
Sat, 29 Dec 2007 08:37:08 +0000 (08:37 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 29 Dec 2007 08:37:08 +0000 (08:37 +0000)
commit63079f0757785c5c461bafdd3101ee40aeb717fe
tree37d7b2cfa774bb40277cbba69dda31a00ea2d3bd
parent69bfbdfaeebf366b70a1aa3ba650685493da9e8c
Fold comparisons against a constant nan, and optimize ORD/UNORD
comparisons with a constant.  This allows us to compile isnan to:

_foo:
fcmpu cr7, f1, f1
mfcr r2
rlwinm r3, r2, 0, 31, 31
blr

instead of:

LCPI1_0: ;  float
.space 4
_foo:
lis r2, ha16(LCPI1_0)
lfs f0, lo16(LCPI1_0)(r2)
fcmpu cr7, f1, f0
mfcr r2
rlwinm r3, r2, 0, 31, 31
blr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45405 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/X86/README.txt
test/CodeGen/X86/isnan.ll [new file with mode: 0644]