@@ -6002,15 +6002,17 @@ define { i8, i1 } @cmpxchg_i8(ptr %ptr, i8 %desired, i8 %new) {
60026002; CHECK-NOLSE-O1-NEXT: b.ne LBB67_4
60036003; CHECK-NOLSE-O1-NEXT: ; %bb.2: ; %cmpxchg.trystore
60046004; CHECK-NOLSE-O1-NEXT: ; in Loop: Header=BB67_1 Depth=1
6005- ; CHECK-NOLSE-O1-NEXT: stxrb w9, w2, [x8]
6006- ; CHECK-NOLSE-O1-NEXT: cbnz w9, LBB67_1
6007- ; CHECK-NOLSE-O1-NEXT: ; %bb.3:
6008- ; CHECK-NOLSE-O1-NEXT: mov w1, #1 ; =0x1
6005+ ; CHECK-NOLSE-O1-NEXT: stxrb w10, w2, [x8]
6006+ ; CHECK-NOLSE-O1-NEXT: mov w9, #1 ; =0x1
6007+ ; CHECK-NOLSE-O1-NEXT: cbnz w10, LBB67_1
6008+ ; CHECK-NOLSE-O1-NEXT: ; %bb.3: ; %cmpxchg.end
6009+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
60096010; CHECK-NOLSE-O1-NEXT: ; kill: def $w0 killed $w0 killed $x0
60106011; CHECK-NOLSE-O1-NEXT: ret
60116012; CHECK-NOLSE-O1-NEXT: LBB67_4: ; %cmpxchg.nostore
6012- ; CHECK-NOLSE-O1-NEXT: mov w1 , wzr
6013+ ; CHECK-NOLSE-O1-NEXT: mov w9 , wzr
60136014; CHECK-NOLSE-O1-NEXT: clrex
6015+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
60146016; CHECK-NOLSE-O1-NEXT: ; kill: def $w0 killed $w0 killed $x0
60156017; CHECK-NOLSE-O1-NEXT: ret
60166018;
@@ -6108,15 +6110,17 @@ define { i16, i1 } @cmpxchg_i16(ptr %ptr, i16 %desired, i16 %new) {
61086110; CHECK-NOLSE-O1-NEXT: b.ne LBB68_4
61096111; CHECK-NOLSE-O1-NEXT: ; %bb.2: ; %cmpxchg.trystore
61106112; CHECK-NOLSE-O1-NEXT: ; in Loop: Header=BB68_1 Depth=1
6111- ; CHECK-NOLSE-O1-NEXT: stxrh w9, w2, [x8]
6112- ; CHECK-NOLSE-O1-NEXT: cbnz w9, LBB68_1
6113- ; CHECK-NOLSE-O1-NEXT: ; %bb.3:
6114- ; CHECK-NOLSE-O1-NEXT: mov w1, #1 ; =0x1
6113+ ; CHECK-NOLSE-O1-NEXT: stxrh w10, w2, [x8]
6114+ ; CHECK-NOLSE-O1-NEXT: mov w9, #1 ; =0x1
6115+ ; CHECK-NOLSE-O1-NEXT: cbnz w10, LBB68_1
6116+ ; CHECK-NOLSE-O1-NEXT: ; %bb.3: ; %cmpxchg.end
6117+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
61156118; CHECK-NOLSE-O1-NEXT: ; kill: def $w0 killed $w0 killed $x0
61166119; CHECK-NOLSE-O1-NEXT: ret
61176120; CHECK-NOLSE-O1-NEXT: LBB68_4: ; %cmpxchg.nostore
6118- ; CHECK-NOLSE-O1-NEXT: mov w1 , wzr
6121+ ; CHECK-NOLSE-O1-NEXT: mov w9 , wzr
61196122; CHECK-NOLSE-O1-NEXT: clrex
6123+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
61206124; CHECK-NOLSE-O1-NEXT: ; kill: def $w0 killed $w0 killed $x0
61216125; CHECK-NOLSE-O1-NEXT: ret
61226126;
@@ -6206,22 +6210,24 @@ define { i32, i1 } @cmpxchg_i32(ptr %ptr, i32 %desired, i32 %new) {
62066210; CHECK-NOLSE-O1-LABEL: cmpxchg_i32:
62076211; CHECK-NOLSE-O1: ; %bb.0:
62086212; CHECK-NOLSE-O1-NEXT: mov x8, x0
6213+ ; CHECK-NOLSE-O1-NEXT: mov w9, #1 ; =0x1
62096214; CHECK-NOLSE-O1-NEXT: LBB69_1: ; %cmpxchg.start
62106215; CHECK-NOLSE-O1-NEXT: ; =>This Inner Loop Header: Depth=1
62116216; CHECK-NOLSE-O1-NEXT: ldxr w0, [x8]
62126217; CHECK-NOLSE-O1-NEXT: cmp w0, w1
62136218; CHECK-NOLSE-O1-NEXT: b.ne LBB69_4
62146219; CHECK-NOLSE-O1-NEXT: ; %bb.2: ; %cmpxchg.trystore
62156220; CHECK-NOLSE-O1-NEXT: ; in Loop: Header=BB69_1 Depth=1
6216- ; CHECK-NOLSE-O1-NEXT: stxr w9 , w2, [x8]
6217- ; CHECK-NOLSE-O1-NEXT: cbnz w9 , LBB69_1
6218- ; CHECK-NOLSE-O1-NEXT: ; %bb.3:
6219- ; CHECK-NOLSE-O1-NEXT: mov w1, #1 ; =0x1
6221+ ; CHECK-NOLSE-O1-NEXT: stxr w10 , w2, [x8]
6222+ ; CHECK-NOLSE-O1-NEXT: cbnz w10 , LBB69_1
6223+ ; CHECK-NOLSE-O1-NEXT: ; %bb.3: ; %cmpxchg.end
6224+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
62206225; CHECK-NOLSE-O1-NEXT: ; kill: def $w0 killed $w0 killed $x0
62216226; CHECK-NOLSE-O1-NEXT: ret
62226227; CHECK-NOLSE-O1-NEXT: LBB69_4: ; %cmpxchg.nostore
6223- ; CHECK-NOLSE-O1-NEXT: mov w1 , wzr
6228+ ; CHECK-NOLSE-O1-NEXT: mov w9 , wzr
62246229; CHECK-NOLSE-O1-NEXT: clrex
6230+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
62256231; CHECK-NOLSE-O1-NEXT: ; kill: def $w0 killed $w0 killed $x0
62266232; CHECK-NOLSE-O1-NEXT: ret
62276233;
@@ -6306,21 +6312,23 @@ define { i64, i1 } @cmpxchg_i64(ptr %ptr, i64 %desired, i64 %new) {
63066312; CHECK-NOLSE-O1-LABEL: cmpxchg_i64:
63076313; CHECK-NOLSE-O1: ; %bb.0:
63086314; CHECK-NOLSE-O1-NEXT: mov x8, x0
6315+ ; CHECK-NOLSE-O1-NEXT: mov w9, #1 ; =0x1
63096316; CHECK-NOLSE-O1-NEXT: LBB70_1: ; %cmpxchg.start
63106317; CHECK-NOLSE-O1-NEXT: ; =>This Inner Loop Header: Depth=1
63116318; CHECK-NOLSE-O1-NEXT: ldxr x0, [x8]
63126319; CHECK-NOLSE-O1-NEXT: cmp x0, x1
63136320; CHECK-NOLSE-O1-NEXT: b.ne LBB70_4
63146321; CHECK-NOLSE-O1-NEXT: ; %bb.2: ; %cmpxchg.trystore
63156322; CHECK-NOLSE-O1-NEXT: ; in Loop: Header=BB70_1 Depth=1
6316- ; CHECK-NOLSE-O1-NEXT: stxr w9 , x2, [x8]
6317- ; CHECK-NOLSE-O1-NEXT: cbnz w9 , LBB70_1
6318- ; CHECK-NOLSE-O1-NEXT: ; %bb.3:
6319- ; CHECK-NOLSE-O1-NEXT: mov w1, #1 ; =0x1
6323+ ; CHECK-NOLSE-O1-NEXT: stxr w10 , x2, [x8]
6324+ ; CHECK-NOLSE-O1-NEXT: cbnz w10 , LBB70_1
6325+ ; CHECK-NOLSE-O1-NEXT: ; %bb.3: ; %cmpxchg.end
6326+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
63206327; CHECK-NOLSE-O1-NEXT: ret
63216328; CHECK-NOLSE-O1-NEXT: LBB70_4: ; %cmpxchg.nostore
6322- ; CHECK-NOLSE-O1-NEXT: mov w1 , wzr
6329+ ; CHECK-NOLSE-O1-NEXT: mov w9 , wzr
63236330; CHECK-NOLSE-O1-NEXT: clrex
6331+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
63246332; CHECK-NOLSE-O1-NEXT: ret
63256333;
63266334; CHECK-OUTLINE-O1-LABEL: cmpxchg_i64:
@@ -6404,21 +6412,23 @@ define { ptr, i1 } @cmpxchg_ptr(ptr %ptr, ptr %desired, ptr %new) {
64046412; CHECK-NOLSE-O1-LABEL: cmpxchg_ptr:
64056413; CHECK-NOLSE-O1: ; %bb.0:
64066414; CHECK-NOLSE-O1-NEXT: mov x8, x0
6415+ ; CHECK-NOLSE-O1-NEXT: mov w9, #1 ; =0x1
64076416; CHECK-NOLSE-O1-NEXT: LBB71_1: ; %cmpxchg.start
64086417; CHECK-NOLSE-O1-NEXT: ; =>This Inner Loop Header: Depth=1
64096418; CHECK-NOLSE-O1-NEXT: ldxr x0, [x8]
64106419; CHECK-NOLSE-O1-NEXT: cmp x0, x1
64116420; CHECK-NOLSE-O1-NEXT: b.ne LBB71_4
64126421; CHECK-NOLSE-O1-NEXT: ; %bb.2: ; %cmpxchg.trystore
64136422; CHECK-NOLSE-O1-NEXT: ; in Loop: Header=BB71_1 Depth=1
6414- ; CHECK-NOLSE-O1-NEXT: stxr w9 , x2, [x8]
6415- ; CHECK-NOLSE-O1-NEXT: cbnz w9 , LBB71_1
6416- ; CHECK-NOLSE-O1-NEXT: ; %bb.3:
6417- ; CHECK-NOLSE-O1-NEXT: mov w1, #1 ; =0x1
6423+ ; CHECK-NOLSE-O1-NEXT: stxr w10 , x2, [x8]
6424+ ; CHECK-NOLSE-O1-NEXT: cbnz w10 , LBB71_1
6425+ ; CHECK-NOLSE-O1-NEXT: ; %bb.3: ; %cmpxchg.end
6426+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
64186427; CHECK-NOLSE-O1-NEXT: ret
64196428; CHECK-NOLSE-O1-NEXT: LBB71_4: ; %cmpxchg.nostore
6420- ; CHECK-NOLSE-O1-NEXT: mov w1 , wzr
6429+ ; CHECK-NOLSE-O1-NEXT: mov w9 , wzr
64216430; CHECK-NOLSE-O1-NEXT: clrex
6431+ ; CHECK-NOLSE-O1-NEXT: mov w1, w9
64226432; CHECK-NOLSE-O1-NEXT: ret
64236433;
64246434; CHECK-OUTLINE-O1-LABEL: cmpxchg_ptr:
0 commit comments