Fix emit_group_store regression on big-endian
commitc853d655ab27d288b9dcadb2920f7cd28dc1390d
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 12 Oct 2022 07:27:19 +0000 (12 09:27 +0200)
committerEric Botcazou <ebotcazou@adacore.com>
Thu, 13 Oct 2022 16:44:20 +0000 (13 18:44 +0200)
tree8152e697ec7d8b0bc12afd787af0482c36624880
parentfc748d47e95dd612f4a0ef408851df0293173fd8
Fix emit_group_store regression on big-endian

The recent optimization implemented for complex modes contains an oversight
for big-endian platforms: it uses a lowpart SUBREG when the integer modes
have different sizes, but this does not match the semantics of the PARALLELs
which have a bundled byte offset; this offset is always zero in the code
path and the lowpart is not at offset zero on big-endian platforms.

gcc/
* expr.cc (emit_group_stote): Fix handling of modes of different
sizes for big-endian targets in latest change and add commentary.
gcc/expr.cc