[LLVMdev] Trunc Load

Eli Friedman eli.friedman at gmail.com
Thu Oct 27 10:01:21 PDT 2011


On Thu, Oct 27, 2011 at 9:29 AM, Johannes Birgmeier
<e0902998 at student.tuwien.ac.at> wrote:
>
>> Hi Johannes, what processor are you targeting?  Is it little-endian or
>> big-endian?
> Little-endian. (The truth: you can set it manually, but it is set to
> little endian, for sure.) The processor is a TI TMS320C64x.
>
> Follow-up: I discovered that the "guilty" method is
> DAGCombiner::ReduceLoadWidth. The error is introduced because the offset
> is not calculated correctly.
>
> The first problem is that the pointer I get for loading does not point
> to the address of the low word, but to the address of the high word.

This is contradictory: on a little-endian processor, the address for
loading a 64-bit value is same as the address of the low word.  Are
you sure you're modeling the semantics of your lddw and stddw
instructions correctly?

-Eli




More information about the llvm-dev mailing list