GHC does not generate great code for bit-level rotation
|Reported by:||bos||Owned by:|
|Type of failure:||None/Unknown||Test Case:|
|Related Tickets:||Differential Rev(s):|
I'm working on some hashing functions at the moment, and I notice that GHC generates an
or and a pair of shifts for a rotate. The LLVM back end is smart enough to recover the code's intent via strength reduction and emit a single
rot instruction, but the regular code generator emits three instructions.