Atomic pseudos don't use (as in read) CPSR. They clobber it.
[oota-llvm.git] / test / CodeGen / ARM / atomic-cmp.ll
1 ; RUN: llc < %s -mtriple=armv7-apple-darwin -verify-machineinstrs   | FileCheck %s -check-prefix=ARM
2 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin -verify-machineinstrs | FileCheck %s -check-prefix=T2
3 ; rdar://8964854
4
5 define i8 @t(i8* %a, i8 %b, i8 %c) nounwind {
6 ; ARM: t:
7 ; ARM: ldrexb
8 ; ARM: strexb
9
10 ; T2: t:
11 ; T2: ldrexb
12 ; T2: strexb
13   %tmp0 = tail call i8 @llvm.atomic.cmp.swap.i8.p0i8(i8* %a, i8 %b, i8 %c)
14   ret i8 %tmp0
15 }
16
17 declare i8 @llvm.atomic.cmp.swap.i8.p0i8(i8* nocapture, i8, i8) nounwind