summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-06-11 05:33:49 +0000
committerChris Lattner <sabre@nondot.org>2004-06-11 05:33:49 +0000
commit1c2be0e5a9b2ec5e8035bdd72162a14db0d346d4 (patch)
tree76de335e5e38221f56ff28a59031206d19ccf37d /llvm/lib/Transforms
parent858cb55a5c98044ec5a7fbe3f02c5d7521d47c29 (diff)
downloadbcm5719-llvm-1c2be0e5a9b2ec5e8035bdd72162a14db0d346d4.tar.gz
bcm5719-llvm-1c2be0e5a9b2ec5e8035bdd72162a14db0d346d4.zip
By far, one of the most common uses of isnan is to make 'isunordered'
comparisons. In an 'isunordered' predicate, which looks like this at the LLVM level: %a = call bool %llvm.isnan(double %X) %b = call bool %llvm.isnan(double %Y) %COM = or bool %a, %b We used to generate this code: fxch %ST(1) fucomip %ST(0), %ST(0) setp %AL fucomip %ST(0), %ST(0) setp %AH or %AL, %AH With this patch, we generate this code: fucomip %ST(0), %ST(1) fstp %ST(0) setp %AL Which should make alkis happy. Tested as X86/compare_folding.llx:test1 llvm-svn: 14148
Diffstat (limited to 'llvm/lib/Transforms')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud