[llvm] 2393da9 - [AArch64][GlobalISel] Do not create atomic truncstore (#216522)

via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 15 16:43:52 PDT 2026


Author: David Green
Date: 2026-08-16T00:43:47+01:00
New Revision: 2393da9d2eeb9c41296138129074f11f1c64222a

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

LOG: [AArch64][GlobalISel] Do not create atomic truncstore (#216522)

After #213935 the i64->i32 truncstore was failing to create a COPY
correctly.
We do not have tablegen patterns, so mirror what SDAG does and do not
create
atomic truncstore.

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp b/llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
index 38ca5cad5a795..53c150d13e3fa 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
@@ -1168,6 +1168,8 @@ bool matchFormTruncstore(MachineInstr &MI, MachineRegisterInfo &MRI,
                          Register &SrcReg) {
   assert(MI.getOpcode() == TargetOpcode::G_STORE);
   Register DstReg = MI.getOperand(0).getReg();
+  if (cast<GLoadStore>(MI).isAtomic())
+    return false;
   if (MRI.getType(DstReg).isVector())
     return false;
   // Match a store of a truncate.

diff  --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
index d5b8a55a328b5..6da7795f8b5e8 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
@@ -1655,6 +1655,239 @@ define void @atomic_store_relaxed_64(ptr %p, i32 %off32, i64 %val) #0 {
   ret void
 }
 
+
+define void @atomic_truncstore_relaxed_8(ptr %p, i32 %off32, i32 %inp1, i32 %inp2, i32 %inp3, i32 %inp4) #0 {
+; CHECK-NOLSE-O1-LABEL: atomic_truncstore_relaxed_8:
+; CHECK-NOLSE-O1:       ; %bb.0:
+; CHECK-NOLSE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-NOLSE-O1-NEXT:    strb w2, [x0, #4095]
+; CHECK-NOLSE-O1-NEXT:    strb w3, [x0, w1, sxtw]
+; CHECK-NOLSE-O1-NEXT:    sturb w4, [x0, #-256]
+; CHECK-NOLSE-O1-NEXT:    strb w5, [x8]
+; CHECK-NOLSE-O1-NEXT:    ret
+;
+; CHECK-OUTLINE-O1-LABEL: atomic_truncstore_relaxed_8:
+; CHECK-OUTLINE-O1:       ; %bb.0:
+; CHECK-OUTLINE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-OUTLINE-O1-NEXT:    strb w2, [x0, #4095]
+; CHECK-OUTLINE-O1-NEXT:    strb w3, [x0, w1, sxtw]
+; CHECK-OUTLINE-O1-NEXT:    sturb w4, [x0, #-256]
+; CHECK-OUTLINE-O1-NEXT:    strb w5, [x8]
+; CHECK-OUTLINE-O1-NEXT:    ret
+;
+; CHECK-NOLSE-O0-LABEL: atomic_truncstore_relaxed_8:
+; CHECK-NOLSE-O0:       ; %bb.0:
+; CHECK-NOLSE-O0-NEXT:    strb w2, [x0, #4095]
+; CHECK-NOLSE-O0-NEXT:    strb w3, [x0, w1, sxtw]
+; CHECK-NOLSE-O0-NEXT:    sturb w4, [x0, #-256]
+; CHECK-NOLSE-O0-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-NOLSE-O0-NEXT:    strb w5, [x8]
+; CHECK-NOLSE-O0-NEXT:    ret
+;
+; CHECK-OUTLINE-O0-LABEL: atomic_truncstore_relaxed_8:
+; CHECK-OUTLINE-O0:       ; %bb.0:
+; CHECK-OUTLINE-O0-NEXT:    strb w2, [x0, #4095]
+; CHECK-OUTLINE-O0-NEXT:    strb w3, [x0, w1, sxtw]
+; CHECK-OUTLINE-O0-NEXT:    sturb w4, [x0, #-256]
+; CHECK-OUTLINE-O0-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-OUTLINE-O0-NEXT:    strb w5, [x8]
+; CHECK-OUTLINE-O0-NEXT:    ret
+;
+; CHECK-LSE-O1-LABEL: atomic_truncstore_relaxed_8:
+; CHECK-LSE-O1:       ; %bb.0:
+; CHECK-LSE-O1-NEXT:    strb w2, [x0, #4095]
+; CHECK-LSE-O1-NEXT:    strb w3, [x0, w1, sxtw]
+; CHECK-LSE-O1-NEXT:    sturb w4, [x0, #-256]
+; CHECK-LSE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-LSE-O1-NEXT:    strb w5, [x8]
+; CHECK-LSE-O1-NEXT:    ret
+;
+; CHECK-LSE-O0-LABEL: atomic_truncstore_relaxed_8:
+; CHECK-LSE-O0:       ; %bb.0:
+; CHECK-LSE-O0-NEXT:    strb w2, [x0, #4095]
+; CHECK-LSE-O0-NEXT:    strb w3, [x0, w1, sxtw]
+; CHECK-LSE-O0-NEXT:    sturb w4, [x0, #-256]
+; CHECK-LSE-O0-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-LSE-O0-NEXT:    strb w5, [x8]
+; CHECK-LSE-O0-NEXT:    ret
+  %ptr_unsigned = getelementptr i8, ptr %p, i32 4095
+  %val1 = trunc i32 %inp1 to i8
+  store atomic i8 %val1, ptr %ptr_unsigned monotonic, align 1
+
+  %ptr_regoff = getelementptr i8, ptr %p, i32 %off32
+  %val2 = trunc i32 %inp2 to i8
+  store atomic i8 %val2, ptr %ptr_regoff unordered, align 1
+
+  %ptr_unscaled = getelementptr i8, ptr %p, i32 -256
+  %val3 = trunc i32 %inp3 to i8
+  store atomic i8 %val3, ptr %ptr_unscaled monotonic, align 1
+
+  %ptr_random = getelementptr i8, ptr %p, i32 1191936 ; 0x123000 (i.e. ADD imm)
+  %val4 = trunc i32 %inp4 to i8
+  store atomic i8 %val4, ptr %ptr_random unordered, align 1
+
+  ret void
+}
+
+define void @atomic_truncstore_relaxed_16(ptr %p, i32 %off32, i32 %inp1, i32 %inp2, i32 %inp3, i32 %inp4) #0 {
+; CHECK-NOLSE-O1-LABEL: atomic_truncstore_relaxed_16:
+; CHECK-NOLSE-O1:       ; %bb.0:
+; CHECK-NOLSE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-NOLSE-O1-NEXT:    strh w2, [x0, #8190]
+; CHECK-NOLSE-O1-NEXT:    strh w3, [x0, w1, sxtw #1]
+; CHECK-NOLSE-O1-NEXT:    sturh w4, [x0, #-256]
+; CHECK-NOLSE-O1-NEXT:    strh w5, [x8]
+; CHECK-NOLSE-O1-NEXT:    ret
+;
+; CHECK-OUTLINE-O1-LABEL: atomic_truncstore_relaxed_16:
+; CHECK-OUTLINE-O1:       ; %bb.0:
+; CHECK-OUTLINE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-OUTLINE-O1-NEXT:    strh w2, [x0, #8190]
+; CHECK-OUTLINE-O1-NEXT:    strh w3, [x0, w1, sxtw #1]
+; CHECK-OUTLINE-O1-NEXT:    sturh w4, [x0, #-256]
+; CHECK-OUTLINE-O1-NEXT:    strh w5, [x8]
+; CHECK-OUTLINE-O1-NEXT:    ret
+;
+; CHECK-NOLSE-O0-LABEL: atomic_truncstore_relaxed_16:
+; CHECK-NOLSE-O0:       ; %bb.0:
+; CHECK-NOLSE-O0-NEXT:    strh w2, [x0, #8190]
+; CHECK-NOLSE-O0-NEXT:    strh w3, [x0, w1, sxtw #1]
+; CHECK-NOLSE-O0-NEXT:    sturh w4, [x0, #-256]
+; CHECK-NOLSE-O0-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-NOLSE-O0-NEXT:    strh w5, [x8]
+; CHECK-NOLSE-O0-NEXT:    ret
+;
+; CHECK-OUTLINE-O0-LABEL: atomic_truncstore_relaxed_16:
+; CHECK-OUTLINE-O0:       ; %bb.0:
+; CHECK-OUTLINE-O0-NEXT:    strh w2, [x0, #8190]
+; CHECK-OUTLINE-O0-NEXT:    strh w3, [x0, w1, sxtw #1]
+; CHECK-OUTLINE-O0-NEXT:    sturh w4, [x0, #-256]
+; CHECK-OUTLINE-O0-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-OUTLINE-O0-NEXT:    strh w5, [x8]
+; CHECK-OUTLINE-O0-NEXT:    ret
+;
+; CHECK-LSE-O1-LABEL: atomic_truncstore_relaxed_16:
+; CHECK-LSE-O1:       ; %bb.0:
+; CHECK-LSE-O1-NEXT:    strh w2, [x0, #8190]
+; CHECK-LSE-O1-NEXT:    strh w3, [x0, w1, sxtw #1]
+; CHECK-LSE-O1-NEXT:    sturh w4, [x0, #-256]
+; CHECK-LSE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-LSE-O1-NEXT:    strh w5, [x8]
+; CHECK-LSE-O1-NEXT:    ret
+;
+; CHECK-LSE-O0-LABEL: atomic_truncstore_relaxed_16:
+; CHECK-LSE-O0:       ; %bb.0:
+; CHECK-LSE-O0-NEXT:    strh w2, [x0, #8190]
+; CHECK-LSE-O0-NEXT:    strh w3, [x0, w1, sxtw #1]
+; CHECK-LSE-O0-NEXT:    sturh w4, [x0, #-256]
+; CHECK-LSE-O0-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-LSE-O0-NEXT:    strh w5, [x8]
+; CHECK-LSE-O0-NEXT:    ret
+  %ptr_unsigned = getelementptr i16, ptr %p, i32 4095
+  %val1 = trunc i32 %inp1 to i16
+  store atomic i16 %val1, ptr %ptr_unsigned monotonic, align 2
+
+  %ptr_regoff = getelementptr i16, ptr %p, i32 %off32
+  %val2 = trunc i32 %inp2 to i16
+  store atomic i16 %val2, ptr %ptr_regoff unordered, align 2
+
+  %ptr_unscaled = getelementptr i16, ptr %p, i32 -128
+  %val3 = trunc i32 %inp3 to i16
+  store atomic i16 %val3, ptr %ptr_unscaled monotonic, align 2
+
+  %ptr_random = getelementptr i16, ptr %p, i32 595968 ; 0x123000/2 (i.e. ADD imm)
+  %val4 = trunc i32 %inp4 to i16
+  store atomic i16 %val4, ptr %ptr_random unordered, align 2
+
+  ret void
+}
+
+define void @atomic_truncstore_relaxed_32(ptr %p, i32 %off32, i64 %inp1, i64 %inp2, i64 %inp3, i64 %inp4) #0 {
+; CHECK-NOLSE-O1-LABEL: atomic_truncstore_relaxed_32:
+; CHECK-NOLSE-O1:       ; %bb.0:
+; CHECK-NOLSE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-NOLSE-O1-NEXT:    str w2, [x0, #16380]
+; CHECK-NOLSE-O1-NEXT:    str w3, [x0, w1, sxtw #2]
+; CHECK-NOLSE-O1-NEXT:    stur w4, [x0, #-256]
+; CHECK-NOLSE-O1-NEXT:    str w5, [x8]
+; CHECK-NOLSE-O1-NEXT:    ret
+;
+; CHECK-OUTLINE-O1-LABEL: atomic_truncstore_relaxed_32:
+; CHECK-OUTLINE-O1:       ; %bb.0:
+; CHECK-OUTLINE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-OUTLINE-O1-NEXT:    str w2, [x0, #16380]
+; CHECK-OUTLINE-O1-NEXT:    str w3, [x0, w1, sxtw #2]
+; CHECK-OUTLINE-O1-NEXT:    stur w4, [x0, #-256]
+; CHECK-OUTLINE-O1-NEXT:    str w5, [x8]
+; CHECK-OUTLINE-O1-NEXT:    ret
+;
+; CHECK-NOLSE-O0-LABEL: atomic_truncstore_relaxed_32:
+; CHECK-NOLSE-O0:       ; %bb.0:
+; CHECK-NOLSE-O0-NEXT:    mov w8, w2
+; CHECK-NOLSE-O0-NEXT:    str w8, [x0, #16380]
+; CHECK-NOLSE-O0-NEXT:    mov w8, w3
+; CHECK-NOLSE-O0-NEXT:    str w8, [x0, w1, sxtw #2]
+; CHECK-NOLSE-O0-NEXT:    mov w8, w4
+; CHECK-NOLSE-O0-NEXT:    stur w8, [x0, #-256]
+; CHECK-NOLSE-O0-NEXT:    mov w8, w5
+; CHECK-NOLSE-O0-NEXT:    add x9, x0, #291, lsl #12 ; =1191936
+; CHECK-NOLSE-O0-NEXT:    str w8, [x9]
+; CHECK-NOLSE-O0-NEXT:    ret
+;
+; CHECK-OUTLINE-O0-LABEL: atomic_truncstore_relaxed_32:
+; CHECK-OUTLINE-O0:       ; %bb.0:
+; CHECK-OUTLINE-O0-NEXT:    mov w8, w2
+; CHECK-OUTLINE-O0-NEXT:    str w8, [x0, #16380]
+; CHECK-OUTLINE-O0-NEXT:    mov w8, w3
+; CHECK-OUTLINE-O0-NEXT:    str w8, [x0, w1, sxtw #2]
+; CHECK-OUTLINE-O0-NEXT:    mov w8, w4
+; CHECK-OUTLINE-O0-NEXT:    stur w8, [x0, #-256]
+; CHECK-OUTLINE-O0-NEXT:    mov w8, w5
+; CHECK-OUTLINE-O0-NEXT:    add x9, x0, #291, lsl #12 ; =1191936
+; CHECK-OUTLINE-O0-NEXT:    str w8, [x9]
+; CHECK-OUTLINE-O0-NEXT:    ret
+;
+; CHECK-LSE-O1-LABEL: atomic_truncstore_relaxed_32:
+; CHECK-LSE-O1:       ; %bb.0:
+; CHECK-LSE-O1-NEXT:    str w2, [x0, #16380]
+; CHECK-LSE-O1-NEXT:    str w3, [x0, w1, sxtw #2]
+; CHECK-LSE-O1-NEXT:    stur w4, [x0, #-256]
+; CHECK-LSE-O1-NEXT:    add x8, x0, #291, lsl #12 ; =1191936
+; CHECK-LSE-O1-NEXT:    str w5, [x8]
+; CHECK-LSE-O1-NEXT:    ret
+;
+; CHECK-LSE-O0-LABEL: atomic_truncstore_relaxed_32:
+; CHECK-LSE-O0:       ; %bb.0:
+; CHECK-LSE-O0-NEXT:    mov x8, x2
+; CHECK-LSE-O0-NEXT:    str w8, [x0, #16380]
+; CHECK-LSE-O0-NEXT:    mov x8, x3
+; CHECK-LSE-O0-NEXT:    str w8, [x0, w1, sxtw #2]
+; CHECK-LSE-O0-NEXT:    mov x8, x4
+; CHECK-LSE-O0-NEXT:    stur w8, [x0, #-256]
+; CHECK-LSE-O0-NEXT:    mov x8, x5
+; CHECK-LSE-O0-NEXT:    add x9, x0, #291, lsl #12 ; =1191936
+; CHECK-LSE-O0-NEXT:    str w8, [x9]
+; CHECK-LSE-O0-NEXT:    ret
+  %ptr_unsigned = getelementptr i32, ptr %p, i32 4095
+  %val1 = trunc i64 %inp1 to i32
+  store atomic i32 %val1, ptr %ptr_unsigned monotonic, align 4
+
+  %ptr_regoff = getelementptr i32, ptr %p, i32 %off32
+  %val2 = trunc i64 %inp2 to i32
+  store atomic i32 %val2, ptr %ptr_regoff unordered, align 4
+
+  %ptr_unscaled = getelementptr i32, ptr %p, i32 -64
+  %val3 = trunc i64 %inp3 to i32
+  store atomic i32 %val3, ptr %ptr_unscaled monotonic, align 4
+
+  %ptr_random = getelementptr i32, ptr %p, i32 297984 ; 0x123000/4 (i.e. ADD imm)
+  %val4 = trunc i64 %inp4 to i32
+  store atomic i32 %val4, ptr %ptr_random unordered, align 4
+
+  ret void
+}
+
+
 define i32 @load_zext(ptr %p8, ptr %p16) {
 ; CHECK-NOLSE-O1-LABEL: load_zext:
 ; CHECK-NOLSE-O1:       ; %bb.0:
@@ -1804,29 +2037,119 @@ define i32 @load_sext(ptr %p8, ptr %p16) {
   ret i32 %res
 }
 
-define void @store_trunc(i32 %val, ptr %p8, ptr %p16) {
-; CHECK-NOLSE-LABEL: store_trunc:
-; CHECK-NOLSE:       ; %bb.0:
-; CHECK-NOLSE-NEXT:    stlrb w0, [x1]
-; CHECK-NOLSE-NEXT:    strh w0, [x2]
-; CHECK-NOLSE-NEXT:    ret
+define void @store_trunc(i32 %val, ptr %p8, ptr %p16, i64 %inp64) {
+; CHECK-NOLSE-O1-LABEL: store_trunc:
+; CHECK-NOLSE-O1:       ; %bb.0:
+; CHECK-NOLSE-O1-NEXT:    sub sp, sp, #32
+; CHECK-NOLSE-O1-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill
+; CHECK-NOLSE-O1-NEXT:    .cfi_def_cfa_offset 32
+; CHECK-NOLSE-O1-NEXT:    .cfi_offset w30, -8
+; CHECK-NOLSE-O1-NEXT:    .cfi_offset w29, -16
+; CHECK-NOLSE-O1-NEXT:    stlrb w0, [x1]
+; CHECK-NOLSE-O1-NEXT:    strh w0, [x2]
+; CHECK-NOLSE-O1-NEXT:    add x2, sp, #12
+; CHECK-NOLSE-O1-NEXT:    mov w0, #4 ; =0x4
+; CHECK-NOLSE-O1-NEXT:    str w3, [sp, #12]
+; CHECK-NOLSE-O1-NEXT:    mov w3, #5 ; =0x5
+; CHECK-NOLSE-O1-NEXT:    bl ___atomic_store
+; CHECK-NOLSE-O1-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
+; CHECK-NOLSE-O1-NEXT:    add sp, sp, #32
+; CHECK-NOLSE-O1-NEXT:    ret
 ;
-; CHECK-OUTLINE-LABEL: store_trunc:
-; CHECK-OUTLINE:       ; %bb.0:
-; CHECK-OUTLINE-NEXT:    stlrb w0, [x1]
-; CHECK-OUTLINE-NEXT:    strh w0, [x2]
-; CHECK-OUTLINE-NEXT:    ret
+; CHECK-OUTLINE-O1-LABEL: store_trunc:
+; CHECK-OUTLINE-O1:       ; %bb.0:
+; CHECK-OUTLINE-O1-NEXT:    sub sp, sp, #32
+; CHECK-OUTLINE-O1-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill
+; CHECK-OUTLINE-O1-NEXT:    .cfi_def_cfa_offset 32
+; CHECK-OUTLINE-O1-NEXT:    .cfi_offset w30, -8
+; CHECK-OUTLINE-O1-NEXT:    .cfi_offset w29, -16
+; CHECK-OUTLINE-O1-NEXT:    stlrb w0, [x1]
+; CHECK-OUTLINE-O1-NEXT:    strh w0, [x2]
+; CHECK-OUTLINE-O1-NEXT:    add x2, sp, #12
+; CHECK-OUTLINE-O1-NEXT:    mov w0, #4 ; =0x4
+; CHECK-OUTLINE-O1-NEXT:    str w3, [sp, #12]
+; CHECK-OUTLINE-O1-NEXT:    mov w3, #5 ; =0x5
+; CHECK-OUTLINE-O1-NEXT:    bl ___atomic_store
+; CHECK-OUTLINE-O1-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
+; CHECK-OUTLINE-O1-NEXT:    add sp, sp, #32
+; CHECK-OUTLINE-O1-NEXT:    ret
+;
+; CHECK-NOLSE-O0-LABEL: store_trunc:
+; CHECK-NOLSE-O0:       ; %bb.0:
+; CHECK-NOLSE-O0-NEXT:    sub sp, sp, #32
+; CHECK-NOLSE-O0-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill
+; CHECK-NOLSE-O0-NEXT:    .cfi_def_cfa_offset 32
+; CHECK-NOLSE-O0-NEXT:    .cfi_offset w30, -8
+; CHECK-NOLSE-O0-NEXT:    .cfi_offset w29, -16
+; CHECK-NOLSE-O0-NEXT:    stlrb w0, [x1]
+; CHECK-NOLSE-O0-NEXT:    strh w0, [x2]
+; CHECK-NOLSE-O0-NEXT:    add x2, sp, #12
+; CHECK-NOLSE-O0-NEXT:    mov w8, w3
+; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12]
+; CHECK-NOLSE-O0-NEXT:    mov w8, #4 ; =0x4
+; CHECK-NOLSE-O0-NEXT:    mov w0, w8
+; CHECK-NOLSE-O0-NEXT:    mov w3, #5 ; =0x5
+; CHECK-NOLSE-O0-NEXT:    bl ___atomic_store
+; CHECK-NOLSE-O0-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
+; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
+; CHECK-NOLSE-O0-NEXT:    ret
+;
+; CHECK-OUTLINE-O0-LABEL: store_trunc:
+; CHECK-OUTLINE-O0:       ; %bb.0:
+; CHECK-OUTLINE-O0-NEXT:    sub sp, sp, #32
+; CHECK-OUTLINE-O0-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill
+; CHECK-OUTLINE-O0-NEXT:    .cfi_def_cfa_offset 32
+; CHECK-OUTLINE-O0-NEXT:    .cfi_offset w30, -8
+; CHECK-OUTLINE-O0-NEXT:    .cfi_offset w29, -16
+; CHECK-OUTLINE-O0-NEXT:    stlrb w0, [x1]
+; CHECK-OUTLINE-O0-NEXT:    strh w0, [x2]
+; CHECK-OUTLINE-O0-NEXT:    add x2, sp, #12
+; CHECK-OUTLINE-O0-NEXT:    mov w8, w3
+; CHECK-OUTLINE-O0-NEXT:    str w8, [sp, #12]
+; CHECK-OUTLINE-O0-NEXT:    mov w8, #4 ; =0x4
+; CHECK-OUTLINE-O0-NEXT:    mov w0, w8
+; CHECK-OUTLINE-O0-NEXT:    mov w3, #5 ; =0x5
+; CHECK-OUTLINE-O0-NEXT:    bl ___atomic_store
+; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
+; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #32
+; CHECK-OUTLINE-O0-NEXT:    ret
 ;
 ; CHECK-LSE-O1-LABEL: store_trunc:
 ; CHECK-LSE-O1:       ; %bb.0:
+; CHECK-LSE-O1-NEXT:    sub sp, sp, #32
+; CHECK-LSE-O1-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill
+; CHECK-LSE-O1-NEXT:    .cfi_def_cfa_offset 32
+; CHECK-LSE-O1-NEXT:    .cfi_offset w30, -8
+; CHECK-LSE-O1-NEXT:    .cfi_offset w29, -16
 ; CHECK-LSE-O1-NEXT:    stlrb w0, [x1]
 ; CHECK-LSE-O1-NEXT:    strh w0, [x2]
+; CHECK-LSE-O1-NEXT:    str w3, [sp, #12]
+; CHECK-LSE-O1-NEXT:    add x2, sp, #12
+; CHECK-LSE-O1-NEXT:    mov w0, #4 ; =0x4
+; CHECK-LSE-O1-NEXT:    mov w3, #5 ; =0x5
+; CHECK-LSE-O1-NEXT:    bl ___atomic_store
+; CHECK-LSE-O1-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
+; CHECK-LSE-O1-NEXT:    add sp, sp, #32
 ; CHECK-LSE-O1-NEXT:    ret
 ;
 ; CHECK-LSE-O0-LABEL: store_trunc:
 ; CHECK-LSE-O0:       ; %bb.0:
+; CHECK-LSE-O0-NEXT:    sub sp, sp, #32
+; CHECK-LSE-O0-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill
+; CHECK-LSE-O0-NEXT:    .cfi_def_cfa_offset 32
+; CHECK-LSE-O0-NEXT:    .cfi_offset w30, -8
+; CHECK-LSE-O0-NEXT:    .cfi_offset w29, -16
 ; CHECK-LSE-O0-NEXT:    stlrb w0, [x1]
 ; CHECK-LSE-O0-NEXT:    strh w0, [x2]
+; CHECK-LSE-O0-NEXT:    add x2, sp, #12
+; CHECK-LSE-O0-NEXT:    mov x8, x3
+; CHECK-LSE-O0-NEXT:    str w8, [sp, #12]
+; CHECK-LSE-O0-NEXT:    mov w8, #4 ; =0x4
+; CHECK-LSE-O0-NEXT:    mov x0, x8
+; CHECK-LSE-O0-NEXT:    mov w3, #5 ; =0x5
+; CHECK-LSE-O0-NEXT:    bl ___atomic_store
+; CHECK-LSE-O0-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
+; CHECK-LSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-LSE-O0-NEXT:    ret
   %val8 = trunc i32 %val to i8
   store atomic i8 %val8, ptr %p8 seq_cst, align 1
@@ -1834,18 +2157,21 @@ define void @store_trunc(i32 %val, ptr %p8, ptr %p16) {
   %val16 = trunc i32 %val to i16
   store atomic i16 %val16, ptr %p16 monotonic, align 2
 
+  %val32 = trunc i64 %inp64 to i32
+  store atomic i32 %val32, ptr %p8 seq_cst, align 1
+
   ret void
 }
 
 define i8 @atomicrmw_add_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_add_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB27_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB30_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    add w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB27_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB30_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -1871,33 +2197,33 @@ define i8 @atomicrmw_add_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB27_1
-; CHECK-NOLSE-O0-NEXT:  LBB27_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB30_1
+; CHECK-NOLSE-O0-NEXT:  LBB30_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB27_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB30_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add w12, w8, w10, uxth
-; CHECK-NOLSE-O0-NEXT:  LBB27_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB27_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB30_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB30_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB27_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB30_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB27_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB30_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB27_2
-; CHECK-NOLSE-O0-NEXT:  LBB27_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB27_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB30_2
+; CHECK-NOLSE-O0-NEXT:  LBB30_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB30_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB27_5
-; CHECK-NOLSE-O0-NEXT:    b LBB27_1
-; CHECK-NOLSE-O0-NEXT:  LBB27_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB30_5
+; CHECK-NOLSE-O0-NEXT:    b LBB30_1
+; CHECK-NOLSE-O0-NEXT:  LBB30_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -1933,11 +2259,11 @@ define i8 @atomicrmw_add_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_xchg_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xchg_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB28_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB31_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    stxrb w9, w1, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB28_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB31_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -1963,32 +2289,32 @@ define i8 @atomicrmw_xchg_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB28_1
-; CHECK-NOLSE-O0-NEXT:  LBB28_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB31_1
+; CHECK-NOLSE-O0-NEXT:  LBB31_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB28_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB31_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w12, [sp, #24] ; 4-byte Reload
-; CHECK-NOLSE-O0-NEXT:  LBB28_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB28_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB31_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB31_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB28_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB31_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB28_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB31_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB28_2
-; CHECK-NOLSE-O0-NEXT:  LBB28_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB28_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB31_2
+; CHECK-NOLSE-O0-NEXT:  LBB31_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB31_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB28_5
-; CHECK-NOLSE-O0-NEXT:    b LBB28_1
-; CHECK-NOLSE-O0-NEXT:  LBB28_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB31_5
+; CHECK-NOLSE-O0-NEXT:    b LBB31_1
+; CHECK-NOLSE-O0-NEXT:  LBB31_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2024,12 +2350,12 @@ define i8 @atomicrmw_xchg_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_sub_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_sub_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB29_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB32_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sub w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB29_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB32_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2055,33 +2381,33 @@ define i8 @atomicrmw_sub_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB29_1
-; CHECK-NOLSE-O0-NEXT:  LBB29_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB32_1
+; CHECK-NOLSE-O0-NEXT:  LBB32_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB29_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB32_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB29_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB29_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB32_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB32_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB29_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB32_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB29_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB32_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB29_2
-; CHECK-NOLSE-O0-NEXT:  LBB29_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB29_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB32_2
+; CHECK-NOLSE-O0-NEXT:  LBB32_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB32_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB29_5
-; CHECK-NOLSE-O0-NEXT:    b LBB29_1
-; CHECK-NOLSE-O0-NEXT:  LBB29_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB32_5
+; CHECK-NOLSE-O0-NEXT:    b LBB32_1
+; CHECK-NOLSE-O0-NEXT:  LBB32_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2121,12 +2447,12 @@ define i8 @atomicrmw_sub_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_and_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_and_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB30_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB33_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB30_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB33_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2152,33 +2478,33 @@ define i8 @atomicrmw_and_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB30_1
-; CHECK-NOLSE-O0-NEXT:  LBB30_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB33_1
+; CHECK-NOLSE-O0-NEXT:  LBB33_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB30_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB33_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    and w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB30_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB30_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB33_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB33_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB30_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB33_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB30_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB33_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB30_2
-; CHECK-NOLSE-O0-NEXT:  LBB30_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB30_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB33_2
+; CHECK-NOLSE-O0-NEXT:  LBB33_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB33_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB30_5
-; CHECK-NOLSE-O0-NEXT:    b LBB30_1
-; CHECK-NOLSE-O0-NEXT:  LBB30_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB33_5
+; CHECK-NOLSE-O0-NEXT:    b LBB33_1
+; CHECK-NOLSE-O0-NEXT:  LBB33_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2218,12 +2544,12 @@ define i8 @atomicrmw_and_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_or_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_or_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB31_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB34_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    orr w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB31_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB34_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2249,33 +2575,33 @@ define i8 @atomicrmw_or_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB31_1
-; CHECK-NOLSE-O0-NEXT:  LBB31_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB34_1
+; CHECK-NOLSE-O0-NEXT:  LBB34_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB31_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB34_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    orr w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB31_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB31_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB34_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB34_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB31_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB34_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB31_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB34_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB31_2
-; CHECK-NOLSE-O0-NEXT:  LBB31_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB31_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB34_2
+; CHECK-NOLSE-O0-NEXT:  LBB34_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB34_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB31_5
-; CHECK-NOLSE-O0-NEXT:    b LBB31_1
-; CHECK-NOLSE-O0-NEXT:  LBB31_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB34_5
+; CHECK-NOLSE-O0-NEXT:    b LBB34_1
+; CHECK-NOLSE-O0-NEXT:  LBB34_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2311,12 +2637,12 @@ define i8 @atomicrmw_or_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_xor_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xor_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB32_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB35_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    eor w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB32_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB35_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2342,33 +2668,33 @@ define i8 @atomicrmw_xor_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB32_1
-; CHECK-NOLSE-O0-NEXT:  LBB32_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB35_1
+; CHECK-NOLSE-O0-NEXT:  LBB35_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB32_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB35_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    eor w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB32_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB32_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB35_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB35_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB32_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB35_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB32_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB35_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB32_2
-; CHECK-NOLSE-O0-NEXT:  LBB32_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB32_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB35_2
+; CHECK-NOLSE-O0-NEXT:  LBB35_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB35_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB32_5
-; CHECK-NOLSE-O0-NEXT:    b LBB32_1
-; CHECK-NOLSE-O0-NEXT:  LBB32_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB35_5
+; CHECK-NOLSE-O0-NEXT:    b LBB35_1
+; CHECK-NOLSE-O0-NEXT:  LBB35_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2404,28 +2730,28 @@ define i8 @atomicrmw_xor_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_min_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB33_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB36_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sxtb w9, w8
 ; CHECK-NOLSE-O1-NEXT:    cmp w9, w1, sxtb
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, lt
 ; CHECK-NOLSE-O1-NEXT:    stxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB33_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB36_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_min_i8:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB33_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB36_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    sxtb w9, w8
 ; CHECK-OUTLINE-O1-NEXT:    cmp w9, w1, sxtb
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, lt
 ; CHECK-OUTLINE-O1-NEXT:    stxrb w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB33_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB36_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -2438,35 +2764,35 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB33_1
-; CHECK-NOLSE-O0-NEXT:  LBB33_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB36_1
+; CHECK-NOLSE-O0-NEXT:  LBB36_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB33_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB36_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    sxtb w9, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w8, sxtb
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, le
-; CHECK-NOLSE-O0-NEXT:  LBB33_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB33_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB36_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB36_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB33_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB36_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB33_2 Depth=2
-; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB33_2
-; CHECK-NOLSE-O0-NEXT:  LBB33_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB33_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB36_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB36_2
+; CHECK-NOLSE-O0-NEXT:  LBB36_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB36_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB33_5
-; CHECK-NOLSE-O0-NEXT:    b LBB33_1
-; CHECK-NOLSE-O0-NEXT:  LBB33_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB36_5
+; CHECK-NOLSE-O0-NEXT:    b LBB36_1
+; CHECK-NOLSE-O0-NEXT:  LBB36_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2482,8 +2808,8 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrb w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB33_1
-; CHECK-OUTLINE-O0-NEXT:  LBB33_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB36_1
+; CHECK-OUTLINE-O0-NEXT:  LBB36_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -2498,9 +2824,9 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    and w8, w0, #0xff
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxtb
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB33_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB33_1
-; CHECK-OUTLINE-O0-NEXT:  LBB33_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB36_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB36_1
+; CHECK-OUTLINE-O0-NEXT:  LBB36_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -2522,28 +2848,28 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) {
 define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_max_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB34_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB37_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sxtb w9, w8
 ; CHECK-NOLSE-O1-NEXT:    cmp w9, w1, sxtb
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, gt
 ; CHECK-NOLSE-O1-NEXT:    stlxrb w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB34_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB37_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_max_i8:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB34_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB37_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    sxtb w9, w8
 ; CHECK-OUTLINE-O1-NEXT:    cmp w9, w1, sxtb
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, gt
 ; CHECK-OUTLINE-O1-NEXT:    stlxrb w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB34_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB37_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -2556,35 +2882,35 @@ define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB34_1
-; CHECK-NOLSE-O0-NEXT:  LBB34_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB37_1
+; CHECK-NOLSE-O0-NEXT:  LBB37_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB34_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB37_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    sxtb w9, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w8, sxtb
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, gt
-; CHECK-NOLSE-O0-NEXT:  LBB34_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB34_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB37_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB37_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB34_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB37_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB34_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB37_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB34_2
-; CHECK-NOLSE-O0-NEXT:  LBB34_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB34_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB37_2
+; CHECK-NOLSE-O0-NEXT:  LBB37_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB37_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB34_5
-; CHECK-NOLSE-O0-NEXT:    b LBB34_1
-; CHECK-NOLSE-O0-NEXT:  LBB34_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB37_5
+; CHECK-NOLSE-O0-NEXT:    b LBB37_1
+; CHECK-NOLSE-O0-NEXT:  LBB37_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2600,8 +2926,8 @@ define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrb w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB34_1
-; CHECK-OUTLINE-O0-NEXT:  LBB34_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB37_1
+; CHECK-OUTLINE-O0-NEXT:  LBB37_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -2616,9 +2942,9 @@ define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    and w8, w0, #0xff
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxtb
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB34_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB34_1
-; CHECK-OUTLINE-O0-NEXT:  LBB34_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB37_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB37_1
+; CHECK-OUTLINE-O0-NEXT:  LBB37_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -2641,14 +2967,14 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umin_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    and w9, w1, #0xff
-; CHECK-NOLSE-O1-NEXT:  LBB35_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB38_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w8, w8, #0xff
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w9
 ; CHECK-NOLSE-O1-NEXT:    csel w10, w8, w9, lo
 ; CHECK-NOLSE-O1-NEXT:    stlxrb w11, w10, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB35_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB38_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2656,14 +2982,14 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umin_i8:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
 ; CHECK-OUTLINE-O1-NEXT:    and w9, w1, #0xff
-; CHECK-OUTLINE-O1-NEXT:  LBB35_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB38_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxrb w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    and w8, w8, #0xff
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w9
 ; CHECK-OUTLINE-O1-NEXT:    csel w10, w8, w9, lo
 ; CHECK-OUTLINE-O1-NEXT:    stlxrb w11, w10, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB35_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB38_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -2676,35 +3002,35 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB35_1
-; CHECK-NOLSE-O0-NEXT:  LBB35_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB38_1
+; CHECK-NOLSE-O0-NEXT:  LBB38_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB35_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB38_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    and w9, w10, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w8, uxtb
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, ls
-; CHECK-NOLSE-O0-NEXT:  LBB35_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB35_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB38_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB38_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB35_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB38_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB35_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB38_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB35_2
-; CHECK-NOLSE-O0-NEXT:  LBB35_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB35_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB38_2
+; CHECK-NOLSE-O0-NEXT:  LBB38_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB38_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB35_5
-; CHECK-NOLSE-O0-NEXT:    b LBB35_1
-; CHECK-NOLSE-O0-NEXT:  LBB35_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB38_5
+; CHECK-NOLSE-O0-NEXT:    b LBB38_1
+; CHECK-NOLSE-O0-NEXT:  LBB38_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2720,8 +3046,8 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrb w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB35_1
-; CHECK-OUTLINE-O0-NEXT:  LBB35_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB38_1
+; CHECK-OUTLINE-O0-NEXT:  LBB38_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -2736,9 +3062,9 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    and w8, w0, #0xff
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxtb
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB35_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB35_1
-; CHECK-OUTLINE-O0-NEXT:  LBB35_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB38_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB38_1
+; CHECK-OUTLINE-O0-NEXT:  LBB38_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -2761,14 +3087,14 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umax_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    and w9, w1, #0xff
-; CHECK-NOLSE-O1-NEXT:  LBB36_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB39_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w8, w8, #0xff
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w9
 ; CHECK-NOLSE-O1-NEXT:    csel w10, w8, w9, hi
 ; CHECK-NOLSE-O1-NEXT:    stxrb w11, w10, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB36_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB39_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2776,14 +3102,14 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umax_i8:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
 ; CHECK-OUTLINE-O1-NEXT:    and w9, w1, #0xff
-; CHECK-OUTLINE-O1-NEXT:  LBB36_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB39_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxrb w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    and w8, w8, #0xff
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w9
 ; CHECK-OUTLINE-O1-NEXT:    csel w10, w8, w9, hi
 ; CHECK-OUTLINE-O1-NEXT:    stxrb w11, w10, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB36_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB39_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -2796,35 +3122,35 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrb w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB36_1
-; CHECK-NOLSE-O0-NEXT:  LBB36_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB39_1
+; CHECK-NOLSE-O0-NEXT:  LBB39_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB36_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB39_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    and w9, w10, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w8, uxtb
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, hi
-; CHECK-NOLSE-O0-NEXT:  LBB36_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB36_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB39_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB39_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w8, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w8, w10, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB36_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB39_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB36_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB39_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB36_2
-; CHECK-NOLSE-O0-NEXT:  LBB36_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB36_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB39_2
+; CHECK-NOLSE-O0-NEXT:  LBB39_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB39_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    and w9, w8, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxtb
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB36_5
-; CHECK-NOLSE-O0-NEXT:    b LBB36_1
-; CHECK-NOLSE-O0-NEXT:  LBB36_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB39_5
+; CHECK-NOLSE-O0-NEXT:    b LBB39_1
+; CHECK-NOLSE-O0-NEXT:  LBB39_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2840,8 +3166,8 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrb w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB36_1
-; CHECK-OUTLINE-O0-NEXT:  LBB36_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB39_1
+; CHECK-OUTLINE-O0-NEXT:  LBB39_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -2856,9 +3182,9 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    and w8, w0, #0xff
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxtb
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB36_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB36_1
-; CHECK-OUTLINE-O0-NEXT:  LBB36_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB39_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB39_1
+; CHECK-OUTLINE-O0-NEXT:  LBB39_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -2880,12 +3206,12 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) {
 define i16 @atomicrmw_add_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_add_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB37_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB40_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    add w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB37_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB40_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -2911,34 +3237,34 @@ define i16 @atomicrmw_add_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB37_1
-; CHECK-NOLSE-O0-NEXT:  LBB37_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB40_1
+; CHECK-NOLSE-O0-NEXT:  LBB40_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB37_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB40_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add w12, w9, w8, uxth
-; CHECK-NOLSE-O0-NEXT:  LBB37_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB37_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB40_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB40_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB37_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB40_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB37_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB40_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB37_2
-; CHECK-NOLSE-O0-NEXT:  LBB37_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB37_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB40_2
+; CHECK-NOLSE-O0-NEXT:  LBB40_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB40_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB37_5
-; CHECK-NOLSE-O0-NEXT:    b LBB37_1
-; CHECK-NOLSE-O0-NEXT:  LBB37_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB40_5
+; CHECK-NOLSE-O0-NEXT:    b LBB40_1
+; CHECK-NOLSE-O0-NEXT:  LBB40_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -2974,11 +3300,11 @@ define i16 @atomicrmw_add_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_xchg_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xchg_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB38_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB41_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    stxrh w9, w1, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB38_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB41_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3004,33 +3330,33 @@ define i16 @atomicrmw_xchg_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB38_1
-; CHECK-NOLSE-O0-NEXT:  LBB38_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB41_1
+; CHECK-NOLSE-O0-NEXT:  LBB41_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB38_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB41_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w12, [sp, #24] ; 4-byte Reload
-; CHECK-NOLSE-O0-NEXT:  LBB38_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB38_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB41_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB41_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB38_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB41_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB38_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB41_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB38_2
-; CHECK-NOLSE-O0-NEXT:  LBB38_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB38_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB41_2
+; CHECK-NOLSE-O0-NEXT:  LBB41_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB41_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB38_5
-; CHECK-NOLSE-O0-NEXT:    b LBB38_1
-; CHECK-NOLSE-O0-NEXT:  LBB38_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB41_5
+; CHECK-NOLSE-O0-NEXT:    b LBB41_1
+; CHECK-NOLSE-O0-NEXT:  LBB41_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3066,12 +3392,12 @@ define i16 @atomicrmw_xchg_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_sub_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_sub_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB39_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB42_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sub w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB39_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB42_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3097,34 +3423,34 @@ define i16 @atomicrmw_sub_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB39_1
-; CHECK-NOLSE-O0-NEXT:  LBB39_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB42_1
+; CHECK-NOLSE-O0-NEXT:  LBB42_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB39_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB42_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w12, w8, w9
-; CHECK-NOLSE-O0-NEXT:  LBB39_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB39_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB42_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB42_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB39_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB42_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB39_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB42_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB39_2
-; CHECK-NOLSE-O0-NEXT:  LBB39_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB39_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB42_2
+; CHECK-NOLSE-O0-NEXT:  LBB42_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB42_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB39_5
-; CHECK-NOLSE-O0-NEXT:    b LBB39_1
-; CHECK-NOLSE-O0-NEXT:  LBB39_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB42_5
+; CHECK-NOLSE-O0-NEXT:    b LBB42_1
+; CHECK-NOLSE-O0-NEXT:  LBB42_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3164,12 +3490,12 @@ define i16 @atomicrmw_sub_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_and_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_and_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB40_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB43_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB40_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB43_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3195,34 +3521,34 @@ define i16 @atomicrmw_and_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB40_1
-; CHECK-NOLSE-O0-NEXT:  LBB40_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB43_1
+; CHECK-NOLSE-O0-NEXT:  LBB43_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB40_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB43_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    and w12, w8, w9
-; CHECK-NOLSE-O0-NEXT:  LBB40_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB40_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB43_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB43_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB40_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB43_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB40_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB43_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB40_2
-; CHECK-NOLSE-O0-NEXT:  LBB40_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB40_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB43_2
+; CHECK-NOLSE-O0-NEXT:  LBB43_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB43_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB40_5
-; CHECK-NOLSE-O0-NEXT:    b LBB40_1
-; CHECK-NOLSE-O0-NEXT:  LBB40_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB43_5
+; CHECK-NOLSE-O0-NEXT:    b LBB43_1
+; CHECK-NOLSE-O0-NEXT:  LBB43_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3262,12 +3588,12 @@ define i16 @atomicrmw_and_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_or_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_or_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB41_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB44_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    orr w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB41_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB44_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3293,34 +3619,34 @@ define i16 @atomicrmw_or_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB41_1
-; CHECK-NOLSE-O0-NEXT:  LBB41_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB44_1
+; CHECK-NOLSE-O0-NEXT:  LBB44_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB41_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB44_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    orr w12, w8, w9
-; CHECK-NOLSE-O0-NEXT:  LBB41_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB41_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB44_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB44_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB41_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB44_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB41_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB44_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB41_2
-; CHECK-NOLSE-O0-NEXT:  LBB41_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB41_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB44_2
+; CHECK-NOLSE-O0-NEXT:  LBB44_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB44_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB41_5
-; CHECK-NOLSE-O0-NEXT:    b LBB41_1
-; CHECK-NOLSE-O0-NEXT:  LBB41_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB44_5
+; CHECK-NOLSE-O0-NEXT:    b LBB44_1
+; CHECK-NOLSE-O0-NEXT:  LBB44_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3356,12 +3682,12 @@ define i16 @atomicrmw_or_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_xor_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xor_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB42_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB45_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    eor w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB42_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB45_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3387,34 +3713,34 @@ define i16 @atomicrmw_xor_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB42_1
-; CHECK-NOLSE-O0-NEXT:  LBB42_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB45_1
+; CHECK-NOLSE-O0-NEXT:  LBB45_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB42_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB45_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    eor w12, w8, w9
-; CHECK-NOLSE-O0-NEXT:  LBB42_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB42_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB45_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB45_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB42_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB45_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB42_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB45_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB42_2
-; CHECK-NOLSE-O0-NEXT:  LBB42_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB42_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB45_2
+; CHECK-NOLSE-O0-NEXT:  LBB45_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB45_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB42_5
-; CHECK-NOLSE-O0-NEXT:    b LBB42_1
-; CHECK-NOLSE-O0-NEXT:  LBB42_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB45_5
+; CHECK-NOLSE-O0-NEXT:    b LBB45_1
+; CHECK-NOLSE-O0-NEXT:  LBB45_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3450,28 +3776,28 @@ define i16 @atomicrmw_xor_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_min_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB43_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB46_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sxth w9, w8
 ; CHECK-NOLSE-O1-NEXT:    cmp w9, w1, sxth
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, lt
 ; CHECK-NOLSE-O1-NEXT:    stxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB43_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB46_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_min_i16:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB43_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB46_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    sxth w9, w8
 ; CHECK-OUTLINE-O1-NEXT:    cmp w9, w1, sxth
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, lt
 ; CHECK-OUTLINE-O1-NEXT:    stxrh w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB43_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB46_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -3484,36 +3810,36 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB43_1
-; CHECK-NOLSE-O0-NEXT:  LBB43_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB46_1
+; CHECK-NOLSE-O0-NEXT:  LBB46_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB43_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB46_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    sxth w10, w8
 ; CHECK-NOLSE-O0-NEXT:    subs w10, w10, w9, sxth
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w8, w9, le
-; CHECK-NOLSE-O0-NEXT:  LBB43_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB43_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB46_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB46_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB43_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB46_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB43_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB46_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB43_2
-; CHECK-NOLSE-O0-NEXT:  LBB43_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB43_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB46_2
+; CHECK-NOLSE-O0-NEXT:  LBB46_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB46_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB43_5
-; CHECK-NOLSE-O0-NEXT:    b LBB43_1
-; CHECK-NOLSE-O0-NEXT:  LBB43_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB46_5
+; CHECK-NOLSE-O0-NEXT:    b LBB46_1
+; CHECK-NOLSE-O0-NEXT:  LBB46_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3529,8 +3855,8 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrh w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB43_1
-; CHECK-OUTLINE-O0-NEXT:  LBB43_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB46_1
+; CHECK-OUTLINE-O0-NEXT:  LBB46_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -3547,9 +3873,9 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    mov w0, w9
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxth
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB43_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB43_1
-; CHECK-OUTLINE-O0-NEXT:  LBB43_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB46_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB46_1
+; CHECK-OUTLINE-O0-NEXT:  LBB46_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -3571,28 +3897,28 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) {
 define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_max_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB44_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB47_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sxth w9, w8
 ; CHECK-NOLSE-O1-NEXT:    cmp w9, w1, sxth
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, gt
 ; CHECK-NOLSE-O1-NEXT:    stlxrh w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB44_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB47_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_max_i16:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB44_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB47_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    sxth w9, w8
 ; CHECK-OUTLINE-O1-NEXT:    cmp w9, w1, sxth
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, gt
 ; CHECK-OUTLINE-O1-NEXT:    stlxrh w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB44_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB47_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -3605,36 +3931,36 @@ define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB44_1
-; CHECK-NOLSE-O0-NEXT:  LBB44_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB47_1
+; CHECK-NOLSE-O0-NEXT:  LBB47_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB44_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB47_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    sxth w10, w8
 ; CHECK-NOLSE-O0-NEXT:    subs w10, w10, w9, sxth
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w8, w9, gt
-; CHECK-NOLSE-O0-NEXT:  LBB44_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB44_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB47_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB47_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB44_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB47_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB44_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB47_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB44_2
-; CHECK-NOLSE-O0-NEXT:  LBB44_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB44_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB47_2
+; CHECK-NOLSE-O0-NEXT:  LBB47_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB47_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB44_5
-; CHECK-NOLSE-O0-NEXT:    b LBB44_1
-; CHECK-NOLSE-O0-NEXT:  LBB44_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB47_5
+; CHECK-NOLSE-O0-NEXT:    b LBB47_1
+; CHECK-NOLSE-O0-NEXT:  LBB47_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3650,8 +3976,8 @@ define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrh w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB44_1
-; CHECK-OUTLINE-O0-NEXT:  LBB44_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB47_1
+; CHECK-OUTLINE-O0-NEXT:  LBB47_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -3668,9 +3994,9 @@ define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    mov w0, w9
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxth
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB44_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB44_1
-; CHECK-OUTLINE-O0-NEXT:  LBB44_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB47_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB47_1
+; CHECK-OUTLINE-O0-NEXT:  LBB47_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -3693,14 +4019,14 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umin_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    and w9, w1, #0xffff
-; CHECK-NOLSE-O1-NEXT:  LBB45_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB48_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w8, w8, #0xffff
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w9
 ; CHECK-NOLSE-O1-NEXT:    csel w10, w8, w9, lo
 ; CHECK-NOLSE-O1-NEXT:    stlxrh w11, w10, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB45_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB48_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3708,14 +4034,14 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umin_i16:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
 ; CHECK-OUTLINE-O1-NEXT:    and w9, w1, #0xffff
-; CHECK-OUTLINE-O1-NEXT:  LBB45_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB48_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxrh w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    and w8, w8, #0xffff
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w9
 ; CHECK-OUTLINE-O1-NEXT:    csel w10, w8, w9, lo
 ; CHECK-OUTLINE-O1-NEXT:    stlxrh w11, w10, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB45_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB48_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -3728,36 +4054,36 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB45_1
-; CHECK-NOLSE-O0-NEXT:  LBB45_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB48_1
+; CHECK-NOLSE-O0-NEXT:  LBB48_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB45_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB48_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    uxth w10, w8
 ; CHECK-NOLSE-O0-NEXT:    subs w10, w10, w9, uxth
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w8, w9, ls
-; CHECK-NOLSE-O0-NEXT:  LBB45_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB45_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB48_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB48_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB45_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB48_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB45_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB48_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB45_2
-; CHECK-NOLSE-O0-NEXT:  LBB45_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB45_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB48_2
+; CHECK-NOLSE-O0-NEXT:  LBB48_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB48_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB45_5
-; CHECK-NOLSE-O0-NEXT:    b LBB45_1
-; CHECK-NOLSE-O0-NEXT:  LBB45_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB48_5
+; CHECK-NOLSE-O0-NEXT:    b LBB48_1
+; CHECK-NOLSE-O0-NEXT:  LBB48_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3773,8 +4099,8 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrh w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB45_1
-; CHECK-OUTLINE-O0-NEXT:  LBB45_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB48_1
+; CHECK-OUTLINE-O0-NEXT:  LBB48_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -3791,9 +4117,9 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    mov w0, w9
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxth
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB45_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB45_1
-; CHECK-OUTLINE-O0-NEXT:  LBB45_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB48_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB48_1
+; CHECK-OUTLINE-O0-NEXT:  LBB48_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -3816,14 +4142,14 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umax_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    and w9, w1, #0xffff
-; CHECK-NOLSE-O1-NEXT:  LBB46_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB49_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w8, w8, #0xffff
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w9
 ; CHECK-NOLSE-O1-NEXT:    csel w10, w8, w9, hi
 ; CHECK-NOLSE-O1-NEXT:    stxrh w11, w10, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB46_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w11, LBB49_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3831,14 +4157,14 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umax_i16:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
 ; CHECK-OUTLINE-O1-NEXT:    and w9, w1, #0xffff
-; CHECK-OUTLINE-O1-NEXT:  LBB46_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB49_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxrh w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    and w8, w8, #0xffff
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w9
 ; CHECK-OUTLINE-O1-NEXT:    csel w10, w8, w9, hi
 ; CHECK-OUTLINE-O1-NEXT:    stxrh w11, w10, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB46_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w11, LBB49_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -3851,36 +4177,36 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldrh w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB46_1
-; CHECK-NOLSE-O0-NEXT:  LBB46_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB49_1
+; CHECK-NOLSE-O0-NEXT:  LBB49_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB46_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB49_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w9, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    uxth w10, w8
 ; CHECK-NOLSE-O0-NEXT:    subs w10, w10, w9, uxth
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w8, w9, hi
-; CHECK-NOLSE-O0-NEXT:  LBB46_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB46_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB49_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB49_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w10, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w10, w8, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB46_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB49_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB46_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB49_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w9, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB46_2
-; CHECK-NOLSE-O0-NEXT:  LBB46_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB46_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w9, LBB49_2
+; CHECK-NOLSE-O0-NEXT:  LBB49_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB49_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    str w10, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    uxth w9, w8
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w10
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10, uxth
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB46_5
-; CHECK-NOLSE-O0-NEXT:    b LBB46_1
-; CHECK-NOLSE-O0-NEXT:  LBB46_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB49_5
+; CHECK-NOLSE-O0-NEXT:    b LBB49_1
+; CHECK-NOLSE-O0-NEXT:  LBB49_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -3896,8 +4222,8 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldrh w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB46_1
-; CHECK-OUTLINE-O0-NEXT:  LBB46_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB49_1
+; CHECK-OUTLINE-O0-NEXT:  LBB49_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -3914,9 +4240,9 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    mov w0, w9
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9, uxth
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB46_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB46_1
-; CHECK-OUTLINE-O0-NEXT:  LBB46_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB49_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB49_1
+; CHECK-OUTLINE-O0-NEXT:  LBB49_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -3938,12 +4264,12 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) {
 define i32 @atomicrmw_add_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_add_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB47_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB50_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    add w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB47_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB50_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -3969,33 +4295,33 @@ define i32 @atomicrmw_add_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB47_1
-; CHECK-NOLSE-O0-NEXT:  LBB47_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB50_1
+; CHECK-NOLSE-O0-NEXT:  LBB50_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB47_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB50_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB47_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB47_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB50_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB50_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB47_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB50_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB47_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB50_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB47_2
-; CHECK-NOLSE-O0-NEXT:  LBB47_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB47_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB50_2
+; CHECK-NOLSE-O0-NEXT:  LBB50_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB50_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB47_5
-; CHECK-NOLSE-O0-NEXT:    b LBB47_1
-; CHECK-NOLSE-O0-NEXT:  LBB47_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB50_5
+; CHECK-NOLSE-O0-NEXT:    b LBB50_1
+; CHECK-NOLSE-O0-NEXT:  LBB50_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4032,11 +4358,11 @@ define i32 @atomicrmw_xchg_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xchg_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    mov x8, x0
-; CHECK-NOLSE-O1-NEXT:  LBB48_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB51_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr w0, [x8]
 ; CHECK-NOLSE-O1-NEXT:    stxr w9, w1, [x8]
-; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB48_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB51_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    ; kill: def $w0 killed $w0 killed $x0
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -4062,32 +4388,32 @@ define i32 @atomicrmw_xchg_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB48_1
-; CHECK-NOLSE-O0-NEXT:  LBB48_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB51_1
+; CHECK-NOLSE-O0-NEXT:  LBB51_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB48_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB51_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w12, [sp, #24] ; 4-byte Reload
-; CHECK-NOLSE-O0-NEXT:  LBB48_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB48_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB51_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB51_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB48_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB51_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB48_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB51_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB48_2
-; CHECK-NOLSE-O0-NEXT:  LBB48_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB48_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB51_2
+; CHECK-NOLSE-O0-NEXT:  LBB51_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB51_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB48_5
-; CHECK-NOLSE-O0-NEXT:    b LBB48_1
-; CHECK-NOLSE-O0-NEXT:  LBB48_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB51_5
+; CHECK-NOLSE-O0-NEXT:    b LBB51_1
+; CHECK-NOLSE-O0-NEXT:  LBB51_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4123,12 +4449,12 @@ define i32 @atomicrmw_xchg_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_sub_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_sub_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB49_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB52_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sub w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB49_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB52_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -4154,33 +4480,33 @@ define i32 @atomicrmw_sub_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB49_1
-; CHECK-NOLSE-O0-NEXT:  LBB49_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB52_1
+; CHECK-NOLSE-O0-NEXT:  LBB52_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB49_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB52_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB49_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB49_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB52_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB52_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB49_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB52_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB49_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB52_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB49_2
-; CHECK-NOLSE-O0-NEXT:  LBB49_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB49_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB52_2
+; CHECK-NOLSE-O0-NEXT:  LBB52_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB52_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB49_5
-; CHECK-NOLSE-O0-NEXT:    b LBB49_1
-; CHECK-NOLSE-O0-NEXT:  LBB49_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB52_5
+; CHECK-NOLSE-O0-NEXT:    b LBB52_1
+; CHECK-NOLSE-O0-NEXT:  LBB52_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4220,12 +4546,12 @@ define i32 @atomicrmw_sub_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_and_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_and_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB50_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB53_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB50_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB53_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -4251,33 +4577,33 @@ define i32 @atomicrmw_and_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB50_1
-; CHECK-NOLSE-O0-NEXT:  LBB50_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB53_1
+; CHECK-NOLSE-O0-NEXT:  LBB53_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB50_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB53_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    and w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB50_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB50_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB53_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB53_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB50_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB53_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB50_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB53_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB50_2
-; CHECK-NOLSE-O0-NEXT:  LBB50_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB50_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB53_2
+; CHECK-NOLSE-O0-NEXT:  LBB53_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB53_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB50_5
-; CHECK-NOLSE-O0-NEXT:    b LBB50_1
-; CHECK-NOLSE-O0-NEXT:  LBB50_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB53_5
+; CHECK-NOLSE-O0-NEXT:    b LBB53_1
+; CHECK-NOLSE-O0-NEXT:  LBB53_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4317,12 +4643,12 @@ define i32 @atomicrmw_and_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_or_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_or_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB51_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB54_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    orr w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB51_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB54_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -4348,33 +4674,33 @@ define i32 @atomicrmw_or_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB51_1
-; CHECK-NOLSE-O0-NEXT:  LBB51_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB54_1
+; CHECK-NOLSE-O0-NEXT:  LBB54_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB51_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB54_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    orr w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB51_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB51_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB54_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB54_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB51_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB54_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB51_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB54_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB51_2
-; CHECK-NOLSE-O0-NEXT:  LBB51_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB51_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB54_2
+; CHECK-NOLSE-O0-NEXT:  LBB54_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB54_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB51_5
-; CHECK-NOLSE-O0-NEXT:    b LBB51_1
-; CHECK-NOLSE-O0-NEXT:  LBB51_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB54_5
+; CHECK-NOLSE-O0-NEXT:    b LBB54_1
+; CHECK-NOLSE-O0-NEXT:  LBB54_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4410,12 +4736,12 @@ define i32 @atomicrmw_or_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_xor_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xor_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB52_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB55_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    eor w9, w8, w1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB52_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB55_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -4441,33 +4767,33 @@ define i32 @atomicrmw_xor_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB52_1
-; CHECK-NOLSE-O0-NEXT:  LBB52_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB55_1
+; CHECK-NOLSE-O0-NEXT:  LBB55_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB52_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB55_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    eor w12, w10, w8
-; CHECK-NOLSE-O0-NEXT:  LBB52_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB52_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB55_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB55_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB52_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB55_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB52_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB55_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB52_2
-; CHECK-NOLSE-O0-NEXT:  LBB52_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB52_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB55_2
+; CHECK-NOLSE-O0-NEXT:  LBB55_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB55_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB52_5
-; CHECK-NOLSE-O0-NEXT:    b LBB52_1
-; CHECK-NOLSE-O0-NEXT:  LBB52_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB55_5
+; CHECK-NOLSE-O0-NEXT:    b LBB55_1
+; CHECK-NOLSE-O0-NEXT:  LBB55_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4503,26 +4829,26 @@ define i32 @atomicrmw_xor_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_min_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB53_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB56_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w1
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, lt
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB53_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB56_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_min_i32:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB53_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB56_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w1
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, lt
 ; CHECK-OUTLINE-O1-NEXT:    stxr w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB53_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB56_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -4535,34 +4861,34 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB53_1
-; CHECK-NOLSE-O0-NEXT:  LBB53_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB56_1
+; CHECK-NOLSE-O0-NEXT:  LBB56_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB53_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB56_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w10, w8
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, le
-; CHECK-NOLSE-O0-NEXT:  LBB53_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB53_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB56_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB56_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB53_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB56_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB53_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB56_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB53_2
-; CHECK-NOLSE-O0-NEXT:  LBB53_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB53_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB56_2
+; CHECK-NOLSE-O0-NEXT:  LBB56_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB56_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB53_5
-; CHECK-NOLSE-O0-NEXT:    b LBB53_1
-; CHECK-NOLSE-O0-NEXT:  LBB53_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB56_5
+; CHECK-NOLSE-O0-NEXT:    b LBB56_1
+; CHECK-NOLSE-O0-NEXT:  LBB56_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4578,8 +4904,8 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB53_1
-; CHECK-OUTLINE-O0-NEXT:  LBB53_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB56_1
+; CHECK-OUTLINE-O0-NEXT:  LBB56_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -4594,9 +4920,9 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #12] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB53_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB53_1
-; CHECK-OUTLINE-O0-NEXT:  LBB53_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB56_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB56_1
+; CHECK-OUTLINE-O0-NEXT:  LBB56_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -4618,26 +4944,26 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_max_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB54_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB57_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w1
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, gt
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB54_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB57_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_max_i32:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB54_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB57_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxr w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w1
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, gt
 ; CHECK-OUTLINE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB54_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB57_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -4650,34 +4976,34 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB54_1
-; CHECK-NOLSE-O0-NEXT:  LBB54_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB57_1
+; CHECK-NOLSE-O0-NEXT:  LBB57_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB54_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB57_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w10, w8
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, gt
-; CHECK-NOLSE-O0-NEXT:  LBB54_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB54_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB57_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB57_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB54_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB57_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB54_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB57_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB54_2
-; CHECK-NOLSE-O0-NEXT:  LBB54_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB54_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB57_2
+; CHECK-NOLSE-O0-NEXT:  LBB57_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB57_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB54_5
-; CHECK-NOLSE-O0-NEXT:    b LBB54_1
-; CHECK-NOLSE-O0-NEXT:  LBB54_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB57_5
+; CHECK-NOLSE-O0-NEXT:    b LBB57_1
+; CHECK-NOLSE-O0-NEXT:  LBB57_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4693,8 +5019,8 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB54_1
-; CHECK-OUTLINE-O0-NEXT:  LBB54_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB57_1
+; CHECK-OUTLINE-O0-NEXT:  LBB57_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -4709,9 +5035,9 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #12] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB54_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB54_1
-; CHECK-OUTLINE-O0-NEXT:  LBB54_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB57_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB57_1
+; CHECK-OUTLINE-O0-NEXT:  LBB57_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -4733,26 +5059,26 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umin_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB55_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB58_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w1
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, lo
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB55_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB58_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umin_i32:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB55_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB58_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxr w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w1
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, lo
 ; CHECK-OUTLINE-O1-NEXT:    stlxr w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB55_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB58_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -4765,34 +5091,34 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB55_1
-; CHECK-NOLSE-O0-NEXT:  LBB55_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB58_1
+; CHECK-NOLSE-O0-NEXT:  LBB58_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB55_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB58_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w10, w8
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, ls
-; CHECK-NOLSE-O0-NEXT:  LBB55_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB55_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB58_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB58_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB55_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB58_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB55_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB58_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB55_2
-; CHECK-NOLSE-O0-NEXT:  LBB55_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB55_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB58_2
+; CHECK-NOLSE-O0-NEXT:  LBB58_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB58_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB55_5
-; CHECK-NOLSE-O0-NEXT:    b LBB55_1
-; CHECK-NOLSE-O0-NEXT:  LBB55_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB58_5
+; CHECK-NOLSE-O0-NEXT:    b LBB58_1
+; CHECK-NOLSE-O0-NEXT:  LBB58_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4808,8 +5134,8 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB55_1
-; CHECK-OUTLINE-O0-NEXT:  LBB55_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB58_1
+; CHECK-OUTLINE-O0-NEXT:  LBB58_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -4824,9 +5150,9 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #12] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB55_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB55_1
-; CHECK-OUTLINE-O0-NEXT:  LBB55_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB58_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB58_1
+; CHECK-OUTLINE-O0-NEXT:  LBB58_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -4848,26 +5174,26 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) {
 define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umax_i32:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB56_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB59_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr w8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp w8, w1
 ; CHECK-NOLSE-O1-NEXT:    csel w9, w8, w1, hi
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, w9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB56_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB59_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov w0, w8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umax_i32:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB56_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB59_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxr w8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp w8, w1
 ; CHECK-OUTLINE-O1-NEXT:    csel w9, w8, w1, hi
 ; CHECK-OUTLINE-O1-NEXT:    stxr w10, w9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB56_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB59_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov w0, w8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -4880,34 +5206,34 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB56_1
-; CHECK-NOLSE-O0-NEXT:  LBB56_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB59_1
+; CHECK-NOLSE-O0-NEXT:  LBB59_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB56_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB59_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr w10, [sp, #28] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr w8, [sp, #24] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w10, w8
 ; CHECK-NOLSE-O0-NEXT:    csel w12, w10, w8, hi
-; CHECK-NOLSE-O0-NEXT:  LBB56_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB56_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB59_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB59_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp w9, w10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB56_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB59_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB56_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB59_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB56_2
-; CHECK-NOLSE-O0-NEXT:  LBB56_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB56_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB59_2
+; CHECK-NOLSE-O0-NEXT:  LBB59_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB59_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov w8, w9
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #12] ; 4-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs w9, w9, w10
 ; CHECK-NOLSE-O0-NEXT:    str w8, [sp, #28] ; 4-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB56_5
-; CHECK-NOLSE-O0-NEXT:    b LBB56_1
-; CHECK-NOLSE-O0-NEXT:  LBB56_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB59_5
+; CHECK-NOLSE-O0-NEXT:    b LBB59_1
+; CHECK-NOLSE-O0-NEXT:  LBB59_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -4923,8 +5249,8 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w1, [sp, #24] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB56_1
-; CHECK-OUTLINE-O0-NEXT:  LBB56_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB59_1
+; CHECK-OUTLINE-O0-NEXT:  LBB59_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #28] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #16] ; 8-byte Reload
@@ -4939,9 +5265,9 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #12] ; 4-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs w8, w8, w9
 ; CHECK-OUTLINE-O0-NEXT:    str w0, [sp, #28] ; 4-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB56_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB56_1
-; CHECK-OUTLINE-O0-NEXT:  LBB56_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB59_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB59_1
+; CHECK-OUTLINE-O0-NEXT:  LBB59_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr w0, [sp, #12] ; 4-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #32] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #48
@@ -4963,12 +5289,12 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) {
 define i64 @atomicrmw_add_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_add_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB57_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB60_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    add x9, x8, x1
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB57_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB60_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -4994,33 +5320,33 @@ define i64 @atomicrmw_add_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB57_1
-; CHECK-NOLSE-O0-NEXT:  LBB57_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB60_1
+; CHECK-NOLSE-O0-NEXT:  LBB60_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB57_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB60_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add x12, x10, x8
-; CHECK-NOLSE-O0-NEXT:  LBB57_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB57_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB60_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB60_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB57_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB60_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB57_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB60_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB57_2
-; CHECK-NOLSE-O0-NEXT:  LBB57_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB57_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB60_2
+; CHECK-NOLSE-O0-NEXT:  LBB60_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB60_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB57_5
-; CHECK-NOLSE-O0-NEXT:    b LBB57_1
-; CHECK-NOLSE-O0-NEXT:  LBB57_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB60_5
+; CHECK-NOLSE-O0-NEXT:    b LBB60_1
+; CHECK-NOLSE-O0-NEXT:  LBB60_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5056,11 +5382,11 @@ define i64 @atomicrmw_add_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_xchg_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xchg_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB58_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB61_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    stxr w9, x1, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB58_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w9, LBB61_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -5086,32 +5412,32 @@ define i64 @atomicrmw_xchg_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB58_1
-; CHECK-NOLSE-O0-NEXT:  LBB58_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB61_1
+; CHECK-NOLSE-O0-NEXT:  LBB61_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB58_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB61_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x12, [sp, #16] ; 8-byte Reload
-; CHECK-NOLSE-O0-NEXT:  LBB58_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB58_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB61_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB61_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB58_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB61_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB58_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB61_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB58_2
-; CHECK-NOLSE-O0-NEXT:  LBB58_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB58_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB61_2
+; CHECK-NOLSE-O0-NEXT:  LBB61_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB61_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB58_5
-; CHECK-NOLSE-O0-NEXT:    b LBB58_1
-; CHECK-NOLSE-O0-NEXT:  LBB58_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB61_5
+; CHECK-NOLSE-O0-NEXT:    b LBB61_1
+; CHECK-NOLSE-O0-NEXT:  LBB61_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5147,12 +5473,12 @@ define i64 @atomicrmw_xchg_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_sub_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_sub_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB59_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB62_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    sub x9, x8, x1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB59_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB62_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -5178,33 +5504,33 @@ define i64 @atomicrmw_sub_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB59_1
-; CHECK-NOLSE-O0-NEXT:  LBB59_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB62_1
+; CHECK-NOLSE-O0-NEXT:  LBB62_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB59_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB62_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs x12, x10, x8
-; CHECK-NOLSE-O0-NEXT:  LBB59_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB59_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB62_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB62_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB59_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB62_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB59_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB62_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB59_2
-; CHECK-NOLSE-O0-NEXT:  LBB59_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB59_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB62_2
+; CHECK-NOLSE-O0-NEXT:  LBB62_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB62_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB59_5
-; CHECK-NOLSE-O0-NEXT:    b LBB59_1
-; CHECK-NOLSE-O0-NEXT:  LBB59_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB62_5
+; CHECK-NOLSE-O0-NEXT:    b LBB62_1
+; CHECK-NOLSE-O0-NEXT:  LBB62_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5244,12 +5570,12 @@ define i64 @atomicrmw_sub_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_and_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_and_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB60_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB63_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    and x9, x8, x1
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB60_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB63_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -5275,33 +5601,33 @@ define i64 @atomicrmw_and_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB60_1
-; CHECK-NOLSE-O0-NEXT:  LBB60_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB63_1
+; CHECK-NOLSE-O0-NEXT:  LBB63_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB60_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB63_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    and x12, x10, x8
-; CHECK-NOLSE-O0-NEXT:  LBB60_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB60_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB63_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB63_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB60_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB63_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB60_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB63_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB60_2
-; CHECK-NOLSE-O0-NEXT:  LBB60_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB60_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB63_2
+; CHECK-NOLSE-O0-NEXT:  LBB63_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB63_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB60_5
-; CHECK-NOLSE-O0-NEXT:    b LBB60_1
-; CHECK-NOLSE-O0-NEXT:  LBB60_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB63_5
+; CHECK-NOLSE-O0-NEXT:    b LBB63_1
+; CHECK-NOLSE-O0-NEXT:  LBB63_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5341,12 +5667,12 @@ define i64 @atomicrmw_and_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_or_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_or_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB61_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB64_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    orr x9, x8, x1
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB61_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB64_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -5372,33 +5698,33 @@ define i64 @atomicrmw_or_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB61_1
-; CHECK-NOLSE-O0-NEXT:  LBB61_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB64_1
+; CHECK-NOLSE-O0-NEXT:  LBB64_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB61_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB64_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    orr x12, x10, x8
-; CHECK-NOLSE-O0-NEXT:  LBB61_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB61_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB64_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB64_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB61_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB64_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB61_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB64_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB61_2
-; CHECK-NOLSE-O0-NEXT:  LBB61_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB61_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB64_2
+; CHECK-NOLSE-O0-NEXT:  LBB64_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB64_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB61_5
-; CHECK-NOLSE-O0-NEXT:    b LBB61_1
-; CHECK-NOLSE-O0-NEXT:  LBB61_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB64_5
+; CHECK-NOLSE-O0-NEXT:    b LBB64_1
+; CHECK-NOLSE-O0-NEXT:  LBB64_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5434,12 +5760,12 @@ define i64 @atomicrmw_or_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_xor_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_xor_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB62_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB65_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    eor x9, x8, x1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB62_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB65_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
@@ -5465,33 +5791,33 @@ define i64 @atomicrmw_xor_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB62_1
-; CHECK-NOLSE-O0-NEXT:  LBB62_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB65_1
+; CHECK-NOLSE-O0-NEXT:  LBB65_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB62_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB65_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    eor x12, x10, x8
-; CHECK-NOLSE-O0-NEXT:  LBB62_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB62_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB65_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB65_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB62_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB65_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB62_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB65_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB62_2
-; CHECK-NOLSE-O0-NEXT:  LBB62_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB62_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB65_2
+; CHECK-NOLSE-O0-NEXT:  LBB65_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB65_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB62_5
-; CHECK-NOLSE-O0-NEXT:    b LBB62_1
-; CHECK-NOLSE-O0-NEXT:  LBB62_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB65_5
+; CHECK-NOLSE-O0-NEXT:    b LBB65_1
+; CHECK-NOLSE-O0-NEXT:  LBB65_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5527,26 +5853,26 @@ define i64 @atomicrmw_xor_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_min_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB63_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB66_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp x8, x1
 ; CHECK-NOLSE-O1-NEXT:    csel x9, x8, x1, lt
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB63_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB66_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_min_i64:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB63_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB66_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp x8, x1
 ; CHECK-OUTLINE-O1-NEXT:    csel x9, x8, x1, lt
 ; CHECK-OUTLINE-O1-NEXT:    stxr w10, x9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB63_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB66_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov x0, x8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -5559,34 +5885,34 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB63_1
-; CHECK-NOLSE-O0-NEXT:  LBB63_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB66_1
+; CHECK-NOLSE-O0-NEXT:  LBB66_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB63_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB66_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x10, x8
 ; CHECK-NOLSE-O0-NEXT:    csel x12, x10, x8, le
-; CHECK-NOLSE-O0-NEXT:  LBB63_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB63_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB66_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB66_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB63_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB66_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB63_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB66_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB63_2
-; CHECK-NOLSE-O0-NEXT:  LBB63_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB63_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB66_2
+; CHECK-NOLSE-O0-NEXT:  LBB66_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB66_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB63_5
-; CHECK-NOLSE-O0-NEXT:    b LBB63_1
-; CHECK-NOLSE-O0-NEXT:  LBB63_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB66_5
+; CHECK-NOLSE-O0-NEXT:    b LBB66_1
+; CHECK-NOLSE-O0-NEXT:  LBB66_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5602,8 +5928,8 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x1, [sp, #32] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB63_1
-; CHECK-OUTLINE-O0-NEXT:  LBB63_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB66_1
+; CHECK-OUTLINE-O0-NEXT:  LBB66_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #40] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #24] ; 8-byte Reload
@@ -5618,9 +5944,9 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #16] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs x8, x8, x9
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB63_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB63_1
-; CHECK-OUTLINE-O0-NEXT:  LBB63_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB66_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB66_1
+; CHECK-OUTLINE-O0-NEXT:  LBB66_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #16] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #48] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #64
@@ -5642,26 +5968,26 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_max_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB64_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB67_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp x8, x1
 ; CHECK-NOLSE-O1-NEXT:    csel x9, x8, x1, gt
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB64_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB67_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_max_i64:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB64_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB67_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp x8, x1
 ; CHECK-OUTLINE-O1-NEXT:    csel x9, x8, x1, gt
 ; CHECK-OUTLINE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB64_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB67_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov x0, x8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -5674,34 +6000,34 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB64_1
-; CHECK-NOLSE-O0-NEXT:  LBB64_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB67_1
+; CHECK-NOLSE-O0-NEXT:  LBB67_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB64_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB67_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x10, x8
 ; CHECK-NOLSE-O0-NEXT:    csel x12, x10, x8, gt
-; CHECK-NOLSE-O0-NEXT:  LBB64_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB64_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB67_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB67_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB64_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB67_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB64_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB67_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB64_2
-; CHECK-NOLSE-O0-NEXT:  LBB64_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB64_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB67_2
+; CHECK-NOLSE-O0-NEXT:  LBB67_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB67_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB64_5
-; CHECK-NOLSE-O0-NEXT:    b LBB64_1
-; CHECK-NOLSE-O0-NEXT:  LBB64_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB67_5
+; CHECK-NOLSE-O0-NEXT:    b LBB67_1
+; CHECK-NOLSE-O0-NEXT:  LBB67_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5717,8 +6043,8 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x1, [sp, #32] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB64_1
-; CHECK-OUTLINE-O0-NEXT:  LBB64_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB67_1
+; CHECK-OUTLINE-O0-NEXT:  LBB67_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #40] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #24] ; 8-byte Reload
@@ -5733,9 +6059,9 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #16] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs x8, x8, x9
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB64_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB64_1
-; CHECK-OUTLINE-O0-NEXT:  LBB64_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB67_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB67_1
+; CHECK-OUTLINE-O0-NEXT:  LBB67_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #16] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #48] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #64
@@ -5757,26 +6083,26 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umin_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB65_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB68_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp x8, x1
 ; CHECK-NOLSE-O1-NEXT:    csel x9, x8, x1, lo
 ; CHECK-NOLSE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB65_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB68_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umin_i64:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB65_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB68_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldaxr x8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp x8, x1
 ; CHECK-OUTLINE-O1-NEXT:    csel x9, x8, x1, lo
 ; CHECK-OUTLINE-O1-NEXT:    stlxr w10, x9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB65_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB68_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov x0, x8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -5789,34 +6115,34 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB65_1
-; CHECK-NOLSE-O0-NEXT:  LBB65_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB68_1
+; CHECK-NOLSE-O0-NEXT:  LBB68_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB65_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB68_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x10, x8
 ; CHECK-NOLSE-O0-NEXT:    csel x12, x10, x8, ls
-; CHECK-NOLSE-O0-NEXT:  LBB65_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB65_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB68_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB68_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB65_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB68_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB65_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB68_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB65_2
-; CHECK-NOLSE-O0-NEXT:  LBB65_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB65_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB68_2
+; CHECK-NOLSE-O0-NEXT:  LBB68_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB68_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB65_5
-; CHECK-NOLSE-O0-NEXT:    b LBB65_1
-; CHECK-NOLSE-O0-NEXT:  LBB65_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB68_5
+; CHECK-NOLSE-O0-NEXT:    b LBB68_1
+; CHECK-NOLSE-O0-NEXT:  LBB68_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5832,8 +6158,8 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x1, [sp, #32] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB65_1
-; CHECK-OUTLINE-O0-NEXT:  LBB65_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB68_1
+; CHECK-OUTLINE-O0-NEXT:  LBB68_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #40] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #24] ; 8-byte Reload
@@ -5848,9 +6174,9 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #16] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs x8, x8, x9
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB65_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB65_1
-; CHECK-OUTLINE-O0-NEXT:  LBB65_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB68_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB68_1
+; CHECK-OUTLINE-O0-NEXT:  LBB68_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #16] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #48] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #64
@@ -5872,26 +6198,26 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) {
 define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O1-LABEL: atomicrmw_umax_i64:
 ; CHECK-NOLSE-O1:       ; %bb.0:
-; CHECK-NOLSE-O1-NEXT:  LBB66_1: ; %atomicrmw.start
+; CHECK-NOLSE-O1-NEXT:  LBB69_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-NOLSE-O1-NEXT:    cmp x8, x1
 ; CHECK-NOLSE-O1-NEXT:    csel x9, x8, x1, hi
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, x9, [x0]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB66_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB69_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-NOLSE-O1-NEXT:    mov x0, x8
 ; CHECK-NOLSE-O1-NEXT:    ret
 ;
 ; CHECK-OUTLINE-O1-LABEL: atomicrmw_umax_i64:
 ; CHECK-OUTLINE-O1:       ; %bb.0:
-; CHECK-OUTLINE-O1-NEXT:  LBB66_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O1-NEXT:  LBB69_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O1-NEXT:    ldxr x8, [x0]
 ; CHECK-OUTLINE-O1-NEXT:    cmp x8, x1
 ; CHECK-OUTLINE-O1-NEXT:    csel x9, x8, x1, hi
 ; CHECK-OUTLINE-O1-NEXT:    stxr w10, x9, [x0]
-; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB66_1
+; CHECK-OUTLINE-O1-NEXT:    cbnz w10, LBB69_1
 ; CHECK-OUTLINE-O1-NEXT:  ; %bb.2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O1-NEXT:    mov x0, x8
 ; CHECK-OUTLINE-O1-NEXT:    ret
@@ -5904,34 +6230,34 @@ define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-NOLSE-O0-NEXT:    str x1, [sp, #16] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [x0]
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b LBB66_1
-; CHECK-NOLSE-O0-NEXT:  LBB66_1: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    b LBB69_1
+; CHECK-NOLSE-O0-NEXT:  LBB69_1: ; %atomicrmw.start
 ; CHECK-NOLSE-O0-NEXT:    ; =>This Loop Header: Depth=1
-; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB66_2 Depth 2
+; CHECK-NOLSE-O0-NEXT:    ; Child Loop BB69_2 Depth 2
 ; CHECK-NOLSE-O0-NEXT:    ldr x10, [sp, #24] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x11, [sp, #8] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    ldr x8, [sp, #16] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x10, x8
 ; CHECK-NOLSE-O0-NEXT:    csel x12, x10, x8, hi
-; CHECK-NOLSE-O0-NEXT:  LBB66_2: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB66_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB69_2: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; Parent Loop BB69_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ; => This Inner Loop Header: Depth=2
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x9, [x11]
 ; CHECK-NOLSE-O0-NEXT:    cmp x9, x10
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB66_4
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB69_4
 ; CHECK-NOLSE-O0-NEXT:  ; %bb.3: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB66_2 Depth=2
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB69_2 Depth=2
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x12, [x11]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB66_2
-; CHECK-NOLSE-O0-NEXT:  LBB66_4: ; %atomicrmw.start
-; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB66_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB69_2
+; CHECK-NOLSE-O0-NEXT:  LBB69_4: ; %atomicrmw.start
+; CHECK-NOLSE-O0-NEXT:    ; in Loop: Header=BB69_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    mov x8, x9
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp] ; 8-byte Spill
 ; CHECK-NOLSE-O0-NEXT:    subs x9, x9, x10
 ; CHECK-NOLSE-O0-NEXT:    str x8, [sp, #24] ; 8-byte Spill
-; CHECK-NOLSE-O0-NEXT:    b.eq LBB66_5
-; CHECK-NOLSE-O0-NEXT:    b LBB66_1
-; CHECK-NOLSE-O0-NEXT:  LBB66_5: ; %atomicrmw.end
+; CHECK-NOLSE-O0-NEXT:    b.eq LBB69_5
+; CHECK-NOLSE-O0-NEXT:    b LBB69_1
+; CHECK-NOLSE-O0-NEXT:  LBB69_5: ; %atomicrmw.end
 ; CHECK-NOLSE-O0-NEXT:    ldr x0, [sp] ; 8-byte Reload
 ; CHECK-NOLSE-O0-NEXT:    add sp, sp, #32
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -5947,8 +6273,8 @@ define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x1, [sp, #32] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [x0]
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b LBB66_1
-; CHECK-OUTLINE-O0-NEXT:  LBB66_1: ; %atomicrmw.start
+; CHECK-OUTLINE-O0-NEXT:    b LBB69_1
+; CHECK-OUTLINE-O0-NEXT:  LBB69_1: ; %atomicrmw.start
 ; CHECK-OUTLINE-O0-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #40] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldr x2, [sp, #24] ; 8-byte Reload
@@ -5963,9 +6289,9 @@ define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) {
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #16] ; 8-byte Spill
 ; CHECK-OUTLINE-O0-NEXT:    subs x8, x8, x9
 ; CHECK-OUTLINE-O0-NEXT:    str x0, [sp, #40] ; 8-byte Spill
-; CHECK-OUTLINE-O0-NEXT:    b.eq LBB66_2
-; CHECK-OUTLINE-O0-NEXT:    b LBB66_1
-; CHECK-OUTLINE-O0-NEXT:  LBB66_2: ; %atomicrmw.end
+; CHECK-OUTLINE-O0-NEXT:    b.eq LBB69_2
+; CHECK-OUTLINE-O0-NEXT:    b LBB69_1
+; CHECK-OUTLINE-O0-NEXT:  LBB69_2: ; %atomicrmw.end
 ; CHECK-OUTLINE-O0-NEXT:    ldr x0, [sp, #16] ; 8-byte Reload
 ; CHECK-OUTLINE-O0-NEXT:    ldp x29, x30, [sp, #48] ; 16-byte Folded Reload
 ; CHECK-OUTLINE-O0-NEXT:    add sp, sp, #64
@@ -5988,22 +6314,22 @@ define { i8, i1 } @cmpxchg_i8(ptr %ptr, i8 %desired, i8 %new) {
 ; CHECK-NOLSE-O1-LABEL: cmpxchg_i8:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    mov x8, x0
-; CHECK-NOLSE-O1-NEXT:  LBB67_1: ; %cmpxchg.start
+; CHECK-NOLSE-O1-NEXT:  LBB70_1: ; %cmpxchg.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrb w0, [x8]
 ; CHECK-NOLSE-O1-NEXT:    and w9, w0, #0xff
 ; CHECK-NOLSE-O1-NEXT:    cmp w9, w1, uxtb
-; CHECK-NOLSE-O1-NEXT:    b.ne LBB67_4
+; CHECK-NOLSE-O1-NEXT:    b.ne LBB70_4
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %cmpxchg.trystore
-; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB67_1 Depth=1
+; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB70_1 Depth=1
 ; CHECK-NOLSE-O1-NEXT:    stxrb w10, w2, [x8]
 ; CHECK-NOLSE-O1-NEXT:    mov w9, #1 ; =0x1
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB67_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB70_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.3: ; %cmpxchg.end
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
 ; CHECK-NOLSE-O1-NEXT:    ; kill: def $w0 killed $w0 killed $x0
 ; CHECK-NOLSE-O1-NEXT:    ret
-; CHECK-NOLSE-O1-NEXT:  LBB67_4: ; %cmpxchg.nostore
+; CHECK-NOLSE-O1-NEXT:  LBB70_4: ; %cmpxchg.nostore
 ; CHECK-NOLSE-O1-NEXT:    mov w9, wzr
 ; CHECK-NOLSE-O1-NEXT:    clrex
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
@@ -6035,14 +6361,14 @@ define { i8, i1 } @cmpxchg_i8(ptr %ptr, i8 %desired, i8 %new) {
 ; CHECK-NOLSE-O0-LABEL: cmpxchg_i8:
 ; CHECK-NOLSE-O0:       ; %bb.0:
 ; CHECK-NOLSE-O0-NEXT:    mov x9, x0
-; CHECK-NOLSE-O0-NEXT:  LBB67_1: ; =>This Inner Loop Header: Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB70_1: ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ldaxrb w0, [x9]
 ; CHECK-NOLSE-O0-NEXT:    cmp w0, w1, uxtb
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB67_3
-; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB67_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB70_3
+; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB70_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    stlxrb w8, w2, [x9]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB67_1
-; CHECK-NOLSE-O0-NEXT:  LBB67_3:
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB70_1
+; CHECK-NOLSE-O0-NEXT:  LBB70_3:
 ; CHECK-NOLSE-O0-NEXT:    and w8, w0, #0xff
 ; CHECK-NOLSE-O0-NEXT:    subs w8, w8, w1, uxtb
 ; CHECK-NOLSE-O0-NEXT:    cset w1, eq
@@ -6096,22 +6422,22 @@ define { i16, i1 } @cmpxchg_i16(ptr %ptr, i16 %desired, i16 %new) {
 ; CHECK-NOLSE-O1-LABEL: cmpxchg_i16:
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    mov x8, x0
-; CHECK-NOLSE-O1-NEXT:  LBB68_1: ; %cmpxchg.start
+; CHECK-NOLSE-O1-NEXT:  LBB71_1: ; %cmpxchg.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxrh w0, [x8]
 ; CHECK-NOLSE-O1-NEXT:    and w9, w0, #0xffff
 ; CHECK-NOLSE-O1-NEXT:    cmp w9, w1, uxth
-; CHECK-NOLSE-O1-NEXT:    b.ne LBB68_4
+; CHECK-NOLSE-O1-NEXT:    b.ne LBB71_4
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %cmpxchg.trystore
-; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB68_1 Depth=1
+; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB71_1 Depth=1
 ; CHECK-NOLSE-O1-NEXT:    stxrh w10, w2, [x8]
 ; CHECK-NOLSE-O1-NEXT:    mov w9, #1 ; =0x1
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB68_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB71_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.3: ; %cmpxchg.end
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
 ; CHECK-NOLSE-O1-NEXT:    ; kill: def $w0 killed $w0 killed $x0
 ; CHECK-NOLSE-O1-NEXT:    ret
-; CHECK-NOLSE-O1-NEXT:  LBB68_4: ; %cmpxchg.nostore
+; CHECK-NOLSE-O1-NEXT:  LBB71_4: ; %cmpxchg.nostore
 ; CHECK-NOLSE-O1-NEXT:    mov w9, wzr
 ; CHECK-NOLSE-O1-NEXT:    clrex
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
@@ -6143,14 +6469,14 @@ define { i16, i1 } @cmpxchg_i16(ptr %ptr, i16 %desired, i16 %new) {
 ; CHECK-NOLSE-O0-LABEL: cmpxchg_i16:
 ; CHECK-NOLSE-O0:       ; %bb.0:
 ; CHECK-NOLSE-O0-NEXT:    mov x9, x0
-; CHECK-NOLSE-O0-NEXT:  LBB68_1: ; =>This Inner Loop Header: Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB71_1: ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ldaxrh w0, [x9]
 ; CHECK-NOLSE-O0-NEXT:    cmp w0, w1, uxth
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB68_3
-; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB68_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB71_3
+; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB71_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    stlxrh w8, w2, [x9]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB68_1
-; CHECK-NOLSE-O0-NEXT:  LBB68_3:
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB71_1
+; CHECK-NOLSE-O0-NEXT:  LBB71_3:
 ; CHECK-NOLSE-O0-NEXT:    and w8, w0, #0xffff
 ; CHECK-NOLSE-O0-NEXT:    subs w8, w8, w1, uxth
 ; CHECK-NOLSE-O0-NEXT:    cset w1, eq
@@ -6205,20 +6531,20 @@ define { i32, i1 } @cmpxchg_i32(ptr %ptr, i32 %desired, i32 %new) {
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    mov x8, x0
 ; CHECK-NOLSE-O1-NEXT:    mov w9, #1 ; =0x1
-; CHECK-NOLSE-O1-NEXT:  LBB69_1: ; %cmpxchg.start
+; CHECK-NOLSE-O1-NEXT:  LBB72_1: ; %cmpxchg.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr w0, [x8]
 ; CHECK-NOLSE-O1-NEXT:    cmp w0, w1
-; CHECK-NOLSE-O1-NEXT:    b.ne LBB69_4
+; CHECK-NOLSE-O1-NEXT:    b.ne LBB72_4
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %cmpxchg.trystore
-; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB69_1 Depth=1
+; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB72_1 Depth=1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, w2, [x8]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB69_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB72_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.3: ; %cmpxchg.end
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
 ; CHECK-NOLSE-O1-NEXT:    ; kill: def $w0 killed $w0 killed $x0
 ; CHECK-NOLSE-O1-NEXT:    ret
-; CHECK-NOLSE-O1-NEXT:  LBB69_4: ; %cmpxchg.nostore
+; CHECK-NOLSE-O1-NEXT:  LBB72_4: ; %cmpxchg.nostore
 ; CHECK-NOLSE-O1-NEXT:    mov w9, wzr
 ; CHECK-NOLSE-O1-NEXT:    clrex
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
@@ -6249,14 +6575,14 @@ define { i32, i1 } @cmpxchg_i32(ptr %ptr, i32 %desired, i32 %new) {
 ; CHECK-NOLSE-O0-LABEL: cmpxchg_i32:
 ; CHECK-NOLSE-O0:       ; %bb.0:
 ; CHECK-NOLSE-O0-NEXT:    mov x9, x0
-; CHECK-NOLSE-O0-NEXT:  LBB69_1: ; =>This Inner Loop Header: Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB72_1: ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ldaxr w0, [x9]
 ; CHECK-NOLSE-O0-NEXT:    cmp w0, w1
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB69_3
-; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB69_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB72_3
+; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB72_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, w2, [x9]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB69_1
-; CHECK-NOLSE-O0-NEXT:  LBB69_3:
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB72_1
+; CHECK-NOLSE-O0-NEXT:  LBB72_3:
 ; CHECK-NOLSE-O0-NEXT:    subs w8, w0, w1
 ; CHECK-NOLSE-O0-NEXT:    cset w1, eq
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -6307,19 +6633,19 @@ define { i64, i1 } @cmpxchg_i64(ptr %ptr, i64 %desired, i64 %new) {
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    mov x8, x0
 ; CHECK-NOLSE-O1-NEXT:    mov w9, #1 ; =0x1
-; CHECK-NOLSE-O1-NEXT:  LBB70_1: ; %cmpxchg.start
+; CHECK-NOLSE-O1-NEXT:  LBB73_1: ; %cmpxchg.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x0, [x8]
 ; CHECK-NOLSE-O1-NEXT:    cmp x0, x1
-; CHECK-NOLSE-O1-NEXT:    b.ne LBB70_4
+; CHECK-NOLSE-O1-NEXT:    b.ne LBB73_4
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %cmpxchg.trystore
-; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB70_1 Depth=1
+; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB73_1 Depth=1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, x2, [x8]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB70_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB73_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.3: ; %cmpxchg.end
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
 ; CHECK-NOLSE-O1-NEXT:    ret
-; CHECK-NOLSE-O1-NEXT:  LBB70_4: ; %cmpxchg.nostore
+; CHECK-NOLSE-O1-NEXT:  LBB73_4: ; %cmpxchg.nostore
 ; CHECK-NOLSE-O1-NEXT:    mov w9, wzr
 ; CHECK-NOLSE-O1-NEXT:    clrex
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
@@ -6349,14 +6675,14 @@ define { i64, i1 } @cmpxchg_i64(ptr %ptr, i64 %desired, i64 %new) {
 ; CHECK-NOLSE-O0-LABEL: cmpxchg_i64:
 ; CHECK-NOLSE-O0:       ; %bb.0:
 ; CHECK-NOLSE-O0-NEXT:    mov x9, x0
-; CHECK-NOLSE-O0-NEXT:  LBB70_1: ; =>This Inner Loop Header: Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB73_1: ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x0, [x9]
 ; CHECK-NOLSE-O0-NEXT:    cmp x0, x1
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB70_3
-; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB70_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB73_3
+; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB73_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x2, [x9]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB70_1
-; CHECK-NOLSE-O0-NEXT:  LBB70_3:
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB73_1
+; CHECK-NOLSE-O0-NEXT:  LBB73_3:
 ; CHECK-NOLSE-O0-NEXT:    subs x8, x0, x1
 ; CHECK-NOLSE-O0-NEXT:    cset w1, eq
 ; CHECK-NOLSE-O0-NEXT:    ret
@@ -6407,19 +6733,19 @@ define { ptr, i1 } @cmpxchg_ptr(ptr %ptr, ptr %desired, ptr %new) {
 ; CHECK-NOLSE-O1:       ; %bb.0:
 ; CHECK-NOLSE-O1-NEXT:    mov x8, x0
 ; CHECK-NOLSE-O1-NEXT:    mov w9, #1 ; =0x1
-; CHECK-NOLSE-O1-NEXT:  LBB71_1: ; %cmpxchg.start
+; CHECK-NOLSE-O1-NEXT:  LBB74_1: ; %cmpxchg.start
 ; CHECK-NOLSE-O1-NEXT:    ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O1-NEXT:    ldxr x0, [x8]
 ; CHECK-NOLSE-O1-NEXT:    cmp x0, x1
-; CHECK-NOLSE-O1-NEXT:    b.ne LBB71_4
+; CHECK-NOLSE-O1-NEXT:    b.ne LBB74_4
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.2: ; %cmpxchg.trystore
-; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB71_1 Depth=1
+; CHECK-NOLSE-O1-NEXT:    ; in Loop: Header=BB74_1 Depth=1
 ; CHECK-NOLSE-O1-NEXT:    stxr w10, x2, [x8]
-; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB71_1
+; CHECK-NOLSE-O1-NEXT:    cbnz w10, LBB74_1
 ; CHECK-NOLSE-O1-NEXT:  ; %bb.3: ; %cmpxchg.end
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
 ; CHECK-NOLSE-O1-NEXT:    ret
-; CHECK-NOLSE-O1-NEXT:  LBB71_4: ; %cmpxchg.nostore
+; CHECK-NOLSE-O1-NEXT:  LBB74_4: ; %cmpxchg.nostore
 ; CHECK-NOLSE-O1-NEXT:    mov w9, wzr
 ; CHECK-NOLSE-O1-NEXT:    clrex
 ; CHECK-NOLSE-O1-NEXT:    mov w1, w9
@@ -6449,14 +6775,14 @@ define { ptr, i1 } @cmpxchg_ptr(ptr %ptr, ptr %desired, ptr %new) {
 ; CHECK-NOLSE-O0-LABEL: cmpxchg_ptr:
 ; CHECK-NOLSE-O0:       ; %bb.0:
 ; CHECK-NOLSE-O0-NEXT:    mov x9, x0
-; CHECK-NOLSE-O0-NEXT:  LBB71_1: ; =>This Inner Loop Header: Depth=1
+; CHECK-NOLSE-O0-NEXT:  LBB74_1: ; =>This Inner Loop Header: Depth=1
 ; CHECK-NOLSE-O0-NEXT:    ldaxr x0, [x9]
 ; CHECK-NOLSE-O0-NEXT:    cmp x0, x1
-; CHECK-NOLSE-O0-NEXT:    b.ne LBB71_3
-; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB71_1 Depth=1
+; CHECK-NOLSE-O0-NEXT:    b.ne LBB74_3
+; CHECK-NOLSE-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB74_1 Depth=1
 ; CHECK-NOLSE-O0-NEXT:    stlxr w8, x2, [x9]
-; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB71_1
-; CHECK-NOLSE-O0-NEXT:  LBB71_3:
+; CHECK-NOLSE-O0-NEXT:    cbnz w8, LBB74_1
+; CHECK-NOLSE-O0-NEXT:  LBB74_3:
 ; CHECK-NOLSE-O0-NEXT:    subs x8, x0, x1
 ; CHECK-NOLSE-O0-NEXT:    cset w1, eq
 ; CHECK-NOLSE-O0-NEXT:    ret


        


More information about the llvm-commits mailing list