Lines Matching full:check
6 ; CHECK-LABEL: val_compare_and_swap:
11 ; CHECK: movq %rcx, [[TMP:%r[0-9a-z]+]]
12 ; CHECK: movq %rsi, %rax
13 ; CHECK: movq %r8, %rcx
14 ; CHECK: movq [[TMP]], %rbx
15 ; CHECK: lock
16 ; CHECK: cmpxchg16b (%rdi)
24 ; CHECK-LABEL: fetch_and_nand:
25 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
26 ; CHECK-DAG: movq (%rdi), %rax
27 ; CHECK-DAG: movq 8(%rdi), %rdx
29 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
30 ; CHECK: movq %rdx, %rcx
31 ; CHECK: andq [[INCHI]], %rcx
32 ; CHECK: movq %rax, %rbx
34 ; CHECK: andq %rsi, %rbx
35 ; CHECK: notq %rbx
36 ; CHECK: notq %rcx
37 ; CHECK: lock
38 ; CHECK: cmpxchg16b (%rdi)
39 ; CHECK: jne [[LOOP]]
41 ; CHECK: movq %rax, _var
42 ; CHECK: movq %rdx, _var+8
49 ; CHECK-LABEL: fetch_and_or:
50 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
51 ; CHECK-DAG: movq (%rdi), %rax
52 ; CHECK-DAG: movq 8(%rdi), %rdx
54 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
55 ; CHECK: movq %rax, %rbx
57 ; CHECK: orq %rsi, %rbx
58 ; CHECK: movq %rdx, %rcx
59 ; CHECK: orq [[INCHI]], %rcx
60 ; CHECK: lock
61 ; CHECK: cmpxchg16b (%rdi)
62 ; CHECK: jne [[LOOP]]
64 ; CHECK: movq %rax, _var
65 ; CHECK: movq %rdx, _var+8
73 ; CHECK-LABEL: fetch_and_add:
74 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
75 ; CHECK-DAG: movq (%rdi), %rax
76 ; CHECK-DAG: movq 8(%rdi), %rdx
78 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
79 ; CHECK: movq %rax, %rbx
81 ; CHECK: addq %rsi, %rbx
82 ; CHECK: movq %rdx, %rcx
83 ; CHECK: adcq [[INCHI]], %rcx
84 ; CHECK: lock
85 ; CHECK: cmpxchg16b (%rdi)
86 ; CHECK: jne [[LOOP]]
88 ; CHECK: movq %rax, _var
89 ; CHECK: movq %rdx, _var+8
97 ; CHECK-LABEL: fetch_and_sub:
98 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
99 ; CHECK-DAG: movq (%rdi), %rax
100 ; CHECK-DAG: movq 8(%rdi), %rdx
102 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
103 ; CHECK: movq %rax, %rbx
105 ; CHECK: subq %rsi, %rbx
106 ; CHECK: movq %rdx, %rcx
107 ; CHECK: sbbq [[INCHI]], %rcx
108 ; CHECK: lock
109 ; CHECK: cmpxchg16b (%rdi)
110 ; CHECK: jne [[LOOP]]
112 ; CHECK: movq %rax, _var
113 ; CHECK: movq %rdx, _var+8
121 ; CHECK-LABEL: fetch_and_min:
122 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
123 ; CHECK-DAG: movq (%rdi), %rax
124 ; CHECK-DAG: movq 8(%rdi), %rdx
126 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
127 ; CHECK: cmpq
128 ; CHECK: sbbq
129 ; CHECK: setg
130 ; CHECK: cmovneq %rax, %rbx
131 ; CHECK: movq [[INCHI]], %rcx
132 ; CHECK: cmovneq %rdx, %rcx
133 ; CHECK: lock
134 ; CHECK: cmpxchg16b (%rdi)
135 ; CHECK: jne [[LOOP]]
137 ; CHECK: movq %rax, _var
138 ; CHECK: movq %rdx, _var+8
146 ; CHECK-LABEL: fetch_and_max:
147 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
148 ; CHECK-DAG: movq (%rdi), %rax
149 ; CHECK-DAG: movq 8(%rdi), %rdx
151 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
152 ; CHECK: cmpq
153 ; CHECK: sbbq
154 ; CHECK: setge
155 ; CHECK: cmovneq %rax, %rbx
156 ; CHECK: movq [[INCHI]], %rcx
157 ; CHECK: cmovneq %rdx, %rcx
158 ; CHECK: lock
159 ; CHECK: cmpxchg16b (%rdi)
160 ; CHECK: jne [[LOOP]]
162 ; CHECK: movq %rax, _var
163 ; CHECK: movq %rdx, _var+8
171 ; CHECK-LABEL: fetch_and_umin:
172 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
173 ; CHECK-DAG: movq (%rdi), %rax
174 ; CHECK-DAG: movq 8(%rdi), %rdx
176 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
177 ; CHECK: cmpq
178 ; CHECK: sbbq
179 ; CHECK: seta
180 ; CHECK: cmovneq %rax, %rbx
181 ; CHECK: movq [[INCHI]], %rcx
182 ; CHECK: cmovneq %rdx, %rcx
183 ; CHECK: lock
184 ; CHECK: cmpxchg16b (%rdi)
185 ; CHECK: jne [[LOOP]]
187 ; CHECK: movq %rax, _var
188 ; CHECK: movq %rdx, _var+8
196 ; CHECK-LABEL: fetch_and_umax:
197 ; CHECK-DAG: movq %rdx, [[INCHI:%[a-z0-9]+]]
198 ; CHECK-DAG: movq (%rdi), %rax
199 ; CHECK-DAG: movq 8(%rdi), %rdx
201 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
202 ; CHECK: cmpq
203 ; CHECK: sbbq
204 ; CHECK: setb
205 ; CHECK: cmovneq %rax, %rbx
206 ; CHECK: movq [[INCHI]], %rcx
207 ; CHECK: cmovneq %rdx, %rcx
208 ; CHECK: lock
209 ; CHECK: cmpxchg16b (%rdi)
210 ; CHECK: jne [[LOOP]]
212 ; CHECK: movq %rax, _var
213 ; CHECK: movq %rdx, _var+8
221 ; CHECK-LABEL: atomic_load_seq_cst:
222 ; CHECK: xorl %eax, %eax
223 ; CHECK: xorl %edx, %edx
224 ; CHECK: xorl %ecx, %ecx
225 ; CHECK: xorl %ebx, %ebx
226 ; CHECK: lock
227 ; CHECK: cmpxchg16b (%rdi)
234 ; CHECK: atomic_load_relaxed:
235 ; CHECK: xorl %eax, %eax
236 ; CHECK: xorl %edx, %edx
237 ; CHECK: xorl %ecx, %ecx
238 ; CHECK: xorl %ebx, %ebx
239 ; CHECK: lock
240 ; CHECK: cmpxchg16b (%rdi)
247 ; CHECK-LABEL: atomic_store_seq_cst:
248 ; CHECK: movq %rdx, %rcx
249 ; CHECK: movq %rsi, %rbx
250 ; CHECK: movq (%rdi), %rax
251 ; CHECK: movq 8(%rdi), %rdx
253 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
254 ; CHECK: lock
255 ; CHECK: cmpxchg16b (%rdi)
256 ; CHECK: jne [[LOOP]]
257 ; CHECK-NOT: callq ___sync_lock_test_and_set_16
264 ; CHECK-LABEL: atomic_store_release:
265 ; CHECK: movq %rdx, %rcx
266 ; CHECK: movq %rsi, %rbx
267 ; CHECK: movq (%rdi), %rax
268 ; CHECK: movq 8(%rdi), %rdx
270 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
271 ; CHECK: lock
272 ; CHECK: cmpxchg16b (%rdi)
273 ; CHECK: jne [[LOOP]]
280 ; CHECK-LABEL: atomic_store_relaxed:
281 ; CHECK: movq %rdx, %rcx
282 ; CHECK: movq %rsi, %rbx
283 ; CHECK: movq (%rdi), %rax
284 ; CHECK: movq 8(%rdi), %rdx
286 ; CHECK: [[LOOP:.?LBB[0-9]+_[0-9]+]]:
287 ; CHECK: lock
288 ; CHECK: cmpxchg16b (%rdi)
289 ; CHECK: jne [[LOOP]]