[llvm-dev] Endianness for multi-word types
Tim Northover via llvm-dev
llvm-dev at lists.llvm.org
Tue Dec 1 14:00:15 PST 2015
On 1 December 2015 at 13:41, Tim Shen via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> As a simple solution, when see a LLVM IR bitcast, instead of generating
> (ISD::BITCAST x), can we generate (exchange_hi_lo (ISD::BITCAST x)) instead?
An LLVM bitcast is defined to be equivalent to a store/load pair.
Changing that for ISD::BITCAST would be very surprising, and I
wouldn't recommend it. It's a very useful invariant for reasoning
about what should happen.
When we had to work around similar endian nightmares in ARM I think we
ended up creating AArch64ISD::NVCAST to represent a true nop cast.
More information about the llvm-dev