#7866: floor (0/0) :: Int is different with -O0 and -O1
------------------------------------------------+--------------------------
        Reporter:  alang9                       |            Owner:
            Type:  bug                          |           Status:  new
        Priority:  normal                       |        Milestone:
       Component:  Compiler                     |          Version:  7.6.2
      Resolution:                               |         Keywords:
Operating System:  Linux                        |     Architecture:  x86_64
 Type of failure:  Incorrect result at runtime  |  (amd64)
       Test Case:                               |       Difficulty:
        Blocking:                               |  Unknown
                                                |       Blocked By:
                                                |  Related Tickets:
------------------------------------------------+--------------------------
Changes (by bgamari):

 * difficulty:   => Unknown


Comment:

 This appears to be due to the (lack of) handling of NaN in
 `compiler/nativeGen/X86/CodeGen.hs:coerceFP2Int` which in the SSE case
 lowers to a plain `CVTTSD2TIQ` instruction. In the event that the source
 is NaN, this places the indeterminate integer value (which appears to be
 0x80000000) in the destination register. Oddly enough, your test produces
 instead a value of -0x8000000000000000.

 Regardless, assuming the produce is NaN handling, it's not entirely clear
 how this should be handled without performance loss. If the goal were
 perfect "correctness" (whatever this means in the fact of NaN values being
 cast to integers), we'd want to ensure we check for an indeterminate
 result and return the "appropriate" value (which judging from the -O0
 results is apparently 0). This seems like an excessive measure, however,
 punishing all users for what is likely a rare occurrence and one that
 should be handled explicitly anyways.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7866#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
ghc-tickets mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-tickets

Reply via email to