IR: add "cmpxchg weak" variant to support permitted failure.
[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-LABEL: t:
7 ; ARM: ldrexb
8 ; ARM: strexb
9
10 ; T2-LABEL: t:
11 ; T2: ldrexb
12 ; T2: strexb
13   %tmp0 = cmpxchg i8* %a, i8 %b, i8 %c monotonic monotonic
14   %tmp1 = extractvalue { i8, i1 } %tmp0, 0
15   ret i8 %tmp1
16 }