1*e13f1d1dSknickish; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2*e13f1d1dSknickish; RUN: llc %s -o - -mtriple=m68k -mcpu=M68000 | FileCheck %s --check-prefix=NO-ATOMIC 3*e13f1d1dSknickish; RUN: llc %s -o - -mtriple=m68k -mcpu=M68010 | FileCheck %s --check-prefix=NO-ATOMIC 4*e13f1d1dSknickish; RUN: llc %s -o - -mtriple=m68k -mcpu=M68020 | FileCheck %s --check-prefix=ATOMIC 5*e13f1d1dSknickish; RUN: llc %s -o - -mtriple=m68k -mcpu=M68030 | FileCheck %s --check-prefix=ATOMIC 6*e13f1d1dSknickish; RUN: llc %s -o - -mtriple=m68k -mcpu=M68040 | FileCheck %s --check-prefix=ATOMIC 7*e13f1d1dSknickish 8*e13f1d1dSknickishdefine void @atomic_store_i8_element_monotonic(i8 %val, ptr %base, i32 %offset) nounwind { 9*e13f1d1dSknickish; NO-ATOMIC-LABEL: atomic_store_i8_element_monotonic: 10*e13f1d1dSknickish; NO-ATOMIC: ; %bb.0: 11*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.b (7,%sp), %d0 12*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.l (12,%sp), %d1 13*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.l (8,%sp), %a0 14*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.b %d0, (0,%a0,%d1) 15*e13f1d1dSknickish; NO-ATOMIC-NEXT: rts 16*e13f1d1dSknickish; 17*e13f1d1dSknickish; ATOMIC-LABEL: atomic_store_i8_element_monotonic: 18*e13f1d1dSknickish; ATOMIC: ; %bb.0: 19*e13f1d1dSknickish; ATOMIC-NEXT: move.b (7,%sp), %d0 20*e13f1d1dSknickish; ATOMIC-NEXT: move.l (12,%sp), %d1 21*e13f1d1dSknickish; ATOMIC-NEXT: move.l (8,%sp), %a0 22*e13f1d1dSknickish; ATOMIC-NEXT: move.b %d0, (0,%a0,%d1) 23*e13f1d1dSknickish; ATOMIC-NEXT: rts 24*e13f1d1dSknickish %store_pointer = getelementptr i8, ptr %base, i32 %offset 25*e13f1d1dSknickish store atomic i8 %val, ptr %store_pointer monotonic, align 1 26*e13f1d1dSknickish ret void 27*e13f1d1dSknickish} 28*e13f1d1dSknickish 29*e13f1d1dSknickishdefine i8 @atomic_load_i8_element_monotonic(ptr %base, i32 %offset) nounwind { 30*e13f1d1dSknickish; NO-ATOMIC-LABEL: atomic_load_i8_element_monotonic: 31*e13f1d1dSknickish; NO-ATOMIC: ; %bb.0: 32*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.l (8,%sp), %d0 33*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.l (4,%sp), %a0 34*e13f1d1dSknickish; NO-ATOMIC-NEXT: move.b (0,%a0,%d0), %d0 35*e13f1d1dSknickish; NO-ATOMIC-NEXT: rts 36*e13f1d1dSknickish; 37*e13f1d1dSknickish; ATOMIC-LABEL: atomic_load_i8_element_monotonic: 38*e13f1d1dSknickish; ATOMIC: ; %bb.0: 39*e13f1d1dSknickish; ATOMIC-NEXT: move.l (8,%sp), %d0 40*e13f1d1dSknickish; ATOMIC-NEXT: move.l (4,%sp), %a0 41*e13f1d1dSknickish; ATOMIC-NEXT: move.b (0,%a0,%d0), %d0 42*e13f1d1dSknickish; ATOMIC-NEXT: rts 43*e13f1d1dSknickish %load_pointer = getelementptr i8, ptr %base, i32 %offset 44*e13f1d1dSknickish %return_val = load atomic i8, ptr %load_pointer monotonic, align 1 45*e13f1d1dSknickish ret i8 %return_val 46*e13f1d1dSknickish} 47