-
- Downloads
aarch64: Avoid bogus atomics match
The non-LSE pattern aarch64_atomic_exchange<mode> comes before the LSE pattern aarch64_atomic_exchange<mode>_lse. From a recog perspective, the only difference between the patterns is that the non-LSE one clobbers CC and needs a scratch. However, combine and RTL-SSA can both add clobbers to make a pattern match. This means that if they try to rerecognise an LSE pattern, they could end up turning it into a non-LSE pattern. This patch adds a !TARGET_LSE test to avoid that. This is needed to avoid a regression with later patches. gcc/ * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>): Require !TARGET_LSE.
Please register or sign in to comment