Lines Matching +full:end +full:- +full:success
1 ; RUN: llc -mtriple=aarch64-apple-ios7.0 -o - %s | FileCheck %s
2 ; RUN: llc -mtriple=aarch64-apple-ios7.0 -mattr=+outline-atomics -o - %s | FileCheck %s --check-pre…
5 ; OUTLINE-ATOMICS: bl ___aarch64_cas4_acq_rel
6 ; CHECK-LABEL: test_return:
8 ; CHECK: [[LOOP:LBB[0-9]+_[0-9]+]]:
9 ; CHECK: ldaxr [[LOADED:w[0-9]+]], [x0]
11 ; CHECK: b.ne [[FAILED:LBB[0-9]+_[0-9]+]]
13 ; CHECK: stlxr [[STATUS:w[0-9]+]], {{w[0-9]+}}, [x0]
16 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
21 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
26 %success = extractvalue { i32, i1 } %pair, 1
27 %conv = zext i1 %success to i32
32 ; OUTLINE-ATOMICS: bl ___aarch64_cas1_acq_rel
33 ; CHECK-LABEL: test_return_bool:
35 ; CHECK: [[LOOP:LBB[0-9]+_[0-9]+]]:
36 ; CHECK: ldaxrb [[LOADED:w[0-9]+]], [x0]
38 ; CHECK: b.ne [[FAILED:LBB[0-9]+_[0-9]+]]
40 ; CHECK: stlxrb [[STATUS:w[0-9]+]], {{w[0-9]+}}, [x0]
43 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
45 ; CHECK: mov [[TMP:w[0-9]+]], #1
50 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
55 %success = extractvalue { i8, i1 } %pair, 1
56 %failure = xor i1 %success, 1
61 ; OUTLINE-ATOMICS: bl ___aarch64_cas4_acq_rel
62 ; CHECK-LABEL: test_conditional:
64 ; CHECK: [[LOOP:LBB[0-9]+_[0-9]+]]:
65 ; CHECK: ldaxr [[LOADED:w[0-9]+]], [x0]
67 ; CHECK: b.ne [[FAILED:LBB[0-9]+_[0-9]+]]
69 ; CHECK: stlxr [[STATUS:w[0-9]+]], w2, [x0]
72 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
76 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
80 %success = extractvalue { i32, i1 } %pair, 1
81 br i1 %success, label %true, label %false
85 br label %end
89 br label %end
91 end:
99 ; OUTLINE-ATOMICS: bl ___aarch64_cas4_acq_rel
100 ; CHECK-LABEL: test_conditional2:
101 ; CHECK: [[LOOP:LBB[0-9]+_[0-9]+]]:
102 ; CHECK: ldaxr [[LOADED:w[0-9]+]], [x19]
104 ; CHECK: b.ne [[FAILED:LBB[0-9]+_[0-9]+]]
106 ; CHECK: stlxr [[STATUS:w[0-9]+]], w20, [x19]
109 ; CHECK: b [[PH:LBB[0-9]+_[0-9]+]]
112 ; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}
117 ; CHECK-NOT: mov w22, #4
118 ; CHECK-NOT: cmn w22, #4
119 ; CHECK: [[LOOP2:LBB[0-9]+_[0-9]+]]: ; %for.cond
120 ; CHECK-NOT: b.ne [[LOOP2]]
121 ; CHECK-NOT: b {{LBB[0-9]+_[0-9]+}}
125 %success = extractvalue { i32, i1 } %pair, 1
128 for.cond: ; preds = %if.end, %entry
129 %i.0 = phi i32 [ 2, %entry ], [ %dec, %if.end ]
130 %changed.0.off0 = phi i1 [ %success, %entry ], [ %changed.1.off0, %if.end ]
131 %dec = add nsw i32 %i.0, -1
145 br i1 %cmp, label %if.end, label %if.then
150 br label %if.end
152 if.end: ; preds = %for.body, %if.then