blob: 1625e53c91ae7bca12186505079a78524a859201 [file] [log] [blame]
Eli Friedman069e2ed2011-08-26 02:59:24 +00001; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s -check-prefix=ARM
2; RUN: llc < %s -mtriple=thumbv7-apple-ios | FileCheck %s -check-prefix=THUMBTWO
3; RUN: llc < %s -mtriple=thumbv6-apple-ios | FileCheck %s -check-prefix=THUMBONE
4
5define void @test1(i32* %ptr, i32 %val1) {
6; ARM: test1
7; ARM: dmb ish
8; ARM-NEXT: str
9; ARM-NEXT: dmb ish
10; THUMBONE: test1
11; THUMBONE: __sync_lock_test_and_set_4
12; THUMBTWO: test1
13; THUMBTWO: dmb ish
14; THUMBTWO-NEXT: str
15; THUMBTWO-NEXT: dmb ish
16 store atomic i32 %val1, i32* %ptr seq_cst, align 4
17 ret void
18}
19
20define i32 @test2(i32* %ptr) {
21; ARM: test2
22; ARM: ldr
23; ARM-NEXT: dmb ish
24; THUMBONE: test2
25; THUMBONE: __sync_val_compare_and_swap_4
26; THUMBTWO: test2
27; THUMBTWO: ldr
28; THUMBTWO-NEXT: dmb ish
29 %val = load atomic i32* %ptr seq_cst, align 4
30 ret i32 %val
31}