https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96402
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:90b43856fdff7d96d93d22970eca8a86c56e0ddc commit r11-2520-g90b43856fdff7d96d93d22970eca8a86c56e0ddc Author: Jakub Jelinek <ja...@redhat.com> Date: Mon Aug 3 22:55:28 2020 +0200 aarch64: Fix up __aarch64_cas16_acq_rel fallback As mentioned in the PR, the fallback path when LSE is unavailable writes incorrect registers to the memory if the previous content compares equal to x0, x1 - it writes copy of x0, x1 from the start of function, but it should write x2, x3. 2020-08-03 Jakub Jelinek <ja...@redhat.com> PR target/96402 * config/aarch64/lse.S (__aarch64_cas16_acq_rel): Use x2, x3 instead of x(tmp0), x(tmp1) in STXP arguments. * gcc.target/aarch64/pr96402.c: New test.