[GHC] #13425: Semantically-equivalent expressions evaluating at different values with -O1
GHC
ghc-devs at haskell.org
Fri Mar 24 14:54:28 UTC 2017
#13425: Semantically-equivalent expressions evaluating at different values with -O1
-------------------------------------+-------------------------------------
Reporter: rbasso | Owner: (none)
Type: bug | Status: patch
Priority: normal | Milestone: 8.2.1
Component: Compiler | Version: 8.0.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Incorrect result | Unknown/Multiple
at runtime | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D3359
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Ben Gamari <ben@…>):
In [changeset:"caf94b062a0e37ffa7048e51447fc9486b658917/ghc"
caf94b06/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="caf94b062a0e37ffa7048e51447fc9486b658917"
x86 nativeGen: Fix test with mask in range [128,255] (#13425)
My commit bdb0c43c7 optimized the encoding of instructions to test
tag bits, but it did not always set exactly the same condition codes
since the testb instruction does a single-byte comparison, rather
than a full-word comparison.
It would be correct to optimize the expression `x .&. 128 > 0` to
the sequence
testb $128, %al
seta %al ; note: 'a' for unsigned comparison,
; not 'g' for signed comparison
but the pretty-printer is not the right place to make this kind of
context-sensitive optimization.
Test Plan: harbormaster
Reviewers: trofi, austin, bgamari, dfeuer
Reviewed By: trofi, dfeuer
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D3359
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13425#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list