
When you rewrite the transformation to work on the `==#` primop this should be the result that you get, but I don't think that you can get such
#9661: Branchless ==# is compiled to branchy code -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.9 Resolution: | Keywords: Operating System: | Architecture: Unknown/Multiple Unknown/Multiple | Difficulty: Unknown Type of failure: Runtime | Blocked By: performance bug | Related Tickets: Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:3 jstolarek]: transformation by just inlining definition of `(==)`. The problem is that calls to `tagToEnum#` are not currently optimized away in Core (#8317). I doubt this is going to make much of a difference in most cases, but we'll have to see (I can probably look into it tomorrow night). My overriding philosophy is that band-aids are bad, and band-aids that complicate other things are very bad. If `litEq` is currently serving primarily as a band-aid for #8317, I think we should rip it off and wait for a proper fix. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9661#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler