1 ; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s
3 define i64 @test1(i64* %ptr, i64 %val) {
9 ; CHECK: strexd {{r[0-9]+}}, r0, r1
13 %r = atomicrmw add i64* %ptr, i64 %val seq_cst
17 define i64 @test2(i64* %ptr, i64 %val) {
20 ; CHECK: ldrexd r2, r3
23 ; CHECK: strexd {{r[0-9]+}}, r0, r1
27 %r = atomicrmw sub i64* %ptr, i64 %val seq_cst
31 define i64 @test3(i64* %ptr, i64 %val) {
34 ; CHECK: ldrexd r2, r3
37 ; CHECK: strexd {{r[0-9]+}}, r0, r1
41 %r = atomicrmw and i64* %ptr, i64 %val seq_cst
45 define i64 @test4(i64* %ptr, i64 %val) {
48 ; CHECK: ldrexd r2, r3
51 ; CHECK: strexd {{r[0-9]+}}, r0, r1
55 %r = atomicrmw or i64* %ptr, i64 %val seq_cst
59 define i64 @test5(i64* %ptr, i64 %val) {
62 ; CHECK: ldrexd r2, r3
65 ; CHECK: strexd {{r[0-9]+}}, r0, r1
69 %r = atomicrmw xor i64* %ptr, i64 %val seq_cst
73 define i64 @test6(i64* %ptr, i64 %val) {
76 ; CHECK: ldrexd r2, r3
77 ; CHECK: strexd {{r[0-9]+}}, r0, r1
81 %r = atomicrmw xchg i64* %ptr, i64 %val seq_cst