[llvm] ce5ef7d - [VE] Name instructions in test (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 23 03:02:40 PST 2022


Author: Nikita Popov
Date: 2022-12-23T11:43:01+01:00
New Revision: ce5ef7d1d5dc632a1ff35110821a44978e004e5f

URL: https://github.com/llvm/llvm-project/commit/ce5ef7d1d5dc632a1ff35110821a44978e004e5f
DIFF: https://github.com/llvm/llvm-project/commit/ce5ef7d1d5dc632a1ff35110821a44978e004e5f.diff

LOG: [VE] Name instructions in test (NFC)

Added: 
    

Modified: 
    llvm/test/CodeGen/VE/Scalar/atomic_cmp_swap.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/VE/Scalar/atomic_cmp_swap.ll b/llvm/test/CodeGen/VE/Scalar/atomic_cmp_swap.ll
index 17d2e49ef71e1..db000e1dcce08 100644
--- a/llvm/test/CodeGen/VE/Scalar/atomic_cmp_swap.ll
+++ b/llvm/test/CodeGen/VE/Scalar/atomic_cmp_swap.ll
@@ -78,9 +78,9 @@
 @gv_u128 = global %"struct.std::__1::atomic.45" zeroinitializer, align 16
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i1 @_Z26atomic_cmp_swap_relaxed_i1RNSt3__16atomicIbEERbb(%"struct.std::__1::atomic"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i1 zeroext %2) {
+define zeroext i1 @_Z26atomic_cmp_swap_relaxed_i1RNSt3__16atomicIbEERbb(%"struct.std::__1::atomic"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i1 zeroext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_relaxed_i1RNSt3__16atomicIbEERbb:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -97,33 +97,34 @@ define zeroext i1 @_Z26atomic_cmp_swap_relaxed_i1RNSt3__16atomicIbEERbb(%"struct
 ; CHECK-NEXT:    or %s3, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB0_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB0_2:
+; CHECK-NEXT:  .LBB0_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = zext i1 %2 to i8
-  %5 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %0, i64 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i8, i8* %1, align 1
-  %7 = cmpxchg weak i8* %5, i8 %6, i8 %4 monotonic monotonic
-  %8 = extractvalue { i8, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %3
-  %10 = extractvalue { i8, i1 } %7, 0
-  store i8 %10, i8* %1, align 1
-  br label %11
-
-11:                                               ; preds = %3, %9
-  ret i1 %8
+bb:
+  %i = zext i1 %arg2 to i8
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i8, i8* %arg1, align 1
+  %i5 = cmpxchg weak i8* %i3, i8 %i4, i8 %i monotonic monotonic, align 1
+  %i6 = extractvalue { i8, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i8, i1 } %i5, 0
+  store i8 %i8, i8* %arg1, align 1
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  ret i1 %i6
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i8 @_Z26atomic_cmp_swap_relaxed_i8RNSt3__16atomicIcEERcc(%"struct.std::__1::atomic.0"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i8 signext %2) {
+define signext i8 @_Z26atomic_cmp_swap_relaxed_i8RNSt3__16atomicIcEERcc(%"struct.std::__1::atomic.0"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i8 signext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_relaxed_i8RNSt3__16atomicIcEERcc:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -141,33 +142,34 @@ define signext i8 @_Z26atomic_cmp_swap_relaxed_i8RNSt3__16atomicIcEERcc(%"struct
 ; CHECK-NEXT:    or %s3, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB1_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB1_2:
+; CHECK-NEXT:  .LBB1_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i8, i8* %1, align 1
-  %6 = cmpxchg weak i8* %4, i8 %5, i8 %2 monotonic monotonic
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %1, align 1
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i8
-  ret i8 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i8, i8* %arg1, align 1
+  %i4 = cmpxchg weak i8* %i, i8 %i3, i8 %arg2 monotonic monotonic, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg1, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i8 @_Z26atomic_cmp_swap_relaxed_u8RNSt3__16atomicIhEERhh(%"struct.std::__1::atomic.5"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i8 zeroext %2) {
+define zeroext i8 @_Z26atomic_cmp_swap_relaxed_u8RNSt3__16atomicIhEERhh(%"struct.std::__1::atomic.5"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i8 zeroext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_relaxed_u8RNSt3__16atomicIhEERhh:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -184,33 +186,34 @@ define zeroext i8 @_Z26atomic_cmp_swap_relaxed_u8RNSt3__16atomicIhEERhh(%"struct
 ; CHECK-NEXT:    or %s3, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB2_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB2_2:
+; CHECK-NEXT:  .LBB2_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i8, i8* %1, align 1
-  %6 = cmpxchg weak i8* %4, i8 %5, i8 %2 monotonic monotonic
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %1, align 1
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i8
-  ret i8 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i8, i8* %arg1, align 1
+  %i4 = cmpxchg weak i8* %i, i8 %i3, i8 %arg2 monotonic monotonic, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg1, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i16 @_Z27atomic_cmp_swap_relaxed_i16RNSt3__16atomicIsEERss(%"struct.std::__1::atomic.10"* nocapture nonnull align 2 dereferenceable(2) %0, i16* nocapture nonnull align 2 dereferenceable(2) %1, i16 signext %2) {
+define signext i16 @_Z27atomic_cmp_swap_relaxed_i16RNSt3__16atomicIsEERss(%"struct.std::__1::atomic.10"* nocapture nonnull align 2 dereferenceable(2) %arg, i16* nocapture nonnull align 2 dereferenceable(2) %arg1, i16 signext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_relaxed_i16RNSt3__16atomicIsEERss:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld2b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -228,33 +231,34 @@ define signext i16 @_Z27atomic_cmp_swap_relaxed_i16RNSt3__16atomicIsEERss(%"stru
 ; CHECK-NEXT:    or %s3, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB3_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st2b %s0, (, %s1)
-; CHECK-NEXT:  .LBB3_2:
+; CHECK-NEXT:  .LBB3_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i16, i16* %1, align 2
-  %6 = cmpxchg weak i16* %4, i16 %5, i16 %2 monotonic monotonic
-  %7 = extractvalue { i16, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i16, i1 } %6, 0
-  store i16 %9, i16* %1, align 2
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i16
-  ret i16 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i16, i16* %arg1, align 2
+  %i4 = cmpxchg weak i16* %i, i16 %i3, i16 %arg2 monotonic monotonic, align 2
+  %i5 = extractvalue { i16, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i16, i1 } %i4, 0
+  store i16 %i7, i16* %arg1, align 2
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i16
+  ret i16 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i16 @_Z27atomic_cmp_swap_relaxed_u16RNSt3__16atomicItEERtt(%"struct.std::__1::atomic.15"* nocapture nonnull align 2 dereferenceable(2) %0, i16* nocapture nonnull align 2 dereferenceable(2) %1, i16 zeroext %2) {
+define zeroext i16 @_Z27atomic_cmp_swap_relaxed_u16RNSt3__16atomicItEERtt(%"struct.std::__1::atomic.15"* nocapture nonnull align 2 dereferenceable(2) %arg, i16* nocapture nonnull align 2 dereferenceable(2) %arg1, i16 zeroext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_relaxed_u16RNSt3__16atomicItEERtt:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld2b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -271,163 +275,168 @@ define zeroext i16 @_Z27atomic_cmp_swap_relaxed_u16RNSt3__16atomicItEERtt(%"stru
 ; CHECK-NEXT:    or %s3, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB4_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st2b %s0, (, %s1)
-; CHECK-NEXT:  .LBB4_2:
+; CHECK-NEXT:  .LBB4_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i16, i16* %1, align 2
-  %6 = cmpxchg weak i16* %4, i16 %5, i16 %2 monotonic monotonic
-  %7 = extractvalue { i16, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i16, i1 } %6, 0
-  store i16 %9, i16* %1, align 2
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i16
-  ret i16 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i16, i16* %arg1, align 2
+  %i4 = cmpxchg weak i16* %i, i16 %i3, i16 %arg2 monotonic monotonic, align 2
+  %i5 = extractvalue { i16, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i16, i1 } %i4, 0
+  store i16 %i7, i16* %arg1, align 2
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i16
+  ret i16 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i32 @_Z27atomic_cmp_swap_relaxed_i32RNSt3__16atomicIiEERii(%"struct.std::__1::atomic.20"* nocapture nonnull align 4 dereferenceable(4) %0, i32* nocapture nonnull align 4 dereferenceable(4) %1, i32 signext %2) {
+define signext i32 @_Z27atomic_cmp_swap_relaxed_i32RNSt3__16atomicIiEERii(%"struct.std::__1::atomic.20"* nocapture nonnull align 4 dereferenceable(4) %arg, i32* nocapture nonnull align 4 dereferenceable(4) %arg1, i32 signext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_relaxed_i32RNSt3__16atomicIiEERii:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s1)
 ; CHECK-NEXT:    cas.w %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.w.sx %s4, %s2, %s3
 ; CHECK-NEXT:    or %s0, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s3, .LBB5_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    stl %s2, (, %s1)
-; CHECK-NEXT:  .LBB5_2:
+; CHECK-NEXT:  .LBB5_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i32, i32* %1, align 4
-  %6 = cmpxchg weak i32* %4, i32 %5, i32 %2 monotonic monotonic
-  %7 = extractvalue { i32, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i32, i1 } %6, 0
-  store i32 %9, i32* %1, align 4
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i32
-  ret i32 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i32, i32* %arg1, align 4
+  %i4 = cmpxchg weak i32* %i, i32 %i3, i32 %arg2 monotonic monotonic, align 4
+  %i5 = extractvalue { i32, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i32, i1 } %i4, 0
+  store i32 %i7, i32* %arg1, align 4
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i32
+  ret i32 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i32 @_Z27atomic_cmp_swap_relaxed_u32RNSt3__16atomicIjEERjj(%"struct.std::__1::atomic.25"* nocapture nonnull align 4 dereferenceable(4) %0, i32* nocapture nonnull align 4 dereferenceable(4) %1, i32 zeroext %2) {
+define zeroext i32 @_Z27atomic_cmp_swap_relaxed_u32RNSt3__16atomicIjEERjj(%"struct.std::__1::atomic.25"* nocapture nonnull align 4 dereferenceable(4) %arg, i32* nocapture nonnull align 4 dereferenceable(4) %arg1, i32 zeroext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_relaxed_u32RNSt3__16atomicIjEERjj:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s1)
 ; CHECK-NEXT:    cas.w %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.w.sx %s4, %s2, %s3
 ; CHECK-NEXT:    or %s0, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s2, %s3, .LBB6_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    stl %s2, (, %s1)
-; CHECK-NEXT:  .LBB6_2:
+; CHECK-NEXT:  .LBB6_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i32, i32* %1, align 4
-  %6 = cmpxchg weak i32* %4, i32 %5, i32 %2 monotonic monotonic
-  %7 = extractvalue { i32, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i32, i1 } %6, 0
-  store i32 %9, i32* %1, align 4
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i32
-  ret i32 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i32, i32* %arg1, align 4
+  %i4 = cmpxchg weak i32* %i, i32 %i3, i32 %arg2 monotonic monotonic, align 4
+  %i5 = extractvalue { i32, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i32, i1 } %i4, 0
+  store i32 %i7, i32* %arg1, align 4
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i32
+  ret i32 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z27atomic_cmp_swap_relaxed_i64RNSt3__16atomicIlEERll(%"struct.std::__1::atomic.30"* nocapture nonnull align 8 dereferenceable(8) %0, i64* nocapture nonnull align 8 dereferenceable(8) %1, i64 %2) {
+define i64 @_Z27atomic_cmp_swap_relaxed_i64RNSt3__16atomicIlEERll(%"struct.std::__1::atomic.30"* nocapture nonnull align 8 dereferenceable(8) %arg, i64* nocapture nonnull align 8 dereferenceable(8) %arg1, i64 %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_relaxed_i64RNSt3__16atomicIlEERll:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s1)
 ; CHECK-NEXT:    cas.l %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.l %s4, %s2, %s3
 ; CHECK-NEXT:    or %s0, 0, (0)1
 ; CHECK-NEXT:    cmov.l.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    breq.l %s2, %s3, .LBB7_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st %s2, (, %s1)
-; CHECK-NEXT:  .LBB7_2:
+; CHECK-NEXT:  .LBB7_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i64, i64* %1, align 8
-  %6 = cmpxchg weak i64* %4, i64 %5, i64 %2 monotonic monotonic
-  %7 = extractvalue { i64, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i64, i1 } %6, 0
-  store i64 %9, i64* %1, align 8
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i64
-  ret i64 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i64, i64* %arg1, align 8
+  %i4 = cmpxchg weak i64* %i, i64 %i3, i64 %arg2 monotonic monotonic, align 8
+  %i5 = extractvalue { i64, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i64, i1 } %i4, 0
+  store i64 %i7, i64* %arg1, align 8
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i64
+  ret i64 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z27atomic_cmp_swap_relaxed_u64RNSt3__16atomicImEERmm(%"struct.std::__1::atomic.35"* nocapture nonnull align 8 dereferenceable(8) %0, i64* nocapture nonnull align 8 dereferenceable(8) %1, i64 %2) {
+define i64 @_Z27atomic_cmp_swap_relaxed_u64RNSt3__16atomicImEERmm(%"struct.std::__1::atomic.35"* nocapture nonnull align 8 dereferenceable(8) %arg, i64* nocapture nonnull align 8 dereferenceable(8) %arg1, i64 %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_relaxed_u64RNSt3__16atomicImEERmm:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s1)
 ; CHECK-NEXT:    cas.l %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.l %s4, %s2, %s3
 ; CHECK-NEXT:    or %s0, 0, (0)1
 ; CHECK-NEXT:    cmov.l.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    breq.l %s2, %s3, .LBB8_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st %s2, (, %s1)
-; CHECK-NEXT:  .LBB8_2:
+; CHECK-NEXT:  .LBB8_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i64, i64* %1, align 8
-  %6 = cmpxchg weak i64* %4, i64 %5, i64 %2 monotonic monotonic
-  %7 = extractvalue { i64, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i64, i1 } %6, 0
-  store i64 %9, i64* %1, align 8
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i64
-  ret i64 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i64, i64* %arg1, align 8
+  %i4 = cmpxchg weak i64* %i, i64 %i3, i64 %arg2 monotonic monotonic, align 8
+  %i5 = extractvalue { i64, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i64, i1 } %i4, 0
+  store i64 %i7, i64* %arg1, align 8
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i64
+  ret i64 %i9
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z28atomic_cmp_swap_relaxed_i128RNSt3__16atomicInEERnn(%"struct.std::__1::atomic.40"* nonnull align 16 dereferenceable(16) %0, i128* nonnull align 16 dereferenceable(16) %1, i128 %2) {
+define i128 @_Z28atomic_cmp_swap_relaxed_i128RNSt3__16atomicInEERnn(%"struct.std::__1::atomic.40"* nonnull align 16 dereferenceable(16) %arg, i128* nonnull align 16 dereferenceable(16) %arg1, i128 %arg2) {
 ; CHECK-LABEL: _Z28atomic_cmp_swap_relaxed_i128RNSt3__16atomicInEERnn:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB9_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -436,7 +445,7 @@ define i128 @_Z28atomic_cmp_swap_relaxed_i128RNSt3__16atomicInEERnn(%"struct.std
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB9_2:
+; CHECK-NEXT:  .LBB9_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s1
 ; CHECK-NEXT:    or %s1, 0, %s0
 ; CHECK-NEXT:    st %s3, 248(, %s11)
@@ -455,28 +464,29 @@ define i128 @_Z28atomic_cmp_swap_relaxed_i128RNSt3__16atomicInEERnn(%"struct.std
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = alloca i128, align 16
-  %5 = bitcast i128* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  store i128 %2, i128* %4, align 16, !tbaa !2
-  %6 = bitcast %"struct.std::__1::atomic.40"* %0 to i8*
-  %7 = bitcast i128* %1 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %6, i8* nonnull %7, i8* nonnull %5, i32 signext 0, i32 signext 0)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  %9 = zext i1 %8 to i128
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i3 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  store i128 %arg2, i128* %i, align 16, !tbaa !0
+  %i4 = bitcast %"struct.std::__1::atomic.40"* %arg to i8*
+  %i5 = bitcast i128* %arg1 to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i4, i8* nonnull %i5, i8* nonnull %i3, i32 signext 0, i32 signext 0)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  %i7 = zext i1 %i6 to i128
+  ret i128 %i7
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z28atomic_cmp_swap_relaxed_u128RNSt3__16atomicIoEERoo(%"struct.std::__1::atomic.45"* nonnull align 16 dereferenceable(16) %0, i128* nonnull align 16 dereferenceable(16) %1, i128 %2) {
+define i128 @_Z28atomic_cmp_swap_relaxed_u128RNSt3__16atomicIoEERoo(%"struct.std::__1::atomic.45"* nonnull align 16 dereferenceable(16) %arg, i128* nonnull align 16 dereferenceable(16) %arg1, i128 %arg2) {
 ; CHECK-LABEL: _Z28atomic_cmp_swap_relaxed_u128RNSt3__16atomicIoEERoo:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB10_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -485,7 +495,7 @@ define i128 @_Z28atomic_cmp_swap_relaxed_u128RNSt3__16atomicIoEERoo(%"struct.std
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB10_2:
+; CHECK-NEXT:  .LBB10_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s1
 ; CHECK-NEXT:    or %s1, 0, %s0
 ; CHECK-NEXT:    st %s3, 248(, %s11)
@@ -504,22 +514,23 @@ define i128 @_Z28atomic_cmp_swap_relaxed_u128RNSt3__16atomicIoEERoo(%"struct.std
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = alloca i128, align 16
-  %5 = bitcast i128* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  store i128 %2, i128* %4, align 16, !tbaa !2
-  %6 = bitcast %"struct.std::__1::atomic.45"* %0 to i8*
-  %7 = bitcast i128* %1 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %6, i8* nonnull %7, i8* nonnull %5, i32 signext 0, i32 signext 0)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  %9 = zext i1 %8 to i128
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i3 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  store i128 %arg2, i128* %i, align 16, !tbaa !0
+  %i4 = bitcast %"struct.std::__1::atomic.45"* %arg to i8*
+  %i5 = bitcast i128* %arg1 to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i4, i8* nonnull %i5, i8* nonnull %i3, i32 signext 0, i32 signext 0)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  %i7 = zext i1 %i6 to i128
+  ret i128 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i1 @_Z26atomic_cmp_swap_acquire_i1RNSt3__16atomicIbEERbb(%"struct.std::__1::atomic"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i1 zeroext %2) {
+define zeroext i1 @_Z26atomic_cmp_swap_acquire_i1RNSt3__16atomicIbEERbb(%"struct.std::__1::atomic"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i1 zeroext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_acquire_i1RNSt3__16atomicIbEERbb:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -537,33 +548,34 @@ define zeroext i1 @_Z26atomic_cmp_swap_acquire_i1RNSt3__16atomicIbEERbb(%"struct
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB11_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB11_2:
+; CHECK-NEXT:  .LBB11_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = zext i1 %2 to i8
-  %5 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %0, i64 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i8, i8* %1, align 1
-  %7 = cmpxchg weak i8* %5, i8 %6, i8 %4 acquire acquire
-  %8 = extractvalue { i8, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %3
-  %10 = extractvalue { i8, i1 } %7, 0
-  store i8 %10, i8* %1, align 1
-  br label %11
-
-11:                                               ; preds = %3, %9
-  ret i1 %8
+bb:
+  %i = zext i1 %arg2 to i8
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i8, i8* %arg1, align 1
+  %i5 = cmpxchg weak i8* %i3, i8 %i4, i8 %i acquire acquire, align 1
+  %i6 = extractvalue { i8, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i8, i1 } %i5, 0
+  store i8 %i8, i8* %arg1, align 1
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  ret i1 %i6
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i8 @_Z26atomic_cmp_swap_acquire_i8RNSt3__16atomicIcEERcc(%"struct.std::__1::atomic.0"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i8 signext %2) {
+define signext i8 @_Z26atomic_cmp_swap_acquire_i8RNSt3__16atomicIcEERcc(%"struct.std::__1::atomic.0"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i8 signext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_acquire_i8RNSt3__16atomicIcEERcc:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -582,33 +594,34 @@ define signext i8 @_Z26atomic_cmp_swap_acquire_i8RNSt3__16atomicIcEERcc(%"struct
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB12_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB12_2:
+; CHECK-NEXT:  .LBB12_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i8, i8* %1, align 1
-  %6 = cmpxchg weak i8* %4, i8 %5, i8 %2 acquire acquire
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %1, align 1
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i8
-  ret i8 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i8, i8* %arg1, align 1
+  %i4 = cmpxchg weak i8* %i, i8 %i3, i8 %arg2 acquire acquire, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg1, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i8 @_Z26atomic_cmp_swap_acquire_u8RNSt3__16atomicIhEERhh(%"struct.std::__1::atomic.5"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i8 zeroext %2) {
+define zeroext i8 @_Z26atomic_cmp_swap_acquire_u8RNSt3__16atomicIhEERhh(%"struct.std::__1::atomic.5"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i8 zeroext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_acquire_u8RNSt3__16atomicIhEERhh:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -626,33 +639,34 @@ define zeroext i8 @_Z26atomic_cmp_swap_acquire_u8RNSt3__16atomicIhEERhh(%"struct
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB13_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB13_2:
+; CHECK-NEXT:  .LBB13_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i8, i8* %1, align 1
-  %6 = cmpxchg weak i8* %4, i8 %5, i8 %2 acquire acquire
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %1, align 1
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i8
-  ret i8 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i8, i8* %arg1, align 1
+  %i4 = cmpxchg weak i8* %i, i8 %i3, i8 %arg2 acquire acquire, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg1, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i16 @_Z27atomic_cmp_swap_acquire_i16RNSt3__16atomicIsEERss(%"struct.std::__1::atomic.10"* nocapture nonnull align 2 dereferenceable(2) %0, i16* nocapture nonnull align 2 dereferenceable(2) %1, i16 signext %2) {
+define signext i16 @_Z27atomic_cmp_swap_acquire_i16RNSt3__16atomicIsEERss(%"struct.std::__1::atomic.10"* nocapture nonnull align 2 dereferenceable(2) %arg, i16* nocapture nonnull align 2 dereferenceable(2) %arg1, i16 signext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_acquire_i16RNSt3__16atomicIsEERss:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld2b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -671,33 +685,34 @@ define signext i16 @_Z27atomic_cmp_swap_acquire_i16RNSt3__16atomicIsEERss(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB14_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st2b %s0, (, %s1)
-; CHECK-NEXT:  .LBB14_2:
+; CHECK-NEXT:  .LBB14_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i16, i16* %1, align 2
-  %6 = cmpxchg weak i16* %4, i16 %5, i16 %2 acquire acquire
-  %7 = extractvalue { i16, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i16, i1 } %6, 0
-  store i16 %9, i16* %1, align 2
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i16
-  ret i16 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i16, i16* %arg1, align 2
+  %i4 = cmpxchg weak i16* %i, i16 %i3, i16 %arg2 acquire acquire, align 2
+  %i5 = extractvalue { i16, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i16, i1 } %i4, 0
+  store i16 %i7, i16* %arg1, align 2
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i16
+  ret i16 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i16 @_Z27atomic_cmp_swap_acquire_u16RNSt3__16atomicItEERtt(%"struct.std::__1::atomic.15"* nocapture nonnull align 2 dereferenceable(2) %0, i16* nocapture nonnull align 2 dereferenceable(2) %1, i16 zeroext %2) {
+define zeroext i16 @_Z27atomic_cmp_swap_acquire_u16RNSt3__16atomicItEERtt(%"struct.std::__1::atomic.15"* nocapture nonnull align 2 dereferenceable(2) %arg, i16* nocapture nonnull align 2 dereferenceable(2) %arg1, i16 zeroext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_acquire_u16RNSt3__16atomicItEERtt:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld2b.zx %s3, (, %s1)
 ; CHECK-NEXT:    and %s4, -4, %s0
 ; CHECK-NEXT:    and %s0, 3, %s0
@@ -715,33 +730,34 @@ define zeroext i16 @_Z27atomic_cmp_swap_acquire_u16RNSt3__16atomicItEERtt(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB15_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st2b %s0, (, %s1)
-; CHECK-NEXT:  .LBB15_2:
+; CHECK-NEXT:  .LBB15_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i16, i16* %1, align 2
-  %6 = cmpxchg weak i16* %4, i16 %5, i16 %2 acquire acquire
-  %7 = extractvalue { i16, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i16, i1 } %6, 0
-  store i16 %9, i16* %1, align 2
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i16
-  ret i16 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i16, i16* %arg1, align 2
+  %i4 = cmpxchg weak i16* %i, i16 %i3, i16 %arg2 acquire acquire, align 2
+  %i5 = extractvalue { i16, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i16, i1 } %i4, 0
+  store i16 %i7, i16* %arg1, align 2
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i16
+  ret i16 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i32 @_Z27atomic_cmp_swap_acquire_i32RNSt3__16atomicIiEERii(%"struct.std::__1::atomic.20"* nocapture nonnull align 4 dereferenceable(4) %0, i32* nocapture nonnull align 4 dereferenceable(4) %1, i32 signext %2) {
+define signext i32 @_Z27atomic_cmp_swap_acquire_i32RNSt3__16atomicIiEERii(%"struct.std::__1::atomic.20"* nocapture nonnull align 4 dereferenceable(4) %arg, i32* nocapture nonnull align 4 dereferenceable(4) %arg1, i32 signext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_acquire_i32RNSt3__16atomicIiEERii:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s1)
 ; CHECK-NEXT:    cas.w %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.w.sx %s4, %s2, %s3
@@ -749,31 +765,32 @@ define signext i32 @_Z27atomic_cmp_swap_acquire_i32RNSt3__16atomicIiEERii(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s3, .LBB16_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    stl %s2, (, %s1)
-; CHECK-NEXT:  .LBB16_2:
+; CHECK-NEXT:  .LBB16_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i32, i32* %1, align 4
-  %6 = cmpxchg weak i32* %4, i32 %5, i32 %2 acquire acquire
-  %7 = extractvalue { i32, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i32, i1 } %6, 0
-  store i32 %9, i32* %1, align 4
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i32
-  ret i32 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i32, i32* %arg1, align 4
+  %i4 = cmpxchg weak i32* %i, i32 %i3, i32 %arg2 acquire acquire, align 4
+  %i5 = extractvalue { i32, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i32, i1 } %i4, 0
+  store i32 %i7, i32* %arg1, align 4
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i32
+  ret i32 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i32 @_Z27atomic_cmp_swap_acquire_u32RNSt3__16atomicIjEERjj(%"struct.std::__1::atomic.25"* nocapture nonnull align 4 dereferenceable(4) %0, i32* nocapture nonnull align 4 dereferenceable(4) %1, i32 zeroext %2) {
+define zeroext i32 @_Z27atomic_cmp_swap_acquire_u32RNSt3__16atomicIjEERjj(%"struct.std::__1::atomic.25"* nocapture nonnull align 4 dereferenceable(4) %arg, i32* nocapture nonnull align 4 dereferenceable(4) %arg1, i32 zeroext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_acquire_u32RNSt3__16atomicIjEERjj:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s1)
 ; CHECK-NEXT:    cas.w %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.w.sx %s4, %s2, %s3
@@ -781,31 +798,32 @@ define zeroext i32 @_Z27atomic_cmp_swap_acquire_u32RNSt3__16atomicIjEERjj(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.w %s2, %s3, .LBB17_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    stl %s2, (, %s1)
-; CHECK-NEXT:  .LBB17_2:
+; CHECK-NEXT:  .LBB17_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i32, i32* %1, align 4
-  %6 = cmpxchg weak i32* %4, i32 %5, i32 %2 acquire acquire
-  %7 = extractvalue { i32, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i32, i1 } %6, 0
-  store i32 %9, i32* %1, align 4
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i32
-  ret i32 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i32, i32* %arg1, align 4
+  %i4 = cmpxchg weak i32* %i, i32 %i3, i32 %arg2 acquire acquire, align 4
+  %i5 = extractvalue { i32, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i32, i1 } %i4, 0
+  store i32 %i7, i32* %arg1, align 4
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i32
+  ret i32 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z27atomic_cmp_swap_acquire_i64RNSt3__16atomicIlEERll(%"struct.std::__1::atomic.30"* nocapture nonnull align 8 dereferenceable(8) %0, i64* nocapture nonnull align 8 dereferenceable(8) %1, i64 %2) {
+define i64 @_Z27atomic_cmp_swap_acquire_i64RNSt3__16atomicIlEERll(%"struct.std::__1::atomic.30"* nocapture nonnull align 8 dereferenceable(8) %arg, i64* nocapture nonnull align 8 dereferenceable(8) %arg1, i64 %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_acquire_i64RNSt3__16atomicIlEERll:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s1)
 ; CHECK-NEXT:    cas.l %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.l %s4, %s2, %s3
@@ -813,31 +831,32 @@ define i64 @_Z27atomic_cmp_swap_acquire_i64RNSt3__16atomicIlEERll(%"struct.std::
 ; CHECK-NEXT:    cmov.l.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.l %s2, %s3, .LBB18_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st %s2, (, %s1)
-; CHECK-NEXT:  .LBB18_2:
+; CHECK-NEXT:  .LBB18_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i64, i64* %1, align 8
-  %6 = cmpxchg weak i64* %4, i64 %5, i64 %2 acquire acquire
-  %7 = extractvalue { i64, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i64, i1 } %6, 0
-  store i64 %9, i64* %1, align 8
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i64
-  ret i64 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i64, i64* %arg1, align 8
+  %i4 = cmpxchg weak i64* %i, i64 %i3, i64 %arg2 acquire acquire, align 8
+  %i5 = extractvalue { i64, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i64, i1 } %i4, 0
+  store i64 %i7, i64* %arg1, align 8
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i64
+  ret i64 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z27atomic_cmp_swap_acquire_u64RNSt3__16atomicImEERmm(%"struct.std::__1::atomic.35"* nocapture nonnull align 8 dereferenceable(8) %0, i64* nocapture nonnull align 8 dereferenceable(8) %1, i64 %2) {
+define i64 @_Z27atomic_cmp_swap_acquire_u64RNSt3__16atomicImEERmm(%"struct.std::__1::atomic.35"* nocapture nonnull align 8 dereferenceable(8) %arg, i64* nocapture nonnull align 8 dereferenceable(8) %arg1, i64 %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_acquire_u64RNSt3__16atomicImEERmm:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s1)
 ; CHECK-NEXT:    cas.l %s2, (%s0), %s3
 ; CHECK-NEXT:    cmps.l %s4, %s2, %s3
@@ -845,37 +864,38 @@ define i64 @_Z27atomic_cmp_swap_acquire_u64RNSt3__16atomicImEERmm(%"struct.std::
 ; CHECK-NEXT:    cmov.l.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 2
 ; CHECK-NEXT:    breq.l %s2, %s3, .LBB19_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st %s2, (, %s1)
-; CHECK-NEXT:  .LBB19_2:
+; CHECK-NEXT:  .LBB19_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i64, i64* %1, align 8
-  %6 = cmpxchg weak i64* %4, i64 %5, i64 %2 acquire acquire
-  %7 = extractvalue { i64, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i64, i1 } %6, 0
-  store i64 %9, i64* %1, align 8
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i64
-  ret i64 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i64, i64* %arg1, align 8
+  %i4 = cmpxchg weak i64* %i, i64 %i3, i64 %arg2 acquire acquire, align 8
+  %i5 = extractvalue { i64, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i64, i1 } %i4, 0
+  store i64 %i7, i64* %arg1, align 8
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i64
+  ret i64 %i9
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z28atomic_cmp_swap_acquire_i128RNSt3__16atomicInEERnn(%"struct.std::__1::atomic.40"* nonnull align 16 dereferenceable(16) %0, i128* nonnull align 16 dereferenceable(16) %1, i128 %2) {
+define i128 @_Z28atomic_cmp_swap_acquire_i128RNSt3__16atomicInEERnn(%"struct.std::__1::atomic.40"* nonnull align 16 dereferenceable(16) %arg, i128* nonnull align 16 dereferenceable(16) %arg1, i128 %arg2) {
 ; CHECK-LABEL: _Z28atomic_cmp_swap_acquire_i128RNSt3__16atomicInEERnn:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB20_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -884,7 +904,7 @@ define i128 @_Z28atomic_cmp_swap_acquire_i128RNSt3__16atomicInEERnn(%"struct.std
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB20_2:
+; CHECK-NEXT:  .LBB20_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s1
 ; CHECK-NEXT:    or %s1, 0, %s0
 ; CHECK-NEXT:    st %s3, 248(, %s11)
@@ -903,28 +923,29 @@ define i128 @_Z28atomic_cmp_swap_acquire_i128RNSt3__16atomicInEERnn(%"struct.std
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = alloca i128, align 16
-  %5 = bitcast i128* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  store i128 %2, i128* %4, align 16, !tbaa !2
-  %6 = bitcast %"struct.std::__1::atomic.40"* %0 to i8*
-  %7 = bitcast i128* %1 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %6, i8* nonnull %7, i8* nonnull %5, i32 signext 2, i32 signext 2)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  %9 = zext i1 %8 to i128
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i3 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  store i128 %arg2, i128* %i, align 16, !tbaa !0
+  %i4 = bitcast %"struct.std::__1::atomic.40"* %arg to i8*
+  %i5 = bitcast i128* %arg1 to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i4, i8* nonnull %i5, i8* nonnull %i3, i32 signext 2, i32 signext 2)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  %i7 = zext i1 %i6 to i128
+  ret i128 %i7
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z28atomic_cmp_swap_acquire_u128RNSt3__16atomicIoEERoo(%"struct.std::__1::atomic.45"* nonnull align 16 dereferenceable(16) %0, i128* nonnull align 16 dereferenceable(16) %1, i128 %2) {
+define i128 @_Z28atomic_cmp_swap_acquire_u128RNSt3__16atomicIoEERoo(%"struct.std::__1::atomic.45"* nonnull align 16 dereferenceable(16) %arg, i128* nonnull align 16 dereferenceable(16) %arg1, i128 %arg2) {
 ; CHECK-LABEL: _Z28atomic_cmp_swap_acquire_u128RNSt3__16atomicIoEERoo:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB21_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -933,7 +954,7 @@ define i128 @_Z28atomic_cmp_swap_acquire_u128RNSt3__16atomicIoEERoo(%"struct.std
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB21_2:
+; CHECK-NEXT:  .LBB21_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s1
 ; CHECK-NEXT:    or %s1, 0, %s0
 ; CHECK-NEXT:    st %s3, 248(, %s11)
@@ -952,22 +973,23 @@ define i128 @_Z28atomic_cmp_swap_acquire_u128RNSt3__16atomicIoEERoo(%"struct.std
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = alloca i128, align 16
-  %5 = bitcast i128* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  store i128 %2, i128* %4, align 16, !tbaa !2
-  %6 = bitcast %"struct.std::__1::atomic.45"* %0 to i8*
-  %7 = bitcast i128* %1 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %6, i8* nonnull %7, i8* nonnull %5, i32 signext 2, i32 signext 2)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  %9 = zext i1 %8 to i128
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i3 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  store i128 %arg2, i128* %i, align 16, !tbaa !0
+  %i4 = bitcast %"struct.std::__1::atomic.45"* %arg to i8*
+  %i5 = bitcast i128* %arg1 to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i4, i8* nonnull %i5, i8* nonnull %i3, i32 signext 2, i32 signext 2)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  %i7 = zext i1 %i6 to i128
+  ret i128 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i1 @_Z26atomic_cmp_swap_seq_cst_i1RNSt3__16atomicIbEERbb(%"struct.std::__1::atomic"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i1 zeroext %2) {
+define zeroext i1 @_Z26atomic_cmp_swap_seq_cst_i1RNSt3__16atomicIbEERbb(%"struct.std::__1::atomic"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i1 zeroext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_seq_cst_i1RNSt3__16atomicIbEERbb:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    and %s4, -4, %s0
@@ -986,33 +1008,34 @@ define zeroext i1 @_Z26atomic_cmp_swap_seq_cst_i1RNSt3__16atomicIbEERbb(%"struct
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB22_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB22_2:
+; CHECK-NEXT:  .LBB22_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = zext i1 %2 to i8
-  %5 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %0, i64 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i8, i8* %1, align 1
-  %7 = cmpxchg weak i8* %5, i8 %6, i8 %4 seq_cst seq_cst
-  %8 = extractvalue { i8, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %3
-  %10 = extractvalue { i8, i1 } %7, 0
-  store i8 %10, i8* %1, align 1
-  br label %11
-
-11:                                               ; preds = %3, %9
-  ret i1 %8
+bb:
+  %i = zext i1 %arg2 to i8
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i8, i8* %arg1, align 1
+  %i5 = cmpxchg weak i8* %i3, i8 %i4, i8 %i seq_cst seq_cst, align 1
+  %i6 = extractvalue { i8, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i8, i1 } %i5, 0
+  store i8 %i8, i8* %arg1, align 1
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  ret i1 %i6
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i8 @_Z26atomic_cmp_swap_seq_cst_i8RNSt3__16atomicIcEERcc(%"struct.std::__1::atomic.0"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i8 signext %2) {
+define signext i8 @_Z26atomic_cmp_swap_seq_cst_i8RNSt3__16atomicIcEERcc(%"struct.std::__1::atomic.0"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i8 signext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_seq_cst_i8RNSt3__16atomicIcEERcc:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    and %s4, -4, %s0
@@ -1032,33 +1055,34 @@ define signext i8 @_Z26atomic_cmp_swap_seq_cst_i8RNSt3__16atomicIcEERcc(%"struct
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB23_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB23_2:
+; CHECK-NEXT:  .LBB23_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i8, i8* %1, align 1
-  %6 = cmpxchg weak i8* %4, i8 %5, i8 %2 seq_cst seq_cst
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %1, align 1
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i8
-  ret i8 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i8, i8* %arg1, align 1
+  %i4 = cmpxchg weak i8* %i, i8 %i3, i8 %arg2 seq_cst seq_cst, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg1, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i8 @_Z26atomic_cmp_swap_seq_cst_u8RNSt3__16atomicIhEERhh(%"struct.std::__1::atomic.5"* nocapture nonnull align 1 dereferenceable(1) %0, i8* nocapture nonnull align 1 dereferenceable(1) %1, i8 zeroext %2) {
+define zeroext i8 @_Z26atomic_cmp_swap_seq_cst_u8RNSt3__16atomicIhEERhh(%"struct.std::__1::atomic.5"* nocapture nonnull align 1 dereferenceable(1) %arg, i8* nocapture nonnull align 1 dereferenceable(1) %arg1, i8 zeroext %arg2) {
 ; CHECK-LABEL: _Z26atomic_cmp_swap_seq_cst_u8RNSt3__16atomicIhEERhh:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld1b.zx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    and %s4, -4, %s0
@@ -1077,33 +1101,34 @@ define zeroext i8 @_Z26atomic_cmp_swap_seq_cst_u8RNSt3__16atomicIhEERhh(%"struct
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB24_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st1b %s0, (, %s1)
-; CHECK-NEXT:  .LBB24_2:
+; CHECK-NEXT:  .LBB24_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i8, i8* %1, align 1
-  %6 = cmpxchg weak i8* %4, i8 %5, i8 %2 seq_cst seq_cst
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %1, align 1
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i8
-  ret i8 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i8, i8* %arg1, align 1
+  %i4 = cmpxchg weak i8* %i, i8 %i3, i8 %arg2 seq_cst seq_cst, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg1, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i16 @_Z27atomic_cmp_swap_seq_cst_i16RNSt3__16atomicIsEERss(%"struct.std::__1::atomic.10"* nocapture nonnull align 2 dereferenceable(2) %0, i16* nocapture nonnull align 2 dereferenceable(2) %1, i16 signext %2) {
+define signext i16 @_Z27atomic_cmp_swap_seq_cst_i16RNSt3__16atomicIsEERss(%"struct.std::__1::atomic.10"* nocapture nonnull align 2 dereferenceable(2) %arg, i16* nocapture nonnull align 2 dereferenceable(2) %arg1, i16 signext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_seq_cst_i16RNSt3__16atomicIsEERss:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld2b.zx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    and %s4, -4, %s0
@@ -1123,33 +1148,34 @@ define signext i16 @_Z27atomic_cmp_swap_seq_cst_i16RNSt3__16atomicIsEERss(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB25_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st2b %s0, (, %s1)
-; CHECK-NEXT:  .LBB25_2:
+; CHECK-NEXT:  .LBB25_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i16, i16* %1, align 2
-  %6 = cmpxchg weak i16* %4, i16 %5, i16 %2 seq_cst seq_cst
-  %7 = extractvalue { i16, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i16, i1 } %6, 0
-  store i16 %9, i16* %1, align 2
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i16
-  ret i16 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i16, i16* %arg1, align 2
+  %i4 = cmpxchg weak i16* %i, i16 %i3, i16 %arg2 seq_cst seq_cst, align 2
+  %i5 = extractvalue { i16, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i16, i1 } %i4, 0
+  store i16 %i7, i16* %arg1, align 2
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i16
+  ret i16 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i16 @_Z27atomic_cmp_swap_seq_cst_u16RNSt3__16atomicItEERtt(%"struct.std::__1::atomic.15"* nocapture nonnull align 2 dereferenceable(2) %0, i16* nocapture nonnull align 2 dereferenceable(2) %1, i16 zeroext %2) {
+define zeroext i16 @_Z27atomic_cmp_swap_seq_cst_u16RNSt3__16atomicItEERtt(%"struct.std::__1::atomic.15"* nocapture nonnull align 2 dereferenceable(2) %arg, i16* nocapture nonnull align 2 dereferenceable(2) %arg1, i16 zeroext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_seq_cst_u16RNSt3__16atomicItEERtt:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld2b.zx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    and %s4, -4, %s0
@@ -1168,33 +1194,34 @@ define zeroext i16 @_Z27atomic_cmp_swap_seq_cst_u16RNSt3__16atomicItEERtt(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s3, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s5, .LBB26_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    srl %s0, %s2, %s0
 ; CHECK-NEXT:    st2b %s0, (, %s1)
-; CHECK-NEXT:  .LBB26_2:
+; CHECK-NEXT:  .LBB26_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s3, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i16, i16* %1, align 2
-  %6 = cmpxchg weak i16* %4, i16 %5, i16 %2 seq_cst seq_cst
-  %7 = extractvalue { i16, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i16, i1 } %6, 0
-  store i16 %9, i16* %1, align 2
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i16
-  ret i16 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i16, i16* %arg1, align 2
+  %i4 = cmpxchg weak i16* %i, i16 %i3, i16 %arg2 seq_cst seq_cst, align 2
+  %i5 = extractvalue { i16, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i16, i1 } %i4, 0
+  store i16 %i7, i16* %arg1, align 2
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i16
+  ret i16 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i32 @_Z27atomic_cmp_swap_seq_cst_i32RNSt3__16atomicIiEERii(%"struct.std::__1::atomic.20"* nocapture nonnull align 4 dereferenceable(4) %0, i32* nocapture nonnull align 4 dereferenceable(4) %1, i32 signext %2) {
+define signext i32 @_Z27atomic_cmp_swap_seq_cst_i32RNSt3__16atomicIiEERii(%"struct.std::__1::atomic.20"* nocapture nonnull align 4 dereferenceable(4) %arg, i32* nocapture nonnull align 4 dereferenceable(4) %arg1, i32 signext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_seq_cst_i32RNSt3__16atomicIiEERii:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    cas.w %s2, (%s0), %s3
@@ -1203,31 +1230,32 @@ define signext i32 @_Z27atomic_cmp_swap_seq_cst_i32RNSt3__16atomicIiEERii(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s3, .LBB27_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    stl %s2, (, %s1)
-; CHECK-NEXT:  .LBB27_2:
+; CHECK-NEXT:  .LBB27_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i32, i32* %1, align 4
-  %6 = cmpxchg weak i32* %4, i32 %5, i32 %2 seq_cst seq_cst
-  %7 = extractvalue { i32, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i32, i1 } %6, 0
-  store i32 %9, i32* %1, align 4
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i32
-  ret i32 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i32, i32* %arg1, align 4
+  %i4 = cmpxchg weak i32* %i, i32 %i3, i32 %arg2 seq_cst seq_cst, align 4
+  %i5 = extractvalue { i32, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i32, i1 } %i4, 0
+  store i32 %i7, i32* %arg1, align 4
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i32
+  ret i32 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i32 @_Z27atomic_cmp_swap_seq_cst_u32RNSt3__16atomicIjEERjj(%"struct.std::__1::atomic.25"* nocapture nonnull align 4 dereferenceable(4) %0, i32* nocapture nonnull align 4 dereferenceable(4) %1, i32 zeroext %2) {
+define zeroext i32 @_Z27atomic_cmp_swap_seq_cst_u32RNSt3__16atomicIjEERjj(%"struct.std::__1::atomic.25"* nocapture nonnull align 4 dereferenceable(4) %arg, i32* nocapture nonnull align 4 dereferenceable(4) %arg1, i32 zeroext %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_seq_cst_u32RNSt3__16atomicIjEERjj:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    cas.w %s2, (%s0), %s3
@@ -1236,31 +1264,32 @@ define zeroext i32 @_Z27atomic_cmp_swap_seq_cst_u32RNSt3__16atomicIjEERjj(%"stru
 ; CHECK-NEXT:    cmov.w.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.w %s2, %s3, .LBB28_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    stl %s2, (, %s1)
-; CHECK-NEXT:  .LBB28_2:
+; CHECK-NEXT:  .LBB28_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i32, i32* %1, align 4
-  %6 = cmpxchg weak i32* %4, i32 %5, i32 %2 seq_cst seq_cst
-  %7 = extractvalue { i32, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i32, i1 } %6, 0
-  store i32 %9, i32* %1, align 4
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i32
-  ret i32 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i32, i32* %arg1, align 4
+  %i4 = cmpxchg weak i32* %i, i32 %i3, i32 %arg2 seq_cst seq_cst, align 4
+  %i5 = extractvalue { i32, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i32, i1 } %i4, 0
+  store i32 %i7, i32* %arg1, align 4
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i32
+  ret i32 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z27atomic_cmp_swap_seq_cst_i64RNSt3__16atomicIlEERll(%"struct.std::__1::atomic.30"* nocapture nonnull align 8 dereferenceable(8) %0, i64* nocapture nonnull align 8 dereferenceable(8) %1, i64 %2) {
+define i64 @_Z27atomic_cmp_swap_seq_cst_i64RNSt3__16atomicIlEERll(%"struct.std::__1::atomic.30"* nocapture nonnull align 8 dereferenceable(8) %arg, i64* nocapture nonnull align 8 dereferenceable(8) %arg1, i64 %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_seq_cst_i64RNSt3__16atomicIlEERll:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    cas.l %s2, (%s0), %s3
@@ -1269,31 +1298,32 @@ define i64 @_Z27atomic_cmp_swap_seq_cst_i64RNSt3__16atomicIlEERll(%"struct.std::
 ; CHECK-NEXT:    cmov.l.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.l %s2, %s3, .LBB29_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st %s2, (, %s1)
-; CHECK-NEXT:  .LBB29_2:
+; CHECK-NEXT:  .LBB29_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i64, i64* %1, align 8
-  %6 = cmpxchg weak i64* %4, i64 %5, i64 %2 seq_cst seq_cst
-  %7 = extractvalue { i64, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i64, i1 } %6, 0
-  store i64 %9, i64* %1, align 8
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i64
-  ret i64 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i64, i64* %arg1, align 8
+  %i4 = cmpxchg weak i64* %i, i64 %i3, i64 %arg2 seq_cst seq_cst, align 8
+  %i5 = extractvalue { i64, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i64, i1 } %i4, 0
+  store i64 %i7, i64* %arg1, align 8
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i64
+  ret i64 %i9
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z27atomic_cmp_swap_seq_cst_u64RNSt3__16atomicImEERmm(%"struct.std::__1::atomic.35"* nocapture nonnull align 8 dereferenceable(8) %0, i64* nocapture nonnull align 8 dereferenceable(8) %1, i64 %2) {
+define i64 @_Z27atomic_cmp_swap_seq_cst_u64RNSt3__16atomicImEERmm(%"struct.std::__1::atomic.35"* nocapture nonnull align 8 dereferenceable(8) %arg, i64* nocapture nonnull align 8 dereferenceable(8) %arg1, i64 %arg2) {
 ; CHECK-LABEL: _Z27atomic_cmp_swap_seq_cst_u64RNSt3__16atomicImEERmm:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s1)
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    cas.l %s2, (%s0), %s3
@@ -1302,37 +1332,38 @@ define i64 @_Z27atomic_cmp_swap_seq_cst_u64RNSt3__16atomicImEERmm(%"struct.std::
 ; CHECK-NEXT:    cmov.l.eq %s0, (63)0, %s4
 ; CHECK-NEXT:    fencem 3
 ; CHECK-NEXT:    breq.l %s2, %s3, .LBB30_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st %s2, (, %s1)
-; CHECK-NEXT:  .LBB30_2:
+; CHECK-NEXT:  .LBB30_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %0, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %5 = load i64, i64* %1, align 8
-  %6 = cmpxchg weak i64* %4, i64 %5, i64 %2 seq_cst seq_cst
-  %7 = extractvalue { i64, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %3
-  %9 = extractvalue { i64, i1 } %6, 0
-  store i64 %9, i64* %1, align 8
-  br label %10
-
-10:                                               ; preds = %3, %8
-  %11 = zext i1 %7 to i64
-  ret i64 %11
+bb:
+  %i = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %arg, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i3 = load i64, i64* %arg1, align 8
+  %i4 = cmpxchg weak i64* %i, i64 %i3, i64 %arg2 seq_cst seq_cst, align 8
+  %i5 = extractvalue { i64, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i64, i1 } %i4, 0
+  store i64 %i7, i64* %arg1, align 8
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i64
+  ret i64 %i9
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z28atomic_cmp_swap_seq_cst_i128RNSt3__16atomicInEERnn(%"struct.std::__1::atomic.40"* nonnull align 16 dereferenceable(16) %0, i128* nonnull align 16 dereferenceable(16) %1, i128 %2) {
+define i128 @_Z28atomic_cmp_swap_seq_cst_i128RNSt3__16atomicInEERnn(%"struct.std::__1::atomic.40"* nonnull align 16 dereferenceable(16) %arg, i128* nonnull align 16 dereferenceable(16) %arg1, i128 %arg2) {
 ; CHECK-LABEL: _Z28atomic_cmp_swap_seq_cst_i128RNSt3__16atomicInEERnn:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB31_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1341,7 +1372,7 @@ define i128 @_Z28atomic_cmp_swap_seq_cst_i128RNSt3__16atomicInEERnn(%"struct.std
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB31_2:
+; CHECK-NEXT:  .LBB31_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s1
 ; CHECK-NEXT:    or %s1, 0, %s0
 ; CHECK-NEXT:    st %s3, 248(, %s11)
@@ -1360,28 +1391,29 @@ define i128 @_Z28atomic_cmp_swap_seq_cst_i128RNSt3__16atomicInEERnn(%"struct.std
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = alloca i128, align 16
-  %5 = bitcast i128* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  store i128 %2, i128* %4, align 16, !tbaa !2
-  %6 = bitcast %"struct.std::__1::atomic.40"* %0 to i8*
-  %7 = bitcast i128* %1 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %6, i8* nonnull %7, i8* nonnull %5, i32 signext 5, i32 signext 5)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  %9 = zext i1 %8 to i128
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i3 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  store i128 %arg2, i128* %i, align 16, !tbaa !0
+  %i4 = bitcast %"struct.std::__1::atomic.40"* %arg to i8*
+  %i5 = bitcast i128* %arg1 to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i4, i8* nonnull %i5, i8* nonnull %i3, i32 signext 5, i32 signext 5)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  %i7 = zext i1 %i6 to i128
+  ret i128 %i7
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z28atomic_cmp_swap_seq_cst_u128RNSt3__16atomicIoEERoo(%"struct.std::__1::atomic.45"* nonnull align 16 dereferenceable(16) %0, i128* nonnull align 16 dereferenceable(16) %1, i128 %2) {
+define i128 @_Z28atomic_cmp_swap_seq_cst_u128RNSt3__16atomicIoEERoo(%"struct.std::__1::atomic.45"* nonnull align 16 dereferenceable(16) %arg, i128* nonnull align 16 dereferenceable(16) %arg1, i128 %arg2) {
 ; CHECK-LABEL: _Z28atomic_cmp_swap_seq_cst_u128RNSt3__16atomicIoEERoo:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB32_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1390,7 +1422,7 @@ define i128 @_Z28atomic_cmp_swap_seq_cst_u128RNSt3__16atomicIoEERoo(%"struct.std
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB32_2:
+; CHECK-NEXT:  .LBB32_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s1
 ; CHECK-NEXT:    or %s1, 0, %s0
 ; CHECK-NEXT:    st %s3, 248(, %s11)
@@ -1409,25 +1441,26 @@ define i128 @_Z28atomic_cmp_swap_seq_cst_u128RNSt3__16atomicIoEERoo(%"struct.std
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %4 = alloca i128, align 16
-  %5 = bitcast i128* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  store i128 %2, i128* %4, align 16, !tbaa !2
-  %6 = bitcast %"struct.std::__1::atomic.45"* %0 to i8*
-  %7 = bitcast i128* %1 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %6, i8* nonnull %7, i8* nonnull %5, i32 signext 5, i32 signext 5)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  %9 = zext i1 %8 to i128
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i3 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  store i128 %arg2, i128* %i, align 16, !tbaa !0
+  %i4 = bitcast %"struct.std::__1::atomic.45"* %arg to i8*
+  %i5 = bitcast i128* %arg1 to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i4, i8* nonnull %i5, i8* nonnull %i3, i32 signext 5, i32 signext 5)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  %i7 = zext i1 %i6 to i128
+  ret i128 %i7
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define zeroext i1 @_Z30atomic_cmp_swap_relaxed_stk_i1Rbb(i8* nocapture nonnull align 1 dereferenceable(1) %0, i1 zeroext %1) {
+define zeroext i1 @_Z30atomic_cmp_swap_relaxed_stk_i1Rbb(i8* nocapture nonnull align 1 dereferenceable(1) %arg, i1 zeroext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_stk_i1Rbb:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB33_4
-; CHECK-NEXT:  # %bb.3: # %partword.cmpxchg.loop
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1436,7 +1469,7 @@ define zeroext i1 @_Z30atomic_cmp_swap_relaxed_stk_i1Rbb(i8* nocapture nonnull a
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB33_4: # %partword.cmpxchg.loop
+; CHECK-NEXT:  .LBB33_4: # %bb
 ; CHECK-NEXT:    ld1b.zx %s2, (, %s0)
 ; CHECK-NEXT:    ldl.zx %s3, 8(, %s11)
 ; CHECK-NEXT:    lea %s4, -256
@@ -1449,29 +1482,30 @@ define zeroext i1 @_Z30atomic_cmp_swap_relaxed_stk_i1Rbb(i8* nocapture nonnull a
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB33_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    st1b %s1, (, %s0)
-; CHECK-NEXT:  .LBB33_2:
+; CHECK-NEXT:  .LBB33_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic", align 1
-  %4 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %3, i64 0, i32 0, i32 0, i32 0, i32 0
-  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %4)
-  %5 = zext i1 %1 to i8
-  %6 = load i8, i8* %0, align 1
-  %7 = cmpxchg weak volatile i8* %4, i8 %6, i8 %5 monotonic monotonic
-  %8 = extractvalue { i8, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i8, i1 } %7, 0
-  store i8 %10, i8* %0, align 1
-  br label %11
-
-11:                                               ; preds = %2, %9
-  call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %4)
-  ret i1 %8
+bb:
+  %i = alloca %"struct.std::__1::atomic", align 1
+  %i2 = getelementptr inbounds %"struct.std::__1::atomic", %"struct.std::__1::atomic"* %i, i64 0, i32 0, i32 0, i32 0, i32 0
+  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %i2)
+  %i3 = zext i1 %arg1 to i8
+  %i4 = load i8, i8* %arg, align 1
+  %i5 = cmpxchg weak volatile i8* %i2, i8 %i4, i8 %i3 monotonic monotonic, align 1
+  %i6 = extractvalue { i8, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i8, i1 } %i5, 0
+  store i8 %i8, i8* %arg, align 1
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %i2)
+  ret i1 %i6
 }
 
 ; Function Attrs: argmemonly nofree nosync nounwind willreturn
@@ -1481,12 +1515,12 @@ declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture)
 declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
 
 ; Function Attrs: nofree nounwind mustprogress
-define signext i8 @_Z30atomic_cmp_swap_relaxed_stk_i8Rcc(i8* nocapture nonnull align 1 dereferenceable(1) %0, i8 signext %1) {
+define signext i8 @_Z30atomic_cmp_swap_relaxed_stk_i8Rcc(i8* nocapture nonnull align 1 dereferenceable(1) %arg, i8 signext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_stk_i8Rcc:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB34_4
-; CHECK-NEXT:  # %bb.3: # %partword.cmpxchg.loop
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1495,7 +1529,7 @@ define signext i8 @_Z30atomic_cmp_swap_relaxed_stk_i8Rcc(i8* nocapture nonnull a
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB34_4: # %partword.cmpxchg.loop
+; CHECK-NEXT:  .LBB34_4: # %bb
 ; CHECK-NEXT:    ld1b.zx %s2, (, %s0)
 ; CHECK-NEXT:    ldl.zx %s3, 8(, %s11)
 ; CHECK-NEXT:    and %s1, %s1, (56)0
@@ -1509,38 +1543,39 @@ define signext i8 @_Z30atomic_cmp_swap_relaxed_stk_i8Rcc(i8* nocapture nonnull a
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB34_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st1b %s1, (, %s0)
-; CHECK-NEXT:  .LBB34_2:
+; CHECK-NEXT:  .LBB34_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.0", align 1
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %4)
-  %5 = load i8, i8* %0, align 1
-  %6 = cmpxchg weak volatile i8* %4, i8 %5, i8 %1 monotonic monotonic
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %2
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %0, align 1
-  br label %10
-
-10:                                               ; preds = %2, %8
-  %11 = zext i1 %7 to i8
-  call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %4)
-  ret i8 %11
+bb:
+  %i = alloca %"struct.std::__1::atomic.0", align 1
+  %i2 = getelementptr inbounds %"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %i2)
+  %i3 = load i8, i8* %arg, align 1
+  %i4 = cmpxchg weak volatile i8* %i2, i8 %i3, i8 %arg1 monotonic monotonic, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %i2)
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define zeroext i8 @_Z30atomic_cmp_swap_relaxed_stk_u8Rhh(i8* nocapture nonnull align 1 dereferenceable(1) %0, i8 zeroext %1) {
+define zeroext i8 @_Z30atomic_cmp_swap_relaxed_stk_u8Rhh(i8* nocapture nonnull align 1 dereferenceable(1) %arg, i8 zeroext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_stk_u8Rhh:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB35_4
-; CHECK-NEXT:  # %bb.3: # %partword.cmpxchg.loop
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1549,7 +1584,7 @@ define zeroext i8 @_Z30atomic_cmp_swap_relaxed_stk_u8Rhh(i8* nocapture nonnull a
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB35_4: # %partword.cmpxchg.loop
+; CHECK-NEXT:  .LBB35_4: # %bb
 ; CHECK-NEXT:    ld1b.zx %s2, (, %s0)
 ; CHECK-NEXT:    ldl.zx %s3, 8(, %s11)
 ; CHECK-NEXT:    lea %s4, -256
@@ -1562,38 +1597,39 @@ define zeroext i8 @_Z30atomic_cmp_swap_relaxed_stk_u8Rhh(i8* nocapture nonnull a
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB35_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb6
 ; CHECK-NEXT:    st1b %s1, (, %s0)
-; CHECK-NEXT:  .LBB35_2:
+; CHECK-NEXT:  .LBB35_2: # %bb8
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.5", align 1
-  %4 = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %4)
-  %5 = load i8, i8* %0, align 1
-  %6 = cmpxchg weak volatile i8* %4, i8 %5, i8 %1 monotonic monotonic
-  %7 = extractvalue { i8, i1 } %6, 1
-  br i1 %7, label %10, label %8
-
-8:                                                ; preds = %2
-  %9 = extractvalue { i8, i1 } %6, 0
-  store i8 %9, i8* %0, align 1
-  br label %10
-
-10:                                               ; preds = %2, %8
-  %11 = zext i1 %7 to i8
-  call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %4)
-  ret i8 %11
+bb:
+  %i = alloca %"struct.std::__1::atomic.5", align 1
+  %i2 = getelementptr inbounds %"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %i2)
+  %i3 = load i8, i8* %arg, align 1
+  %i4 = cmpxchg weak volatile i8* %i2, i8 %i3, i8 %arg1 monotonic monotonic, align 1
+  %i5 = extractvalue { i8, i1 } %i4, 1
+  br i1 %i5, label %bb8, label %bb6
+
+bb6:                                              ; preds = %bb
+  %i7 = extractvalue { i8, i1 } %i4, 0
+  store i8 %i7, i8* %arg, align 1
+  br label %bb8
+
+bb8:                                              ; preds = %bb6, %bb
+  %i9 = zext i1 %i5 to i8
+  call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %i2)
+  ret i8 %i9
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define signext i16 @_Z31atomic_cmp_swap_relaxed_stk_i16Rss(i16* nocapture nonnull align 2 dereferenceable(2) %0, i16 signext %1) {
+define signext i16 @_Z31atomic_cmp_swap_relaxed_stk_i16Rss(i16* nocapture nonnull align 2 dereferenceable(2) %arg, i16 signext %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_stk_i16Rss:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB36_4
-; CHECK-NEXT:  # %bb.3: # %partword.cmpxchg.loop
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1602,7 +1638,7 @@ define signext i16 @_Z31atomic_cmp_swap_relaxed_stk_i16Rss(i16* nocapture nonnul
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB36_4: # %partword.cmpxchg.loop
+; CHECK-NEXT:  .LBB36_4: # %bb
 ; CHECK-NEXT:    ld2b.zx %s2, (, %s0)
 ; CHECK-NEXT:    ldl.zx %s3, 8(, %s11)
 ; CHECK-NEXT:    and %s1, %s1, (48)0
@@ -1616,39 +1652,40 @@ define signext i16 @_Z31atomic_cmp_swap_relaxed_stk_i16Rss(i16* nocapture nonnul
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB36_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    st2b %s1, (, %s0)
-; CHECK-NEXT:  .LBB36_2:
+; CHECK-NEXT:  .LBB36_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.10", align 2
-  %4 = bitcast %"struct.std::__1::atomic.10"* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 2, i8* nonnull %4)
-  %5 = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i16, i16* %0, align 2
-  %7 = cmpxchg weak volatile i16* %5, i16 %6, i16 %1 monotonic monotonic
-  %8 = extractvalue { i16, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i16, i1 } %7, 0
-  store i16 %10, i16* %0, align 2
-  br label %11
-
-11:                                               ; preds = %2, %9
-  %12 = zext i1 %8 to i16
-  call void @llvm.lifetime.end.p0i8(i64 2, i8* nonnull %4)
-  ret i16 %12
+bb:
+  %i = alloca %"struct.std::__1::atomic.10", align 2
+  %i2 = bitcast %"struct.std::__1::atomic.10"* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 2, i8* nonnull %i2)
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i16, i16* %arg, align 2
+  %i5 = cmpxchg weak volatile i16* %i3, i16 %i4, i16 %arg1 monotonic monotonic, align 2
+  %i6 = extractvalue { i16, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i16, i1 } %i5, 0
+  store i16 %i8, i16* %arg, align 2
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  %i10 = zext i1 %i6 to i16
+  call void @llvm.lifetime.end.p0i8(i64 2, i8* nonnull %i2)
+  ret i16 %i10
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define zeroext i16 @_Z31atomic_cmp_swap_relaxed_stk_u16Rtt(i16* nocapture nonnull align 2 dereferenceable(2) %0, i16 zeroext %1) {
+define zeroext i16 @_Z31atomic_cmp_swap_relaxed_stk_u16Rtt(i16* nocapture nonnull align 2 dereferenceable(2) %arg, i16 zeroext %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_stk_u16Rtt:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB37_4
-; CHECK-NEXT:  # %bb.3: # %partword.cmpxchg.loop
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1657,7 +1694,7 @@ define zeroext i16 @_Z31atomic_cmp_swap_relaxed_stk_u16Rtt(i16* nocapture nonnul
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB37_4: # %partword.cmpxchg.loop
+; CHECK-NEXT:  .LBB37_4: # %bb
 ; CHECK-NEXT:    ld2b.zx %s2, (, %s0)
 ; CHECK-NEXT:    ldl.zx %s3, 8(, %s11)
 ; CHECK-NEXT:    lea %s4, -65536
@@ -1670,39 +1707,40 @@ define zeroext i16 @_Z31atomic_cmp_swap_relaxed_stk_u16Rtt(i16* nocapture nonnul
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB37_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    st2b %s1, (, %s0)
-; CHECK-NEXT:  .LBB37_2:
+; CHECK-NEXT:  .LBB37_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.15", align 2
-  %4 = bitcast %"struct.std::__1::atomic.15"* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 2, i8* nonnull %4)
-  %5 = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i16, i16* %0, align 2
-  %7 = cmpxchg weak volatile i16* %5, i16 %6, i16 %1 monotonic monotonic
-  %8 = extractvalue { i16, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i16, i1 } %7, 0
-  store i16 %10, i16* %0, align 2
-  br label %11
-
-11:                                               ; preds = %2, %9
-  %12 = zext i1 %8 to i16
-  call void @llvm.lifetime.end.p0i8(i64 2, i8* nonnull %4)
-  ret i16 %12
+bb:
+  %i = alloca %"struct.std::__1::atomic.15", align 2
+  %i2 = bitcast %"struct.std::__1::atomic.15"* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 2, i8* nonnull %i2)
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i16, i16* %arg, align 2
+  %i5 = cmpxchg weak volatile i16* %i3, i16 %i4, i16 %arg1 monotonic monotonic, align 2
+  %i6 = extractvalue { i16, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i16, i1 } %i5, 0
+  store i16 %i8, i16* %arg, align 2
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  %i10 = zext i1 %i6 to i16
+  call void @llvm.lifetime.end.p0i8(i64 2, i8* nonnull %i2)
+  ret i16 %i10
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define signext i32 @_Z31atomic_cmp_swap_relaxed_stk_i32Rii(i32* nocapture nonnull align 4 dereferenceable(4) %0, i32 signext %1) {
+define signext i32 @_Z31atomic_cmp_swap_relaxed_stk_i32Rii(i32* nocapture nonnull align 4 dereferenceable(4) %arg, i32 signext %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_stk_i32Rii:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB38_4
-; CHECK-NEXT:  # %bb.3:
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1711,46 +1749,47 @@ define signext i32 @_Z31atomic_cmp_swap_relaxed_stk_i32Rii(i32* nocapture nonnul
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB38_4:
+; CHECK-NEXT:  .LBB38_4: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s0)
 ; CHECK-NEXT:    cas.w %s1, 8(%s11), %s3
 ; CHECK-NEXT:    cmps.w.sx %s4, %s1, %s3
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB38_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    stl %s1, (, %s0)
-; CHECK-NEXT:  .LBB38_2:
+; CHECK-NEXT:  .LBB38_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.20", align 4
-  %4 = bitcast %"struct.std::__1::atomic.20"* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %4)
-  %5 = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i32, i32* %0, align 4
-  %7 = cmpxchg weak volatile i32* %5, i32 %6, i32 %1 monotonic monotonic
-  %8 = extractvalue { i32, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i32, i1 } %7, 0
-  store i32 %10, i32* %0, align 4
-  br label %11
-
-11:                                               ; preds = %2, %9
-  %12 = zext i1 %8 to i32
-  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %4)
-  ret i32 %12
+bb:
+  %i = alloca %"struct.std::__1::atomic.20", align 4
+  %i2 = bitcast %"struct.std::__1::atomic.20"* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %i2)
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i32, i32* %arg, align 4
+  %i5 = cmpxchg weak volatile i32* %i3, i32 %i4, i32 %arg1 monotonic monotonic, align 4
+  %i6 = extractvalue { i32, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i32, i1 } %i5, 0
+  store i32 %i8, i32* %arg, align 4
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  %i10 = zext i1 %i6 to i32
+  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %i2)
+  ret i32 %i10
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define zeroext i32 @_Z31atomic_cmp_swap_relaxed_stk_u32Rjj(i32* nocapture nonnull align 4 dereferenceable(4) %0, i32 zeroext %1) {
+define zeroext i32 @_Z31atomic_cmp_swap_relaxed_stk_u32Rjj(i32* nocapture nonnull align 4 dereferenceable(4) %arg, i32 zeroext %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_stk_u32Rjj:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB39_4
-; CHECK-NEXT:  # %bb.3:
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1759,46 +1798,47 @@ define zeroext i32 @_Z31atomic_cmp_swap_relaxed_stk_u32Rjj(i32* nocapture nonnul
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB39_4:
+; CHECK-NEXT:  .LBB39_4: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s0)
 ; CHECK-NEXT:    cas.w %s1, 8(%s11), %s3
 ; CHECK-NEXT:    cmps.w.sx %s4, %s1, %s3
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB39_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    stl %s1, (, %s0)
-; CHECK-NEXT:  .LBB39_2:
+; CHECK-NEXT:  .LBB39_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.25", align 4
-  %4 = bitcast %"struct.std::__1::atomic.25"* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %4)
-  %5 = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i32, i32* %0, align 4
-  %7 = cmpxchg weak volatile i32* %5, i32 %6, i32 %1 monotonic monotonic
-  %8 = extractvalue { i32, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i32, i1 } %7, 0
-  store i32 %10, i32* %0, align 4
-  br label %11
-
-11:                                               ; preds = %2, %9
-  %12 = zext i1 %8 to i32
-  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %4)
-  ret i32 %12
+bb:
+  %i = alloca %"struct.std::__1::atomic.25", align 4
+  %i2 = bitcast %"struct.std::__1::atomic.25"* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %i2)
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i32, i32* %arg, align 4
+  %i5 = cmpxchg weak volatile i32* %i3, i32 %i4, i32 %arg1 monotonic monotonic, align 4
+  %i6 = extractvalue { i32, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i32, i1 } %i5, 0
+  store i32 %i8, i32* %arg, align 4
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  %i10 = zext i1 %i6 to i32
+  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %i2)
+  ret i32 %i10
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define i64 @_Z31atomic_cmp_swap_relaxed_stk_i64Rll(i64* nocapture nonnull align 8 dereferenceable(8) %0, i64 %1) {
+define i64 @_Z31atomic_cmp_swap_relaxed_stk_i64Rll(i64* nocapture nonnull align 8 dereferenceable(8) %arg, i64 %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_stk_i64Rll:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB40_4
-; CHECK-NEXT:  # %bb.3:
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1807,46 +1847,47 @@ define i64 @_Z31atomic_cmp_swap_relaxed_stk_i64Rll(i64* nocapture nonnull align
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB40_4:
+; CHECK-NEXT:  .LBB40_4: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s0)
 ; CHECK-NEXT:    cas.l %s1, 8(%s11), %s3
 ; CHECK-NEXT:    cmps.l %s4, %s1, %s3
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.l.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.l %s1, %s3, .LBB40_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    st %s1, (, %s0)
-; CHECK-NEXT:  .LBB40_2:
+; CHECK-NEXT:  .LBB40_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.30", align 8
-  %4 = bitcast %"struct.std::__1::atomic.30"* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %4)
-  %5 = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i64, i64* %0, align 8
-  %7 = cmpxchg weak volatile i64* %5, i64 %6, i64 %1 monotonic monotonic
-  %8 = extractvalue { i64, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i64, i1 } %7, 0
-  store i64 %10, i64* %0, align 8
-  br label %11
-
-11:                                               ; preds = %2, %9
-  %12 = zext i1 %8 to i64
-  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %4)
-  ret i64 %12
+bb:
+  %i = alloca %"struct.std::__1::atomic.30", align 8
+  %i2 = bitcast %"struct.std::__1::atomic.30"* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %i2)
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i64, i64* %arg, align 8
+  %i5 = cmpxchg weak volatile i64* %i3, i64 %i4, i64 %arg1 monotonic monotonic, align 8
+  %i6 = extractvalue { i64, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i64, i1 } %i5, 0
+  store i64 %i8, i64* %arg, align 8
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  %i10 = zext i1 %i6 to i64
+  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %i2)
+  ret i64 %i10
 }
 
 ; Function Attrs: nofree nounwind mustprogress
-define i64 @_Z31atomic_cmp_swap_relaxed_stk_u64Rmm(i64* nocapture nonnull align 8 dereferenceable(8) %0, i64 %1) {
+define i64 @_Z31atomic_cmp_swap_relaxed_stk_u64Rmm(i64* nocapture nonnull align 8 dereferenceable(8) %arg, i64 %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_stk_u64Rmm:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    adds.l %s11, -16, %s11
 ; CHECK-NEXT:    brge.l %s11, %s8, .LBB41_4
-; CHECK-NEXT:  # %bb.3:
+; CHECK-NEXT:  # %bb.3: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1855,49 +1896,50 @@ define i64 @_Z31atomic_cmp_swap_relaxed_stk_u64Rmm(i64* nocapture nonnull align
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB41_4:
+; CHECK-NEXT:  .LBB41_4: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s0)
 ; CHECK-NEXT:    cas.l %s1, 8(%s11), %s3
 ; CHECK-NEXT:    cmps.l %s4, %s1, %s3
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.l.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.l %s1, %s3, .LBB41_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb7
 ; CHECK-NEXT:    st %s1, (, %s0)
-; CHECK-NEXT:  .LBB41_2:
+; CHECK-NEXT:  .LBB41_2: # %bb9
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    adds.l %s11, 16, %s11
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca %"struct.std::__1::atomic.35", align 8
-  %4 = bitcast %"struct.std::__1::atomic.35"* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %4)
-  %5 = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %3, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
-  %6 = load i64, i64* %0, align 8
-  %7 = cmpxchg weak volatile i64* %5, i64 %6, i64 %1 monotonic monotonic
-  %8 = extractvalue { i64, i1 } %7, 1
-  br i1 %8, label %11, label %9
-
-9:                                                ; preds = %2
-  %10 = extractvalue { i64, i1 } %7, 0
-  store i64 %10, i64* %0, align 8
-  br label %11
-
-11:                                               ; preds = %2, %9
-  %12 = zext i1 %8 to i64
-  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %4)
-  ret i64 %12
+bb:
+  %i = alloca %"struct.std::__1::atomic.35", align 8
+  %i2 = bitcast %"struct.std::__1::atomic.35"* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %i2)
+  %i3 = getelementptr inbounds %"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* %i, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
+  %i4 = load i64, i64* %arg, align 8
+  %i5 = cmpxchg weak volatile i64* %i3, i64 %i4, i64 %arg1 monotonic monotonic, align 8
+  %i6 = extractvalue { i64, i1 } %i5, 1
+  br i1 %i6, label %bb9, label %bb7
+
+bb7:                                              ; preds = %bb
+  %i8 = extractvalue { i64, i1 } %i5, 0
+  store i64 %i8, i64* %arg, align 8
+  br label %bb9
+
+bb9:                                              ; preds = %bb7, %bb
+  %i10 = zext i1 %i6 to i64
+  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %i2)
+  ret i64 %i10
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z32atomic_cmp_swap_relaxed_stk_i128Rnn(i128* nonnull align 16 dereferenceable(16) %0, i128 %1) {
+define i128 @_Z32atomic_cmp_swap_relaxed_stk_i128Rnn(i128* nonnull align 16 dereferenceable(16) %arg, i128 %arg1) {
 ; CHECK-LABEL: _Z32atomic_cmp_swap_relaxed_stk_i128Rnn:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -272(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB42_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1906,7 +1948,7 @@ define i128 @_Z32atomic_cmp_swap_relaxed_stk_i128Rnn(i128* nonnull align 16 dere
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB42_2:
+; CHECK-NEXT:  .LBB42_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s0
 ; CHECK-NEXT:    st %s2, 264(, %s11)
 ; CHECK-NEXT:    st %s1, 256(, %s11)
@@ -1925,31 +1967,32 @@ define i128 @_Z32atomic_cmp_swap_relaxed_stk_i128Rnn(i128* nonnull align 16 dere
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca i128, align 16
-  %4 = alloca %"struct.std::__1::atomic.40", align 16
-  %5 = bitcast %"struct.std::__1::atomic.40"* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  %6 = bitcast i128* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %6)
-  store i128 %1, i128* %3, align 16, !tbaa !2
-  %7 = bitcast i128* %0 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %5, i8* nonnull %7, i8* nonnull %6, i32 signext 0, i32 signext 0)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %6)
-  %9 = zext i1 %8 to i128
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i2 = alloca %"struct.std::__1::atomic.40", align 16
+  %i3 = bitcast %"struct.std::__1::atomic.40"* %i2 to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  %i4 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i4)
+  store i128 %arg1, i128* %i, align 16, !tbaa !0
+  %i5 = bitcast i128* %arg to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i3, i8* nonnull %i5, i8* nonnull %i4, i32 signext 0, i32 signext 0)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i4)
+  %i7 = zext i1 %i6 to i128
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  ret i128 %i7
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z32atomic_cmp_swap_relaxed_stk_u128Roo(i128* nonnull align 16 dereferenceable(16) %0, i128 %1) {
+define i128 @_Z32atomic_cmp_swap_relaxed_stk_u128Roo(i128* nonnull align 16 dereferenceable(16) %arg, i128 %arg1) {
 ; CHECK-LABEL: _Z32atomic_cmp_swap_relaxed_stk_u128Roo:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -272(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB43_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -1958,7 +2001,7 @@ define i128 @_Z32atomic_cmp_swap_relaxed_stk_u128Roo(i128* nonnull align 16 dere
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB43_2:
+; CHECK-NEXT:  .LBB43_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s0
 ; CHECK-NEXT:    st %s2, 264(, %s11)
 ; CHECK-NEXT:    st %s1, 256(, %s11)
@@ -1977,25 +2020,26 @@ define i128 @_Z32atomic_cmp_swap_relaxed_stk_u128Roo(i128* nonnull align 16 dere
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca i128, align 16
-  %4 = alloca %"struct.std::__1::atomic.45", align 16
-  %5 = bitcast %"struct.std::__1::atomic.45"* %4 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %5)
-  %6 = bitcast i128* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %6)
-  store i128 %1, i128* %3, align 16, !tbaa !2
-  %7 = bitcast i128* %0 to i8*
-  %8 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %5, i8* nonnull %7, i8* nonnull %6, i32 signext 0, i32 signext 0)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %6)
-  %9 = zext i1 %8 to i128
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %5)
-  ret i128 %9
+bb:
+  %i = alloca i128, align 16
+  %i2 = alloca %"struct.std::__1::atomic.45", align 16
+  %i3 = bitcast %"struct.std::__1::atomic.45"* %i2 to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i3)
+  %i4 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i4)
+  store i128 %arg1, i128* %i, align 16, !tbaa !0
+  %i5 = bitcast i128* %arg to i8*
+  %i6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull %i3, i8* nonnull %i5, i8* nonnull %i4, i32 signext 0, i32 signext 0)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i4)
+  %i7 = zext i1 %i6 to i128
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i3)
+  ret i128 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i1 @_Z29atomic_cmp_swap_relaxed_gv_i1Rbb(i8* nocapture nonnull align 1 dereferenceable(1) %0, i1 zeroext %1) {
+define zeroext i1 @_Z29atomic_cmp_swap_relaxed_gv_i1Rbb(i8* nocapture nonnull align 1 dereferenceable(1) %arg, i1 zeroext %arg1) {
 ; CHECK-LABEL: _Z29atomic_cmp_swap_relaxed_gv_i1Rbb:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    lea %s2, gv_i1 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    lea.sl %s2, gv_i1 at hi(, %s2)
@@ -2012,30 +2056,31 @@ define zeroext i1 @_Z29atomic_cmp_swap_relaxed_gv_i1Rbb(i8* nocapture nonnull al
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB44_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb5
 ; CHECK-NEXT:    st1b %s1, (, %s0)
-; CHECK-NEXT:  .LBB44_2:
+; CHECK-NEXT:  .LBB44_2: # %bb7
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = zext i1 %1 to i8
-  %4 = load i8, i8* %0, align 1
-  %5 = cmpxchg weak i8* getelementptr inbounds (%"struct.std::__1::atomic", %"struct.std::__1::atomic"* @gv_i1, i64 0, i32 0, i32 0, i32 0, i32 0), i8 %4, i8 %3 monotonic monotonic
-  %6 = extractvalue { i8, i1 } %5, 1
-  br i1 %6, label %9, label %7
-
-7:                                                ; preds = %2
-  %8 = extractvalue { i8, i1 } %5, 0
-  store i8 %8, i8* %0, align 1
-  br label %9
-
-9:                                                ; preds = %2, %7
-  ret i1 %6
+bb:
+  %i = zext i1 %arg1 to i8
+  %i2 = load i8, i8* %arg, align 1
+  %i3 = cmpxchg weak i8* getelementptr inbounds (%"struct.std::__1::atomic", %"struct.std::__1::atomic"* @gv_i1, i64 0, i32 0, i32 0, i32 0, i32 0), i8 %i2, i8 %i monotonic monotonic, align 1
+  %i4 = extractvalue { i8, i1 } %i3, 1
+  br i1 %i4, label %bb7, label %bb5
+
+bb5:                                              ; preds = %bb
+  %i6 = extractvalue { i8, i1 } %i3, 0
+  store i8 %i6, i8* %arg, align 1
+  br label %bb7
+
+bb7:                                              ; preds = %bb5, %bb
+  ret i1 %i4
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i8 @_Z29atomic_cmp_swap_relaxed_gv_i8Rcc(i8* nocapture nonnull align 1 dereferenceable(1) %0, i8 signext %1) {
+define signext i8 @_Z29atomic_cmp_swap_relaxed_gv_i8Rcc(i8* nocapture nonnull align 1 dereferenceable(1) %arg, i8 signext %arg1) {
 ; CHECK-LABEL: _Z29atomic_cmp_swap_relaxed_gv_i8Rcc:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    lea %s2, gv_i8 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    lea.sl %s2, gv_i8 at hi(, %s2)
@@ -2053,30 +2098,31 @@ define signext i8 @_Z29atomic_cmp_swap_relaxed_gv_i8Rcc(i8* nocapture nonnull al
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB45_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    st1b %s1, (, %s0)
-; CHECK-NEXT:  .LBB45_2:
+; CHECK-NEXT:  .LBB45_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i8, i8* %0, align 1
-  %4 = cmpxchg weak i8* getelementptr inbounds (%"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* @gv_i8, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i8 %3, i8 %1 monotonic monotonic
-  %5 = extractvalue { i8, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i8, i1 } %4, 0
-  store i8 %7, i8* %0, align 1
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i8
-  ret i8 %9
+bb:
+  %i = load i8, i8* %arg, align 1
+  %i2 = cmpxchg weak i8* getelementptr inbounds (%"struct.std::__1::atomic.0", %"struct.std::__1::atomic.0"* @gv_i8, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i8 %i, i8 %arg1 monotonic monotonic, align 1
+  %i3 = extractvalue { i8, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i8, i1 } %i2, 0
+  store i8 %i5, i8* %arg, align 1
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i8
+  ret i8 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i8 @_Z29atomic_cmp_swap_relaxed_gv_u8Rhh(i8* nocapture nonnull align 1 dereferenceable(1) %0, i8 zeroext %1) {
+define zeroext i8 @_Z29atomic_cmp_swap_relaxed_gv_u8Rhh(i8* nocapture nonnull align 1 dereferenceable(1) %arg, i8 zeroext %arg1) {
 ; CHECK-LABEL: _Z29atomic_cmp_swap_relaxed_gv_u8Rhh:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    lea %s2, gv_u8 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    lea.sl %s2, gv_u8 at hi(, %s2)
@@ -2093,30 +2139,31 @@ define zeroext i8 @_Z29atomic_cmp_swap_relaxed_gv_u8Rhh(i8* nocapture nonnull al
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB46_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    st1b %s1, (, %s0)
-; CHECK-NEXT:  .LBB46_2:
+; CHECK-NEXT:  .LBB46_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i8, i8* %0, align 1
-  %4 = cmpxchg weak i8* getelementptr inbounds (%"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* @gv_u8, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i8 %3, i8 %1 monotonic monotonic
-  %5 = extractvalue { i8, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i8, i1 } %4, 0
-  store i8 %7, i8* %0, align 1
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i8
-  ret i8 %9
+bb:
+  %i = load i8, i8* %arg, align 1
+  %i2 = cmpxchg weak i8* getelementptr inbounds (%"struct.std::__1::atomic.5", %"struct.std::__1::atomic.5"* @gv_u8, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i8 %i, i8 %arg1 monotonic monotonic, align 1
+  %i3 = extractvalue { i8, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i8, i1 } %i2, 0
+  store i8 %i5, i8* %arg, align 1
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i8
+  ret i8 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i16 @_Z30atomic_cmp_swap_relaxed_gv_i16Rss(i16* nocapture nonnull align 2 dereferenceable(2) %0, i16 signext %1) {
+define signext i16 @_Z30atomic_cmp_swap_relaxed_gv_i16Rss(i16* nocapture nonnull align 2 dereferenceable(2) %arg, i16 signext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_gv_i16Rss:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    lea %s2, gv_i16 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    lea.sl %s2, gv_i16 at hi(, %s2)
@@ -2132,30 +2179,31 @@ define signext i16 @_Z30atomic_cmp_swap_relaxed_gv_i16Rss(i16* nocapture nonnull
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB47_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    st2b %s1, (, %s0)
-; CHECK-NEXT:  .LBB47_2:
+; CHECK-NEXT:  .LBB47_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i16, i16* %0, align 2
-  %4 = cmpxchg weak i16* getelementptr inbounds (%"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* @gv_i16, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i16 %3, i16 %1 monotonic monotonic
-  %5 = extractvalue { i16, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i16, i1 } %4, 0
-  store i16 %7, i16* %0, align 2
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i16
-  ret i16 %9
+bb:
+  %i = load i16, i16* %arg, align 2
+  %i2 = cmpxchg weak i16* getelementptr inbounds (%"struct.std::__1::atomic.10", %"struct.std::__1::atomic.10"* @gv_i16, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i16 %i, i16 %arg1 monotonic monotonic, align 2
+  %i3 = extractvalue { i16, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i16, i1 } %i2, 0
+  store i16 %i5, i16* %arg, align 2
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i16
+  ret i16 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i16 @_Z30atomic_cmp_swap_relaxed_gv_u16Rtt(i16* nocapture nonnull align 2 dereferenceable(2) %0, i16 zeroext %1) {
+define zeroext i16 @_Z30atomic_cmp_swap_relaxed_gv_u16Rtt(i16* nocapture nonnull align 2 dereferenceable(2) %arg, i16 zeroext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_gv_u16Rtt:
-; CHECK:       # %bb.0: # %partword.cmpxchg.loop
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    lea %s2, gv_u16 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
 ; CHECK-NEXT:    lea.sl %s2, gv_u16 at hi(, %s2)
@@ -2170,30 +2218,31 @@ define zeroext i16 @_Z30atomic_cmp_swap_relaxed_gv_u16Rtt(i16* nocapture nonnull
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB48_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    st2b %s1, (, %s0)
-; CHECK-NEXT:  .LBB48_2:
+; CHECK-NEXT:  .LBB48_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i16, i16* %0, align 2
-  %4 = cmpxchg weak i16* getelementptr inbounds (%"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* @gv_u16, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i16 %3, i16 %1 monotonic monotonic
-  %5 = extractvalue { i16, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i16, i1 } %4, 0
-  store i16 %7, i16* %0, align 2
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i16
-  ret i16 %9
+bb:
+  %i = load i16, i16* %arg, align 2
+  %i2 = cmpxchg weak i16* getelementptr inbounds (%"struct.std::__1::atomic.15", %"struct.std::__1::atomic.15"* @gv_u16, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i16 %i, i16 %arg1 monotonic monotonic, align 2
+  %i3 = extractvalue { i16, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i16, i1 } %i2, 0
+  store i16 %i5, i16* %arg, align 2
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i16
+  ret i16 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define signext i32 @_Z30atomic_cmp_swap_relaxed_gv_i32Rii(i32* nocapture nonnull align 4 dereferenceable(4) %0, i32 signext %1) {
+define signext i32 @_Z30atomic_cmp_swap_relaxed_gv_i32Rii(i32* nocapture nonnull align 4 dereferenceable(4) %arg, i32 signext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_gv_i32Rii:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s0)
 ; CHECK-NEXT:    lea %s2, gv_i32 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
@@ -2203,30 +2252,31 @@ define signext i32 @_Z30atomic_cmp_swap_relaxed_gv_i32Rii(i32* nocapture nonnull
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB49_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    stl %s1, (, %s0)
-; CHECK-NEXT:  .LBB49_2:
+; CHECK-NEXT:  .LBB49_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i32, i32* %0, align 4
-  %4 = cmpxchg weak i32* getelementptr inbounds (%"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* @gv_i32, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i32 %3, i32 %1 monotonic monotonic
-  %5 = extractvalue { i32, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i32, i1 } %4, 0
-  store i32 %7, i32* %0, align 4
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i32
-  ret i32 %9
+bb:
+  %i = load i32, i32* %arg, align 4
+  %i2 = cmpxchg weak i32* getelementptr inbounds (%"struct.std::__1::atomic.20", %"struct.std::__1::atomic.20"* @gv_i32, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i32 %i, i32 %arg1 monotonic monotonic, align 4
+  %i3 = extractvalue { i32, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i32, i1 } %i2, 0
+  store i32 %i5, i32* %arg, align 4
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i32
+  ret i32 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define zeroext i32 @_Z30atomic_cmp_swap_relaxed_gv_u32Rjj(i32* nocapture nonnull align 4 dereferenceable(4) %0, i32 zeroext %1) {
+define zeroext i32 @_Z30atomic_cmp_swap_relaxed_gv_u32Rjj(i32* nocapture nonnull align 4 dereferenceable(4) %arg, i32 zeroext %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_gv_u32Rjj:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ldl.sx %s3, (, %s0)
 ; CHECK-NEXT:    lea %s2, gv_u32 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
@@ -2236,30 +2286,31 @@ define zeroext i32 @_Z30atomic_cmp_swap_relaxed_gv_u32Rjj(i32* nocapture nonnull
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.w.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.w %s1, %s3, .LBB50_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    stl %s1, (, %s0)
-; CHECK-NEXT:  .LBB50_2:
+; CHECK-NEXT:  .LBB50_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i32, i32* %0, align 4
-  %4 = cmpxchg weak i32* getelementptr inbounds (%"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* @gv_u32, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i32 %3, i32 %1 monotonic monotonic
-  %5 = extractvalue { i32, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i32, i1 } %4, 0
-  store i32 %7, i32* %0, align 4
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i32
-  ret i32 %9
+bb:
+  %i = load i32, i32* %arg, align 4
+  %i2 = cmpxchg weak i32* getelementptr inbounds (%"struct.std::__1::atomic.25", %"struct.std::__1::atomic.25"* @gv_u32, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i32 %i, i32 %arg1 monotonic monotonic, align 4
+  %i3 = extractvalue { i32, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i32, i1 } %i2, 0
+  store i32 %i5, i32* %arg, align 4
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i32
+  ret i32 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z30atomic_cmp_swap_relaxed_gv_i64Rll(i64* nocapture nonnull align 8 dereferenceable(8) %0, i64 %1) {
+define i64 @_Z30atomic_cmp_swap_relaxed_gv_i64Rll(i64* nocapture nonnull align 8 dereferenceable(8) %arg, i64 %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_gv_i64Rll:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s0)
 ; CHECK-NEXT:    lea %s2, gv_i64 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
@@ -2269,30 +2320,31 @@ define i64 @_Z30atomic_cmp_swap_relaxed_gv_i64Rll(i64* nocapture nonnull align 8
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.l.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.l %s1, %s3, .LBB51_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    st %s1, (, %s0)
-; CHECK-NEXT:  .LBB51_2:
+; CHECK-NEXT:  .LBB51_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i64, i64* %0, align 8
-  %4 = cmpxchg weak i64* getelementptr inbounds (%"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* @gv_i64, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i64 %3, i64 %1 monotonic monotonic
-  %5 = extractvalue { i64, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i64, i1 } %4, 0
-  store i64 %7, i64* %0, align 8
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i64
-  ret i64 %9
+bb:
+  %i = load i64, i64* %arg, align 8
+  %i2 = cmpxchg weak i64* getelementptr inbounds (%"struct.std::__1::atomic.30", %"struct.std::__1::atomic.30"* @gv_i64, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i64 %i, i64 %arg1 monotonic monotonic, align 8
+  %i3 = extractvalue { i64, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i64, i1 } %i2, 0
+  store i64 %i5, i64* %arg, align 8
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i64
+  ret i64 %i7
 }
 
 ; Function Attrs: nofree norecurse nounwind mustprogress
-define i64 @_Z30atomic_cmp_swap_relaxed_gv_u64Rmm(i64* nocapture nonnull align 8 dereferenceable(8) %0, i64 %1) {
+define i64 @_Z30atomic_cmp_swap_relaxed_gv_u64Rmm(i64* nocapture nonnull align 8 dereferenceable(8) %arg, i64 %arg1) {
 ; CHECK-LABEL: _Z30atomic_cmp_swap_relaxed_gv_u64Rmm:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    ld %s3, (, %s0)
 ; CHECK-NEXT:    lea %s2, gv_u64 at lo
 ; CHECK-NEXT:    and %s2, %s2, (32)0
@@ -2302,36 +2354,37 @@ define i64 @_Z30atomic_cmp_swap_relaxed_gv_u64Rmm(i64* nocapture nonnull align 8
 ; CHECK-NEXT:    or %s2, 0, (0)1
 ; CHECK-NEXT:    cmov.l.eq %s2, (63)0, %s4
 ; CHECK-NEXT:    breq.l %s1, %s3, .LBB52_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb4
 ; CHECK-NEXT:    st %s1, (, %s0)
-; CHECK-NEXT:  .LBB52_2:
+; CHECK-NEXT:  .LBB52_2: # %bb6
 ; CHECK-NEXT:    adds.w.zx %s0, %s2, (0)1
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = load i64, i64* %0, align 8
-  %4 = cmpxchg weak i64* getelementptr inbounds (%"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* @gv_u64, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i64 %3, i64 %1 monotonic monotonic
-  %5 = extractvalue { i64, i1 } %4, 1
-  br i1 %5, label %8, label %6
-
-6:                                                ; preds = %2
-  %7 = extractvalue { i64, i1 } %4, 0
-  store i64 %7, i64* %0, align 8
-  br label %8
-
-8:                                                ; preds = %2, %6
-  %9 = zext i1 %5 to i64
-  ret i64 %9
+bb:
+  %i = load i64, i64* %arg, align 8
+  %i2 = cmpxchg weak i64* getelementptr inbounds (%"struct.std::__1::atomic.35", %"struct.std::__1::atomic.35"* @gv_u64, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0), i64 %i, i64 %arg1 monotonic monotonic, align 8
+  %i3 = extractvalue { i64, i1 } %i2, 1
+  br i1 %i3, label %bb6, label %bb4
+
+bb4:                                              ; preds = %bb
+  %i5 = extractvalue { i64, i1 } %i2, 0
+  store i64 %i5, i64* %arg, align 8
+  br label %bb6
+
+bb6:                                              ; preds = %bb4, %bb
+  %i7 = zext i1 %i3 to i64
+  ret i64 %i7
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z31atomic_cmp_swap_relaxed_gv_i128Rnn(i128* nonnull align 16 dereferenceable(16) %0, i128 %1) {
+define i128 @_Z31atomic_cmp_swap_relaxed_gv_i128Rnn(i128* nonnull align 16 dereferenceable(16) %arg, i128 %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_gv_i128Rnn:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB53_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -2340,7 +2393,7 @@ define i128 @_Z31atomic_cmp_swap_relaxed_gv_i128Rnn(i128* nonnull align 16 deref
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB53_2:
+; CHECK-NEXT:  .LBB53_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s0
 ; CHECK-NEXT:    st %s2, 248(, %s11)
 ; CHECK-NEXT:    st %s1, 240(, %s11)
@@ -2361,27 +2414,28 @@ define i128 @_Z31atomic_cmp_swap_relaxed_gv_i128Rnn(i128* nonnull align 16 deref
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca i128, align 16
-  %4 = bitcast i128* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %4)
-  store i128 %1, i128* %3, align 16, !tbaa !2
-  %5 = bitcast i128* %0 to i8*
-  %6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull bitcast (%"struct.std::__1::atomic.40"* @gv_i128 to i8*), i8* nonnull %5, i8* nonnull %4, i32 signext 0, i32 signext 0)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %4)
-  %7 = zext i1 %6 to i128
-  ret i128 %7
+bb:
+  %i = alloca i128, align 16
+  %i2 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i2)
+  store i128 %arg1, i128* %i, align 16, !tbaa !0
+  %i3 = bitcast i128* %arg to i8*
+  %i4 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull bitcast (%"struct.std::__1::atomic.40"* @gv_i128 to i8*), i8* nonnull %i3, i8* nonnull %i2, i32 signext 0, i32 signext 0)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i2)
+  %i5 = zext i1 %i4 to i128
+  ret i128 %i5
 }
 
 ; Function Attrs: nounwind mustprogress
-define i128 @_Z31atomic_cmp_swap_relaxed_gv_u128Roo(i128* nonnull align 16 dereferenceable(16) %0, i128 %1) {
+define i128 @_Z31atomic_cmp_swap_relaxed_gv_u128Roo(i128* nonnull align 16 dereferenceable(16) %arg, i128 %arg1) {
 ; CHECK-LABEL: _Z31atomic_cmp_swap_relaxed_gv_u128Roo:
-; CHECK:       # %bb.0:
+; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    st %s9, (, %s11)
 ; CHECK-NEXT:    st %s10, 8(, %s11)
 ; CHECK-NEXT:    or %s9, 0, %s11
 ; CHECK-NEXT:    lea %s11, -256(, %s11)
 ; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB54_2
-; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:  # %bb.1: # %bb
 ; CHECK-NEXT:    ld %s61, 24(, %s14)
 ; CHECK-NEXT:    or %s62, 0, %s0
 ; CHECK-NEXT:    lea %s63, 315
@@ -2390,7 +2444,7 @@ define i128 @_Z31atomic_cmp_swap_relaxed_gv_u128Roo(i128* nonnull align 16 deref
 ; CHECK-NEXT:    shm.l %s11, 16(%s61)
 ; CHECK-NEXT:    monc
 ; CHECK-NEXT:    or %s0, 0, %s62
-; CHECK-NEXT:  .LBB54_2:
+; CHECK-NEXT:  .LBB54_2: # %bb
 ; CHECK-NEXT:    or %s6, 0, %s0
 ; CHECK-NEXT:    st %s2, 248(, %s11)
 ; CHECK-NEXT:    st %s1, 240(, %s11)
@@ -2411,21 +2465,22 @@ define i128 @_Z31atomic_cmp_swap_relaxed_gv_u128Roo(i128* nonnull align 16 deref
 ; CHECK-NEXT:    ld %s10, 8(, %s11)
 ; CHECK-NEXT:    ld %s9, (, %s11)
 ; CHECK-NEXT:    b.l.t (, %s10)
-  %3 = alloca i128, align 16
-  %4 = bitcast i128* %3 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %4)
-  store i128 %1, i128* %3, align 16, !tbaa !2
-  %5 = bitcast i128* %0 to i8*
-  %6 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull bitcast (%"struct.std::__1::atomic.45"* @gv_u128 to i8*), i8* nonnull %5, i8* nonnull %4, i32 signext 0, i32 signext 0)
-  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %4)
-  %7 = zext i1 %6 to i128
-  ret i128 %7
+bb:
+  %i = alloca i128, align 16
+  %i2 = bitcast i128* %i to i8*
+  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %i2)
+  store i128 %arg1, i128* %i, align 16, !tbaa !0
+  %i3 = bitcast i128* %arg to i8*
+  %i4 = call zeroext i1 @__atomic_compare_exchange(i64 16, i8* nonnull bitcast (%"struct.std::__1::atomic.45"* @gv_u128 to i8*), i8* nonnull %i3, i8* nonnull %i2, i32 signext 0, i32 signext 0)
+  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %i2)
+  %i5 = zext i1 %i4 to i128
+  ret i128 %i5
 }
 
 ; Function Attrs: nounwind willreturn
 declare i1 @__atomic_compare_exchange(i64, i8*, i8*, i8*, i32, i32)
 
-!2 = !{!3, !3, i64 0}
-!3 = !{!"__int128", !4, i64 0}
-!4 = !{!"omnipotent char", !5, i64 0}
-!5 = !{!"Simple C++ TBAA"}
+!0 = !{!1, !1, i64 0}
+!1 = !{!"__int128", !2, i64 0}
+!2 = !{!"omnipotent char", !3, i64 0}
+!3 = !{!"Simple C++ TBAA"}


        


More information about the llvm-commits mailing list