https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65476

--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> When an array of Long_Floats is set to a scalar_storage_order of
> High_Order_First, only the two 32 bit words that make up the 64 bit value
> are swapped with each other but the bytes under those words are not swapped
> properly. Attached is a simple program that reproduces the behavior.

I'm actually seeing exactly the reverse effect: in Low_Order_First

power_of_two.4177:
        .long   0
        .long   1072693248
        .long   0
        .long   1073741824

and in High_Order_First:

power_of_two.4177:
        .long   0
        .long   61503
        .long   0
        .long   64

so correct byte-swapping but missing word-swapping.

Reply via email to