From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 0066F3858D20; Mon, 11 Mar 2024 18:01:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0066F3858D20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1710180087; bh=e6wHuKxhiIxyJsKhrz9kduku3tLRUrbEP0n8O9XlXuM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=VolPwQ+1JwTNbScQJ84ZrePfmRy9xwri/wERijREH0XKt3xPq832acCT2pj2WQo77 yCROzfTysu+lduHD/gbvFjfwBNoB+XkFdwuJ+Rqoim2mNqPbY+xZfZptmGj4M1u2b6 ysGFhG2M+AsDw/DFxu4m1lJ0XF9jIzPfxaQZQI2w= From: "pinskia at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/114310] [11/12/13/14 Regression] [aarch64] __sync_val_compare_and_swap fails on __int128_t with newval = 0 Date: Mon, 11 Mar 2024 18:01:26 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 8.5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: pinskia at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.5 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: target_milestone bug_status cf_reconfirmed_on everconfirmed short_desc cf_known_to_work cf_known_to_fail Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D114310 Andrew Pinski changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |11.5 Status|UNCONFIRMED |NEW Last reconfirmed| |2024-03-11 Ever confirmed|0 |1 Summary|[aarch64] |[11/12/13/14 Regression] |__sync_val_compare_and_swap |[aarch64] |fails on __int128_t with |__sync_val_compare_and_swap |newval =3D 0 |fails on __int128_t with | |newval =3D 0 Known to work| |8.2.0 Known to fail| |8.5.0 --- Comment #1 from Andrew Pinski --- Most likely: [apinski@xeond2 aarch64]$ git diff atomics.md diff --git a/gcc/config/aarch64/atomics.md b/gcc/config/aarch64/atomics.md index 32a0a723732..759e280468a 100644 --- a/gcc/config/aarch64/atomics.md +++ b/gcc/config/aarch64/atomics.md @@ -98,8 +98,8 @@ (define_insn_and_split "@aarch64_compare_and_swap" (match_operand:JUST_TI 1 "aarch64_sync_memory_operand" "+Q")) ;; memory (set (match_dup 1) (unspec_volatile:JUST_TI - [(match_operand:JUST_TI 2 "aarch64_reg_or_zero" "rZ") ;; expect - (match_operand:JUST_TI 3 "aarch64_reg_or_zero" "rZ") ;; desired + [(match_operand:JUST_TI 2 "aarch64_reg_or_zero" "r") ;; expect + (match_operand:JUST_TI 3 "aarch64_reg_or_zero" "r") ;; desired (match_operand:SI 4 "const_int_operand") ;; is_weak (match_operand:SI 5 "const_int_operand") ;; mod_s (match_operand:SI 6 "const_int_operand")] ;; mod_f=