llvm-6502/lib/Target
Chris Lattner 01cdb1b367 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14148 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 05:33:49 +00:00
..
CBackend <alloca.h> on cygwin pulls in a ton of stuff (macros and function protos) 2004-06-02 23:10:26 +00:00
PowerPC Fix the fixed stack offset, patch contributed by Vladimir Prus 2004-06-10 06:19:25 +00:00
Sparc Adjust to new TM interfaces 2004-06-02 05:47:26 +00:00
SparcV8 Adjust to new TM interfaces 2004-06-02 05:47:26 +00:00
SparcV9 Turn loads of ConstantPointerNulls into loads of zero... don't spill 2004-06-11 02:03:48 +00:00
X86 By far, one of the most common uses of isnan is to make 'isunordered' 2004-06-11 05:33:49 +00:00
Makefile Remove ghostly directory from the build 2004-03-11 04:42:41 +00:00
MRegisterInfo.cpp Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
Target.td Expose the "Other" value type to tablegen targets 2004-02-11 03:08:45 +00:00
TargetData.cpp Fix typo. 2004-04-14 21:21:56 +00:00
TargetFrameInfo.cpp Move implementations of functions here, which avoids #including <cstdlib> in the 2004-03-11 23:52:43 +00:00
TargetInstrInfo.cpp Adjust to change in TII ctor arguments 2004-02-29 06:31:44 +00:00
TargetMachine.cpp Method has been inlined into all callers 2004-06-02 05:55:48 +00:00
TargetSchedInfo.cpp Adjust to new TM interface 2004-06-02 05:56:04 +00:00