Add an extra safety check as suggested by Richard.
Tested on aarch64-none-linux-gnu.
gcc/ChangeLog:
* config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
Add mode size check to condition.
(*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Likewise.
[(match_operand:ALLX 1 "aarch64_sync_memory_operand" "Q")
(match_operand:SI 2 "const_int_operand")] ;; model
UNSPECV_LDAP)))]
- "TARGET_RCPC"
+ "TARGET_RCPC && (<GPI:sizen> > <ALLX:sizen>)"
"ldapr<ALLX:atomic_sfx>\t%<GPI:w>0, %1"
)
[(match_operand:ALLX 1 "aarch64_sync_memory_operand" "Q")
(match_operand:SI 2 "const_int_operand")] ;; model
UNSPECV_LDAP)))]
- "TARGET_RCPC"
+ "TARGET_RCPC && (<GPI:sizen> > <ALLX:sizen>)"
"ldaprs<ALLX:atomic_sfx>\t%<GPI:w>0, %1"
)