[LLVMbugs] [Bug 1701] New: lli vs JIT diffs on FCmp::ne with NaN operands

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Sep 25 09:12:32 PDT 2007


           Summary: lli vs JIT diffs on FCmp::ne with NaN operands
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: dgu at stanford.edu
                CC: llvmbugs at cs.uiuc.edu

Created an attachment (id=1141)
 --> (http://llvm.org/bugs/attachment.cgi?id=1141)
LL asm demonstrating the bug on ordered fcmp with doubles != operator

I am using the LLVM 2.0 release.

I am having a little trouble with the fcmp one instruction on doubles only.

For ordered comparisons, the LLVM manual states that true should be returned
iff neither operands is QNAN.  ( http://llvm.org/docs/LangRef.html#i_fcmp)

If I do fcmp one which includes one or both operands as a NaN, the result is
expected to be 0 then.

If I run the bitcode with lli (JIT off), no problem.  If I use the JIT (lli
--force-interpreted=true), then it returns 1.

(Converely, fcmp une with the JIT returns 0 instead of the expected 1 ...
without JIT it returns the expected 0).

The other operators (oeq, oge, ..., ueq, uge, ...) seem to work fine.

Is this a bug with the JIT or have I done to muck this up?  I've included
source below which illustrates the problem (with doubles on fcmp one only ...

Thanks for your help.

~ David

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list