
#12095: GHC and LLVM don't agree on what to do with byteSwap16# -------------------------------------+------------------------------------- Reporter: thoughtpolice | Owner: Type: bug | Status: new Priority: high | Milestone: 8.0.2 Component: Compiler (LLVM) | Version: 8.0.1 Resolution: | Keywords: codegen, llvm Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result | Unknown/Multiple at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): `byteSwap16#` is defined in `primops.txt.pp` as {{{ primop BSwap16Op "byteSwap16#" Monadic Word# -> Word# {Swap bytes in the lower 16 bits of a word. The higher bytes are undefined. } }}} So, I don't see the problem. Writing `W64# (byteSwap16# (...))` is wrong. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12095#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler