https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114310
Andrew Pinski <pinskia at gcc dot gnu.org> 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 = 0 |fails on __int128_t with
| |newval = 0
Known to work| |8.2.0
Known to fail| |8.5.0
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
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<mode>"
(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