1e086b24dSSheng; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2e086b24dSSheng; RUN: llc %s -o - -mtriple=m68k -mcpu=M68000 | FileCheck %s --check-prefix=NO-ATOMIC 3e086b24dSSheng; RUN: llc %s -o - -mtriple=m68k -mcpu=M68010 | FileCheck %s --check-prefix=NO-ATOMIC 4e086b24dSSheng; RUN: llc %s -o - -mtriple=m68k -mcpu=M68020 | FileCheck %s --check-prefix=ATOMIC 5e086b24dSSheng; RUN: llc %s -o - -mtriple=m68k -mcpu=M68030 | FileCheck %s --check-prefix=ATOMIC 6e086b24dSSheng; RUN: llc %s -o - -mtriple=m68k -mcpu=M68040 | FileCheck %s --check-prefix=ATOMIC 7e086b24dSSheng 8cd0d11beSFangrui Songdefine i8 @atomic_load_i8_unordered(ptr %a) nounwind { 9e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i8_unordered: 10e086b24dSSheng; NO-ATOMIC: ; %bb.0: 11e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 12e086b24dSSheng; NO-ATOMIC-NEXT: move.b (%a0), %d0 13e086b24dSSheng; NO-ATOMIC-NEXT: rts 14e086b24dSSheng; 15e086b24dSSheng; ATOMIC-LABEL: atomic_load_i8_unordered: 16e086b24dSSheng; ATOMIC: ; %bb.0: 17e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 18e086b24dSSheng; ATOMIC-NEXT: move.b (%a0), %d0 19e086b24dSSheng; ATOMIC-NEXT: rts 20cd0d11beSFangrui Song %1 = load atomic i8, ptr %a unordered, align 1 21e086b24dSSheng ret i8 %1 22e086b24dSSheng} 23e086b24dSSheng 24cd0d11beSFangrui Songdefine i8 @atomic_load_i8_monotonic(ptr %a) nounwind { 25e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i8_monotonic: 26e086b24dSSheng; NO-ATOMIC: ; %bb.0: 27e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 28e086b24dSSheng; NO-ATOMIC-NEXT: move.b (%a0), %d0 29e086b24dSSheng; NO-ATOMIC-NEXT: rts 30e086b24dSSheng; 31e086b24dSSheng; ATOMIC-LABEL: atomic_load_i8_monotonic: 32e086b24dSSheng; ATOMIC: ; %bb.0: 33e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 34e086b24dSSheng; ATOMIC-NEXT: move.b (%a0), %d0 35e086b24dSSheng; ATOMIC-NEXT: rts 36cd0d11beSFangrui Song %1 = load atomic i8, ptr %a monotonic, align 1 37e086b24dSSheng ret i8 %1 38e086b24dSSheng} 39e086b24dSSheng 40cd0d11beSFangrui Songdefine i8 @atomic_load_i8_acquire(ptr %a) nounwind { 41e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i8_acquire: 42e086b24dSSheng; NO-ATOMIC: ; %bb.0: 43e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 44e086b24dSSheng; NO-ATOMIC-NEXT: move.b (%a0), %d0 45e086b24dSSheng; NO-ATOMIC-NEXT: rts 46e086b24dSSheng; 47e086b24dSSheng; ATOMIC-LABEL: atomic_load_i8_acquire: 48e086b24dSSheng; ATOMIC: ; %bb.0: 49e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 50e086b24dSSheng; ATOMIC-NEXT: move.b (%a0), %d0 51e086b24dSSheng; ATOMIC-NEXT: rts 52cd0d11beSFangrui Song %1 = load atomic i8, ptr %a acquire, align 1 53e086b24dSSheng ret i8 %1 54e086b24dSSheng} 55e086b24dSSheng 56cd0d11beSFangrui Songdefine i8 @atomic_load_i8_seq_cst(ptr %a) nounwind { 57e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i8_seq_cst: 58e086b24dSSheng; NO-ATOMIC: ; %bb.0: 59e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 60e086b24dSSheng; NO-ATOMIC-NEXT: move.b (%a0), %d0 61e086b24dSSheng; NO-ATOMIC-NEXT: rts 62e086b24dSSheng; 63e086b24dSSheng; ATOMIC-LABEL: atomic_load_i8_seq_cst: 64e086b24dSSheng; ATOMIC: ; %bb.0: 65e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 66e086b24dSSheng; ATOMIC-NEXT: move.b (%a0), %d0 67e086b24dSSheng; ATOMIC-NEXT: rts 68cd0d11beSFangrui Song %1 = load atomic i8, ptr %a seq_cst, align 1 69e086b24dSSheng ret i8 %1 70e086b24dSSheng} 71e086b24dSSheng 72cd0d11beSFangrui Songdefine i16 @atomic_load_i16_unordered(ptr %a) nounwind { 73e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i16_unordered: 74e086b24dSSheng; NO-ATOMIC: ; %bb.0: 75e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 76e086b24dSSheng; NO-ATOMIC-NEXT: move.w (%a0), %d0 77e086b24dSSheng; NO-ATOMIC-NEXT: rts 78e086b24dSSheng; 79e086b24dSSheng; ATOMIC-LABEL: atomic_load_i16_unordered: 80e086b24dSSheng; ATOMIC: ; %bb.0: 81e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 82e086b24dSSheng; ATOMIC-NEXT: move.w (%a0), %d0 83e086b24dSSheng; ATOMIC-NEXT: rts 84cd0d11beSFangrui Song %1 = load atomic i16, ptr %a unordered, align 2 85e086b24dSSheng ret i16 %1 86e086b24dSSheng} 87e086b24dSSheng 88cd0d11beSFangrui Songdefine i16 @atomic_load_i16_monotonic(ptr %a) nounwind { 89e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i16_monotonic: 90e086b24dSSheng; NO-ATOMIC: ; %bb.0: 91e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 92e086b24dSSheng; NO-ATOMIC-NEXT: move.w (%a0), %d0 93e086b24dSSheng; NO-ATOMIC-NEXT: rts 94e086b24dSSheng; 95e086b24dSSheng; ATOMIC-LABEL: atomic_load_i16_monotonic: 96e086b24dSSheng; ATOMIC: ; %bb.0: 97e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 98e086b24dSSheng; ATOMIC-NEXT: move.w (%a0), %d0 99e086b24dSSheng; ATOMIC-NEXT: rts 100cd0d11beSFangrui Song %1 = load atomic i16, ptr %a monotonic, align 2 101e086b24dSSheng ret i16 %1 102e086b24dSSheng} 103e086b24dSSheng 104cd0d11beSFangrui Songdefine i16 @atomic_load_i16_acquire(ptr %a) nounwind { 105e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i16_acquire: 106e086b24dSSheng; NO-ATOMIC: ; %bb.0: 107e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 108e086b24dSSheng; NO-ATOMIC-NEXT: move.w (%a0), %d0 109e086b24dSSheng; NO-ATOMIC-NEXT: rts 110e086b24dSSheng; 111e086b24dSSheng; ATOMIC-LABEL: atomic_load_i16_acquire: 112e086b24dSSheng; ATOMIC: ; %bb.0: 113e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 114e086b24dSSheng; ATOMIC-NEXT: move.w (%a0), %d0 115e086b24dSSheng; ATOMIC-NEXT: rts 116cd0d11beSFangrui Song %1 = load atomic i16, ptr %a acquire, align 2 117e086b24dSSheng ret i16 %1 118e086b24dSSheng} 119e086b24dSSheng 120cd0d11beSFangrui Songdefine i16 @atomic_load_i16_seq_cst(ptr %a) nounwind { 121e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i16_seq_cst: 122e086b24dSSheng; NO-ATOMIC: ; %bb.0: 123e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 124e086b24dSSheng; NO-ATOMIC-NEXT: move.w (%a0), %d0 125e086b24dSSheng; NO-ATOMIC-NEXT: rts 126e086b24dSSheng; 127e086b24dSSheng; ATOMIC-LABEL: atomic_load_i16_seq_cst: 128e086b24dSSheng; ATOMIC: ; %bb.0: 129e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 130e086b24dSSheng; ATOMIC-NEXT: move.w (%a0), %d0 131e086b24dSSheng; ATOMIC-NEXT: rts 132cd0d11beSFangrui Song %1 = load atomic i16, ptr %a seq_cst, align 2 133e086b24dSSheng ret i16 %1 134e086b24dSSheng} 135e086b24dSSheng 136cd0d11beSFangrui Songdefine i32 @atomic_load_i32_unordered(ptr %a) nounwind { 137e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i32_unordered: 138e086b24dSSheng; NO-ATOMIC: ; %bb.0: 139e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 140e086b24dSSheng; NO-ATOMIC-NEXT: move.l (%a0), %d0 141e086b24dSSheng; NO-ATOMIC-NEXT: rts 142e086b24dSSheng; 143e086b24dSSheng; ATOMIC-LABEL: atomic_load_i32_unordered: 144e086b24dSSheng; ATOMIC: ; %bb.0: 145e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 146e086b24dSSheng; ATOMIC-NEXT: move.l (%a0), %d0 147e086b24dSSheng; ATOMIC-NEXT: rts 148cd0d11beSFangrui Song %1 = load atomic i32, ptr %a unordered, align 4 149e086b24dSSheng ret i32 %1 150e086b24dSSheng} 151e086b24dSSheng 152cd0d11beSFangrui Songdefine i32 @atomic_load_i32_monotonic(ptr %a) nounwind { 153e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i32_monotonic: 154e086b24dSSheng; NO-ATOMIC: ; %bb.0: 155e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 156e086b24dSSheng; NO-ATOMIC-NEXT: move.l (%a0), %d0 157e086b24dSSheng; NO-ATOMIC-NEXT: rts 158e086b24dSSheng; 159e086b24dSSheng; ATOMIC-LABEL: atomic_load_i32_monotonic: 160e086b24dSSheng; ATOMIC: ; %bb.0: 161e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 162e086b24dSSheng; ATOMIC-NEXT: move.l (%a0), %d0 163e086b24dSSheng; ATOMIC-NEXT: rts 164cd0d11beSFangrui Song %1 = load atomic i32, ptr %a monotonic, align 4 165e086b24dSSheng ret i32 %1 166e086b24dSSheng} 167e086b24dSSheng 168cd0d11beSFangrui Songdefine i32 @atomic_load_i32_acquire(ptr %a) nounwind { 169e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i32_acquire: 170e086b24dSSheng; NO-ATOMIC: ; %bb.0: 171e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 172e086b24dSSheng; NO-ATOMIC-NEXT: move.l (%a0), %d0 173e086b24dSSheng; NO-ATOMIC-NEXT: rts 174e086b24dSSheng; 175e086b24dSSheng; ATOMIC-LABEL: atomic_load_i32_acquire: 176e086b24dSSheng; ATOMIC: ; %bb.0: 177e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 178e086b24dSSheng; ATOMIC-NEXT: move.l (%a0), %d0 179e086b24dSSheng; ATOMIC-NEXT: rts 180cd0d11beSFangrui Song %1 = load atomic i32, ptr %a acquire, align 4 181e086b24dSSheng ret i32 %1 182e086b24dSSheng} 183e086b24dSSheng 184cd0d11beSFangrui Songdefine i32 @atomic_load_i32_seq_cst(ptr %a) nounwind { 185e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i32_seq_cst: 186e086b24dSSheng; NO-ATOMIC: ; %bb.0: 187e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 188e086b24dSSheng; NO-ATOMIC-NEXT: move.l (%a0), %d0 189e086b24dSSheng; NO-ATOMIC-NEXT: rts 190e086b24dSSheng; 191e086b24dSSheng; ATOMIC-LABEL: atomic_load_i32_seq_cst: 192e086b24dSSheng; ATOMIC: ; %bb.0: 193e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 194e086b24dSSheng; ATOMIC-NEXT: move.l (%a0), %d0 195e086b24dSSheng; ATOMIC-NEXT: rts 196cd0d11beSFangrui Song %1 = load atomic i32, ptr %a seq_cst, align 4 197e086b24dSSheng ret i32 %1 198e086b24dSSheng} 199e086b24dSSheng 200cd0d11beSFangrui Songdefine i64 @atomic_load_i64_unordered(ptr %a) nounwind { 201e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i64_unordered: 202e086b24dSSheng; NO-ATOMIC: ; %bb.0: 203e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #12, %sp 204e086b24dSSheng; NO-ATOMIC-NEXT: move.l #0, (4,%sp) 205e086b24dSSheng; NO-ATOMIC-NEXT: move.l (16,%sp), (%sp) 206ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_load_8 207e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #12, %sp 208e086b24dSSheng; NO-ATOMIC-NEXT: rts 209e086b24dSSheng; 210e086b24dSSheng; ATOMIC-LABEL: atomic_load_i64_unordered: 211e086b24dSSheng; ATOMIC: ; %bb.0: 212e086b24dSSheng; ATOMIC-NEXT: suba.l #12, %sp 213e086b24dSSheng; ATOMIC-NEXT: move.l #0, (4,%sp) 214e086b24dSSheng; ATOMIC-NEXT: move.l (16,%sp), (%sp) 215ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_load_8 216e086b24dSSheng; ATOMIC-NEXT: adda.l #12, %sp 217e086b24dSSheng; ATOMIC-NEXT: rts 218cd0d11beSFangrui Song %1 = load atomic i64, ptr %a unordered, align 8 219e086b24dSSheng ret i64 %1 220e086b24dSSheng} 221e086b24dSSheng 222cd0d11beSFangrui Songdefine i64 @atomic_load_i64_monotonic(ptr %a) nounwind { 223e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i64_monotonic: 224e086b24dSSheng; NO-ATOMIC: ; %bb.0: 225e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #12, %sp 226e086b24dSSheng; NO-ATOMIC-NEXT: move.l #0, (4,%sp) 227e086b24dSSheng; NO-ATOMIC-NEXT: move.l (16,%sp), (%sp) 228ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_load_8 229e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #12, %sp 230e086b24dSSheng; NO-ATOMIC-NEXT: rts 231e086b24dSSheng; 232e086b24dSSheng; ATOMIC-LABEL: atomic_load_i64_monotonic: 233e086b24dSSheng; ATOMIC: ; %bb.0: 234e086b24dSSheng; ATOMIC-NEXT: suba.l #12, %sp 235e086b24dSSheng; ATOMIC-NEXT: move.l #0, (4,%sp) 236e086b24dSSheng; ATOMIC-NEXT: move.l (16,%sp), (%sp) 237ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_load_8 238e086b24dSSheng; ATOMIC-NEXT: adda.l #12, %sp 239e086b24dSSheng; ATOMIC-NEXT: rts 240cd0d11beSFangrui Song %1 = load atomic i64, ptr %a monotonic, align 8 241e086b24dSSheng ret i64 %1 242e086b24dSSheng} 243e086b24dSSheng 244cd0d11beSFangrui Songdefine i64 @atomic_load_i64_acquire(ptr %a) nounwind { 245e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i64_acquire: 246e086b24dSSheng; NO-ATOMIC: ; %bb.0: 247e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #12, %sp 248e086b24dSSheng; NO-ATOMIC-NEXT: move.l #2, (4,%sp) 249e086b24dSSheng; NO-ATOMIC-NEXT: move.l (16,%sp), (%sp) 250ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_load_8 251e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #12, %sp 252e086b24dSSheng; NO-ATOMIC-NEXT: rts 253e086b24dSSheng; 254e086b24dSSheng; ATOMIC-LABEL: atomic_load_i64_acquire: 255e086b24dSSheng; ATOMIC: ; %bb.0: 256e086b24dSSheng; ATOMIC-NEXT: suba.l #12, %sp 257e086b24dSSheng; ATOMIC-NEXT: move.l #2, (4,%sp) 258e086b24dSSheng; ATOMIC-NEXT: move.l (16,%sp), (%sp) 259ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_load_8 260e086b24dSSheng; ATOMIC-NEXT: adda.l #12, %sp 261e086b24dSSheng; ATOMIC-NEXT: rts 262cd0d11beSFangrui Song %1 = load atomic i64, ptr %a acquire, align 8 263e086b24dSSheng ret i64 %1 264e086b24dSSheng} 265e086b24dSSheng 266cd0d11beSFangrui Songdefine i64 @atomic_load_i64_seq_cst(ptr %a) nounwind { 267e086b24dSSheng; NO-ATOMIC-LABEL: atomic_load_i64_seq_cst: 268e086b24dSSheng; NO-ATOMIC: ; %bb.0: 269e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #12, %sp 270e086b24dSSheng; NO-ATOMIC-NEXT: move.l #5, (4,%sp) 271e086b24dSSheng; NO-ATOMIC-NEXT: move.l (16,%sp), (%sp) 272ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_load_8 273e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #12, %sp 274e086b24dSSheng; NO-ATOMIC-NEXT: rts 275e086b24dSSheng; 276e086b24dSSheng; ATOMIC-LABEL: atomic_load_i64_seq_cst: 277e086b24dSSheng; ATOMIC: ; %bb.0: 278e086b24dSSheng; ATOMIC-NEXT: suba.l #12, %sp 279e086b24dSSheng; ATOMIC-NEXT: move.l #5, (4,%sp) 280e086b24dSSheng; ATOMIC-NEXT: move.l (16,%sp), (%sp) 281ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_load_8 282e086b24dSSheng; ATOMIC-NEXT: adda.l #12, %sp 283e086b24dSSheng; ATOMIC-NEXT: rts 284cd0d11beSFangrui Song %1 = load atomic i64, ptr %a seq_cst, align 8 285e086b24dSSheng ret i64 %1 286e086b24dSSheng} 287e086b24dSSheng 288cd0d11beSFangrui Songdefine void @atomic_store_i8_unordered(ptr %a, i8 %val) nounwind { 289e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i8_unordered: 290e086b24dSSheng; NO-ATOMIC: ; %bb.0: 291e086b24dSSheng; NO-ATOMIC-NEXT: move.b (11,%sp), %d0 292e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 293e086b24dSSheng; NO-ATOMIC-NEXT: move.b %d0, (%a0) 294e086b24dSSheng; NO-ATOMIC-NEXT: rts 295e086b24dSSheng; 296e086b24dSSheng; ATOMIC-LABEL: atomic_store_i8_unordered: 297e086b24dSSheng; ATOMIC: ; %bb.0: 298e086b24dSSheng; ATOMIC-NEXT: move.b (11,%sp), %d0 299e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 300e086b24dSSheng; ATOMIC-NEXT: move.b %d0, (%a0) 301e086b24dSSheng; ATOMIC-NEXT: rts 302cd0d11beSFangrui Song store atomic i8 %val, ptr %a unordered, align 1 303e086b24dSSheng ret void 304e086b24dSSheng} 305e086b24dSSheng 306cd0d11beSFangrui Songdefine void @atomic_store_i8_monotonic(ptr %a, i8 %val) nounwind { 307e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i8_monotonic: 308e086b24dSSheng; NO-ATOMIC: ; %bb.0: 309e086b24dSSheng; NO-ATOMIC-NEXT: move.b (11,%sp), %d0 310e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 311e086b24dSSheng; NO-ATOMIC-NEXT: move.b %d0, (%a0) 312e086b24dSSheng; NO-ATOMIC-NEXT: rts 313e086b24dSSheng; 314e086b24dSSheng; ATOMIC-LABEL: atomic_store_i8_monotonic: 315e086b24dSSheng; ATOMIC: ; %bb.0: 316e086b24dSSheng; ATOMIC-NEXT: move.b (11,%sp), %d0 317e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 318e086b24dSSheng; ATOMIC-NEXT: move.b %d0, (%a0) 319e086b24dSSheng; ATOMIC-NEXT: rts 320cd0d11beSFangrui Song store atomic i8 %val, ptr %a monotonic, align 1 321e086b24dSSheng ret void 322e086b24dSSheng} 323e086b24dSSheng 324cd0d11beSFangrui Songdefine void @atomic_store_i8_release(ptr %a, i8 %val) nounwind { 325e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i8_release: 326e086b24dSSheng; NO-ATOMIC: ; %bb.0: 327e086b24dSSheng; NO-ATOMIC-NEXT: move.b (11,%sp), %d0 328e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 329e086b24dSSheng; NO-ATOMIC-NEXT: move.b %d0, (%a0) 330e086b24dSSheng; NO-ATOMIC-NEXT: rts 331e086b24dSSheng; 332e086b24dSSheng; ATOMIC-LABEL: atomic_store_i8_release: 333e086b24dSSheng; ATOMIC: ; %bb.0: 334e086b24dSSheng; ATOMIC-NEXT: move.b (11,%sp), %d0 335e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 336e086b24dSSheng; ATOMIC-NEXT: move.b %d0, (%a0) 337e086b24dSSheng; ATOMIC-NEXT: rts 338cd0d11beSFangrui Song store atomic i8 %val, ptr %a release, align 1 339e086b24dSSheng ret void 340e086b24dSSheng} 341e086b24dSSheng 342cd0d11beSFangrui Songdefine void @atomic_store_i8_seq_cst(ptr %a, i8 %val) nounwind { 343e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i8_seq_cst: 344e086b24dSSheng; NO-ATOMIC: ; %bb.0: 345e086b24dSSheng; NO-ATOMIC-NEXT: move.b (11,%sp), %d0 346e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 347e086b24dSSheng; NO-ATOMIC-NEXT: move.b %d0, (%a0) 348e086b24dSSheng; NO-ATOMIC-NEXT: rts 349e086b24dSSheng; 350e086b24dSSheng; ATOMIC-LABEL: atomic_store_i8_seq_cst: 351e086b24dSSheng; ATOMIC: ; %bb.0: 352e086b24dSSheng; ATOMIC-NEXT: move.b (11,%sp), %d0 353e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 354e086b24dSSheng; ATOMIC-NEXT: move.b %d0, (%a0) 355e086b24dSSheng; ATOMIC-NEXT: rts 356cd0d11beSFangrui Song store atomic i8 %val, ptr %a seq_cst, align 1 357e086b24dSSheng ret void 358e086b24dSSheng} 359e086b24dSSheng 360cd0d11beSFangrui Songdefine void @atomic_store_i16_unordered(ptr %a, i16 %val) nounwind { 361e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i16_unordered: 362e086b24dSSheng; NO-ATOMIC: ; %bb.0: 363e086b24dSSheng; NO-ATOMIC-NEXT: move.w (10,%sp), %d0 364e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 365e086b24dSSheng; NO-ATOMIC-NEXT: move.w %d0, (%a0) 366e086b24dSSheng; NO-ATOMIC-NEXT: rts 367e086b24dSSheng; 368e086b24dSSheng; ATOMIC-LABEL: atomic_store_i16_unordered: 369e086b24dSSheng; ATOMIC: ; %bb.0: 370e086b24dSSheng; ATOMIC-NEXT: move.w (10,%sp), %d0 371e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 372e086b24dSSheng; ATOMIC-NEXT: move.w %d0, (%a0) 373e086b24dSSheng; ATOMIC-NEXT: rts 374cd0d11beSFangrui Song store atomic i16 %val, ptr %a unordered, align 2 375e086b24dSSheng ret void 376e086b24dSSheng} 377e086b24dSSheng 378cd0d11beSFangrui Songdefine void @atomic_store_i16_monotonic(ptr %a, i16 %val) nounwind { 379e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i16_monotonic: 380e086b24dSSheng; NO-ATOMIC: ; %bb.0: 381e086b24dSSheng; NO-ATOMIC-NEXT: move.w (10,%sp), %d0 382e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 383e086b24dSSheng; NO-ATOMIC-NEXT: move.w %d0, (%a0) 384e086b24dSSheng; NO-ATOMIC-NEXT: rts 385e086b24dSSheng; 386e086b24dSSheng; ATOMIC-LABEL: atomic_store_i16_monotonic: 387e086b24dSSheng; ATOMIC: ; %bb.0: 388e086b24dSSheng; ATOMIC-NEXT: move.w (10,%sp), %d0 389e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 390e086b24dSSheng; ATOMIC-NEXT: move.w %d0, (%a0) 391e086b24dSSheng; ATOMIC-NEXT: rts 392cd0d11beSFangrui Song store atomic i16 %val, ptr %a monotonic, align 2 393e086b24dSSheng ret void 394e086b24dSSheng} 395e086b24dSSheng 396cd0d11beSFangrui Songdefine void @atomic_store_i16_release(ptr %a, i16 %val) nounwind { 397e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i16_release: 398e086b24dSSheng; NO-ATOMIC: ; %bb.0: 399e086b24dSSheng; NO-ATOMIC-NEXT: move.w (10,%sp), %d0 400e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 401e086b24dSSheng; NO-ATOMIC-NEXT: move.w %d0, (%a0) 402e086b24dSSheng; NO-ATOMIC-NEXT: rts 403e086b24dSSheng; 404e086b24dSSheng; ATOMIC-LABEL: atomic_store_i16_release: 405e086b24dSSheng; ATOMIC: ; %bb.0: 406e086b24dSSheng; ATOMIC-NEXT: move.w (10,%sp), %d0 407e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 408e086b24dSSheng; ATOMIC-NEXT: move.w %d0, (%a0) 409e086b24dSSheng; ATOMIC-NEXT: rts 410cd0d11beSFangrui Song store atomic i16 %val, ptr %a release, align 2 411e086b24dSSheng ret void 412e086b24dSSheng} 413e086b24dSSheng 414cd0d11beSFangrui Songdefine void @atomic_store_i16_seq_cst(ptr %a, i16 %val) nounwind { 415e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i16_seq_cst: 416e086b24dSSheng; NO-ATOMIC: ; %bb.0: 417e086b24dSSheng; NO-ATOMIC-NEXT: move.w (10,%sp), %d0 418e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 419e086b24dSSheng; NO-ATOMIC-NEXT: move.w %d0, (%a0) 420e086b24dSSheng; NO-ATOMIC-NEXT: rts 421e086b24dSSheng; 422e086b24dSSheng; ATOMIC-LABEL: atomic_store_i16_seq_cst: 423e086b24dSSheng; ATOMIC: ; %bb.0: 424e086b24dSSheng; ATOMIC-NEXT: move.w (10,%sp), %d0 425e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 426e086b24dSSheng; ATOMIC-NEXT: move.w %d0, (%a0) 427e086b24dSSheng; ATOMIC-NEXT: rts 428cd0d11beSFangrui Song store atomic i16 %val, ptr %a seq_cst, align 2 429e086b24dSSheng ret void 430e086b24dSSheng} 431e086b24dSSheng 432cd0d11beSFangrui Songdefine void @atomic_store_i32_unordered(ptr %a, i32 %val) nounwind { 433e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i32_unordered: 434e086b24dSSheng; NO-ATOMIC: ; %bb.0: 435e086b24dSSheng; NO-ATOMIC-NEXT: move.l (8,%sp), %d0 436e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 437e086b24dSSheng; NO-ATOMIC-NEXT: move.l %d0, (%a0) 438e086b24dSSheng; NO-ATOMIC-NEXT: rts 439e086b24dSSheng; 440e086b24dSSheng; ATOMIC-LABEL: atomic_store_i32_unordered: 441e086b24dSSheng; ATOMIC: ; %bb.0: 442e086b24dSSheng; ATOMIC-NEXT: move.l (8,%sp), %d0 443e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 444e086b24dSSheng; ATOMIC-NEXT: move.l %d0, (%a0) 445e086b24dSSheng; ATOMIC-NEXT: rts 446cd0d11beSFangrui Song store atomic i32 %val, ptr %a unordered, align 4 447e086b24dSSheng ret void 448e086b24dSSheng} 449e086b24dSSheng 450cd0d11beSFangrui Songdefine void @atomic_store_i32_monotonic(ptr %a, i32 %val) nounwind { 451e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i32_monotonic: 452e086b24dSSheng; NO-ATOMIC: ; %bb.0: 453e086b24dSSheng; NO-ATOMIC-NEXT: move.l (8,%sp), %d0 454e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 455e086b24dSSheng; NO-ATOMIC-NEXT: move.l %d0, (%a0) 456e086b24dSSheng; NO-ATOMIC-NEXT: rts 457e086b24dSSheng; 458e086b24dSSheng; ATOMIC-LABEL: atomic_store_i32_monotonic: 459e086b24dSSheng; ATOMIC: ; %bb.0: 460e086b24dSSheng; ATOMIC-NEXT: move.l (8,%sp), %d0 461e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 462e086b24dSSheng; ATOMIC-NEXT: move.l %d0, (%a0) 463e086b24dSSheng; ATOMIC-NEXT: rts 464cd0d11beSFangrui Song store atomic i32 %val, ptr %a monotonic, align 4 465e086b24dSSheng ret void 466e086b24dSSheng} 467e086b24dSSheng 468cd0d11beSFangrui Songdefine void @atomic_store_i32_release(ptr %a, i32 %val) nounwind { 469e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i32_release: 470e086b24dSSheng; NO-ATOMIC: ; %bb.0: 471e086b24dSSheng; NO-ATOMIC-NEXT: move.l (8,%sp), %d0 472e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 473e086b24dSSheng; NO-ATOMIC-NEXT: move.l %d0, (%a0) 474e086b24dSSheng; NO-ATOMIC-NEXT: rts 475e086b24dSSheng; 476e086b24dSSheng; ATOMIC-LABEL: atomic_store_i32_release: 477e086b24dSSheng; ATOMIC: ; %bb.0: 478e086b24dSSheng; ATOMIC-NEXT: move.l (8,%sp), %d0 479e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 480e086b24dSSheng; ATOMIC-NEXT: move.l %d0, (%a0) 481e086b24dSSheng; ATOMIC-NEXT: rts 482cd0d11beSFangrui Song store atomic i32 %val, ptr %a release, align 4 483e086b24dSSheng ret void 484e086b24dSSheng} 485e086b24dSSheng 486cd0d11beSFangrui Songdefine void @atomic_store_i32_seq_cst(ptr %a, i32 %val) nounwind { 487e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i32_seq_cst: 488e086b24dSSheng; NO-ATOMIC: ; %bb.0: 489e086b24dSSheng; NO-ATOMIC-NEXT: move.l (8,%sp), %d0 490e086b24dSSheng; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 491e086b24dSSheng; NO-ATOMIC-NEXT: move.l %d0, (%a0) 492e086b24dSSheng; NO-ATOMIC-NEXT: rts 493e086b24dSSheng; 494e086b24dSSheng; ATOMIC-LABEL: atomic_store_i32_seq_cst: 495e086b24dSSheng; ATOMIC: ; %bb.0: 496e086b24dSSheng; ATOMIC-NEXT: move.l (8,%sp), %d0 497e086b24dSSheng; ATOMIC-NEXT: move.l (4,%sp), %a0 498e086b24dSSheng; ATOMIC-NEXT: move.l %d0, (%a0) 499e086b24dSSheng; ATOMIC-NEXT: rts 500cd0d11beSFangrui Song store atomic i32 %val, ptr %a seq_cst, align 4 501e086b24dSSheng ret void 502e086b24dSSheng} 503e086b24dSSheng 504cd0d11beSFangrui Songdefine void @atomic_store_i64_unordered(ptr %a, i64 %val) nounwind { 505e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i64_unordered: 506e086b24dSSheng; NO-ATOMIC: ; %bb.0: 507e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #20, %sp 508e086b24dSSheng; NO-ATOMIC-NEXT: move.l #0, (12,%sp) 509e086b24dSSheng; NO-ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 510e086b24dSSheng; NO-ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 511e086b24dSSheng; NO-ATOMIC-NEXT: move.l (24,%sp), (%sp) 512ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_store_8 513e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #20, %sp 514e086b24dSSheng; NO-ATOMIC-NEXT: rts 515e086b24dSSheng; 516e086b24dSSheng; ATOMIC-LABEL: atomic_store_i64_unordered: 517e086b24dSSheng; ATOMIC: ; %bb.0: 518e086b24dSSheng; ATOMIC-NEXT: suba.l #20, %sp 519e086b24dSSheng; ATOMIC-NEXT: move.l #0, (12,%sp) 520e086b24dSSheng; ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 521e086b24dSSheng; ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 522e086b24dSSheng; ATOMIC-NEXT: move.l (24,%sp), (%sp) 523ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_store_8 524e086b24dSSheng; ATOMIC-NEXT: adda.l #20, %sp 525e086b24dSSheng; ATOMIC-NEXT: rts 526cd0d11beSFangrui Song store atomic i64 %val, ptr %a unordered, align 8 527e086b24dSSheng ret void 528e086b24dSSheng} 529e086b24dSSheng 530cd0d11beSFangrui Songdefine void @atomic_store_i64_monotonic(ptr %a, i64 %val) nounwind { 531e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i64_monotonic: 532e086b24dSSheng; NO-ATOMIC: ; %bb.0: 533e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #20, %sp 534e086b24dSSheng; NO-ATOMIC-NEXT: move.l #0, (12,%sp) 535e086b24dSSheng; NO-ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 536e086b24dSSheng; NO-ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 537e086b24dSSheng; NO-ATOMIC-NEXT: move.l (24,%sp), (%sp) 538ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_store_8 539e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #20, %sp 540e086b24dSSheng; NO-ATOMIC-NEXT: rts 541e086b24dSSheng; 542e086b24dSSheng; ATOMIC-LABEL: atomic_store_i64_monotonic: 543e086b24dSSheng; ATOMIC: ; %bb.0: 544e086b24dSSheng; ATOMIC-NEXT: suba.l #20, %sp 545e086b24dSSheng; ATOMIC-NEXT: move.l #0, (12,%sp) 546e086b24dSSheng; ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 547e086b24dSSheng; ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 548e086b24dSSheng; ATOMIC-NEXT: move.l (24,%sp), (%sp) 549ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_store_8 550e086b24dSSheng; ATOMIC-NEXT: adda.l #20, %sp 551e086b24dSSheng; ATOMIC-NEXT: rts 552cd0d11beSFangrui Song store atomic i64 %val, ptr %a monotonic, align 8 553e086b24dSSheng ret void 554e086b24dSSheng} 555e086b24dSSheng 556cd0d11beSFangrui Songdefine void @atomic_store_i64_release(ptr %a, i64 %val) nounwind { 557e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i64_release: 558e086b24dSSheng; NO-ATOMIC: ; %bb.0: 559e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #20, %sp 560e086b24dSSheng; NO-ATOMIC-NEXT: move.l #3, (12,%sp) 561e086b24dSSheng; NO-ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 562e086b24dSSheng; NO-ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 563e086b24dSSheng; NO-ATOMIC-NEXT: move.l (24,%sp), (%sp) 564ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_store_8 565e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #20, %sp 566e086b24dSSheng; NO-ATOMIC-NEXT: rts 567e086b24dSSheng; 568e086b24dSSheng; ATOMIC-LABEL: atomic_store_i64_release: 569e086b24dSSheng; ATOMIC: ; %bb.0: 570e086b24dSSheng; ATOMIC-NEXT: suba.l #20, %sp 571e086b24dSSheng; ATOMIC-NEXT: move.l #3, (12,%sp) 572e086b24dSSheng; ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 573e086b24dSSheng; ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 574e086b24dSSheng; ATOMIC-NEXT: move.l (24,%sp), (%sp) 575ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_store_8 576e086b24dSSheng; ATOMIC-NEXT: adda.l #20, %sp 577e086b24dSSheng; ATOMIC-NEXT: rts 578cd0d11beSFangrui Song store atomic i64 %val, ptr %a release, align 8 579e086b24dSSheng ret void 580e086b24dSSheng} 581e086b24dSSheng 582cd0d11beSFangrui Songdefine void @atomic_store_i64_seq_cst(ptr %a, i64 %val) nounwind { 583e086b24dSSheng; NO-ATOMIC-LABEL: atomic_store_i64_seq_cst: 584e086b24dSSheng; NO-ATOMIC: ; %bb.0: 585e086b24dSSheng; NO-ATOMIC-NEXT: suba.l #20, %sp 586e086b24dSSheng; NO-ATOMIC-NEXT: move.l #5, (12,%sp) 587e086b24dSSheng; NO-ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 588e086b24dSSheng; NO-ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 589e086b24dSSheng; NO-ATOMIC-NEXT: move.l (24,%sp), (%sp) 590ebbc5de7SPeter Lafreniere; NO-ATOMIC-NEXT: jsr __atomic_store_8 591e086b24dSSheng; NO-ATOMIC-NEXT: adda.l #20, %sp 592e086b24dSSheng; NO-ATOMIC-NEXT: rts 593e086b24dSSheng; 594e086b24dSSheng; ATOMIC-LABEL: atomic_store_i64_seq_cst: 595e086b24dSSheng; ATOMIC: ; %bb.0: 596e086b24dSSheng; ATOMIC-NEXT: suba.l #20, %sp 597e086b24dSSheng; ATOMIC-NEXT: move.l #5, (12,%sp) 598e086b24dSSheng; ATOMIC-NEXT: move.l (32,%sp), (8,%sp) 599e086b24dSSheng; ATOMIC-NEXT: move.l (28,%sp), (4,%sp) 600e086b24dSSheng; ATOMIC-NEXT: move.l (24,%sp), (%sp) 601ebbc5de7SPeter Lafreniere; ATOMIC-NEXT: jsr __atomic_store_8 602e086b24dSSheng; ATOMIC-NEXT: adda.l #20, %sp 603e086b24dSSheng; ATOMIC-NEXT: rts 604cd0d11beSFangrui Song store atomic i64 %val, ptr %a seq_cst, align 8 605e086b24dSSheng ret void 606e086b24dSSheng} 607*4cce1074Sknickish 608*4cce1074Sknickishdefine void @store_arid(ptr nonnull align 4 %a) { 609*4cce1074Sknickish; NO-ATOMIC-LABEL: store_arid: 610*4cce1074Sknickish; NO-ATOMIC: .cfi_startproc 611*4cce1074Sknickish; NO-ATOMIC-NEXT: ; %bb.0: ; %start 612*4cce1074Sknickish; NO-ATOMIC-NEXT: moveq #1, %d0 613*4cce1074Sknickish; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 614*4cce1074Sknickish; NO-ATOMIC-NEXT: move.l %d0, (32,%a0) 615*4cce1074Sknickish; NO-ATOMIC-NEXT: rts 616*4cce1074Sknickish; 617*4cce1074Sknickish; ATOMIC-LABEL: store_arid: 618*4cce1074Sknickish; ATOMIC: .cfi_startproc 619*4cce1074Sknickish; ATOMIC-NEXT: ; %bb.0: ; %start 620*4cce1074Sknickish; ATOMIC-NEXT: moveq #1, %d0 621*4cce1074Sknickish; ATOMIC-NEXT: move.l (4,%sp), %a0 622*4cce1074Sknickish; ATOMIC-NEXT: move.l %d0, (32,%a0) 623*4cce1074Sknickish; ATOMIC-NEXT: rts 624*4cce1074Sknickishstart: 625*4cce1074Sknickish %1 = getelementptr inbounds i32, ptr %a, i32 8 626*4cce1074Sknickish store atomic i32 1, ptr %1 seq_cst, align 4 627*4cce1074Sknickish br label %exit 628*4cce1074Sknickish 629*4cce1074Sknickishexit: ; preds = %start 630*4cce1074Sknickish ret void 631*4cce1074Sknickish} 632*4cce1074Sknickish 633*4cce1074Sknickishdefine i32 @load_arid(ptr nonnull align 4 %a) { 634*4cce1074Sknickish; NO-ATOMIC-LABEL: load_arid: 635*4cce1074Sknickish; NO-ATOMIC: .cfi_startproc 636*4cce1074Sknickish; NO-ATOMIC-NEXT: ; %bb.0: ; %start 637*4cce1074Sknickish; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 638*4cce1074Sknickish; NO-ATOMIC-NEXT: move.l (32,%a0), %d0 639*4cce1074Sknickish; NO-ATOMIC-NEXT: rts 640*4cce1074Sknickish; 641*4cce1074Sknickish; ATOMIC-LABEL: load_arid: 642*4cce1074Sknickish; ATOMIC: .cfi_startproc 643*4cce1074Sknickish; ATOMIC-NEXT: ; %bb.0: ; %start 644*4cce1074Sknickish; ATOMIC-NEXT: move.l (4,%sp), %a0 645*4cce1074Sknickish; ATOMIC-NEXT: move.l (32,%a0), %d0 646*4cce1074Sknickish; ATOMIC-NEXT: rts 647*4cce1074Sknickishstart: 648*4cce1074Sknickish %1 = getelementptr inbounds i32, ptr %a, i32 8 649*4cce1074Sknickish %2 = load atomic i32, ptr %1 seq_cst, align 4 650*4cce1074Sknickish br label %exit 651*4cce1074Sknickish 652*4cce1074Sknickishexit: ; preds = %start 653*4cce1074Sknickish ret i32 %2 654*4cce1074Sknickish} 655