https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92218
Bug ID: 92218 Summary: PowerPC indexed insn attribute misses some insns (bswap, atomic, small int float memory) Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Target Milestone: --- In working on the PowerPC 'future' processor, I was using the 'indexed' insn attribute to know when a certain insn used indexed addressing instead of offset addressing. However it fails in one crucial case. If the address is a single register (i.e. indirect addressing) and the insn form requires indexed addressing, the indexed_address_mem predicate function will fail. Off the top of my head, the places where this happens is: 1) Load/store of 8/16/32-bit integers to/from vector/FPR registers; 2) Byte swap to/from memory; or 3) Atomic memory operations. The simplest approach is to go into each of the problematical insns, and explicitly set 'indexed' to 'yes' for the alternatives that require indexed addressing.