https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94740
--- Comment #4 from Peter Bergner ---
Removing the bswap and recompiling, the non-bswap load pattern has no problem
accepting an address like that, so this looks like a target issue with that
pattern.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94740
--- Comment #3 from Peter Bergner ---
Here's a simpler test case that fails the same way:
int array[8];
int
foo (void)
{
return __builtin_bswap32 (array[1]);
}
So before CSE, we have:
(insn 5 2 6 2 (set (reg/f:DI 121)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94740
Peter Bergner changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever confirmed|0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94740
--- Comment #1 from acsawdey at gcc dot gnu.org ---
Reduced test case:
struct __attribute__((scalar_storage_order("big-endian"))) {
int a;
int b[];
} c;
int d;
int e() { d = c.b[0]; }