Lines Matching refs:dbg
7 %0 = load atomic i8, i8* %a unordered, align 1, !dbg !7
8 ret i8 %0, !dbg !7
11 ; CHECK: call i8 @__tsan_atomic8_load(i8* %a, i32 0), !dbg
15 %0 = load atomic i8, i8* %a monotonic, align 1, !dbg !7
16 ret i8 %0, !dbg !7
19 ; CHECK: call i8 @__tsan_atomic8_load(i8* %a, i32 0), !dbg
23 %0 = load atomic i8, i8* %a acquire, align 1, !dbg !7
24 ret i8 %0, !dbg !7
27 ; CHECK: call i8 @__tsan_atomic8_load(i8* %a, i32 2), !dbg
31 %0 = load atomic i8, i8* %a seq_cst, align 1, !dbg !7
32 ret i8 %0, !dbg !7
35 ; CHECK: call i8 @__tsan_atomic8_load(i8* %a, i32 5), !dbg
39 store atomic i8 0, i8* %a unordered, align 1, !dbg !7
40 ret void, !dbg !7
43 ; CHECK: call void @__tsan_atomic8_store(i8* %a, i8 0, i32 0), !dbg
47 store atomic i8 0, i8* %a monotonic, align 1, !dbg !7
48 ret void, !dbg !7
51 ; CHECK: call void @__tsan_atomic8_store(i8* %a, i8 0, i32 0), !dbg
55 store atomic i8 0, i8* %a release, align 1, !dbg !7
56 ret void, !dbg !7
59 ; CHECK: call void @__tsan_atomic8_store(i8* %a, i8 0, i32 3), !dbg
63 store atomic i8 0, i8* %a seq_cst, align 1, !dbg !7
64 ret void, !dbg !7
67 ; CHECK: call void @__tsan_atomic8_store(i8* %a, i8 0, i32 5), !dbg
71 atomicrmw xchg i8* %a, i8 0 monotonic, !dbg !7
72 ret void, !dbg !7
75 ; CHECK: call i8 @__tsan_atomic8_exchange(i8* %a, i8 0, i32 0), !dbg
79 atomicrmw add i8* %a, i8 0 monotonic, !dbg !7
80 ret void, !dbg !7
83 ; CHECK: call i8 @__tsan_atomic8_fetch_add(i8* %a, i8 0, i32 0), !dbg
87 atomicrmw sub i8* %a, i8 0 monotonic, !dbg !7
88 ret void, !dbg !7
91 ; CHECK: call i8 @__tsan_atomic8_fetch_sub(i8* %a, i8 0, i32 0), !dbg
95 atomicrmw and i8* %a, i8 0 monotonic, !dbg !7
96 ret void, !dbg !7
99 ; CHECK: call i8 @__tsan_atomic8_fetch_and(i8* %a, i8 0, i32 0), !dbg
103 atomicrmw or i8* %a, i8 0 monotonic, !dbg !7
104 ret void, !dbg !7
107 ; CHECK: call i8 @__tsan_atomic8_fetch_or(i8* %a, i8 0, i32 0), !dbg
111 atomicrmw xor i8* %a, i8 0 monotonic, !dbg !7
112 ret void, !dbg !7
115 ; CHECK: call i8 @__tsan_atomic8_fetch_xor(i8* %a, i8 0, i32 0), !dbg
119 atomicrmw nand i8* %a, i8 0 monotonic, !dbg !7
120 ret void, !dbg !7
123 ; CHECK: call i8 @__tsan_atomic8_fetch_nand(i8* %a, i8 0, i32 0), !dbg
127 atomicrmw xchg i8* %a, i8 0 acquire, !dbg !7
128 ret void, !dbg !7
131 ; CHECK: call i8 @__tsan_atomic8_exchange(i8* %a, i8 0, i32 2), !dbg
135 atomicrmw add i8* %a, i8 0 acquire, !dbg !7
136 ret void, !dbg !7
139 ; CHECK: call i8 @__tsan_atomic8_fetch_add(i8* %a, i8 0, i32 2), !dbg
143 atomicrmw sub i8* %a, i8 0 acquire, !dbg !7
144 ret void, !dbg !7
147 ; CHECK: call i8 @__tsan_atomic8_fetch_sub(i8* %a, i8 0, i32 2), !dbg
151 atomicrmw and i8* %a, i8 0 acquire, !dbg !7
152 ret void, !dbg !7
155 ; CHECK: call i8 @__tsan_atomic8_fetch_and(i8* %a, i8 0, i32 2), !dbg
159 atomicrmw or i8* %a, i8 0 acquire, !dbg !7
160 ret void, !dbg !7
163 ; CHECK: call i8 @__tsan_atomic8_fetch_or(i8* %a, i8 0, i32 2), !dbg
167 atomicrmw xor i8* %a, i8 0 acquire, !dbg !7
168 ret void, !dbg !7
171 ; CHECK: call i8 @__tsan_atomic8_fetch_xor(i8* %a, i8 0, i32 2), !dbg
175 atomicrmw nand i8* %a, i8 0 acquire, !dbg !7
176 ret void, !dbg !7
179 ; CHECK: call i8 @__tsan_atomic8_fetch_nand(i8* %a, i8 0, i32 2), !dbg
183 atomicrmw xchg i8* %a, i8 0 release, !dbg !7
184 ret void, !dbg !7
187 ; CHECK: call i8 @__tsan_atomic8_exchange(i8* %a, i8 0, i32 3), !dbg
191 atomicrmw add i8* %a, i8 0 release, !dbg !7
192 ret void, !dbg !7
195 ; CHECK: call i8 @__tsan_atomic8_fetch_add(i8* %a, i8 0, i32 3), !dbg
199 atomicrmw sub i8* %a, i8 0 release, !dbg !7
200 ret void, !dbg !7
203 ; CHECK: call i8 @__tsan_atomic8_fetch_sub(i8* %a, i8 0, i32 3), !dbg
207 atomicrmw and i8* %a, i8 0 release, !dbg !7
208 ret void, !dbg !7
211 ; CHECK: call i8 @__tsan_atomic8_fetch_and(i8* %a, i8 0, i32 3), !dbg
215 atomicrmw or i8* %a, i8 0 release, !dbg !7
216 ret void, !dbg !7
219 ; CHECK: call i8 @__tsan_atomic8_fetch_or(i8* %a, i8 0, i32 3), !dbg
223 atomicrmw xor i8* %a, i8 0 release, !dbg !7
224 ret void, !dbg !7
227 ; CHECK: call i8 @__tsan_atomic8_fetch_xor(i8* %a, i8 0, i32 3), !dbg
231 atomicrmw nand i8* %a, i8 0 release, !dbg !7
232 ret void, !dbg !7
235 ; CHECK: call i8 @__tsan_atomic8_fetch_nand(i8* %a, i8 0, i32 3), !dbg
239 atomicrmw xchg i8* %a, i8 0 acq_rel, !dbg !7
240 ret void, !dbg !7
243 ; CHECK: call i8 @__tsan_atomic8_exchange(i8* %a, i8 0, i32 4), !dbg
247 atomicrmw add i8* %a, i8 0 acq_rel, !dbg !7
248 ret void, !dbg !7
251 ; CHECK: call i8 @__tsan_atomic8_fetch_add(i8* %a, i8 0, i32 4), !dbg
255 atomicrmw sub i8* %a, i8 0 acq_rel, !dbg !7
256 ret void, !dbg !7
259 ; CHECK: call i8 @__tsan_atomic8_fetch_sub(i8* %a, i8 0, i32 4), !dbg
263 atomicrmw and i8* %a, i8 0 acq_rel, !dbg !7
264 ret void, !dbg !7
267 ; CHECK: call i8 @__tsan_atomic8_fetch_and(i8* %a, i8 0, i32 4), !dbg
271 atomicrmw or i8* %a, i8 0 acq_rel, !dbg !7
272 ret void, !dbg !7
275 ; CHECK: call i8 @__tsan_atomic8_fetch_or(i8* %a, i8 0, i32 4), !dbg
279 atomicrmw xor i8* %a, i8 0 acq_rel, !dbg !7
280 ret void, !dbg !7
283 ; CHECK: call i8 @__tsan_atomic8_fetch_xor(i8* %a, i8 0, i32 4), !dbg
287 atomicrmw nand i8* %a, i8 0 acq_rel, !dbg !7
288 ret void, !dbg !7
291 ; CHECK: call i8 @__tsan_atomic8_fetch_nand(i8* %a, i8 0, i32 4), !dbg
295 atomicrmw xchg i8* %a, i8 0 seq_cst, !dbg !7
296 ret void, !dbg !7
299 ; CHECK: call i8 @__tsan_atomic8_exchange(i8* %a, i8 0, i32 5), !dbg
303 atomicrmw add i8* %a, i8 0 seq_cst, !dbg !7
304 ret void, !dbg !7
307 ; CHECK: call i8 @__tsan_atomic8_fetch_add(i8* %a, i8 0, i32 5), !dbg
311 atomicrmw sub i8* %a, i8 0 seq_cst, !dbg !7
312 ret void, !dbg !7
315 ; CHECK: call i8 @__tsan_atomic8_fetch_sub(i8* %a, i8 0, i32 5), !dbg
319 atomicrmw and i8* %a, i8 0 seq_cst, !dbg !7
320 ret void, !dbg !7
323 ; CHECK: call i8 @__tsan_atomic8_fetch_and(i8* %a, i8 0, i32 5), !dbg
327 atomicrmw or i8* %a, i8 0 seq_cst, !dbg !7
328 ret void, !dbg !7
331 ; CHECK: call i8 @__tsan_atomic8_fetch_or(i8* %a, i8 0, i32 5), !dbg
335 atomicrmw xor i8* %a, i8 0 seq_cst, !dbg !7
336 ret void, !dbg !7
339 ; CHECK: call i8 @__tsan_atomic8_fetch_xor(i8* %a, i8 0, i32 5), !dbg
343 atomicrmw nand i8* %a, i8 0 seq_cst, !dbg !7
344 ret void, !dbg !7
347 ; CHECK: call i8 @__tsan_atomic8_fetch_nand(i8* %a, i8 0, i32 5), !dbg
351 cmpxchg i8* %a, i8 0, i8 1 monotonic monotonic, !dbg !7
352 cmpxchg i8* %a, i8 0, i8 1 monotonic acquire, !dbg !7
353 cmpxchg i8* %a, i8 0, i8 1 monotonic seq_cst, !dbg !7
354 ret void, !dbg !7
357 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 0, i32 0), !dbg
358 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 0, i32 2), !dbg
359 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 0, i32 5), !dbg
363 cmpxchg i8* %a, i8 0, i8 1 acquire monotonic, !dbg !7
364 cmpxchg i8* %a, i8 0, i8 1 acquire acquire, !dbg !7
365 cmpxchg i8* %a, i8 0, i8 1 acquire seq_cst, !dbg !7
366 ret void, !dbg !7
369 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 2, i32 0), !dbg
370 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 2, i32 2), !dbg
371 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 2, i32 5), !dbg
375 cmpxchg i8* %a, i8 0, i8 1 release monotonic, !dbg !7
376 cmpxchg i8* %a, i8 0, i8 1 release acquire, !dbg !7
377 cmpxchg i8* %a, i8 0, i8 1 release seq_cst, !dbg !7
378 ret void, !dbg !7
381 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 3, i32 0), !dbg
382 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 3, i32 2), !dbg
383 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 3, i32 5), !dbg
387 cmpxchg i8* %a, i8 0, i8 1 acq_rel monotonic, !dbg !7
388 cmpxchg i8* %a, i8 0, i8 1 acq_rel acquire, !dbg !7
389 cmpxchg i8* %a, i8 0, i8 1 acq_rel seq_cst, !dbg !7
390 ret void, !dbg !7
393 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 4, i32 0), !dbg
394 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 4, i32 2), !dbg
395 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 4, i32 5), !dbg
399 cmpxchg i8* %a, i8 0, i8 1 seq_cst monotonic, !dbg !7
400 cmpxchg i8* %a, i8 0, i8 1 seq_cst acquire, !dbg !7
401 cmpxchg i8* %a, i8 0, i8 1 seq_cst seq_cst, !dbg !7
402 ret void, !dbg !7
405 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 5, i32 0), !dbg
406 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 5, i32 2), !dbg
407 ; CHECK: call i8 @__tsan_atomic8_compare_exchange_val(i8* %a, i8 0, i8 1, i32 5, i32 5), !dbg
411 %0 = load atomic i16, i16* %a unordered, align 2, !dbg !7
412 ret i16 %0, !dbg !7
415 ; CHECK: call i16 @__tsan_atomic16_load(i16* %a, i32 0), !dbg
419 %0 = load atomic i16, i16* %a monotonic, align 2, !dbg !7
420 ret i16 %0, !dbg !7
423 ; CHECK: call i16 @__tsan_atomic16_load(i16* %a, i32 0), !dbg
427 %0 = load atomic i16, i16* %a acquire, align 2, !dbg !7
428 ret i16 %0, !dbg !7
431 ; CHECK: call i16 @__tsan_atomic16_load(i16* %a, i32 2), !dbg
435 %0 = load atomic i16, i16* %a seq_cst, align 2, !dbg !7
436 ret i16 %0, !dbg !7
439 ; CHECK: call i16 @__tsan_atomic16_load(i16* %a, i32 5), !dbg
443 store atomic i16 0, i16* %a unordered, align 2, !dbg !7
444 ret void, !dbg !7
447 ; CHECK: call void @__tsan_atomic16_store(i16* %a, i16 0, i32 0), !dbg
451 store atomic i16 0, i16* %a monotonic, align 2, !dbg !7
452 ret void, !dbg !7
455 ; CHECK: call void @__tsan_atomic16_store(i16* %a, i16 0, i32 0), !dbg
459 store atomic i16 0, i16* %a release, align 2, !dbg !7
460 ret void, !dbg !7
463 ; CHECK: call void @__tsan_atomic16_store(i16* %a, i16 0, i32 3), !dbg
467 store atomic i16 0, i16* %a seq_cst, align 2, !dbg !7
468 ret void, !dbg !7
471 ; CHECK: call void @__tsan_atomic16_store(i16* %a, i16 0, i32 5), !dbg
475 atomicrmw xchg i16* %a, i16 0 monotonic, !dbg !7
476 ret void, !dbg !7
479 ; CHECK: call i16 @__tsan_atomic16_exchange(i16* %a, i16 0, i32 0), !dbg
483 atomicrmw add i16* %a, i16 0 monotonic, !dbg !7
484 ret void, !dbg !7
487 ; CHECK: call i16 @__tsan_atomic16_fetch_add(i16* %a, i16 0, i32 0), !dbg
491 atomicrmw sub i16* %a, i16 0 monotonic, !dbg !7
492 ret void, !dbg !7
495 ; CHECK: call i16 @__tsan_atomic16_fetch_sub(i16* %a, i16 0, i32 0), !dbg
499 atomicrmw and i16* %a, i16 0 monotonic, !dbg !7
500 ret void, !dbg !7
503 ; CHECK: call i16 @__tsan_atomic16_fetch_and(i16* %a, i16 0, i32 0), !dbg
507 atomicrmw or i16* %a, i16 0 monotonic, !dbg !7
508 ret void, !dbg !7
511 ; CHECK: call i16 @__tsan_atomic16_fetch_or(i16* %a, i16 0, i32 0), !dbg
515 atomicrmw xor i16* %a, i16 0 monotonic, !dbg !7
516 ret void, !dbg !7
519 ; CHECK: call i16 @__tsan_atomic16_fetch_xor(i16* %a, i16 0, i32 0), !dbg
523 atomicrmw nand i16* %a, i16 0 monotonic, !dbg !7
524 ret void, !dbg !7
527 ; CHECK: call i16 @__tsan_atomic16_fetch_nand(i16* %a, i16 0, i32 0), !dbg
531 atomicrmw xchg i16* %a, i16 0 acquire, !dbg !7
532 ret void, !dbg !7
535 ; CHECK: call i16 @__tsan_atomic16_exchange(i16* %a, i16 0, i32 2), !dbg
539 atomicrmw add i16* %a, i16 0 acquire, !dbg !7
540 ret void, !dbg !7
543 ; CHECK: call i16 @__tsan_atomic16_fetch_add(i16* %a, i16 0, i32 2), !dbg
547 atomicrmw sub i16* %a, i16 0 acquire, !dbg !7
548 ret void, !dbg !7
551 ; CHECK: call i16 @__tsan_atomic16_fetch_sub(i16* %a, i16 0, i32 2), !dbg
555 atomicrmw and i16* %a, i16 0 acquire, !dbg !7
556 ret void, !dbg !7
559 ; CHECK: call i16 @__tsan_atomic16_fetch_and(i16* %a, i16 0, i32 2), !dbg
563 atomicrmw or i16* %a, i16 0 acquire, !dbg !7
564 ret void, !dbg !7
567 ; CHECK: call i16 @__tsan_atomic16_fetch_or(i16* %a, i16 0, i32 2), !dbg
571 atomicrmw xor i16* %a, i16 0 acquire, !dbg !7
572 ret void, !dbg !7
575 ; CHECK: call i16 @__tsan_atomic16_fetch_xor(i16* %a, i16 0, i32 2), !dbg
579 atomicrmw nand i16* %a, i16 0 acquire, !dbg !7
580 ret void, !dbg !7
583 ; CHECK: call i16 @__tsan_atomic16_fetch_nand(i16* %a, i16 0, i32 2), !dbg
587 atomicrmw xchg i16* %a, i16 0 release, !dbg !7
588 ret void, !dbg !7
591 ; CHECK: call i16 @__tsan_atomic16_exchange(i16* %a, i16 0, i32 3), !dbg
595 atomicrmw add i16* %a, i16 0 release, !dbg !7
596 ret void, !dbg !7
599 ; CHECK: call i16 @__tsan_atomic16_fetch_add(i16* %a, i16 0, i32 3), !dbg
603 atomicrmw sub i16* %a, i16 0 release, !dbg !7
604 ret void, !dbg !7
607 ; CHECK: call i16 @__tsan_atomic16_fetch_sub(i16* %a, i16 0, i32 3), !dbg
611 atomicrmw and i16* %a, i16 0 release, !dbg !7
612 ret void, !dbg !7
615 ; CHECK: call i16 @__tsan_atomic16_fetch_and(i16* %a, i16 0, i32 3), !dbg
619 atomicrmw or i16* %a, i16 0 release, !dbg !7
620 ret void, !dbg !7
623 ; CHECK: call i16 @__tsan_atomic16_fetch_or(i16* %a, i16 0, i32 3), !dbg
627 atomicrmw xor i16* %a, i16 0 release, !dbg !7
628 ret void, !dbg !7
631 ; CHECK: call i16 @__tsan_atomic16_fetch_xor(i16* %a, i16 0, i32 3), !dbg
635 atomicrmw nand i16* %a, i16 0 release, !dbg !7
636 ret void, !dbg !7
639 ; CHECK: call i16 @__tsan_atomic16_fetch_nand(i16* %a, i16 0, i32 3), !dbg
643 atomicrmw xchg i16* %a, i16 0 acq_rel, !dbg !7
644 ret void, !dbg !7
647 ; CHECK: call i16 @__tsan_atomic16_exchange(i16* %a, i16 0, i32 4), !dbg
651 atomicrmw add i16* %a, i16 0 acq_rel, !dbg !7
652 ret void, !dbg !7
655 ; CHECK: call i16 @__tsan_atomic16_fetch_add(i16* %a, i16 0, i32 4), !dbg
659 atomicrmw sub i16* %a, i16 0 acq_rel, !dbg !7
660 ret void, !dbg !7
663 ; CHECK: call i16 @__tsan_atomic16_fetch_sub(i16* %a, i16 0, i32 4), !dbg
667 atomicrmw and i16* %a, i16 0 acq_rel, !dbg !7
668 ret void, !dbg !7
671 ; CHECK: call i16 @__tsan_atomic16_fetch_and(i16* %a, i16 0, i32 4), !dbg
675 atomicrmw or i16* %a, i16 0 acq_rel, !dbg !7
676 ret void, !dbg !7
679 ; CHECK: call i16 @__tsan_atomic16_fetch_or(i16* %a, i16 0, i32 4), !dbg
683 atomicrmw xor i16* %a, i16 0 acq_rel, !dbg !7
684 ret void, !dbg !7
687 ; CHECK: call i16 @__tsan_atomic16_fetch_xor(i16* %a, i16 0, i32 4), !dbg
691 atomicrmw nand i16* %a, i16 0 acq_rel, !dbg !7
692 ret void, !dbg !7
695 ; CHECK: call i16 @__tsan_atomic16_fetch_nand(i16* %a, i16 0, i32 4), !dbg
699 atomicrmw xchg i16* %a, i16 0 seq_cst, !dbg !7
700 ret void, !dbg !7
703 ; CHECK: call i16 @__tsan_atomic16_exchange(i16* %a, i16 0, i32 5), !dbg
707 atomicrmw add i16* %a, i16 0 seq_cst, !dbg !7
708 ret void, !dbg !7
711 ; CHECK: call i16 @__tsan_atomic16_fetch_add(i16* %a, i16 0, i32 5), !dbg
715 atomicrmw sub i16* %a, i16 0 seq_cst, !dbg !7
716 ret void, !dbg !7
719 ; CHECK: call i16 @__tsan_atomic16_fetch_sub(i16* %a, i16 0, i32 5), !dbg
723 atomicrmw and i16* %a, i16 0 seq_cst, !dbg !7
724 ret void, !dbg !7
727 ; CHECK: call i16 @__tsan_atomic16_fetch_and(i16* %a, i16 0, i32 5), !dbg
731 atomicrmw or i16* %a, i16 0 seq_cst, !dbg !7
732 ret void, !dbg !7
735 ; CHECK: call i16 @__tsan_atomic16_fetch_or(i16* %a, i16 0, i32 5), !dbg
739 atomicrmw xor i16* %a, i16 0 seq_cst, !dbg !7
740 ret void, !dbg !7
743 ; CHECK: call i16 @__tsan_atomic16_fetch_xor(i16* %a, i16 0, i32 5), !dbg
747 atomicrmw nand i16* %a, i16 0 seq_cst, !dbg !7
748 ret void, !dbg !7
751 ; CHECK: call i16 @__tsan_atomic16_fetch_nand(i16* %a, i16 0, i32 5), !dbg
755 cmpxchg i16* %a, i16 0, i16 1 monotonic monotonic, !dbg !7
756 cmpxchg i16* %a, i16 0, i16 1 monotonic acquire, !dbg !7
757 cmpxchg i16* %a, i16 0, i16 1 monotonic seq_cst, !dbg !7
758 ret void, !dbg !7
761 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 0, i32 0), !dbg
762 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 0, i32 2), !dbg
763 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 0, i32 5), !dbg
767 cmpxchg i16* %a, i16 0, i16 1 acquire monotonic, !dbg !7
768 cmpxchg i16* %a, i16 0, i16 1 acquire acquire, !dbg !7
769 cmpxchg i16* %a, i16 0, i16 1 acquire seq_cst, !dbg !7
770 ret void, !dbg !7
773 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 2, i32 0), !dbg
774 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 2, i32 2), !dbg
775 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 2, i32 5), !dbg
779 cmpxchg i16* %a, i16 0, i16 1 release monotonic, !dbg !7
780 cmpxchg i16* %a, i16 0, i16 1 release acquire, !dbg !7
781 cmpxchg i16* %a, i16 0, i16 1 release seq_cst, !dbg !7
782 ret void, !dbg !7
785 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 3, i32 0), !dbg
786 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 3, i32 2), !dbg
787 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 3, i32 5), !dbg
791 cmpxchg i16* %a, i16 0, i16 1 acq_rel monotonic, !dbg !7
792 cmpxchg i16* %a, i16 0, i16 1 acq_rel acquire, !dbg !7
793 cmpxchg i16* %a, i16 0, i16 1 acq_rel seq_cst, !dbg !7
794 ret void, !dbg !7
797 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 4, i32 0), !dbg
798 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 4, i32 2), !dbg
799 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 4, i32 5), !dbg
803 cmpxchg i16* %a, i16 0, i16 1 seq_cst monotonic, !dbg !7
804 cmpxchg i16* %a, i16 0, i16 1 seq_cst acquire, !dbg !7
805 cmpxchg i16* %a, i16 0, i16 1 seq_cst seq_cst, !dbg !7
806 ret void, !dbg !7
809 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 5, i32 0), !dbg
810 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 5, i32 2), !dbg
811 ; CHECK: call i16 @__tsan_atomic16_compare_exchange_val(i16* %a, i16 0, i16 1, i32 5, i32 5), !dbg
815 %0 = load atomic i32, i32* %a unordered, align 4, !dbg !7
816 ret i32 %0, !dbg !7
819 ; CHECK: call i32 @__tsan_atomic32_load(i32* %a, i32 0), !dbg
823 %0 = load atomic i32, i32* %a monotonic, align 4, !dbg !7
824 ret i32 %0, !dbg !7
827 ; CHECK: call i32 @__tsan_atomic32_load(i32* %a, i32 0), !dbg
831 %0 = load atomic i32, i32* %a acquire, align 4, !dbg !7
832 ret i32 %0, !dbg !7
835 ; CHECK: call i32 @__tsan_atomic32_load(i32* %a, i32 2), !dbg
839 %0 = load atomic i32, i32* %a seq_cst, align 4, !dbg !7
840 ret i32 %0, !dbg !7
843 ; CHECK: call i32 @__tsan_atomic32_load(i32* %a, i32 5), !dbg
847 store atomic i32 0, i32* %a unordered, align 4, !dbg !7
848 ret void, !dbg !7
851 ; CHECK: call void @__tsan_atomic32_store(i32* %a, i32 0, i32 0), !dbg
855 store atomic i32 0, i32* %a monotonic, align 4, !dbg !7
856 ret void, !dbg !7
859 ; CHECK: call void @__tsan_atomic32_store(i32* %a, i32 0, i32 0), !dbg
863 store atomic i32 0, i32* %a release, align 4, !dbg !7
864 ret void, !dbg !7
867 ; CHECK: call void @__tsan_atomic32_store(i32* %a, i32 0, i32 3), !dbg
871 store atomic i32 0, i32* %a seq_cst, align 4, !dbg !7
872 ret void, !dbg !7
875 ; CHECK: call void @__tsan_atomic32_store(i32* %a, i32 0, i32 5), !dbg
879 atomicrmw xchg i32* %a, i32 0 monotonic, !dbg !7
880 ret void, !dbg !7
883 ; CHECK: call i32 @__tsan_atomic32_exchange(i32* %a, i32 0, i32 0), !dbg
887 atomicrmw add i32* %a, i32 0 monotonic, !dbg !7
888 ret void, !dbg !7
891 ; CHECK: call i32 @__tsan_atomic32_fetch_add(i32* %a, i32 0, i32 0), !dbg
895 atomicrmw sub i32* %a, i32 0 monotonic, !dbg !7
896 ret void, !dbg !7
899 ; CHECK: call i32 @__tsan_atomic32_fetch_sub(i32* %a, i32 0, i32 0), !dbg
903 atomicrmw and i32* %a, i32 0 monotonic, !dbg !7
904 ret void, !dbg !7
907 ; CHECK: call i32 @__tsan_atomic32_fetch_and(i32* %a, i32 0, i32 0), !dbg
911 atomicrmw or i32* %a, i32 0 monotonic, !dbg !7
912 ret void, !dbg !7
915 ; CHECK: call i32 @__tsan_atomic32_fetch_or(i32* %a, i32 0, i32 0), !dbg
919 atomicrmw xor i32* %a, i32 0 monotonic, !dbg !7
920 ret void, !dbg !7
923 ; CHECK: call i32 @__tsan_atomic32_fetch_xor(i32* %a, i32 0, i32 0), !dbg
927 atomicrmw nand i32* %a, i32 0 monotonic, !dbg !7
928 ret void, !dbg !7
931 ; CHECK: call i32 @__tsan_atomic32_fetch_nand(i32* %a, i32 0, i32 0), !dbg
935 atomicrmw xchg i32* %a, i32 0 acquire, !dbg !7
936 ret void, !dbg !7
939 ; CHECK: call i32 @__tsan_atomic32_exchange(i32* %a, i32 0, i32 2), !dbg
943 atomicrmw add i32* %a, i32 0 acquire, !dbg !7
944 ret void, !dbg !7
947 ; CHECK: call i32 @__tsan_atomic32_fetch_add(i32* %a, i32 0, i32 2), !dbg
951 atomicrmw sub i32* %a, i32 0 acquire, !dbg !7
952 ret void, !dbg !7
955 ; CHECK: call i32 @__tsan_atomic32_fetch_sub(i32* %a, i32 0, i32 2), !dbg
959 atomicrmw and i32* %a, i32 0 acquire, !dbg !7
960 ret void, !dbg !7
963 ; CHECK: call i32 @__tsan_atomic32_fetch_and(i32* %a, i32 0, i32 2), !dbg
967 atomicrmw or i32* %a, i32 0 acquire, !dbg !7
968 ret void, !dbg !7
971 ; CHECK: call i32 @__tsan_atomic32_fetch_or(i32* %a, i32 0, i32 2), !dbg
975 atomicrmw xor i32* %a, i32 0 acquire, !dbg !7
976 ret void, !dbg !7
979 ; CHECK: call i32 @__tsan_atomic32_fetch_xor(i32* %a, i32 0, i32 2), !dbg
983 atomicrmw nand i32* %a, i32 0 acquire, !dbg !7
984 ret void, !dbg !7
987 ; CHECK: call i32 @__tsan_atomic32_fetch_nand(i32* %a, i32 0, i32 2), !dbg
991 atomicrmw xchg i32* %a, i32 0 release, !dbg !7
992 ret void, !dbg !7
995 ; CHECK: call i32 @__tsan_atomic32_exchange(i32* %a, i32 0, i32 3), !dbg
999 atomicrmw add i32* %a, i32 0 release, !dbg !7
1000 ret void, !dbg !7
1003 ; CHECK: call i32 @__tsan_atomic32_fetch_add(i32* %a, i32 0, i32 3), !dbg
1007 atomicrmw sub i32* %a, i32 0 release, !dbg !7
1008 ret void, !dbg !7
1011 ; CHECK: call i32 @__tsan_atomic32_fetch_sub(i32* %a, i32 0, i32 3), !dbg
1015 atomicrmw and i32* %a, i32 0 release, !dbg !7
1016 ret void, !dbg !7
1019 ; CHECK: call i32 @__tsan_atomic32_fetch_and(i32* %a, i32 0, i32 3), !dbg
1023 atomicrmw or i32* %a, i32 0 release, !dbg !7
1024 ret void, !dbg !7
1027 ; CHECK: call i32 @__tsan_atomic32_fetch_or(i32* %a, i32 0, i32 3), !dbg
1031 atomicrmw xor i32* %a, i32 0 release, !dbg !7
1032 ret void, !dbg !7
1035 ; CHECK: call i32 @__tsan_atomic32_fetch_xor(i32* %a, i32 0, i32 3), !dbg
1039 atomicrmw nand i32* %a, i32 0 release, !dbg !7
1040 ret void, !dbg !7
1043 ; CHECK: call i32 @__tsan_atomic32_fetch_nand(i32* %a, i32 0, i32 3), !dbg
1047 atomicrmw xchg i32* %a, i32 0 acq_rel, !dbg !7
1048 ret void, !dbg !7
1051 ; CHECK: call i32 @__tsan_atomic32_exchange(i32* %a, i32 0, i32 4), !dbg
1055 atomicrmw add i32* %a, i32 0 acq_rel, !dbg !7
1056 ret void, !dbg !7
1059 ; CHECK: call i32 @__tsan_atomic32_fetch_add(i32* %a, i32 0, i32 4), !dbg
1063 atomicrmw sub i32* %a, i32 0 acq_rel, !dbg !7
1064 ret void, !dbg !7
1067 ; CHECK: call i32 @__tsan_atomic32_fetch_sub(i32* %a, i32 0, i32 4), !dbg
1071 atomicrmw and i32* %a, i32 0 acq_rel, !dbg !7
1072 ret void, !dbg !7
1075 ; CHECK: call i32 @__tsan_atomic32_fetch_and(i32* %a, i32 0, i32 4), !dbg
1079 atomicrmw or i32* %a, i32 0 acq_rel, !dbg !7
1080 ret void, !dbg !7
1083 ; CHECK: call i32 @__tsan_atomic32_fetch_or(i32* %a, i32 0, i32 4), !dbg
1087 atomicrmw xor i32* %a, i32 0 acq_rel, !dbg !7
1088 ret void, !dbg !7
1091 ; CHECK: call i32 @__tsan_atomic32_fetch_xor(i32* %a, i32 0, i32 4), !dbg
1095 atomicrmw nand i32* %a, i32 0 acq_rel, !dbg !7
1096 ret void, !dbg !7
1099 ; CHECK: call i32 @__tsan_atomic32_fetch_nand(i32* %a, i32 0, i32 4), !dbg
1103 atomicrmw xchg i32* %a, i32 0 seq_cst, !dbg !7
1104 ret void, !dbg !7
1107 ; CHECK: call i32 @__tsan_atomic32_exchange(i32* %a, i32 0, i32 5), !dbg
1111 atomicrmw add i32* %a, i32 0 seq_cst, !dbg !7
1112 ret void, !dbg !7
1115 ; CHECK: call i32 @__tsan_atomic32_fetch_add(i32* %a, i32 0, i32 5), !dbg
1119 atomicrmw sub i32* %a, i32 0 seq_cst, !dbg !7
1120 ret void, !dbg !7
1123 ; CHECK: call i32 @__tsan_atomic32_fetch_sub(i32* %a, i32 0, i32 5), !dbg
1127 atomicrmw and i32* %a, i32 0 seq_cst, !dbg !7
1128 ret void, !dbg !7
1131 ; CHECK: call i32 @__tsan_atomic32_fetch_and(i32* %a, i32 0, i32 5), !dbg
1135 atomicrmw or i32* %a, i32 0 seq_cst, !dbg !7
1136 ret void, !dbg !7
1139 ; CHECK: call i32 @__tsan_atomic32_fetch_or(i32* %a, i32 0, i32 5), !dbg
1143 atomicrmw xor i32* %a, i32 0 seq_cst, !dbg !7
1144 ret void, !dbg !7
1147 ; CHECK: call i32 @__tsan_atomic32_fetch_xor(i32* %a, i32 0, i32 5), !dbg
1151 atomicrmw nand i32* %a, i32 0 seq_cst, !dbg !7
1152 ret void, !dbg !7
1155 ; CHECK: call i32 @__tsan_atomic32_fetch_nand(i32* %a, i32 0, i32 5), !dbg
1159 cmpxchg i32* %a, i32 0, i32 1 monotonic monotonic, !dbg !7
1160 cmpxchg i32* %a, i32 0, i32 1 monotonic acquire, !dbg !7
1161 cmpxchg i32* %a, i32 0, i32 1 monotonic seq_cst, !dbg !7
1162 ret void, !dbg !7
1165 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 0, i32 0), !dbg
1166 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 0, i32 2), !dbg
1167 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 0, i32 5), !dbg
1171 cmpxchg i32* %a, i32 0, i32 1 acquire monotonic, !dbg !7
1172 cmpxchg i32* %a, i32 0, i32 1 acquire acquire, !dbg !7
1173 cmpxchg i32* %a, i32 0, i32 1 acquire seq_cst, !dbg !7
1174 ret void, !dbg !7
1177 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 2, i32 0), !dbg
1178 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 2, i32 2), !dbg
1179 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 2, i32 5), !dbg
1183 cmpxchg i32* %a, i32 0, i32 1 release monotonic, !dbg !7
1184 cmpxchg i32* %a, i32 0, i32 1 release acquire, !dbg !7
1185 cmpxchg i32* %a, i32 0, i32 1 release seq_cst, !dbg !7
1186 ret void, !dbg !7
1189 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 3, i32 0), !dbg
1190 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 3, i32 2), !dbg
1191 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 3, i32 5), !dbg
1195 cmpxchg i32* %a, i32 0, i32 1 acq_rel monotonic, !dbg !7
1196 cmpxchg i32* %a, i32 0, i32 1 acq_rel acquire, !dbg !7
1197 cmpxchg i32* %a, i32 0, i32 1 acq_rel seq_cst, !dbg !7
1198 ret void, !dbg !7
1201 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 4, i32 0), !dbg
1202 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 4, i32 2), !dbg
1203 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 4, i32 5), !dbg
1207 cmpxchg i32* %a, i32 0, i32 1 seq_cst monotonic, !dbg !7
1208 cmpxchg i32* %a, i32 0, i32 1 seq_cst acquire, !dbg !7
1209 cmpxchg i32* %a, i32 0, i32 1 seq_cst seq_cst, !dbg !7
1210 ret void, !dbg !7
1213 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 5, i32 0), !dbg
1214 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 5, i32 2), !dbg
1215 ; CHECK: call i32 @__tsan_atomic32_compare_exchange_val(i32* %a, i32 0, i32 1, i32 5, i32 5), !dbg
1219 %0 = load atomic i64, i64* %a unordered, align 8, !dbg !7
1220 ret i64 %0, !dbg !7
1223 ; CHECK: call i64 @__tsan_atomic64_load(i64* %a, i32 0), !dbg
1227 %0 = load atomic i64, i64* %a monotonic, align 8, !dbg !7
1228 ret i64 %0, !dbg !7
1231 ; CHECK: call i64 @__tsan_atomic64_load(i64* %a, i32 0), !dbg
1235 %0 = load atomic i64, i64* %a acquire, align 8, !dbg !7
1236 ret i64 %0, !dbg !7
1239 ; CHECK: call i64 @__tsan_atomic64_load(i64* %a, i32 2), !dbg
1243 %0 = load atomic i64, i64* %a seq_cst, align 8, !dbg !7
1244 ret i64 %0, !dbg !7
1247 ; CHECK: call i64 @__tsan_atomic64_load(i64* %a, i32 5), !dbg
1251 %0 = load atomic i8*, i8** %a seq_cst, align 8, !dbg !7
1252 ret i8* %0, !dbg !7
1256 ; CHECK-NEXT: call i64 @__tsan_atomic64_load(i64* %{{.+}}, i32 5), !dbg
1261 store atomic i64 0, i64* %a unordered, align 8, !dbg !7
1262 ret void, !dbg !7
1265 ; CHECK: call void @__tsan_atomic64_store(i64* %a, i64 0, i32 0), !dbg
1269 store atomic i64 0, i64* %a monotonic, align 8, !dbg !7
1270 ret void, !dbg !7
1273 ; CHECK: call void @__tsan_atomic64_store(i64* %a, i64 0, i32 0), !dbg
1277 store atomic i64 0, i64* %a release, align 8, !dbg !7
1278 ret void, !dbg !7
1281 ; CHECK: call void @__tsan_atomic64_store(i64* %a, i64 0, i32 3), !dbg
1285 store atomic i64 0, i64* %a seq_cst, align 8, !dbg !7
1286 ret void, !dbg !7
1289 ; CHECK: call void @__tsan_atomic64_store(i64* %a, i64 0, i32 5), !dbg
1293 store atomic i8* %v, i8** %a seq_cst, align 8, !dbg !7
1294 ret void, !dbg !7
1299 ; CHECK-NEXT: call void @__tsan_atomic64_store(i64* %{{.*}}, i64 %{{.*}}, i32 5), !dbg
1303 atomicrmw xchg i64* %a, i64 0 monotonic, !dbg !7
1304 ret void, !dbg !7
1307 ; CHECK: call i64 @__tsan_atomic64_exchange(i64* %a, i64 0, i32 0), !dbg
1311 atomicrmw add i64* %a, i64 0 monotonic, !dbg !7
1312 ret void, !dbg !7
1315 ; CHECK: call i64 @__tsan_atomic64_fetch_add(i64* %a, i64 0, i32 0), !dbg
1319 atomicrmw sub i64* %a, i64 0 monotonic, !dbg !7
1320 ret void, !dbg !7
1323 ; CHECK: call i64 @__tsan_atomic64_fetch_sub(i64* %a, i64 0, i32 0), !dbg
1327 atomicrmw and i64* %a, i64 0 monotonic, !dbg !7
1328 ret void, !dbg !7
1331 ; CHECK: call i64 @__tsan_atomic64_fetch_and(i64* %a, i64 0, i32 0), !dbg
1335 atomicrmw or i64* %a, i64 0 monotonic, !dbg !7
1336 ret void, !dbg !7
1339 ; CHECK: call i64 @__tsan_atomic64_fetch_or(i64* %a, i64 0, i32 0), !dbg
1343 atomicrmw xor i64* %a, i64 0 monotonic, !dbg !7
1344 ret void, !dbg !7
1347 ; CHECK: call i64 @__tsan_atomic64_fetch_xor(i64* %a, i64 0, i32 0), !dbg
1351 atomicrmw nand i64* %a, i64 0 monotonic, !dbg !7
1352 ret void, !dbg !7
1355 ; CHECK: call i64 @__tsan_atomic64_fetch_nand(i64* %a, i64 0, i32 0), !dbg
1359 atomicrmw xchg i64* %a, i64 0 acquire, !dbg !7
1360 ret void, !dbg !7
1363 ; CHECK: call i64 @__tsan_atomic64_exchange(i64* %a, i64 0, i32 2), !dbg
1367 atomicrmw add i64* %a, i64 0 acquire, !dbg !7
1368 ret void, !dbg !7
1371 ; CHECK: call i64 @__tsan_atomic64_fetch_add(i64* %a, i64 0, i32 2), !dbg
1375 atomicrmw sub i64* %a, i64 0 acquire, !dbg !7
1376 ret void, !dbg !7
1379 ; CHECK: call i64 @__tsan_atomic64_fetch_sub(i64* %a, i64 0, i32 2), !dbg
1383 atomicrmw and i64* %a, i64 0 acquire, !dbg !7
1384 ret void, !dbg !7
1387 ; CHECK: call i64 @__tsan_atomic64_fetch_and(i64* %a, i64 0, i32 2), !dbg
1391 atomicrmw or i64* %a, i64 0 acquire, !dbg !7
1392 ret void, !dbg !7
1395 ; CHECK: call i64 @__tsan_atomic64_fetch_or(i64* %a, i64 0, i32 2), !dbg
1399 atomicrmw xor i64* %a, i64 0 acquire, !dbg !7
1400 ret void, !dbg !7
1403 ; CHECK: call i64 @__tsan_atomic64_fetch_xor(i64* %a, i64 0, i32 2), !dbg
1407 atomicrmw nand i64* %a, i64 0 acquire, !dbg !7
1408 ret void, !dbg !7
1411 ; CHECK: call i64 @__tsan_atomic64_fetch_nand(i64* %a, i64 0, i32 2), !dbg
1415 atomicrmw xchg i64* %a, i64 0 release, !dbg !7
1416 ret void, !dbg !7
1419 ; CHECK: call i64 @__tsan_atomic64_exchange(i64* %a, i64 0, i32 3), !dbg
1423 atomicrmw add i64* %a, i64 0 release, !dbg !7
1424 ret void, !dbg !7
1427 ; CHECK: call i64 @__tsan_atomic64_fetch_add(i64* %a, i64 0, i32 3), !dbg
1431 atomicrmw sub i64* %a, i64 0 release, !dbg !7
1432 ret void, !dbg !7
1435 ; CHECK: call i64 @__tsan_atomic64_fetch_sub(i64* %a, i64 0, i32 3), !dbg
1439 atomicrmw and i64* %a, i64 0 release, !dbg !7
1440 ret void, !dbg !7
1443 ; CHECK: call i64 @__tsan_atomic64_fetch_and(i64* %a, i64 0, i32 3), !dbg
1447 atomicrmw or i64* %a, i64 0 release, !dbg !7
1448 ret void, !dbg !7
1451 ; CHECK: call i64 @__tsan_atomic64_fetch_or(i64* %a, i64 0, i32 3), !dbg
1455 atomicrmw xor i64* %a, i64 0 release, !dbg !7
1456 ret void, !dbg !7
1459 ; CHECK: call i64 @__tsan_atomic64_fetch_xor(i64* %a, i64 0, i32 3), !dbg
1463 atomicrmw nand i64* %a, i64 0 release, !dbg !7
1464 ret void, !dbg !7
1467 ; CHECK: call i64 @__tsan_atomic64_fetch_nand(i64* %a, i64 0, i32 3), !dbg
1471 atomicrmw xchg i64* %a, i64 0 acq_rel, !dbg !7
1472 ret void, !dbg !7
1475 ; CHECK: call i64 @__tsan_atomic64_exchange(i64* %a, i64 0, i32 4), !dbg
1479 atomicrmw add i64* %a, i64 0 acq_rel, !dbg !7
1480 ret void, !dbg !7
1483 ; CHECK: call i64 @__tsan_atomic64_fetch_add(i64* %a, i64 0, i32 4), !dbg
1487 atomicrmw sub i64* %a, i64 0 acq_rel, !dbg !7
1488 ret void, !dbg !7
1491 ; CHECK: call i64 @__tsan_atomic64_fetch_sub(i64* %a, i64 0, i32 4), !dbg
1495 atomicrmw and i64* %a, i64 0 acq_rel, !dbg !7
1496 ret void, !dbg !7
1499 ; CHECK: call i64 @__tsan_atomic64_fetch_and(i64* %a, i64 0, i32 4), !dbg
1503 atomicrmw or i64* %a, i64 0 acq_rel, !dbg !7
1504 ret void, !dbg !7
1507 ; CHECK: call i64 @__tsan_atomic64_fetch_or(i64* %a, i64 0, i32 4), !dbg
1511 atomicrmw xor i64* %a, i64 0 acq_rel, !dbg !7
1512 ret void, !dbg !7
1515 ; CHECK: call i64 @__tsan_atomic64_fetch_xor(i64* %a, i64 0, i32 4), !dbg
1519 atomicrmw nand i64* %a, i64 0 acq_rel, !dbg !7
1520 ret void, !dbg !7
1523 ; CHECK: call i64 @__tsan_atomic64_fetch_nand(i64* %a, i64 0, i32 4), !dbg
1527 atomicrmw xchg i64* %a, i64 0 seq_cst, !dbg !7
1528 ret void, !dbg !7
1531 ; CHECK: call i64 @__tsan_atomic64_exchange(i64* %a, i64 0, i32 5), !dbg
1535 atomicrmw add i64* %a, i64 0 seq_cst, !dbg !7
1536 ret void, !dbg !7
1539 ; CHECK: call i64 @__tsan_atomic64_fetch_add(i64* %a, i64 0, i32 5), !dbg
1543 atomicrmw sub i64* %a, i64 0 seq_cst, !dbg !7
1544 ret void, !dbg !7
1547 ; CHECK: call i64 @__tsan_atomic64_fetch_sub(i64* %a, i64 0, i32 5), !dbg
1551 atomicrmw and i64* %a, i64 0 seq_cst, !dbg !7
1552 ret void, !dbg !7
1555 ; CHECK: call i64 @__tsan_atomic64_fetch_and(i64* %a, i64 0, i32 5), !dbg
1559 atomicrmw or i64* %a, i64 0 seq_cst, !dbg !7
1560 ret void, !dbg !7
1563 ; CHECK: call i64 @__tsan_atomic64_fetch_or(i64* %a, i64 0, i32 5), !dbg
1567 atomicrmw xor i64* %a, i64 0 seq_cst, !dbg !7
1568 ret void, !dbg !7
1571 ; CHECK: call i64 @__tsan_atomic64_fetch_xor(i64* %a, i64 0, i32 5), !dbg
1575 atomicrmw nand i64* %a, i64 0 seq_cst, !dbg !7
1576 ret void, !dbg !7
1579 ; CHECK: call i64 @__tsan_atomic64_fetch_nand(i64* %a, i64 0, i32 5), !dbg
1583 cmpxchg i64* %a, i64 0, i64 1 monotonic monotonic, !dbg !7
1584 cmpxchg i64* %a, i64 0, i64 1 monotonic acquire, !dbg !7
1585 cmpxchg i64* %a, i64 0, i64 1 monotonic seq_cst, !dbg !7
1586 ret void, !dbg !7
1589 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 0, i32 0), !dbg
1590 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 0, i32 2), !dbg
1591 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 0, i32 5), !dbg
1595 cmpxchg i64* %a, i64 0, i64 1 acquire monotonic, !dbg !7
1596 cmpxchg i64* %a, i64 0, i64 1 acquire acquire, !dbg !7
1597 cmpxchg i64* %a, i64 0, i64 1 acquire seq_cst, !dbg !7
1598 ret void, !dbg !7
1601 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 2, i32 0), !dbg
1602 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 2, i32 2), !dbg
1603 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 2, i32 5), !dbg
1607 cmpxchg i64* %a, i64 0, i64 1 release monotonic, !dbg !7
1608 cmpxchg i64* %a, i64 0, i64 1 release acquire, !dbg !7
1609 cmpxchg i64* %a, i64 0, i64 1 release seq_cst, !dbg !7
1610 ret void, !dbg !7
1613 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 3, i32 0), !dbg
1614 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 3, i32 2), !dbg
1615 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 3, i32 5), !dbg
1619 cmpxchg i64* %a, i64 0, i64 1 acq_rel monotonic, !dbg !7
1620 cmpxchg i64* %a, i64 0, i64 1 acq_rel acquire, !dbg !7
1621 cmpxchg i64* %a, i64 0, i64 1 acq_rel seq_cst, !dbg !7
1622 ret void, !dbg !7
1625 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 4, i32 0), !dbg
1626 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 4, i32 2), !dbg
1627 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 4, i32 5), !dbg
1631 cmpxchg i64* %a, i64 0, i64 1 seq_cst monotonic, !dbg !7
1632 cmpxchg i64* %a, i64 0, i64 1 seq_cst acquire, !dbg !7
1633 cmpxchg i64* %a, i64 0, i64 1 seq_cst seq_cst, !dbg !7
1634 ret void, !dbg !7
1637 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 5, i32 0), !dbg
1638 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 5, i32 2), !dbg
1639 ; CHECK: call i64 @__tsan_atomic64_compare_exchange_val(i64* %a, i64 0, i64 1, i32 5, i32 5), !dbg
1643 cmpxchg i8** %a, i8* %v1, i8* %v2 seq_cst seq_cst, !dbg !7
1650 … i64 @__tsan_atomic64_compare_exchange_val(i64* {{.*}}, i64 {{.*}}, i64 {{.*}}, i32 5, i32 5), !dbg
1658 %0 = load atomic i128, i128* %a unordered, align 16, !dbg !7
1659 ret i128 %0, !dbg !7
1662 ; CHECK: call i128 @__tsan_atomic128_load(i128* %a, i32 0), !dbg
1666 %0 = load atomic i128, i128* %a monotonic, align 16, !dbg !7
1667 ret i128 %0, !dbg !7
1670 ; CHECK: call i128 @__tsan_atomic128_load(i128* %a, i32 0), !dbg
1674 %0 = load atomic i128, i128* %a acquire, align 16, !dbg !7
1675 ret i128 %0, !dbg !7
1678 ; CHECK: call i128 @__tsan_atomic128_load(i128* %a, i32 2), !dbg
1682 %0 = load atomic i128, i128* %a seq_cst, align 16, !dbg !7
1683 ret i128 %0, !dbg !7
1686 ; CHECK: call i128 @__tsan_atomic128_load(i128* %a, i32 5), !dbg
1690 store atomic i128 0, i128* %a unordered, align 16, !dbg !7
1691 ret void, !dbg !7
1694 ; CHECK: call void @__tsan_atomic128_store(i128* %a, i128 0, i32 0), !dbg
1698 store atomic i128 0, i128* %a monotonic, align 16, !dbg !7
1699 ret void, !dbg !7
1702 ; CHECK: call void @__tsan_atomic128_store(i128* %a, i128 0, i32 0), !dbg
1706 store atomic i128 0, i128* %a release, align 16, !dbg !7
1707 ret void, !dbg !7
1710 ; CHECK: call void @__tsan_atomic128_store(i128* %a, i128 0, i32 3), !dbg
1714 store atomic i128 0, i128* %a seq_cst, align 16, !dbg !7
1715 ret void, !dbg !7
1718 ; CHECK: call void @__tsan_atomic128_store(i128* %a, i128 0, i32 5), !dbg
1722 atomicrmw xchg i128* %a, i128 0 monotonic, !dbg !7
1723 ret void, !dbg !7
1726 ; CHECK: call i128 @__tsan_atomic128_exchange(i128* %a, i128 0, i32 0), !dbg
1730 atomicrmw add i128* %a, i128 0 monotonic, !dbg !7
1731 ret void, !dbg !7
1734 ; CHECK: call i128 @__tsan_atomic128_fetch_add(i128* %a, i128 0, i32 0), !dbg
1738 atomicrmw sub i128* %a, i128 0 monotonic, !dbg !7
1739 ret void, !dbg !7
1742 ; CHECK: call i128 @__tsan_atomic128_fetch_sub(i128* %a, i128 0, i32 0), !dbg
1746 atomicrmw and i128* %a, i128 0 monotonic, !dbg !7
1747 ret void, !dbg !7
1750 ; CHECK: call i128 @__tsan_atomic128_fetch_and(i128* %a, i128 0, i32 0), !dbg
1754 atomicrmw or i128* %a, i128 0 monotonic, !dbg !7
1755 ret void, !dbg !7
1758 ; CHECK: call i128 @__tsan_atomic128_fetch_or(i128* %a, i128 0, i32 0), !dbg
1762 atomicrmw xor i128* %a, i128 0 monotonic, !dbg !7
1763 ret void, !dbg !7
1766 ; CHECK: call i128 @__tsan_atomic128_fetch_xor(i128* %a, i128 0, i32 0), !dbg
1770 atomicrmw nand i128* %a, i128 0 monotonic, !dbg !7
1771 ret void, !dbg !7
1774 ; CHECK: call i128 @__tsan_atomic128_fetch_nand(i128* %a, i128 0, i32 0), !dbg
1778 atomicrmw xchg i128* %a, i128 0 acquire, !dbg !7
1779 ret void, !dbg !7
1782 ; CHECK: call i128 @__tsan_atomic128_exchange(i128* %a, i128 0, i32 2), !dbg
1786 atomicrmw add i128* %a, i128 0 acquire, !dbg !7
1787 ret void, !dbg !7
1790 ; CHECK: call i128 @__tsan_atomic128_fetch_add(i128* %a, i128 0, i32 2), !dbg
1794 atomicrmw sub i128* %a, i128 0 acquire, !dbg !7
1795 ret void, !dbg !7
1798 ; CHECK: call i128 @__tsan_atomic128_fetch_sub(i128* %a, i128 0, i32 2), !dbg
1802 atomicrmw and i128* %a, i128 0 acquire, !dbg !7
1803 ret void, !dbg !7
1806 ; CHECK: call i128 @__tsan_atomic128_fetch_and(i128* %a, i128 0, i32 2), !dbg
1810 atomicrmw or i128* %a, i128 0 acquire, !dbg !7
1811 ret void, !dbg !7
1814 ; CHECK: call i128 @__tsan_atomic128_fetch_or(i128* %a, i128 0, i32 2), !dbg
1818 atomicrmw xor i128* %a, i128 0 acquire, !dbg !7
1819 ret void, !dbg !7
1822 ; CHECK: call i128 @__tsan_atomic128_fetch_xor(i128* %a, i128 0, i32 2), !dbg
1826 atomicrmw nand i128* %a, i128 0 acquire, !dbg !7
1827 ret void, !dbg !7
1830 ; CHECK: call i128 @__tsan_atomic128_fetch_nand(i128* %a, i128 0, i32 2), !dbg
1834 atomicrmw xchg i128* %a, i128 0 release, !dbg !7
1835 ret void, !dbg !7
1838 ; CHECK: call i128 @__tsan_atomic128_exchange(i128* %a, i128 0, i32 3), !dbg
1842 atomicrmw add i128* %a, i128 0 release, !dbg !7
1843 ret void, !dbg !7
1846 ; CHECK: call i128 @__tsan_atomic128_fetch_add(i128* %a, i128 0, i32 3), !dbg
1850 atomicrmw sub i128* %a, i128 0 release, !dbg !7
1851 ret void, !dbg !7
1854 ; CHECK: call i128 @__tsan_atomic128_fetch_sub(i128* %a, i128 0, i32 3), !dbg
1858 atomicrmw and i128* %a, i128 0 release, !dbg !7
1859 ret void, !dbg !7
1862 ; CHECK: call i128 @__tsan_atomic128_fetch_and(i128* %a, i128 0, i32 3), !dbg
1866 atomicrmw or i128* %a, i128 0 release, !dbg !7
1867 ret void, !dbg !7
1870 ; CHECK: call i128 @__tsan_atomic128_fetch_or(i128* %a, i128 0, i32 3), !dbg
1874 atomicrmw xor i128* %a, i128 0 release, !dbg !7
1875 ret void, !dbg !7
1878 ; CHECK: call i128 @__tsan_atomic128_fetch_xor(i128* %a, i128 0, i32 3), !dbg
1882 atomicrmw nand i128* %a, i128 0 release, !dbg !7
1883 ret void, !dbg !7
1886 ; CHECK: call i128 @__tsan_atomic128_fetch_nand(i128* %a, i128 0, i32 3), !dbg
1890 atomicrmw xchg i128* %a, i128 0 acq_rel, !dbg !7
1891 ret void, !dbg !7
1894 ; CHECK: call i128 @__tsan_atomic128_exchange(i128* %a, i128 0, i32 4), !dbg
1898 atomicrmw add i128* %a, i128 0 acq_rel, !dbg !7
1899 ret void, !dbg !7
1902 ; CHECK: call i128 @__tsan_atomic128_fetch_add(i128* %a, i128 0, i32 4), !dbg
1906 atomicrmw sub i128* %a, i128 0 acq_rel, !dbg !7
1907 ret void, !dbg !7
1910 ; CHECK: call i128 @__tsan_atomic128_fetch_sub(i128* %a, i128 0, i32 4), !dbg
1914 atomicrmw and i128* %a, i128 0 acq_rel, !dbg !7
1915 ret void, !dbg !7
1918 ; CHECK: call i128 @__tsan_atomic128_fetch_and(i128* %a, i128 0, i32 4), !dbg
1922 atomicrmw or i128* %a, i128 0 acq_rel, !dbg !7
1923 ret void, !dbg !7
1926 ; CHECK: call i128 @__tsan_atomic128_fetch_or(i128* %a, i128 0, i32 4), !dbg
1930 atomicrmw xor i128* %a, i128 0 acq_rel, !dbg !7
1931 ret void, !dbg !7
1934 ; CHECK: call i128 @__tsan_atomic128_fetch_xor(i128* %a, i128 0, i32 4), !dbg
1938 atomicrmw nand i128* %a, i128 0 acq_rel, !dbg !7
1939 ret void, !dbg !7
1942 ; CHECK: call i128 @__tsan_atomic128_fetch_nand(i128* %a, i128 0, i32 4), !dbg
1946 atomicrmw xchg i128* %a, i128 0 seq_cst, !dbg !7
1947 ret void, !dbg !7
1950 ; CHECK: call i128 @__tsan_atomic128_exchange(i128* %a, i128 0, i32 5), !dbg
1954 atomicrmw add i128* %a, i128 0 seq_cst, !dbg !7
1955 ret void, !dbg !7
1958 ; CHECK: call i128 @__tsan_atomic128_fetch_add(i128* %a, i128 0, i32 5), !dbg
1962 atomicrmw sub i128* %a, i128 0 seq_cst, !dbg !7
1963 ret void, !dbg !7
1966 ; CHECK: call i128 @__tsan_atomic128_fetch_sub(i128* %a, i128 0, i32 5), !dbg
1970 atomicrmw and i128* %a, i128 0 seq_cst, !dbg !7
1971 ret void, !dbg !7
1974 ; CHECK: call i128 @__tsan_atomic128_fetch_and(i128* %a, i128 0, i32 5), !dbg
1978 atomicrmw or i128* %a, i128 0 seq_cst, !dbg !7
1979 ret void, !dbg !7
1982 ; CHECK: call i128 @__tsan_atomic128_fetch_or(i128* %a, i128 0, i32 5), !dbg
1986 atomicrmw xor i128* %a, i128 0 seq_cst, !dbg !7
1987 ret void, !dbg !7
1990 ; CHECK: call i128 @__tsan_atomic128_fetch_xor(i128* %a, i128 0, i32 5), !dbg
1994 atomicrmw nand i128* %a, i128 0 seq_cst, !dbg !7
1995 ret void, !dbg !7
1998 ; CHECK: call i128 @__tsan_atomic128_fetch_nand(i128* %a, i128 0, i32 5), !dbg
2002 cmpxchg i128* %a, i128 0, i128 1 monotonic monotonic, !dbg !7
2003 ret void, !dbg !7
2006 …ECK: call i128 @__tsan_atomic128_compare_exchange_val(i128* %a, i128 0, i128 1, i32 0, i32 0), !dbg
2010 cmpxchg i128* %a, i128 0, i128 1 acquire acquire, !dbg !7
2011 ret void, !dbg !7
2014 …ECK: call i128 @__tsan_atomic128_compare_exchange_val(i128* %a, i128 0, i128 1, i32 2, i32 2), !dbg
2018 cmpxchg i128* %a, i128 0, i128 1 release monotonic, !dbg !7
2019 ret void, !dbg !7
2022 …ECK: call i128 @__tsan_atomic128_compare_exchange_val(i128* %a, i128 0, i128 1, i32 3, i32 0), !dbg
2026 cmpxchg i128* %a, i128 0, i128 1 acq_rel acquire, !dbg !7
2027 ret void, !dbg !7
2030 …ECK: call i128 @__tsan_atomic128_compare_exchange_val(i128* %a, i128 0, i128 1, i32 4, i32 2), !dbg
2034 cmpxchg i128* %a, i128 0, i128 1 seq_cst seq_cst, !dbg !7
2035 ret void, !dbg !7
2038 …ECK: call i128 @__tsan_atomic128_compare_exchange_val(i128* %a, i128 0, i128 1, i32 5, i32 5), !dbg
2042 fence syncscope("singlethread") acquire, !dbg !7
2043 ret void, !dbg !7
2046 ; CHECK: call void @__tsan_atomic_signal_fence(i32 2), !dbg
2050 fence acquire, !dbg !7
2051 ret void, !dbg !7
2054 ; CHECK: call void @__tsan_atomic_thread_fence(i32 2), !dbg
2058 fence syncscope("singlethread") release, !dbg !7
2059 ret void, !dbg !7
2062 ; CHECK: call void @__tsan_atomic_signal_fence(i32 3), !dbg
2066 fence release, !dbg !7
2067 ret void, !dbg !7
2070 ; CHECK: call void @__tsan_atomic_thread_fence(i32 3), !dbg
2074 fence syncscope("singlethread") acq_rel, !dbg !7
2075 ret void, !dbg !7
2078 ; CHECK: call void @__tsan_atomic_signal_fence(i32 4), !dbg
2082 fence acq_rel, !dbg !7
2083 ret void, !dbg !7
2086 ; CHECK: call void @__tsan_atomic_thread_fence(i32 4), !dbg
2090 fence syncscope("singlethread") seq_cst, !dbg !7
2091 ret void, !dbg !7
2094 ; CHECK: call void @__tsan_atomic_signal_fence(i32 5), !dbg
2098 fence seq_cst, !dbg !7
2099 ret void, !dbg !7
2102 ; CHECK: call void @__tsan_atomic_thread_fence(i32 5), !dbg
2105 !llvm.dbg.cu = !{!8}