1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --include-generated-funcs
2 // RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -target-cpu core2 -fopenmp -fopenmp-version=51 -x c -emit-llvm %s -o - | FileCheck %s
3 // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -x c -triple x86_64-apple-darwin10 -target-cpu core2 -emit-pch -o %t %s
4 // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -x c -triple x86_64-apple-darwin10 -target-cpu core2 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
5 
6 // RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -target-cpu core2 -fopenmp-simd -fopenmp-version=51 -x c -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s
7 // RUN: %clang_cc1 -no-opaque-pointers -fopenmp-simd -fopenmp-version=51 -x c -triple x86_64-apple-darwin10 -target-cpu core2 -emit-pch -o %t %s
8 // RUN: %clang_cc1 -no-opaque-pointers -fopenmp-simd -fopenmp-version=51 -x c -triple x86_64-apple-darwin10 -target-cpu core2 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s
9 // SIMD-ONLY0-NOT: {{__kmpc|__tgt}}
10 // expected-no-diagnostics
11 
12 #ifndef HEADER
13 #define HEADER
14 
15 void foo(void) {
16   char cx, ce, cd;
17   unsigned char ucx, uce, ucd;
18   short sx, se, sd;
19   unsigned short usx, use, usd;
20   int ix, ie, id;
21   unsigned int uix, uie, uid;
22   long lx, le, ld;
23   unsigned long ulx, ule, uld;
24   long long llx, lle, lld;
25   unsigned long long ullx, ulle, ulld;
26 
27 #pragma omp atomic compare
28   cx = cx > ce ? ce : cx;
29 #pragma omp atomic compare
30   cx = cx < ce ? ce : cx;
31 #pragma omp atomic compare
32   cx = ce > cx ? ce : cx;
33 #pragma omp atomic compare
34   cx = ce < cx ? ce : cx;
35 #pragma omp atomic compare
36   if (cx > ce)
37     cx = ce;
38 #pragma omp atomic compare
39   if (cx < ce)
40     cx = ce;
41 #pragma omp atomic compare
42   if (ce > cx)
43     cx = ce;
44 #pragma omp atomic compare
45   if (ce < cx)
46     cx = ce;
47 
48 #pragma omp atomic compare
49   cx = cx == ce ? cd : cx;
50 #pragma omp atomic compare
51   cx = ce == cx ? cd : cx;
52 #pragma omp atomic compare
53   if (cx == ce)
54     cx = cd;
55 #pragma omp atomic compare
56   if (ce == cx)
57     cx = cd;
58 
59 #pragma omp atomic compare
60   ucx = ucx > uce ? uce : ucx;
61 #pragma omp atomic compare
62   ucx = ucx < uce ? uce : ucx;
63 #pragma omp atomic compare
64   ucx = uce > ucx ? uce : ucx;
65 #pragma omp atomic compare
66   ucx = uce < ucx ? uce : ucx;
67 #pragma omp atomic compare
68   if (ucx > uce)
69     ucx = uce;
70 #pragma omp atomic compare
71   if (ucx < uce)
72     ucx = uce;
73 #pragma omp atomic compare
74   if (uce > ucx)
75     ucx = uce;
76 #pragma omp atomic compare
77   if (uce < ucx)
78     ucx = uce;
79 
80 #pragma omp atomic compare
81   ucx = ucx == uce ? ucd : ucx;
82 #pragma omp atomic compare
83   ucx = uce == ucx ? ucd : ucx;
84 #pragma omp atomic compare
85   if (ucx == uce)
86     ucx = ucd;
87 #pragma omp atomic compare
88   if (uce == ucx)
89     ucx = ucd;
90 
91 #pragma omp atomic compare acq_rel
92   cx = cx > ce ? ce : cx;
93 #pragma omp atomic compare acq_rel
94   cx = cx < ce ? ce : cx;
95 #pragma omp atomic compare acq_rel
96   cx = ce > cx ? ce : cx;
97 #pragma omp atomic compare acq_rel
98   cx = ce < cx ? ce : cx;
99 #pragma omp atomic compare acq_rel
100   if (cx > ce)
101     cx = ce;
102 #pragma omp atomic compare acq_rel
103   if (cx < ce)
104     cx = ce;
105 #pragma omp atomic compare acq_rel
106   if (ce > cx)
107     cx = ce;
108 #pragma omp atomic compare acq_rel
109   if (ce < cx)
110     cx = ce;
111 
112 #pragma omp atomic compare acq_rel
113   cx = cx == ce ? cd : cx;
114 #pragma omp atomic compare acq_rel
115   cx = ce == cx ? cd : cx;
116 #pragma omp atomic compare acq_rel
117   if (cx == ce)
118     cx = cd;
119 #pragma omp atomic compare acq_rel
120   if (ce == cx)
121     cx = cd;
122 
123 #pragma omp atomic compare acq_rel
124   ucx = ucx > uce ? uce : ucx;
125 #pragma omp atomic compare acq_rel
126   ucx = ucx < uce ? uce : ucx;
127 #pragma omp atomic compare acq_rel
128   ucx = uce > ucx ? uce : ucx;
129 #pragma omp atomic compare acq_rel
130   ucx = uce < ucx ? uce : ucx;
131 #pragma omp atomic compare acq_rel
132   if (ucx > uce)
133     ucx = uce;
134 #pragma omp atomic compare acq_rel
135   if (ucx < uce)
136     ucx = uce;
137 #pragma omp atomic compare acq_rel
138   if (uce > ucx)
139     ucx = uce;
140 #pragma omp atomic compare acq_rel
141   if (uce < ucx)
142     ucx = uce;
143 
144 #pragma omp atomic compare acq_rel
145   ucx = ucx == uce ? ucd : ucx;
146 #pragma omp atomic compare acq_rel
147   ucx = uce == ucx ? ucd : ucx;
148 #pragma omp atomic compare acq_rel
149   if (ucx == uce)
150     ucx = ucd;
151 #pragma omp atomic compare acq_rel
152   if (uce == ucx)
153     ucx = ucd;
154 
155 #pragma omp atomic compare acquire
156   cx = cx > ce ? ce : cx;
157 #pragma omp atomic compare acquire
158   cx = cx < ce ? ce : cx;
159 #pragma omp atomic compare acquire
160   cx = ce > cx ? ce : cx;
161 #pragma omp atomic compare acquire
162   cx = ce < cx ? ce : cx;
163 #pragma omp atomic compare acquire
164   if (cx > ce)
165     cx = ce;
166 #pragma omp atomic compare acquire
167   if (cx < ce)
168     cx = ce;
169 #pragma omp atomic compare acquire
170   if (ce > cx)
171     cx = ce;
172 #pragma omp atomic compare acquire
173   if (ce < cx)
174     cx = ce;
175 
176 #pragma omp atomic compare acquire
177   cx = cx == ce ? cd : cx;
178 #pragma omp atomic compare acquire
179   cx = ce == cx ? cd : cx;
180 #pragma omp atomic compare acquire
181   if (cx == ce)
182     cx = cd;
183 #pragma omp atomic compare acquire
184   if (ce == cx)
185     cx = cd;
186 
187 #pragma omp atomic compare acquire
188   ucx = ucx > uce ? uce : ucx;
189 #pragma omp atomic compare acquire
190   ucx = ucx < uce ? uce : ucx;
191 #pragma omp atomic compare acquire
192   ucx = uce > ucx ? uce : ucx;
193 #pragma omp atomic compare acquire
194   ucx = uce < ucx ? uce : ucx;
195 #pragma omp atomic compare acquire
196   if (ucx > uce)
197     ucx = uce;
198 #pragma omp atomic compare acquire
199   if (ucx < uce)
200     ucx = uce;
201 #pragma omp atomic compare acquire
202   if (uce > ucx)
203     ucx = uce;
204 #pragma omp atomic compare acquire
205   if (uce < ucx)
206     ucx = uce;
207 
208 #pragma omp atomic compare acquire
209   ucx = ucx == uce ? ucd : ucx;
210 #pragma omp atomic compare acquire
211   ucx = uce == ucx ? ucd : ucx;
212 #pragma omp atomic compare acquire
213   if (ucx == uce)
214     ucx = ucd;
215 #pragma omp atomic compare acquire
216   if (uce == ucx)
217     ucx = ucd;
218 
219 #pragma omp atomic compare relaxed
220   cx = cx > ce ? ce : cx;
221 #pragma omp atomic compare relaxed
222   cx = cx < ce ? ce : cx;
223 #pragma omp atomic compare relaxed
224   cx = ce > cx ? ce : cx;
225 #pragma omp atomic compare relaxed
226   cx = ce < cx ? ce : cx;
227 #pragma omp atomic compare relaxed
228   if (cx > ce)
229     cx = ce;
230 #pragma omp atomic compare relaxed
231   if (cx < ce)
232     cx = ce;
233 #pragma omp atomic compare relaxed
234   if (ce > cx)
235     cx = ce;
236 #pragma omp atomic compare relaxed
237   if (ce < cx)
238     cx = ce;
239 
240 #pragma omp atomic compare relaxed
241   cx = cx == ce ? cd : cx;
242 #pragma omp atomic compare relaxed
243   cx = ce == cx ? cd : cx;
244 #pragma omp atomic compare relaxed
245   if (cx == ce)
246     cx = cd;
247 #pragma omp atomic compare relaxed
248   if (ce == cx)
249     cx = cd;
250 
251 #pragma omp atomic compare relaxed
252   ucx = ucx > uce ? uce : ucx;
253 #pragma omp atomic compare relaxed
254   ucx = ucx < uce ? uce : ucx;
255 #pragma omp atomic compare relaxed
256   ucx = uce > ucx ? uce : ucx;
257 #pragma omp atomic compare relaxed
258   ucx = uce < ucx ? uce : ucx;
259 #pragma omp atomic compare relaxed
260   if (ucx > uce)
261     ucx = uce;
262 #pragma omp atomic compare relaxed
263   if (ucx < uce)
264     ucx = uce;
265 #pragma omp atomic compare relaxed
266   if (uce > ucx)
267     ucx = uce;
268 #pragma omp atomic compare relaxed
269   if (uce < ucx)
270     ucx = uce;
271 
272 #pragma omp atomic compare relaxed
273   ucx = ucx == uce ? ucd : ucx;
274 #pragma omp atomic compare relaxed
275   ucx = uce == ucx ? ucd : ucx;
276 #pragma omp atomic compare relaxed
277   if (ucx == uce)
278     ucx = ucd;
279 #pragma omp atomic compare relaxed
280   if (uce == ucx)
281     ucx = ucd;
282 
283 #pragma omp atomic compare release
284   cx = cx > ce ? ce : cx;
285 #pragma omp atomic compare release
286   cx = cx < ce ? ce : cx;
287 #pragma omp atomic compare release
288   cx = ce > cx ? ce : cx;
289 #pragma omp atomic compare release
290   cx = ce < cx ? ce : cx;
291 #pragma omp atomic compare release
292   if (cx > ce)
293     cx = ce;
294 #pragma omp atomic compare release
295   if (cx < ce)
296     cx = ce;
297 #pragma omp atomic compare release
298   if (ce > cx)
299     cx = ce;
300 #pragma omp atomic compare release
301   if (ce < cx)
302     cx = ce;
303 
304 #pragma omp atomic compare release
305   cx = cx == ce ? cd : cx;
306 #pragma omp atomic compare release
307   cx = ce == cx ? cd : cx;
308 #pragma omp atomic compare release
309   if (cx == ce)
310     cx = cd;
311 #pragma omp atomic compare release
312   if (ce == cx)
313     cx = cd;
314 
315 #pragma omp atomic compare release
316   ucx = ucx > uce ? uce : ucx;
317 #pragma omp atomic compare release
318   ucx = ucx < uce ? uce : ucx;
319 #pragma omp atomic compare release
320   ucx = uce > ucx ? uce : ucx;
321 #pragma omp atomic compare release
322   ucx = uce < ucx ? uce : ucx;
323 #pragma omp atomic compare release
324   if (ucx > uce)
325     ucx = uce;
326 #pragma omp atomic compare release
327   if (ucx < uce)
328     ucx = uce;
329 #pragma omp atomic compare release
330   if (uce > ucx)
331     ucx = uce;
332 #pragma omp atomic compare release
333   if (uce < ucx)
334     ucx = uce;
335 
336 #pragma omp atomic compare release
337   ucx = ucx == uce ? ucd : ucx;
338 #pragma omp atomic compare release
339   ucx = uce == ucx ? ucd : ucx;
340 #pragma omp atomic compare release
341   if (ucx == uce)
342     ucx = ucd;
343 #pragma omp atomic compare release
344   if (uce == ucx)
345     ucx = ucd;
346 
347 #pragma omp atomic compare seq_cst
348   cx = cx > ce ? ce : cx;
349 #pragma omp atomic compare seq_cst
350   cx = cx < ce ? ce : cx;
351 #pragma omp atomic compare seq_cst
352   cx = ce > cx ? ce : cx;
353 #pragma omp atomic compare seq_cst
354   cx = ce < cx ? ce : cx;
355 #pragma omp atomic compare seq_cst
356   if (cx > ce)
357     cx = ce;
358 #pragma omp atomic compare seq_cst
359   if (cx < ce)
360     cx = ce;
361 #pragma omp atomic compare seq_cst
362   if (ce > cx)
363     cx = ce;
364 #pragma omp atomic compare seq_cst
365   if (ce < cx)
366     cx = ce;
367 
368 #pragma omp atomic compare seq_cst
369   cx = cx == ce ? cd : cx;
370 #pragma omp atomic compare seq_cst
371   cx = ce == cx ? cd : cx;
372 #pragma omp atomic compare seq_cst
373   if (cx == ce)
374     cx = cd;
375 #pragma omp atomic compare seq_cst
376   if (ce == cx)
377     cx = cd;
378 
379 #pragma omp atomic compare seq_cst
380   ucx = ucx > uce ? uce : ucx;
381 #pragma omp atomic compare seq_cst
382   ucx = ucx < uce ? uce : ucx;
383 #pragma omp atomic compare seq_cst
384   ucx = uce > ucx ? uce : ucx;
385 #pragma omp atomic compare seq_cst
386   ucx = uce < ucx ? uce : ucx;
387 #pragma omp atomic compare seq_cst
388   if (ucx > uce)
389     ucx = uce;
390 #pragma omp atomic compare seq_cst
391   if (ucx < uce)
392     ucx = uce;
393 #pragma omp atomic compare seq_cst
394   if (uce > ucx)
395     ucx = uce;
396 #pragma omp atomic compare seq_cst
397   if (uce < ucx)
398     ucx = uce;
399 
400 #pragma omp atomic compare seq_cst
401   ucx = ucx == uce ? ucd : ucx;
402 #pragma omp atomic compare seq_cst
403   ucx = uce == ucx ? ucd : ucx;
404 #pragma omp atomic compare seq_cst
405   if (ucx == uce)
406     ucx = ucd;
407 #pragma omp atomic compare seq_cst
408   if (uce == ucx)
409     ucx = ucd;
410 
411 #pragma omp atomic compare
412   sx = sx > se ? se : sx;
413 #pragma omp atomic compare
414   sx = sx < se ? se : sx;
415 #pragma omp atomic compare
416   sx = se > sx ? se : sx;
417 #pragma omp atomic compare
418   sx = se < sx ? se : sx;
419 #pragma omp atomic compare
420   if (sx > se)
421     sx = se;
422 #pragma omp atomic compare
423   if (sx < se)
424     sx = se;
425 #pragma omp atomic compare
426   if (se > sx)
427     sx = se;
428 #pragma omp atomic compare
429   if (se < sx)
430     sx = se;
431 
432 #pragma omp atomic compare
433   sx = sx == se ? sd : sx;
434 #pragma omp atomic compare
435   sx = se == sx ? sd : sx;
436 #pragma omp atomic compare
437   if (sx == se)
438     sx = sd;
439 #pragma omp atomic compare
440   if (se == sx)
441     sx = sd;
442 
443 #pragma omp atomic compare
444   usx = usx > use ? use : usx;
445 #pragma omp atomic compare
446   usx = usx < use ? use : usx;
447 #pragma omp atomic compare
448   usx = use > usx ? use : usx;
449 #pragma omp atomic compare
450   usx = use < usx ? use : usx;
451 #pragma omp atomic compare
452   if (usx > use)
453     usx = use;
454 #pragma omp atomic compare
455   if (usx < use)
456     usx = use;
457 #pragma omp atomic compare
458   if (use > usx)
459     usx = use;
460 #pragma omp atomic compare
461   if (use < usx)
462     usx = use;
463 
464 #pragma omp atomic compare
465   usx = usx == use ? usd : usx;
466 #pragma omp atomic compare
467   usx = use == usx ? usd : usx;
468 #pragma omp atomic compare
469   if (usx == use)
470     usx = usd;
471 #pragma omp atomic compare
472   if (use == usx)
473     usx = usd;
474 
475 #pragma omp atomic compare acq_rel
476   sx = sx > se ? se : sx;
477 #pragma omp atomic compare acq_rel
478   sx = sx < se ? se : sx;
479 #pragma omp atomic compare acq_rel
480   sx = se > sx ? se : sx;
481 #pragma omp atomic compare acq_rel
482   sx = se < sx ? se : sx;
483 #pragma omp atomic compare acq_rel
484   if (sx > se)
485     sx = se;
486 #pragma omp atomic compare acq_rel
487   if (sx < se)
488     sx = se;
489 #pragma omp atomic compare acq_rel
490   if (se > sx)
491     sx = se;
492 #pragma omp atomic compare acq_rel
493   if (se < sx)
494     sx = se;
495 
496 #pragma omp atomic compare acq_rel
497   sx = sx == se ? sd : sx;
498 #pragma omp atomic compare acq_rel
499   sx = se == sx ? sd : sx;
500 #pragma omp atomic compare acq_rel
501   if (sx == se)
502     sx = sd;
503 #pragma omp atomic compare acq_rel
504   if (se == sx)
505     sx = sd;
506 
507 #pragma omp atomic compare acq_rel
508   usx = usx > use ? use : usx;
509 #pragma omp atomic compare acq_rel
510   usx = usx < use ? use : usx;
511 #pragma omp atomic compare acq_rel
512   usx = use > usx ? use : usx;
513 #pragma omp atomic compare acq_rel
514   usx = use < usx ? use : usx;
515 #pragma omp atomic compare acq_rel
516   if (usx > use)
517     usx = use;
518 #pragma omp atomic compare acq_rel
519   if (usx < use)
520     usx = use;
521 #pragma omp atomic compare acq_rel
522   if (use > usx)
523     usx = use;
524 #pragma omp atomic compare acq_rel
525   if (use < usx)
526     usx = use;
527 
528 #pragma omp atomic compare acq_rel
529   usx = usx == use ? usd : usx;
530 #pragma omp atomic compare acq_rel
531   usx = use == usx ? usd : usx;
532 #pragma omp atomic compare acq_rel
533   if (usx == use)
534     usx = usd;
535 #pragma omp atomic compare acq_rel
536   if (use == usx)
537     usx = usd;
538 
539 #pragma omp atomic compare acquire
540   sx = sx > se ? se : sx;
541 #pragma omp atomic compare acquire
542   sx = sx < se ? se : sx;
543 #pragma omp atomic compare acquire
544   sx = se > sx ? se : sx;
545 #pragma omp atomic compare acquire
546   sx = se < sx ? se : sx;
547 #pragma omp atomic compare acquire
548   if (sx > se)
549     sx = se;
550 #pragma omp atomic compare acquire
551   if (sx < se)
552     sx = se;
553 #pragma omp atomic compare acquire
554   if (se > sx)
555     sx = se;
556 #pragma omp atomic compare acquire
557   if (se < sx)
558     sx = se;
559 
560 #pragma omp atomic compare acquire
561   sx = sx == se ? sd : sx;
562 #pragma omp atomic compare acquire
563   sx = se == sx ? sd : sx;
564 #pragma omp atomic compare acquire
565   if (sx == se)
566     sx = sd;
567 #pragma omp atomic compare acquire
568   if (se == sx)
569     sx = sd;
570 
571 #pragma omp atomic compare acquire
572   usx = usx > use ? use : usx;
573 #pragma omp atomic compare acquire
574   usx = usx < use ? use : usx;
575 #pragma omp atomic compare acquire
576   usx = use > usx ? use : usx;
577 #pragma omp atomic compare acquire
578   usx = use < usx ? use : usx;
579 #pragma omp atomic compare acquire
580   if (usx > use)
581     usx = use;
582 #pragma omp atomic compare acquire
583   if (usx < use)
584     usx = use;
585 #pragma omp atomic compare acquire
586   if (use > usx)
587     usx = use;
588 #pragma omp atomic compare acquire
589   if (use < usx)
590     usx = use;
591 
592 #pragma omp atomic compare acquire
593   usx = usx == use ? usd : usx;
594 #pragma omp atomic compare acquire
595   usx = use == usx ? usd : usx;
596 #pragma omp atomic compare acquire
597   if (usx == use)
598     usx = usd;
599 #pragma omp atomic compare acquire
600   if (use == usx)
601     usx = usd;
602 
603 #pragma omp atomic compare relaxed
604   sx = sx > se ? se : sx;
605 #pragma omp atomic compare relaxed
606   sx = sx < se ? se : sx;
607 #pragma omp atomic compare relaxed
608   sx = se > sx ? se : sx;
609 #pragma omp atomic compare relaxed
610   sx = se < sx ? se : sx;
611 #pragma omp atomic compare relaxed
612   if (sx > se)
613     sx = se;
614 #pragma omp atomic compare relaxed
615   if (sx < se)
616     sx = se;
617 #pragma omp atomic compare relaxed
618   if (se > sx)
619     sx = se;
620 #pragma omp atomic compare relaxed
621   if (se < sx)
622     sx = se;
623 
624 #pragma omp atomic compare relaxed
625   sx = sx == se ? sd : sx;
626 #pragma omp atomic compare relaxed
627   sx = se == sx ? sd : sx;
628 #pragma omp atomic compare relaxed
629   if (sx == se)
630     sx = sd;
631 #pragma omp atomic compare relaxed
632   if (se == sx)
633     sx = sd;
634 
635 #pragma omp atomic compare relaxed
636   usx = usx > use ? use : usx;
637 #pragma omp atomic compare relaxed
638   usx = usx < use ? use : usx;
639 #pragma omp atomic compare relaxed
640   usx = use > usx ? use : usx;
641 #pragma omp atomic compare relaxed
642   usx = use < usx ? use : usx;
643 #pragma omp atomic compare relaxed
644   if (usx > use)
645     usx = use;
646 #pragma omp atomic compare relaxed
647   if (usx < use)
648     usx = use;
649 #pragma omp atomic compare relaxed
650   if (use > usx)
651     usx = use;
652 #pragma omp atomic compare relaxed
653   if (use < usx)
654     usx = use;
655 
656 #pragma omp atomic compare relaxed
657   usx = usx == use ? usd : usx;
658 #pragma omp atomic compare relaxed
659   usx = use == usx ? usd : usx;
660 #pragma omp atomic compare relaxed
661   if (usx == use)
662     usx = usd;
663 #pragma omp atomic compare relaxed
664   if (use == usx)
665     usx = usd;
666 
667 #pragma omp atomic compare release
668   sx = sx > se ? se : sx;
669 #pragma omp atomic compare release
670   sx = sx < se ? se : sx;
671 #pragma omp atomic compare release
672   sx = se > sx ? se : sx;
673 #pragma omp atomic compare release
674   sx = se < sx ? se : sx;
675 #pragma omp atomic compare release
676   if (sx > se)
677     sx = se;
678 #pragma omp atomic compare release
679   if (sx < se)
680     sx = se;
681 #pragma omp atomic compare release
682   if (se > sx)
683     sx = se;
684 #pragma omp atomic compare release
685   if (se < sx)
686     sx = se;
687 
688 #pragma omp atomic compare release
689   sx = sx == se ? sd : sx;
690 #pragma omp atomic compare release
691   sx = se == sx ? sd : sx;
692 #pragma omp atomic compare release
693   if (sx == se)
694     sx = sd;
695 #pragma omp atomic compare release
696   if (se == sx)
697     sx = sd;
698 
699 #pragma omp atomic compare release
700   usx = usx > use ? use : usx;
701 #pragma omp atomic compare release
702   usx = usx < use ? use : usx;
703 #pragma omp atomic compare release
704   usx = use > usx ? use : usx;
705 #pragma omp atomic compare release
706   usx = use < usx ? use : usx;
707 #pragma omp atomic compare release
708   if (usx > use)
709     usx = use;
710 #pragma omp atomic compare release
711   if (usx < use)
712     usx = use;
713 #pragma omp atomic compare release
714   if (use > usx)
715     usx = use;
716 #pragma omp atomic compare release
717   if (use < usx)
718     usx = use;
719 
720 #pragma omp atomic compare release
721   usx = usx == use ? usd : usx;
722 #pragma omp atomic compare release
723   usx = use == usx ? usd : usx;
724 #pragma omp atomic compare release
725   if (usx == use)
726     usx = usd;
727 #pragma omp atomic compare release
728   if (use == usx)
729     usx = usd;
730 
731 #pragma omp atomic compare seq_cst
732   sx = sx > se ? se : sx;
733 #pragma omp atomic compare seq_cst
734   sx = sx < se ? se : sx;
735 #pragma omp atomic compare seq_cst
736   sx = se > sx ? se : sx;
737 #pragma omp atomic compare seq_cst
738   sx = se < sx ? se : sx;
739 #pragma omp atomic compare seq_cst
740   if (sx > se)
741     sx = se;
742 #pragma omp atomic compare seq_cst
743   if (sx < se)
744     sx = se;
745 #pragma omp atomic compare seq_cst
746   if (se > sx)
747     sx = se;
748 #pragma omp atomic compare seq_cst
749   if (se < sx)
750     sx = se;
751 
752 #pragma omp atomic compare seq_cst
753   sx = sx == se ? sd : sx;
754 #pragma omp atomic compare seq_cst
755   sx = se == sx ? sd : sx;
756 #pragma omp atomic compare seq_cst
757   if (sx == se)
758     sx = sd;
759 #pragma omp atomic compare seq_cst
760   if (se == sx)
761     sx = sd;
762 
763 #pragma omp atomic compare seq_cst
764   usx = usx > use ? use : usx;
765 #pragma omp atomic compare seq_cst
766   usx = usx < use ? use : usx;
767 #pragma omp atomic compare seq_cst
768   usx = use > usx ? use : usx;
769 #pragma omp atomic compare seq_cst
770   usx = use < usx ? use : usx;
771 #pragma omp atomic compare seq_cst
772   if (usx > use)
773     usx = use;
774 #pragma omp atomic compare seq_cst
775   if (usx < use)
776     usx = use;
777 #pragma omp atomic compare seq_cst
778   if (use > usx)
779     usx = use;
780 #pragma omp atomic compare seq_cst
781   if (use < usx)
782     usx = use;
783 
784 #pragma omp atomic compare seq_cst
785   usx = usx == use ? usd : usx;
786 #pragma omp atomic compare seq_cst
787   usx = use == usx ? usd : usx;
788 #pragma omp atomic compare seq_cst
789   if (usx == use)
790     usx = usd;
791 #pragma omp atomic compare seq_cst
792   if (use == usx)
793     usx = usd;
794 
795 #pragma omp atomic compare
796   ix = ix > ie ? ie : ix;
797 #pragma omp atomic compare
798   ix = ix < ie ? ie : ix;
799 #pragma omp atomic compare
800   ix = ie > ix ? ie : ix;
801 #pragma omp atomic compare
802   ix = ie < ix ? ie : ix;
803 #pragma omp atomic compare
804   if (ix > ie)
805     ix = ie;
806 #pragma omp atomic compare
807   if (ix < ie)
808     ix = ie;
809 #pragma omp atomic compare
810   if (ie > ix)
811     ix = ie;
812 #pragma omp atomic compare
813   if (ie < ix)
814     ix = ie;
815 
816 #pragma omp atomic compare
817   ix = ix == ie ? id : ix;
818 #pragma omp atomic compare
819   ix = ie == ix ? id : ix;
820 #pragma omp atomic compare
821   if (ix == ie)
822     ix = id;
823 #pragma omp atomic compare
824   if (ie == ix)
825     ix = id;
826 
827 #pragma omp atomic compare
828   uix = uix > uie ? uie : uix;
829 #pragma omp atomic compare
830   uix = uix < uie ? uie : uix;
831 #pragma omp atomic compare
832   uix = uie > uix ? uie : uix;
833 #pragma omp atomic compare
834   uix = uie < uix ? uie : uix;
835 #pragma omp atomic compare
836   if (uix > uie)
837     uix = uie;
838 #pragma omp atomic compare
839   if (uix < uie)
840     uix = uie;
841 #pragma omp atomic compare
842   if (uie > uix)
843     uix = uie;
844 #pragma omp atomic compare
845   if (uie < uix)
846     uix = uie;
847 
848 #pragma omp atomic compare
849   uix = uix == uie ? uid : uix;
850 #pragma omp atomic compare
851   uix = uie == uix ? uid : uix;
852 #pragma omp atomic compare
853   if (uix == uie)
854     uix = uid;
855 #pragma omp atomic compare
856   if (uie == uix)
857     uix = uid;
858 
859 #pragma omp atomic compare acq_rel
860   ix = ix > ie ? ie : ix;
861 #pragma omp atomic compare acq_rel
862   ix = ix < ie ? ie : ix;
863 #pragma omp atomic compare acq_rel
864   ix = ie > ix ? ie : ix;
865 #pragma omp atomic compare acq_rel
866   ix = ie < ix ? ie : ix;
867 #pragma omp atomic compare acq_rel
868   if (ix > ie)
869     ix = ie;
870 #pragma omp atomic compare acq_rel
871   if (ix < ie)
872     ix = ie;
873 #pragma omp atomic compare acq_rel
874   if (ie > ix)
875     ix = ie;
876 #pragma omp atomic compare acq_rel
877   if (ie < ix)
878     ix = ie;
879 
880 #pragma omp atomic compare acq_rel
881   ix = ix == ie ? id : ix;
882 #pragma omp atomic compare acq_rel
883   ix = ie == ix ? id : ix;
884 #pragma omp atomic compare acq_rel
885   if (ix == ie)
886     ix = id;
887 #pragma omp atomic compare acq_rel
888   if (ie == ix)
889     ix = id;
890 
891 #pragma omp atomic compare acq_rel
892   uix = uix > uie ? uie : uix;
893 #pragma omp atomic compare acq_rel
894   uix = uix < uie ? uie : uix;
895 #pragma omp atomic compare acq_rel
896   uix = uie > uix ? uie : uix;
897 #pragma omp atomic compare acq_rel
898   uix = uie < uix ? uie : uix;
899 #pragma omp atomic compare acq_rel
900   if (uix > uie)
901     uix = uie;
902 #pragma omp atomic compare acq_rel
903   if (uix < uie)
904     uix = uie;
905 #pragma omp atomic compare acq_rel
906   if (uie > uix)
907     uix = uie;
908 #pragma omp atomic compare acq_rel
909   if (uie < uix)
910     uix = uie;
911 
912 #pragma omp atomic compare acq_rel
913   uix = uix == uie ? uid : uix;
914 #pragma omp atomic compare acq_rel
915   uix = uie == uix ? uid : uix;
916 #pragma omp atomic compare acq_rel
917   if (uix == uie)
918     uix = uid;
919 #pragma omp atomic compare acq_rel
920   if (uie == uix)
921     uix = uid;
922 
923 #pragma omp atomic compare acquire
924   ix = ix > ie ? ie : ix;
925 #pragma omp atomic compare acquire
926   ix = ix < ie ? ie : ix;
927 #pragma omp atomic compare acquire
928   ix = ie > ix ? ie : ix;
929 #pragma omp atomic compare acquire
930   ix = ie < ix ? ie : ix;
931 #pragma omp atomic compare acquire
932   if (ix > ie)
933     ix = ie;
934 #pragma omp atomic compare acquire
935   if (ix < ie)
936     ix = ie;
937 #pragma omp atomic compare acquire
938   if (ie > ix)
939     ix = ie;
940 #pragma omp atomic compare acquire
941   if (ie < ix)
942     ix = ie;
943 
944 #pragma omp atomic compare acquire
945   ix = ix == ie ? id : ix;
946 #pragma omp atomic compare acquire
947   ix = ie == ix ? id : ix;
948 #pragma omp atomic compare acquire
949   if (ix == ie)
950     ix = id;
951 #pragma omp atomic compare acquire
952   if (ie == ix)
953     ix = id;
954 
955 #pragma omp atomic compare acquire
956   uix = uix > uie ? uie : uix;
957 #pragma omp atomic compare acquire
958   uix = uix < uie ? uie : uix;
959 #pragma omp atomic compare acquire
960   uix = uie > uix ? uie : uix;
961 #pragma omp atomic compare acquire
962   uix = uie < uix ? uie : uix;
963 #pragma omp atomic compare acquire
964   if (uix > uie)
965     uix = uie;
966 #pragma omp atomic compare acquire
967   if (uix < uie)
968     uix = uie;
969 #pragma omp atomic compare acquire
970   if (uie > uix)
971     uix = uie;
972 #pragma omp atomic compare acquire
973   if (uie < uix)
974     uix = uie;
975 
976 #pragma omp atomic compare acquire
977   uix = uix == uie ? uid : uix;
978 #pragma omp atomic compare acquire
979   uix = uie == uix ? uid : uix;
980 #pragma omp atomic compare acquire
981   if (uix == uie)
982     uix = uid;
983 #pragma omp atomic compare acquire
984   if (uie == uix)
985     uix = uid;
986 
987 #pragma omp atomic compare relaxed
988   ix = ix > ie ? ie : ix;
989 #pragma omp atomic compare relaxed
990   ix = ix < ie ? ie : ix;
991 #pragma omp atomic compare relaxed
992   ix = ie > ix ? ie : ix;
993 #pragma omp atomic compare relaxed
994   ix = ie < ix ? ie : ix;
995 #pragma omp atomic compare relaxed
996   if (ix > ie)
997     ix = ie;
998 #pragma omp atomic compare relaxed
999   if (ix < ie)
1000     ix = ie;
1001 #pragma omp atomic compare relaxed
1002   if (ie > ix)
1003     ix = ie;
1004 #pragma omp atomic compare relaxed
1005   if (ie < ix)
1006     ix = ie;
1007 
1008 #pragma omp atomic compare relaxed
1009   ix = ix == ie ? id : ix;
1010 #pragma omp atomic compare relaxed
1011   ix = ie == ix ? id : ix;
1012 #pragma omp atomic compare relaxed
1013   if (ix == ie)
1014     ix = id;
1015 #pragma omp atomic compare relaxed
1016   if (ie == ix)
1017     ix = id;
1018 
1019 #pragma omp atomic compare relaxed
1020   uix = uix > uie ? uie : uix;
1021 #pragma omp atomic compare relaxed
1022   uix = uix < uie ? uie : uix;
1023 #pragma omp atomic compare relaxed
1024   uix = uie > uix ? uie : uix;
1025 #pragma omp atomic compare relaxed
1026   uix = uie < uix ? uie : uix;
1027 #pragma omp atomic compare relaxed
1028   if (uix > uie)
1029     uix = uie;
1030 #pragma omp atomic compare relaxed
1031   if (uix < uie)
1032     uix = uie;
1033 #pragma omp atomic compare relaxed
1034   if (uie > uix)
1035     uix = uie;
1036 #pragma omp atomic compare relaxed
1037   if (uie < uix)
1038     uix = uie;
1039 
1040 #pragma omp atomic compare relaxed
1041   uix = uix == uie ? uid : uix;
1042 #pragma omp atomic compare relaxed
1043   uix = uie == uix ? uid : uix;
1044 #pragma omp atomic compare relaxed
1045   if (uix == uie)
1046     uix = uid;
1047 #pragma omp atomic compare relaxed
1048   if (uie == uix)
1049     uix = uid;
1050 
1051 #pragma omp atomic compare release
1052   ix = ix > ie ? ie : ix;
1053 #pragma omp atomic compare release
1054   ix = ix < ie ? ie : ix;
1055 #pragma omp atomic compare release
1056   ix = ie > ix ? ie : ix;
1057 #pragma omp atomic compare release
1058   ix = ie < ix ? ie : ix;
1059 #pragma omp atomic compare release
1060   if (ix > ie)
1061     ix = ie;
1062 #pragma omp atomic compare release
1063   if (ix < ie)
1064     ix = ie;
1065 #pragma omp atomic compare release
1066   if (ie > ix)
1067     ix = ie;
1068 #pragma omp atomic compare release
1069   if (ie < ix)
1070     ix = ie;
1071 
1072 #pragma omp atomic compare release
1073   ix = ix == ie ? id : ix;
1074 #pragma omp atomic compare release
1075   ix = ie == ix ? id : ix;
1076 #pragma omp atomic compare release
1077   if (ix == ie)
1078     ix = id;
1079 #pragma omp atomic compare release
1080   if (ie == ix)
1081     ix = id;
1082 
1083 #pragma omp atomic compare release
1084   uix = uix > uie ? uie : uix;
1085 #pragma omp atomic compare release
1086   uix = uix < uie ? uie : uix;
1087 #pragma omp atomic compare release
1088   uix = uie > uix ? uie : uix;
1089 #pragma omp atomic compare release
1090   uix = uie < uix ? uie : uix;
1091 #pragma omp atomic compare release
1092   if (uix > uie)
1093     uix = uie;
1094 #pragma omp atomic compare release
1095   if (uix < uie)
1096     uix = uie;
1097 #pragma omp atomic compare release
1098   if (uie > uix)
1099     uix = uie;
1100 #pragma omp atomic compare release
1101   if (uie < uix)
1102     uix = uie;
1103 
1104 #pragma omp atomic compare release
1105   uix = uix == uie ? uid : uix;
1106 #pragma omp atomic compare release
1107   uix = uie == uix ? uid : uix;
1108 #pragma omp atomic compare release
1109   if (uix == uie)
1110     uix = uid;
1111 #pragma omp atomic compare release
1112   if (uie == uix)
1113     uix = uid;
1114 
1115 #pragma omp atomic compare seq_cst
1116   ix = ix > ie ? ie : ix;
1117 #pragma omp atomic compare seq_cst
1118   ix = ix < ie ? ie : ix;
1119 #pragma omp atomic compare seq_cst
1120   ix = ie > ix ? ie : ix;
1121 #pragma omp atomic compare seq_cst
1122   ix = ie < ix ? ie : ix;
1123 #pragma omp atomic compare seq_cst
1124   if (ix > ie)
1125     ix = ie;
1126 #pragma omp atomic compare seq_cst
1127   if (ix < ie)
1128     ix = ie;
1129 #pragma omp atomic compare seq_cst
1130   if (ie > ix)
1131     ix = ie;
1132 #pragma omp atomic compare seq_cst
1133   if (ie < ix)
1134     ix = ie;
1135 
1136 #pragma omp atomic compare seq_cst
1137   ix = ix == ie ? id : ix;
1138 #pragma omp atomic compare seq_cst
1139   ix = ie == ix ? id : ix;
1140 #pragma omp atomic compare seq_cst
1141   if (ix == ie)
1142     ix = id;
1143 #pragma omp atomic compare seq_cst
1144   if (ie == ix)
1145     ix = id;
1146 
1147 #pragma omp atomic compare seq_cst
1148   uix = uix > uie ? uie : uix;
1149 #pragma omp atomic compare seq_cst
1150   uix = uix < uie ? uie : uix;
1151 #pragma omp atomic compare seq_cst
1152   uix = uie > uix ? uie : uix;
1153 #pragma omp atomic compare seq_cst
1154   uix = uie < uix ? uie : uix;
1155 #pragma omp atomic compare seq_cst
1156   if (uix > uie)
1157     uix = uie;
1158 #pragma omp atomic compare seq_cst
1159   if (uix < uie)
1160     uix = uie;
1161 #pragma omp atomic compare seq_cst
1162   if (uie > uix)
1163     uix = uie;
1164 #pragma omp atomic compare seq_cst
1165   if (uie < uix)
1166     uix = uie;
1167 
1168 #pragma omp atomic compare seq_cst
1169   uix = uix == uie ? uid : uix;
1170 #pragma omp atomic compare seq_cst
1171   uix = uie == uix ? uid : uix;
1172 #pragma omp atomic compare seq_cst
1173   if (uix == uie)
1174     uix = uid;
1175 #pragma omp atomic compare seq_cst
1176   if (uie == uix)
1177     uix = uid;
1178 
1179 #pragma omp atomic compare
1180   lx = lx > le ? le : lx;
1181 #pragma omp atomic compare
1182   lx = lx < le ? le : lx;
1183 #pragma omp atomic compare
1184   lx = le > lx ? le : lx;
1185 #pragma omp atomic compare
1186   lx = le < lx ? le : lx;
1187 #pragma omp atomic compare
1188   if (lx > le)
1189     lx = le;
1190 #pragma omp atomic compare
1191   if (lx < le)
1192     lx = le;
1193 #pragma omp atomic compare
1194   if (le > lx)
1195     lx = le;
1196 #pragma omp atomic compare
1197   if (le < lx)
1198     lx = le;
1199 
1200 #pragma omp atomic compare
1201   lx = lx == le ? ld : lx;
1202 #pragma omp atomic compare
1203   lx = le == lx ? ld : lx;
1204 #pragma omp atomic compare
1205   if (lx == le)
1206     lx = ld;
1207 #pragma omp atomic compare
1208   if (le == lx)
1209     lx = ld;
1210 
1211 #pragma omp atomic compare
1212   ulx = ulx > ule ? ule : ulx;
1213 #pragma omp atomic compare
1214   ulx = ulx < ule ? ule : ulx;
1215 #pragma omp atomic compare
1216   ulx = ule > ulx ? ule : ulx;
1217 #pragma omp atomic compare
1218   ulx = ule < ulx ? ule : ulx;
1219 #pragma omp atomic compare
1220   if (ulx > ule)
1221     ulx = ule;
1222 #pragma omp atomic compare
1223   if (ulx < ule)
1224     ulx = ule;
1225 #pragma omp atomic compare
1226   if (ule > ulx)
1227     ulx = ule;
1228 #pragma omp atomic compare
1229   if (ule < ulx)
1230     ulx = ule;
1231 
1232 #pragma omp atomic compare
1233   ulx = ulx == ule ? uld : ulx;
1234 #pragma omp atomic compare
1235   ulx = ule == ulx ? uld : ulx;
1236 #pragma omp atomic compare
1237   if (ulx == ule)
1238     ulx = uld;
1239 #pragma omp atomic compare
1240   if (ule == ulx)
1241     ulx = uld;
1242 
1243 #pragma omp atomic compare acq_rel
1244   lx = lx > le ? le : lx;
1245 #pragma omp atomic compare acq_rel
1246   lx = lx < le ? le : lx;
1247 #pragma omp atomic compare acq_rel
1248   lx = le > lx ? le : lx;
1249 #pragma omp atomic compare acq_rel
1250   lx = le < lx ? le : lx;
1251 #pragma omp atomic compare acq_rel
1252   if (lx > le)
1253     lx = le;
1254 #pragma omp atomic compare acq_rel
1255   if (lx < le)
1256     lx = le;
1257 #pragma omp atomic compare acq_rel
1258   if (le > lx)
1259     lx = le;
1260 #pragma omp atomic compare acq_rel
1261   if (le < lx)
1262     lx = le;
1263 
1264 #pragma omp atomic compare acq_rel
1265   lx = lx == le ? ld : lx;
1266 #pragma omp atomic compare acq_rel
1267   lx = le == lx ? ld : lx;
1268 #pragma omp atomic compare acq_rel
1269   if (lx == le)
1270     lx = ld;
1271 #pragma omp atomic compare acq_rel
1272   if (le == lx)
1273     lx = ld;
1274 
1275 #pragma omp atomic compare acq_rel
1276   ulx = ulx > ule ? ule : ulx;
1277 #pragma omp atomic compare acq_rel
1278   ulx = ulx < ule ? ule : ulx;
1279 #pragma omp atomic compare acq_rel
1280   ulx = ule > ulx ? ule : ulx;
1281 #pragma omp atomic compare acq_rel
1282   ulx = ule < ulx ? ule : ulx;
1283 #pragma omp atomic compare acq_rel
1284   if (ulx > ule)
1285     ulx = ule;
1286 #pragma omp atomic compare acq_rel
1287   if (ulx < ule)
1288     ulx = ule;
1289 #pragma omp atomic compare acq_rel
1290   if (ule > ulx)
1291     ulx = ule;
1292 #pragma omp atomic compare acq_rel
1293   if (ule < ulx)
1294     ulx = ule;
1295 
1296 #pragma omp atomic compare acq_rel
1297   ulx = ulx == ule ? uld : ulx;
1298 #pragma omp atomic compare acq_rel
1299   ulx = ule == ulx ? uld : ulx;
1300 #pragma omp atomic compare acq_rel
1301   if (ulx == ule)
1302     ulx = uld;
1303 #pragma omp atomic compare acq_rel
1304   if (ule == ulx)
1305     ulx = uld;
1306 
1307 #pragma omp atomic compare acquire
1308   lx = lx > le ? le : lx;
1309 #pragma omp atomic compare acquire
1310   lx = lx < le ? le : lx;
1311 #pragma omp atomic compare acquire
1312   lx = le > lx ? le : lx;
1313 #pragma omp atomic compare acquire
1314   lx = le < lx ? le : lx;
1315 #pragma omp atomic compare acquire
1316   if (lx > le)
1317     lx = le;
1318 #pragma omp atomic compare acquire
1319   if (lx < le)
1320     lx = le;
1321 #pragma omp atomic compare acquire
1322   if (le > lx)
1323     lx = le;
1324 #pragma omp atomic compare acquire
1325   if (le < lx)
1326     lx = le;
1327 
1328 #pragma omp atomic compare acquire
1329   lx = lx == le ? ld : lx;
1330 #pragma omp atomic compare acquire
1331   lx = le == lx ? ld : lx;
1332 #pragma omp atomic compare acquire
1333   if (lx == le)
1334     lx = ld;
1335 #pragma omp atomic compare acquire
1336   if (le == lx)
1337     lx = ld;
1338 
1339 #pragma omp atomic compare acquire
1340   ulx = ulx > ule ? ule : ulx;
1341 #pragma omp atomic compare acquire
1342   ulx = ulx < ule ? ule : ulx;
1343 #pragma omp atomic compare acquire
1344   ulx = ule > ulx ? ule : ulx;
1345 #pragma omp atomic compare acquire
1346   ulx = ule < ulx ? ule : ulx;
1347 #pragma omp atomic compare acquire
1348   if (ulx > ule)
1349     ulx = ule;
1350 #pragma omp atomic compare acquire
1351   if (ulx < ule)
1352     ulx = ule;
1353 #pragma omp atomic compare acquire
1354   if (ule > ulx)
1355     ulx = ule;
1356 #pragma omp atomic compare acquire
1357   if (ule < ulx)
1358     ulx = ule;
1359 
1360 #pragma omp atomic compare acquire
1361   ulx = ulx == ule ? uld : ulx;
1362 #pragma omp atomic compare acquire
1363   ulx = ule == ulx ? uld : ulx;
1364 #pragma omp atomic compare acquire
1365   if (ulx == ule)
1366     ulx = uld;
1367 #pragma omp atomic compare acquire
1368   if (ule == ulx)
1369     ulx = uld;
1370 
1371 #pragma omp atomic compare relaxed
1372   lx = lx > le ? le : lx;
1373 #pragma omp atomic compare relaxed
1374   lx = lx < le ? le : lx;
1375 #pragma omp atomic compare relaxed
1376   lx = le > lx ? le : lx;
1377 #pragma omp atomic compare relaxed
1378   lx = le < lx ? le : lx;
1379 #pragma omp atomic compare relaxed
1380   if (lx > le)
1381     lx = le;
1382 #pragma omp atomic compare relaxed
1383   if (lx < le)
1384     lx = le;
1385 #pragma omp atomic compare relaxed
1386   if (le > lx)
1387     lx = le;
1388 #pragma omp atomic compare relaxed
1389   if (le < lx)
1390     lx = le;
1391 
1392 #pragma omp atomic compare relaxed
1393   lx = lx == le ? ld : lx;
1394 #pragma omp atomic compare relaxed
1395   lx = le == lx ? ld : lx;
1396 #pragma omp atomic compare relaxed
1397   if (lx == le)
1398     lx = ld;
1399 #pragma omp atomic compare relaxed
1400   if (le == lx)
1401     lx = ld;
1402 
1403 #pragma omp atomic compare relaxed
1404   ulx = ulx > ule ? ule : ulx;
1405 #pragma omp atomic compare relaxed
1406   ulx = ulx < ule ? ule : ulx;
1407 #pragma omp atomic compare relaxed
1408   ulx = ule > ulx ? ule : ulx;
1409 #pragma omp atomic compare relaxed
1410   ulx = ule < ulx ? ule : ulx;
1411 #pragma omp atomic compare relaxed
1412   if (ulx > ule)
1413     ulx = ule;
1414 #pragma omp atomic compare relaxed
1415   if (ulx < ule)
1416     ulx = ule;
1417 #pragma omp atomic compare relaxed
1418   if (ule > ulx)
1419     ulx = ule;
1420 #pragma omp atomic compare relaxed
1421   if (ule < ulx)
1422     ulx = ule;
1423 
1424 #pragma omp atomic compare relaxed
1425   ulx = ulx == ule ? uld : ulx;
1426 #pragma omp atomic compare relaxed
1427   ulx = ule == ulx ? uld : ulx;
1428 #pragma omp atomic compare relaxed
1429   if (ulx == ule)
1430     ulx = uld;
1431 #pragma omp atomic compare relaxed
1432   if (ule == ulx)
1433     ulx = uld;
1434 
1435 #pragma omp atomic compare release
1436   lx = lx > le ? le : lx;
1437 #pragma omp atomic compare release
1438   lx = lx < le ? le : lx;
1439 #pragma omp atomic compare release
1440   lx = le > lx ? le : lx;
1441 #pragma omp atomic compare release
1442   lx = le < lx ? le : lx;
1443 #pragma omp atomic compare release
1444   if (lx > le)
1445     lx = le;
1446 #pragma omp atomic compare release
1447   if (lx < le)
1448     lx = le;
1449 #pragma omp atomic compare release
1450   if (le > lx)
1451     lx = le;
1452 #pragma omp atomic compare release
1453   if (le < lx)
1454     lx = le;
1455 
1456 #pragma omp atomic compare release
1457   lx = lx == le ? ld : lx;
1458 #pragma omp atomic compare release
1459   lx = le == lx ? ld : lx;
1460 #pragma omp atomic compare release
1461   if (lx == le)
1462     lx = ld;
1463 #pragma omp atomic compare release
1464   if (le == lx)
1465     lx = ld;
1466 
1467 #pragma omp atomic compare release
1468   ulx = ulx > ule ? ule : ulx;
1469 #pragma omp atomic compare release
1470   ulx = ulx < ule ? ule : ulx;
1471 #pragma omp atomic compare release
1472   ulx = ule > ulx ? ule : ulx;
1473 #pragma omp atomic compare release
1474   ulx = ule < ulx ? ule : ulx;
1475 #pragma omp atomic compare release
1476   if (ulx > ule)
1477     ulx = ule;
1478 #pragma omp atomic compare release
1479   if (ulx < ule)
1480     ulx = ule;
1481 #pragma omp atomic compare release
1482   if (ule > ulx)
1483     ulx = ule;
1484 #pragma omp atomic compare release
1485   if (ule < ulx)
1486     ulx = ule;
1487 
1488 #pragma omp atomic compare release
1489   ulx = ulx == ule ? uld : ulx;
1490 #pragma omp atomic compare release
1491   ulx = ule == ulx ? uld : ulx;
1492 #pragma omp atomic compare release
1493   if (ulx == ule)
1494     ulx = uld;
1495 #pragma omp atomic compare release
1496   if (ule == ulx)
1497     ulx = uld;
1498 
1499 #pragma omp atomic compare seq_cst
1500   lx = lx > le ? le : lx;
1501 #pragma omp atomic compare seq_cst
1502   lx = lx < le ? le : lx;
1503 #pragma omp atomic compare seq_cst
1504   lx = le > lx ? le : lx;
1505 #pragma omp atomic compare seq_cst
1506   lx = le < lx ? le : lx;
1507 #pragma omp atomic compare seq_cst
1508   if (lx > le)
1509     lx = le;
1510 #pragma omp atomic compare seq_cst
1511   if (lx < le)
1512     lx = le;
1513 #pragma omp atomic compare seq_cst
1514   if (le > lx)
1515     lx = le;
1516 #pragma omp atomic compare seq_cst
1517   if (le < lx)
1518     lx = le;
1519 
1520 #pragma omp atomic compare seq_cst
1521   lx = lx == le ? ld : lx;
1522 #pragma omp atomic compare seq_cst
1523   lx = le == lx ? ld : lx;
1524 #pragma omp atomic compare seq_cst
1525   if (lx == le)
1526     lx = ld;
1527 #pragma omp atomic compare seq_cst
1528   if (le == lx)
1529     lx = ld;
1530 
1531 #pragma omp atomic compare seq_cst
1532   ulx = ulx > ule ? ule : ulx;
1533 #pragma omp atomic compare seq_cst
1534   ulx = ulx < ule ? ule : ulx;
1535 #pragma omp atomic compare seq_cst
1536   ulx = ule > ulx ? ule : ulx;
1537 #pragma omp atomic compare seq_cst
1538   ulx = ule < ulx ? ule : ulx;
1539 #pragma omp atomic compare seq_cst
1540   if (ulx > ule)
1541     ulx = ule;
1542 #pragma omp atomic compare seq_cst
1543   if (ulx < ule)
1544     ulx = ule;
1545 #pragma omp atomic compare seq_cst
1546   if (ule > ulx)
1547     ulx = ule;
1548 #pragma omp atomic compare seq_cst
1549   if (ule < ulx)
1550     ulx = ule;
1551 
1552 #pragma omp atomic compare seq_cst
1553   ulx = ulx == ule ? uld : ulx;
1554 #pragma omp atomic compare seq_cst
1555   ulx = ule == ulx ? uld : ulx;
1556 #pragma omp atomic compare seq_cst
1557   if (ulx == ule)
1558     ulx = uld;
1559 #pragma omp atomic compare seq_cst
1560   if (ule == ulx)
1561     ulx = uld;
1562 
1563 #pragma omp atomic compare
1564   llx = llx > lle ? lle : llx;
1565 #pragma omp atomic compare
1566   llx = llx < lle ? lle : llx;
1567 #pragma omp atomic compare
1568   llx = lle > llx ? lle : llx;
1569 #pragma omp atomic compare
1570   llx = lle < llx ? lle : llx;
1571 #pragma omp atomic compare
1572   if (llx > lle)
1573     llx = lle;
1574 #pragma omp atomic compare
1575   if (llx < lle)
1576     llx = lle;
1577 #pragma omp atomic compare
1578   if (lle > llx)
1579     llx = lle;
1580 #pragma omp atomic compare
1581   if (lle < llx)
1582     llx = lle;
1583 
1584 #pragma omp atomic compare
1585   llx = llx == lle ? lld : llx;
1586 #pragma omp atomic compare
1587   llx = lle == llx ? lld : llx;
1588 #pragma omp atomic compare
1589   if (llx == lle)
1590     llx = lld;
1591 #pragma omp atomic compare
1592   if (lle == llx)
1593     llx = lld;
1594 
1595 #pragma omp atomic compare
1596   ullx = ullx > ulle ? ulle : ullx;
1597 #pragma omp atomic compare
1598   ullx = ullx < ulle ? ulle : ullx;
1599 #pragma omp atomic compare
1600   ullx = ulle > ullx ? ulle : ullx;
1601 #pragma omp atomic compare
1602   ullx = ulle < ullx ? ulle : ullx;
1603 #pragma omp atomic compare
1604   if (ullx > ulle)
1605     ullx = ulle;
1606 #pragma omp atomic compare
1607   if (ullx < ulle)
1608     ullx = ulle;
1609 #pragma omp atomic compare
1610   if (ulle > ullx)
1611     ullx = ulle;
1612 #pragma omp atomic compare
1613   if (ulle < ullx)
1614     ullx = ulle;
1615 
1616 #pragma omp atomic compare
1617   ullx = ullx == ulle ? ulld : ullx;
1618 #pragma omp atomic compare
1619   ullx = ulle == ullx ? ulld : ullx;
1620 #pragma omp atomic compare
1621   if (ullx == ulle)
1622     ullx = ulld;
1623 #pragma omp atomic compare
1624   if (ulle == ullx)
1625     ullx = ulld;
1626 
1627 #pragma omp atomic compare acq_rel
1628   llx = llx > lle ? lle : llx;
1629 #pragma omp atomic compare acq_rel
1630   llx = llx < lle ? lle : llx;
1631 #pragma omp atomic compare acq_rel
1632   llx = lle > llx ? lle : llx;
1633 #pragma omp atomic compare acq_rel
1634   llx = lle < llx ? lle : llx;
1635 #pragma omp atomic compare acq_rel
1636   if (llx > lle)
1637     llx = lle;
1638 #pragma omp atomic compare acq_rel
1639   if (llx < lle)
1640     llx = lle;
1641 #pragma omp atomic compare acq_rel
1642   if (lle > llx)
1643     llx = lle;
1644 #pragma omp atomic compare acq_rel
1645   if (lle < llx)
1646     llx = lle;
1647 
1648 #pragma omp atomic compare acq_rel
1649   llx = llx == lle ? lld : llx;
1650 #pragma omp atomic compare acq_rel
1651   llx = lle == llx ? lld : llx;
1652 #pragma omp atomic compare acq_rel
1653   if (llx == lle)
1654     llx = lld;
1655 #pragma omp atomic compare acq_rel
1656   if (lle == llx)
1657     llx = lld;
1658 
1659 #pragma omp atomic compare acq_rel
1660   ullx = ullx > ulle ? ulle : ullx;
1661 #pragma omp atomic compare acq_rel
1662   ullx = ullx < ulle ? ulle : ullx;
1663 #pragma omp atomic compare acq_rel
1664   ullx = ulle > ullx ? ulle : ullx;
1665 #pragma omp atomic compare acq_rel
1666   ullx = ulle < ullx ? ulle : ullx;
1667 #pragma omp atomic compare acq_rel
1668   if (ullx > ulle)
1669     ullx = ulle;
1670 #pragma omp atomic compare acq_rel
1671   if (ullx < ulle)
1672     ullx = ulle;
1673 #pragma omp atomic compare acq_rel
1674   if (ulle > ullx)
1675     ullx = ulle;
1676 #pragma omp atomic compare acq_rel
1677   if (ulle < ullx)
1678     ullx = ulle;
1679 
1680 #pragma omp atomic compare acq_rel
1681   ullx = ullx == ulle ? ulld : ullx;
1682 #pragma omp atomic compare acq_rel
1683   ullx = ulle == ullx ? ulld : ullx;
1684 #pragma omp atomic compare acq_rel
1685   if (ullx == ulle)
1686     ullx = ulld;
1687 #pragma omp atomic compare acq_rel
1688   if (ulle == ullx)
1689     ullx = ulld;
1690 
1691 #pragma omp atomic compare acquire
1692   llx = llx > lle ? lle : llx;
1693 #pragma omp atomic compare acquire
1694   llx = llx < lle ? lle : llx;
1695 #pragma omp atomic compare acquire
1696   llx = lle > llx ? lle : llx;
1697 #pragma omp atomic compare acquire
1698   llx = lle < llx ? lle : llx;
1699 #pragma omp atomic compare acquire
1700   if (llx > lle)
1701     llx = lle;
1702 #pragma omp atomic compare acquire
1703   if (llx < lle)
1704     llx = lle;
1705 #pragma omp atomic compare acquire
1706   if (lle > llx)
1707     llx = lle;
1708 #pragma omp atomic compare acquire
1709   if (lle < llx)
1710     llx = lle;
1711 
1712 #pragma omp atomic compare acquire
1713   llx = llx == lle ? lld : llx;
1714 #pragma omp atomic compare acquire
1715   llx = lle == llx ? lld : llx;
1716 #pragma omp atomic compare acquire
1717   if (llx == lle)
1718     llx = lld;
1719 #pragma omp atomic compare acquire
1720   if (lle == llx)
1721     llx = lld;
1722 
1723 #pragma omp atomic compare acquire
1724   ullx = ullx > ulle ? ulle : ullx;
1725 #pragma omp atomic compare acquire
1726   ullx = ullx < ulle ? ulle : ullx;
1727 #pragma omp atomic compare acquire
1728   ullx = ulle > ullx ? ulle : ullx;
1729 #pragma omp atomic compare acquire
1730   ullx = ulle < ullx ? ulle : ullx;
1731 #pragma omp atomic compare acquire
1732   if (ullx > ulle)
1733     ullx = ulle;
1734 #pragma omp atomic compare acquire
1735   if (ullx < ulle)
1736     ullx = ulle;
1737 #pragma omp atomic compare acquire
1738   if (ulle > ullx)
1739     ullx = ulle;
1740 #pragma omp atomic compare acquire
1741   if (ulle < ullx)
1742     ullx = ulle;
1743 
1744 #pragma omp atomic compare acquire
1745   ullx = ullx == ulle ? ulld : ullx;
1746 #pragma omp atomic compare acquire
1747   ullx = ulle == ullx ? ulld : ullx;
1748 #pragma omp atomic compare acquire
1749   if (ullx == ulle)
1750     ullx = ulld;
1751 #pragma omp atomic compare acquire
1752   if (ulle == ullx)
1753     ullx = ulld;
1754 
1755 #pragma omp atomic compare relaxed
1756   llx = llx > lle ? lle : llx;
1757 #pragma omp atomic compare relaxed
1758   llx = llx < lle ? lle : llx;
1759 #pragma omp atomic compare relaxed
1760   llx = lle > llx ? lle : llx;
1761 #pragma omp atomic compare relaxed
1762   llx = lle < llx ? lle : llx;
1763 #pragma omp atomic compare relaxed
1764   if (llx > lle)
1765     llx = lle;
1766 #pragma omp atomic compare relaxed
1767   if (llx < lle)
1768     llx = lle;
1769 #pragma omp atomic compare relaxed
1770   if (lle > llx)
1771     llx = lle;
1772 #pragma omp atomic compare relaxed
1773   if (lle < llx)
1774     llx = lle;
1775 
1776 #pragma omp atomic compare relaxed
1777   llx = llx == lle ? lld : llx;
1778 #pragma omp atomic compare relaxed
1779   llx = lle == llx ? lld : llx;
1780 #pragma omp atomic compare relaxed
1781   if (llx == lle)
1782     llx = lld;
1783 #pragma omp atomic compare relaxed
1784   if (lle == llx)
1785     llx = lld;
1786 
1787 #pragma omp atomic compare relaxed
1788   ullx = ullx > ulle ? ulle : ullx;
1789 #pragma omp atomic compare relaxed
1790   ullx = ullx < ulle ? ulle : ullx;
1791 #pragma omp atomic compare relaxed
1792   ullx = ulle > ullx ? ulle : ullx;
1793 #pragma omp atomic compare relaxed
1794   ullx = ulle < ullx ? ulle : ullx;
1795 #pragma omp atomic compare relaxed
1796   if (ullx > ulle)
1797     ullx = ulle;
1798 #pragma omp atomic compare relaxed
1799   if (ullx < ulle)
1800     ullx = ulle;
1801 #pragma omp atomic compare relaxed
1802   if (ulle > ullx)
1803     ullx = ulle;
1804 #pragma omp atomic compare relaxed
1805   if (ulle < ullx)
1806     ullx = ulle;
1807 
1808 #pragma omp atomic compare relaxed
1809   ullx = ullx == ulle ? ulld : ullx;
1810 #pragma omp atomic compare relaxed
1811   ullx = ulle == ullx ? ulld : ullx;
1812 #pragma omp atomic compare relaxed
1813   if (ullx == ulle)
1814     ullx = ulld;
1815 #pragma omp atomic compare relaxed
1816   if (ulle == ullx)
1817     ullx = ulld;
1818 
1819 #pragma omp atomic compare release
1820   llx = llx > lle ? lle : llx;
1821 #pragma omp atomic compare release
1822   llx = llx < lle ? lle : llx;
1823 #pragma omp atomic compare release
1824   llx = lle > llx ? lle : llx;
1825 #pragma omp atomic compare release
1826   llx = lle < llx ? lle : llx;
1827 #pragma omp atomic compare release
1828   if (llx > lle)
1829     llx = lle;
1830 #pragma omp atomic compare release
1831   if (llx < lle)
1832     llx = lle;
1833 #pragma omp atomic compare release
1834   if (lle > llx)
1835     llx = lle;
1836 #pragma omp atomic compare release
1837   if (lle < llx)
1838     llx = lle;
1839 
1840 #pragma omp atomic compare release
1841   llx = llx == lle ? lld : llx;
1842 #pragma omp atomic compare release
1843   llx = lle == llx ? lld : llx;
1844 #pragma omp atomic compare release
1845   if (llx == lle)
1846     llx = lld;
1847 #pragma omp atomic compare release
1848   if (lle == llx)
1849     llx = lld;
1850 
1851 #pragma omp atomic compare release
1852   ullx = ullx > ulle ? ulle : ullx;
1853 #pragma omp atomic compare release
1854   ullx = ullx < ulle ? ulle : ullx;
1855 #pragma omp atomic compare release
1856   ullx = ulle > ullx ? ulle : ullx;
1857 #pragma omp atomic compare release
1858   ullx = ulle < ullx ? ulle : ullx;
1859 #pragma omp atomic compare release
1860   if (ullx > ulle)
1861     ullx = ulle;
1862 #pragma omp atomic compare release
1863   if (ullx < ulle)
1864     ullx = ulle;
1865 #pragma omp atomic compare release
1866   if (ulle > ullx)
1867     ullx = ulle;
1868 #pragma omp atomic compare release
1869   if (ulle < ullx)
1870     ullx = ulle;
1871 
1872 #pragma omp atomic compare release
1873   ullx = ullx == ulle ? ulld : ullx;
1874 #pragma omp atomic compare release
1875   ullx = ulle == ullx ? ulld : ullx;
1876 #pragma omp atomic compare release
1877   if (ullx == ulle)
1878     ullx = ulld;
1879 #pragma omp atomic compare release
1880   if (ulle == ullx)
1881     ullx = ulld;
1882 
1883 #pragma omp atomic compare seq_cst
1884   llx = llx > lle ? lle : llx;
1885 #pragma omp atomic compare seq_cst
1886   llx = llx < lle ? lle : llx;
1887 #pragma omp atomic compare seq_cst
1888   llx = lle > llx ? lle : llx;
1889 #pragma omp atomic compare seq_cst
1890   llx = lle < llx ? lle : llx;
1891 #pragma omp atomic compare seq_cst
1892   if (llx > lle)
1893     llx = lle;
1894 #pragma omp atomic compare seq_cst
1895   if (llx < lle)
1896     llx = lle;
1897 #pragma omp atomic compare seq_cst
1898   if (lle > llx)
1899     llx = lle;
1900 #pragma omp atomic compare seq_cst
1901   if (lle < llx)
1902     llx = lle;
1903 
1904 #pragma omp atomic compare seq_cst
1905   llx = llx == lle ? lld : llx;
1906 #pragma omp atomic compare seq_cst
1907   llx = lle == llx ? lld : llx;
1908 #pragma omp atomic compare seq_cst
1909   if (llx == lle)
1910     llx = lld;
1911 #pragma omp atomic compare seq_cst
1912   if (lle == llx)
1913     llx = lld;
1914 
1915 #pragma omp atomic compare seq_cst
1916   ullx = ullx > ulle ? ulle : ullx;
1917 #pragma omp atomic compare seq_cst
1918   ullx = ullx < ulle ? ulle : ullx;
1919 #pragma omp atomic compare seq_cst
1920   ullx = ulle > ullx ? ulle : ullx;
1921 #pragma omp atomic compare seq_cst
1922   ullx = ulle < ullx ? ulle : ullx;
1923 #pragma omp atomic compare seq_cst
1924   if (ullx > ulle)
1925     ullx = ulle;
1926 #pragma omp atomic compare seq_cst
1927   if (ullx < ulle)
1928     ullx = ulle;
1929 #pragma omp atomic compare seq_cst
1930   if (ulle > ullx)
1931     ullx = ulle;
1932 #pragma omp atomic compare seq_cst
1933   if (ulle < ullx)
1934     ullx = ulle;
1935 
1936 #pragma omp atomic compare seq_cst
1937   ullx = ullx == ulle ? ulld : ullx;
1938 #pragma omp atomic compare seq_cst
1939   ullx = ulle == ullx ? ulld : ullx;
1940 #pragma omp atomic compare seq_cst
1941   if (ullx == ulle)
1942     ullx = ulld;
1943 #pragma omp atomic compare seq_cst
1944   if (ulle == ullx)
1945     ullx = ulld;
1946 }
1947 
1948 void bar() {
1949   char cx, cv, cr, ce, cd;
1950   unsigned char ucx, ucv, ucr, uce, ucd;
1951   short sx, sv, sr, se, sd;
1952   unsigned short usx, usv, usr, use, usd;
1953   int ix, iv, ir, ie, id;
1954   unsigned int uix, uiv, uir, uie, uid;
1955   long lx, lv, lr, le, ld;
1956   unsigned long ulx, ulv, ulr, ule, uld;
1957   long long llx, llv, llr, lle, lld;
1958   unsigned long long ullx, ullv, ullr, ulle, ulld;
1959 
1960 #pragma omp atomic compare capture
1961   {
1962     cv = cx;
1963     if (ce > cx) {
1964       cx = ce;
1965     }
1966   }
1967 #pragma omp atomic compare capture
1968   {
1969     cv = cx;
1970     if (cx > ce) {
1971       cx = ce;
1972     }
1973   }
1974 #pragma omp atomic compare capture
1975   {
1976     cv = cx;
1977     if (ce < cx) {
1978       cx = ce;
1979     }
1980   }
1981 #pragma omp atomic compare capture
1982   {
1983     cv = cx;
1984     if (cx < ce) {
1985       cx = ce;
1986     }
1987   }
1988 #pragma omp atomic compare capture
1989   {
1990     cv = cx;
1991     if (cx == ce) {
1992       cx = cd;
1993     }
1994   }
1995 #pragma omp atomic compare capture
1996   {
1997     cv = cx;
1998     if (ce == cx) {
1999       cx = cd;
2000     }
2001   }
2002 #pragma omp atomic compare capture
2003   {
2004     if (ce > cx) {
2005       cx = ce;
2006     }
2007     cv = cx;
2008   }
2009 #pragma omp atomic compare capture
2010   {
2011     if (cx > ce) {
2012       cx = ce;
2013     }
2014     cv = cx;
2015   }
2016 #pragma omp atomic compare capture
2017   {
2018     if (ce < cx) {
2019       cx = ce;
2020     }
2021     cv = cx;
2022   }
2023 #pragma omp atomic compare capture
2024   {
2025     if (cx < ce) {
2026       cx = ce;
2027     }
2028     cv = cx;
2029   }
2030 #pragma omp atomic compare capture
2031   {
2032     if (cx == ce) {
2033       cx = cd;
2034     }
2035     cv = cx;
2036   }
2037 #pragma omp atomic compare capture
2038   {
2039     if (ce == cx) {
2040       cx = cd;
2041     }
2042     cv = cx;
2043   }
2044 #pragma omp atomic compare capture
2045   if (cx == ce) {
2046     cx = cd;
2047   } else {
2048     cv = cx;
2049   }
2050 #pragma omp atomic compare capture
2051   if (ce == cx) {
2052     cx = cd;
2053   } else {
2054     cv = cx;
2055   }
2056 #pragma omp atomic compare capture
2057   {
2058     cr = cx == ce;
2059     if (cr) {
2060       cx = cd;
2061     }
2062   }
2063 #pragma omp atomic compare capture
2064   {
2065     cr = ce == cx;
2066     if (cr) {
2067       cx = cd;
2068     }
2069   }
2070 #pragma omp atomic compare capture
2071   {
2072     cr = cx == ce;
2073     if (cr) {
2074       cx = cd;
2075     } else {
2076       cv = cx;
2077     }
2078   }
2079 #pragma omp atomic compare capture
2080   {
2081     cr = ce == cx;
2082     if (cr) {
2083       cx = cd;
2084     } else {
2085       cv = cx;
2086     }
2087   }
2088 
2089 #pragma omp atomic compare capture acq_rel
2090   {
2091     cv = cx;
2092     if (ce > cx) {
2093       cx = ce;
2094     }
2095   }
2096 #pragma omp atomic compare capture acq_rel
2097   {
2098     cv = cx;
2099     if (cx > ce) {
2100       cx = ce;
2101     }
2102   }
2103 #pragma omp atomic compare capture acq_rel
2104   {
2105     cv = cx;
2106     if (ce < cx) {
2107       cx = ce;
2108     }
2109   }
2110 #pragma omp atomic compare capture acq_rel
2111   {
2112     cv = cx;
2113     if (cx < ce) {
2114       cx = ce;
2115     }
2116   }
2117 #pragma omp atomic compare capture acq_rel
2118   {
2119     cv = cx;
2120     if (cx == ce) {
2121       cx = cd;
2122     }
2123   }
2124 #pragma omp atomic compare capture acq_rel
2125   {
2126     cv = cx;
2127     if (ce == cx) {
2128       cx = cd;
2129     }
2130   }
2131 #pragma omp atomic compare capture acq_rel
2132   {
2133     if (ce > cx) {
2134       cx = ce;
2135     }
2136     cv = cx;
2137   }
2138 #pragma omp atomic compare capture acq_rel
2139   {
2140     if (cx > ce) {
2141       cx = ce;
2142     }
2143     cv = cx;
2144   }
2145 #pragma omp atomic compare capture acq_rel
2146   {
2147     if (ce < cx) {
2148       cx = ce;
2149     }
2150     cv = cx;
2151   }
2152 #pragma omp atomic compare capture acq_rel
2153   {
2154     if (cx < ce) {
2155       cx = ce;
2156     }
2157     cv = cx;
2158   }
2159 #pragma omp atomic compare capture acq_rel
2160   {
2161     if (cx == ce) {
2162       cx = cd;
2163     }
2164     cv = cx;
2165   }
2166 #pragma omp atomic compare capture acq_rel
2167   {
2168     if (ce == cx) {
2169       cx = cd;
2170     }
2171     cv = cx;
2172   }
2173 #pragma omp atomic compare capture acq_rel
2174   if (cx == ce) {
2175     cx = cd;
2176   } else {
2177     cv = cx;
2178   }
2179 #pragma omp atomic compare capture acq_rel
2180   if (ce == cx) {
2181     cx = cd;
2182   } else {
2183     cv = cx;
2184   }
2185 #pragma omp atomic compare capture acq_rel
2186   {
2187     cr = cx == ce;
2188     if (cr) {
2189       cx = cd;
2190     }
2191   }
2192 #pragma omp atomic compare capture acq_rel
2193   {
2194     cr = ce == cx;
2195     if (cr) {
2196       cx = cd;
2197     }
2198   }
2199 #pragma omp atomic compare capture acq_rel
2200   {
2201     cr = cx == ce;
2202     if (cr) {
2203       cx = cd;
2204     } else {
2205       cv = cx;
2206     }
2207   }
2208 #pragma omp atomic compare capture acq_rel
2209   {
2210     cr = ce == cx;
2211     if (cr) {
2212       cx = cd;
2213     } else {
2214       cv = cx;
2215     }
2216   }
2217 
2218 #pragma omp atomic compare capture acquire
2219   {
2220     cv = cx;
2221     if (ce > cx) {
2222       cx = ce;
2223     }
2224   }
2225 #pragma omp atomic compare capture acquire
2226   {
2227     cv = cx;
2228     if (cx > ce) {
2229       cx = ce;
2230     }
2231   }
2232 #pragma omp atomic compare capture acquire
2233   {
2234     cv = cx;
2235     if (ce < cx) {
2236       cx = ce;
2237     }
2238   }
2239 #pragma omp atomic compare capture acquire
2240   {
2241     cv = cx;
2242     if (cx < ce) {
2243       cx = ce;
2244     }
2245   }
2246 #pragma omp atomic compare capture acquire
2247   {
2248     cv = cx;
2249     if (cx == ce) {
2250       cx = cd;
2251     }
2252   }
2253 #pragma omp atomic compare capture acquire
2254   {
2255     cv = cx;
2256     if (ce == cx) {
2257       cx = cd;
2258     }
2259   }
2260 #pragma omp atomic compare capture acquire
2261   {
2262     if (ce > cx) {
2263       cx = ce;
2264     }
2265     cv = cx;
2266   }
2267 #pragma omp atomic compare capture acquire
2268   {
2269     if (cx > ce) {
2270       cx = ce;
2271     }
2272     cv = cx;
2273   }
2274 #pragma omp atomic compare capture acquire
2275   {
2276     if (ce < cx) {
2277       cx = ce;
2278     }
2279     cv = cx;
2280   }
2281 #pragma omp atomic compare capture acquire
2282   {
2283     if (cx < ce) {
2284       cx = ce;
2285     }
2286     cv = cx;
2287   }
2288 #pragma omp atomic compare capture acquire
2289   {
2290     if (cx == ce) {
2291       cx = cd;
2292     }
2293     cv = cx;
2294   }
2295 #pragma omp atomic compare capture acquire
2296   {
2297     if (ce == cx) {
2298       cx = cd;
2299     }
2300     cv = cx;
2301   }
2302 #pragma omp atomic compare capture acquire
2303   if (cx == ce) {
2304     cx = cd;
2305   } else {
2306     cv = cx;
2307   }
2308 #pragma omp atomic compare capture acquire
2309   if (ce == cx) {
2310     cx = cd;
2311   } else {
2312     cv = cx;
2313   }
2314 #pragma omp atomic compare capture acquire
2315   {
2316     cr = cx == ce;
2317     if (cr) {
2318       cx = cd;
2319     }
2320   }
2321 #pragma omp atomic compare capture acquire
2322   {
2323     cr = ce == cx;
2324     if (cr) {
2325       cx = cd;
2326     }
2327   }
2328 #pragma omp atomic compare capture acquire
2329   {
2330     cr = cx == ce;
2331     if (cr) {
2332       cx = cd;
2333     } else {
2334       cv = cx;
2335     }
2336   }
2337 #pragma omp atomic compare capture acquire
2338   {
2339     cr = ce == cx;
2340     if (cr) {
2341       cx = cd;
2342     } else {
2343       cv = cx;
2344     }
2345   }
2346 
2347 #pragma omp atomic compare capture relaxed
2348   {
2349     cv = cx;
2350     if (ce > cx) {
2351       cx = ce;
2352     }
2353   }
2354 #pragma omp atomic compare capture relaxed
2355   {
2356     cv = cx;
2357     if (cx > ce) {
2358       cx = ce;
2359     }
2360   }
2361 #pragma omp atomic compare capture relaxed
2362   {
2363     cv = cx;
2364     if (ce < cx) {
2365       cx = ce;
2366     }
2367   }
2368 #pragma omp atomic compare capture relaxed
2369   {
2370     cv = cx;
2371     if (cx < ce) {
2372       cx = ce;
2373     }
2374   }
2375 #pragma omp atomic compare capture relaxed
2376   {
2377     cv = cx;
2378     if (cx == ce) {
2379       cx = cd;
2380     }
2381   }
2382 #pragma omp atomic compare capture relaxed
2383   {
2384     cv = cx;
2385     if (ce == cx) {
2386       cx = cd;
2387     }
2388   }
2389 #pragma omp atomic compare capture relaxed
2390   {
2391     if (ce > cx) {
2392       cx = ce;
2393     }
2394     cv = cx;
2395   }
2396 #pragma omp atomic compare capture relaxed
2397   {
2398     if (cx > ce) {
2399       cx = ce;
2400     }
2401     cv = cx;
2402   }
2403 #pragma omp atomic compare capture relaxed
2404   {
2405     if (ce < cx) {
2406       cx = ce;
2407     }
2408     cv = cx;
2409   }
2410 #pragma omp atomic compare capture relaxed
2411   {
2412     if (cx < ce) {
2413       cx = ce;
2414     }
2415     cv = cx;
2416   }
2417 #pragma omp atomic compare capture relaxed
2418   {
2419     if (cx == ce) {
2420       cx = cd;
2421     }
2422     cv = cx;
2423   }
2424 #pragma omp atomic compare capture relaxed
2425   {
2426     if (ce == cx) {
2427       cx = cd;
2428     }
2429     cv = cx;
2430   }
2431 #pragma omp atomic compare capture relaxed
2432   if (cx == ce) {
2433     cx = cd;
2434   } else {
2435     cv = cx;
2436   }
2437 #pragma omp atomic compare capture relaxed
2438   if (ce == cx) {
2439     cx = cd;
2440   } else {
2441     cv = cx;
2442   }
2443 #pragma omp atomic compare capture relaxed
2444   {
2445     cr = cx == ce;
2446     if (cr) {
2447       cx = cd;
2448     }
2449   }
2450 #pragma omp atomic compare capture relaxed
2451   {
2452     cr = ce == cx;
2453     if (cr) {
2454       cx = cd;
2455     }
2456   }
2457 #pragma omp atomic compare capture relaxed
2458   {
2459     cr = cx == ce;
2460     if (cr) {
2461       cx = cd;
2462     } else {
2463       cv = cx;
2464     }
2465   }
2466 #pragma omp atomic compare capture relaxed
2467   {
2468     cr = ce == cx;
2469     if (cr) {
2470       cx = cd;
2471     } else {
2472       cv = cx;
2473     }
2474   }
2475 
2476 #pragma omp atomic compare capture release
2477   {
2478     cv = cx;
2479     if (ce > cx) {
2480       cx = ce;
2481     }
2482   }
2483 #pragma omp atomic compare capture release
2484   {
2485     cv = cx;
2486     if (cx > ce) {
2487       cx = ce;
2488     }
2489   }
2490 #pragma omp atomic compare capture release
2491   {
2492     cv = cx;
2493     if (ce < cx) {
2494       cx = ce;
2495     }
2496   }
2497 #pragma omp atomic compare capture release
2498   {
2499     cv = cx;
2500     if (cx < ce) {
2501       cx = ce;
2502     }
2503   }
2504 #pragma omp atomic compare capture release
2505   {
2506     cv = cx;
2507     if (cx == ce) {
2508       cx = cd;
2509     }
2510   }
2511 #pragma omp atomic compare capture release
2512   {
2513     cv = cx;
2514     if (ce == cx) {
2515       cx = cd;
2516     }
2517   }
2518 #pragma omp atomic compare capture release
2519   {
2520     if (ce > cx) {
2521       cx = ce;
2522     }
2523     cv = cx;
2524   }
2525 #pragma omp atomic compare capture release
2526   {
2527     if (cx > ce) {
2528       cx = ce;
2529     }
2530     cv = cx;
2531   }
2532 #pragma omp atomic compare capture release
2533   {
2534     if (ce < cx) {
2535       cx = ce;
2536     }
2537     cv = cx;
2538   }
2539 #pragma omp atomic compare capture release
2540   {
2541     if (cx < ce) {
2542       cx = ce;
2543     }
2544     cv = cx;
2545   }
2546 #pragma omp atomic compare capture release
2547   {
2548     if (cx == ce) {
2549       cx = cd;
2550     }
2551     cv = cx;
2552   }
2553 #pragma omp atomic compare capture release
2554   {
2555     if (ce == cx) {
2556       cx = cd;
2557     }
2558     cv = cx;
2559   }
2560 #pragma omp atomic compare capture release
2561   if (cx == ce) {
2562     cx = cd;
2563   } else {
2564     cv = cx;
2565   }
2566 #pragma omp atomic compare capture release
2567   if (ce == cx) {
2568     cx = cd;
2569   } else {
2570     cv = cx;
2571   }
2572 #pragma omp atomic compare capture release
2573   {
2574     cr = cx == ce;
2575     if (cr) {
2576       cx = cd;
2577     }
2578   }
2579 #pragma omp atomic compare capture release
2580   {
2581     cr = ce == cx;
2582     if (cr) {
2583       cx = cd;
2584     }
2585   }
2586 #pragma omp atomic compare capture release
2587   {
2588     cr = cx == ce;
2589     if (cr) {
2590       cx = cd;
2591     } else {
2592       cv = cx;
2593     }
2594   }
2595 #pragma omp atomic compare capture release
2596   {
2597     cr = ce == cx;
2598     if (cr) {
2599       cx = cd;
2600     } else {
2601       cv = cx;
2602     }
2603   }
2604 
2605 #pragma omp atomic compare capture seq_cst
2606   {
2607     cv = cx;
2608     if (ce > cx) {
2609       cx = ce;
2610     }
2611   }
2612 #pragma omp atomic compare capture seq_cst
2613   {
2614     cv = cx;
2615     if (cx > ce) {
2616       cx = ce;
2617     }
2618   }
2619 #pragma omp atomic compare capture seq_cst
2620   {
2621     cv = cx;
2622     if (ce < cx) {
2623       cx = ce;
2624     }
2625   }
2626 #pragma omp atomic compare capture seq_cst
2627   {
2628     cv = cx;
2629     if (cx < ce) {
2630       cx = ce;
2631     }
2632   }
2633 #pragma omp atomic compare capture seq_cst
2634   {
2635     cv = cx;
2636     if (cx == ce) {
2637       cx = cd;
2638     }
2639   }
2640 #pragma omp atomic compare capture seq_cst
2641   {
2642     cv = cx;
2643     if (ce == cx) {
2644       cx = cd;
2645     }
2646   }
2647 #pragma omp atomic compare capture seq_cst
2648   {
2649     if (ce > cx) {
2650       cx = ce;
2651     }
2652     cv = cx;
2653   }
2654 #pragma omp atomic compare capture seq_cst
2655   {
2656     if (cx > ce) {
2657       cx = ce;
2658     }
2659     cv = cx;
2660   }
2661 #pragma omp atomic compare capture seq_cst
2662   {
2663     if (ce < cx) {
2664       cx = ce;
2665     }
2666     cv = cx;
2667   }
2668 #pragma omp atomic compare capture seq_cst
2669   {
2670     if (cx < ce) {
2671       cx = ce;
2672     }
2673     cv = cx;
2674   }
2675 #pragma omp atomic compare capture seq_cst
2676   {
2677     if (cx == ce) {
2678       cx = cd;
2679     }
2680     cv = cx;
2681   }
2682 #pragma omp atomic compare capture seq_cst
2683   {
2684     if (ce == cx) {
2685       cx = cd;
2686     }
2687     cv = cx;
2688   }
2689 #pragma omp atomic compare capture seq_cst
2690   if (cx == ce) {
2691     cx = cd;
2692   } else {
2693     cv = cx;
2694   }
2695 #pragma omp atomic compare capture seq_cst
2696   if (ce == cx) {
2697     cx = cd;
2698   } else {
2699     cv = cx;
2700   }
2701 #pragma omp atomic compare capture seq_cst
2702   {
2703     cr = cx == ce;
2704     if (cr) {
2705       cx = cd;
2706     }
2707   }
2708 #pragma omp atomic compare capture seq_cst
2709   {
2710     cr = ce == cx;
2711     if (cr) {
2712       cx = cd;
2713     }
2714   }
2715 #pragma omp atomic compare capture seq_cst
2716   {
2717     cr = cx == ce;
2718     if (cr) {
2719       cx = cd;
2720     } else {
2721       cv = cx;
2722     }
2723   }
2724 #pragma omp atomic compare capture seq_cst
2725   {
2726     cr = ce == cx;
2727     if (cr) {
2728       cx = cd;
2729     } else {
2730       cv = cx;
2731     }
2732   }
2733 
2734 #pragma omp atomic compare capture
2735   {
2736     ucv = ucx;
2737     if (uce > ucx) {
2738       ucx = uce;
2739     }
2740   }
2741 #pragma omp atomic compare capture
2742   {
2743     ucv = ucx;
2744     if (ucx > uce) {
2745       ucx = uce;
2746     }
2747   }
2748 #pragma omp atomic compare capture
2749   {
2750     ucv = ucx;
2751     if (uce < ucx) {
2752       ucx = uce;
2753     }
2754   }
2755 #pragma omp atomic compare capture
2756   {
2757     ucv = ucx;
2758     if (ucx < uce) {
2759       ucx = uce;
2760     }
2761   }
2762 #pragma omp atomic compare capture
2763   {
2764     ucv = ucx;
2765     if (ucx == uce) {
2766       ucx = ucd;
2767     }
2768   }
2769 #pragma omp atomic compare capture
2770   {
2771     ucv = ucx;
2772     if (uce == ucx) {
2773       ucx = ucd;
2774     }
2775   }
2776 #pragma omp atomic compare capture
2777   {
2778     if (uce > ucx) {
2779       ucx = uce;
2780     }
2781     ucv = ucx;
2782   }
2783 #pragma omp atomic compare capture
2784   {
2785     if (ucx > uce) {
2786       ucx = uce;
2787     }
2788     ucv = ucx;
2789   }
2790 #pragma omp atomic compare capture
2791   {
2792     if (uce < ucx) {
2793       ucx = uce;
2794     }
2795     ucv = ucx;
2796   }
2797 #pragma omp atomic compare capture
2798   {
2799     if (ucx < uce) {
2800       ucx = uce;
2801     }
2802     ucv = ucx;
2803   }
2804 #pragma omp atomic compare capture
2805   {
2806     if (ucx == uce) {
2807       ucx = ucd;
2808     }
2809     ucv = ucx;
2810   }
2811 #pragma omp atomic compare capture
2812   {
2813     if (uce == ucx) {
2814       ucx = ucd;
2815     }
2816     ucv = ucx;
2817   }
2818 #pragma omp atomic compare capture
2819   if (ucx == uce) {
2820     ucx = ucd;
2821   } else {
2822     ucv = ucx;
2823   }
2824 #pragma omp atomic compare capture
2825   if (uce == ucx) {
2826     ucx = ucd;
2827   } else {
2828     ucv = ucx;
2829   }
2830 #pragma omp atomic compare capture
2831   {
2832     ucr = ucx == uce;
2833     if (ucr) {
2834       ucx = ucd;
2835     }
2836   }
2837 #pragma omp atomic compare capture
2838   {
2839     ucr = uce == ucx;
2840     if (ucr) {
2841       ucx = ucd;
2842     }
2843   }
2844 #pragma omp atomic compare capture
2845   {
2846     ucr = ucx == uce;
2847     if (ucr) {
2848       ucx = ucd;
2849     } else {
2850       ucv = ucx;
2851     }
2852   }
2853 #pragma omp atomic compare capture
2854   {
2855     ucr = uce == ucx;
2856     if (ucr) {
2857       ucx = ucd;
2858     } else {
2859       ucv = ucx;
2860     }
2861   }
2862 
2863 #pragma omp atomic compare capture acq_rel
2864   {
2865     ucv = ucx;
2866     if (uce > ucx) {
2867       ucx = uce;
2868     }
2869   }
2870 #pragma omp atomic compare capture acq_rel
2871   {
2872     ucv = ucx;
2873     if (ucx > uce) {
2874       ucx = uce;
2875     }
2876   }
2877 #pragma omp atomic compare capture acq_rel
2878   {
2879     ucv = ucx;
2880     if (uce < ucx) {
2881       ucx = uce;
2882     }
2883   }
2884 #pragma omp atomic compare capture acq_rel
2885   {
2886     ucv = ucx;
2887     if (ucx < uce) {
2888       ucx = uce;
2889     }
2890   }
2891 #pragma omp atomic compare capture acq_rel
2892   {
2893     ucv = ucx;
2894     if (ucx == uce) {
2895       ucx = ucd;
2896     }
2897   }
2898 #pragma omp atomic compare capture acq_rel
2899   {
2900     ucv = ucx;
2901     if (uce == ucx) {
2902       ucx = ucd;
2903     }
2904   }
2905 #pragma omp atomic compare capture acq_rel
2906   {
2907     if (uce > ucx) {
2908       ucx = uce;
2909     }
2910     ucv = ucx;
2911   }
2912 #pragma omp atomic compare capture acq_rel
2913   {
2914     if (ucx > uce) {
2915       ucx = uce;
2916     }
2917     ucv = ucx;
2918   }
2919 #pragma omp atomic compare capture acq_rel
2920   {
2921     if (uce < ucx) {
2922       ucx = uce;
2923     }
2924     ucv = ucx;
2925   }
2926 #pragma omp atomic compare capture acq_rel
2927   {
2928     if (ucx < uce) {
2929       ucx = uce;
2930     }
2931     ucv = ucx;
2932   }
2933 #pragma omp atomic compare capture acq_rel
2934   {
2935     if (ucx == uce) {
2936       ucx = ucd;
2937     }
2938     ucv = ucx;
2939   }
2940 #pragma omp atomic compare capture acq_rel
2941   {
2942     if (uce == ucx) {
2943       ucx = ucd;
2944     }
2945     ucv = ucx;
2946   }
2947 #pragma omp atomic compare capture acq_rel
2948   if (ucx == uce) {
2949     ucx = ucd;
2950   } else {
2951     ucv = ucx;
2952   }
2953 #pragma omp atomic compare capture acq_rel
2954   if (uce == ucx) {
2955     ucx = ucd;
2956   } else {
2957     ucv = ucx;
2958   }
2959 #pragma omp atomic compare capture acq_rel
2960   {
2961     ucr = ucx == uce;
2962     if (ucr) {
2963       ucx = ucd;
2964     }
2965   }
2966 #pragma omp atomic compare capture acq_rel
2967   {
2968     ucr = uce == ucx;
2969     if (ucr) {
2970       ucx = ucd;
2971     }
2972   }
2973 #pragma omp atomic compare capture acq_rel
2974   {
2975     ucr = ucx == uce;
2976     if (ucr) {
2977       ucx = ucd;
2978     } else {
2979       ucv = ucx;
2980     }
2981   }
2982 #pragma omp atomic compare capture acq_rel
2983   {
2984     ucr = uce == ucx;
2985     if (ucr) {
2986       ucx = ucd;
2987     } else {
2988       ucv = ucx;
2989     }
2990   }
2991 
2992 #pragma omp atomic compare capture acquire
2993   {
2994     ucv = ucx;
2995     if (uce > ucx) {
2996       ucx = uce;
2997     }
2998   }
2999 #pragma omp atomic compare capture acquire
3000   {
3001     ucv = ucx;
3002     if (ucx > uce) {
3003       ucx = uce;
3004     }
3005   }
3006 #pragma omp atomic compare capture acquire
3007   {
3008     ucv = ucx;
3009     if (uce < ucx) {
3010       ucx = uce;
3011     }
3012   }
3013 #pragma omp atomic compare capture acquire
3014   {
3015     ucv = ucx;
3016     if (ucx < uce) {
3017       ucx = uce;
3018     }
3019   }
3020 #pragma omp atomic compare capture acquire
3021   {
3022     ucv = ucx;
3023     if (ucx == uce) {
3024       ucx = ucd;
3025     }
3026   }
3027 #pragma omp atomic compare capture acquire
3028   {
3029     ucv = ucx;
3030     if (uce == ucx) {
3031       ucx = ucd;
3032     }
3033   }
3034 #pragma omp atomic compare capture acquire
3035   {
3036     if (uce > ucx) {
3037       ucx = uce;
3038     }
3039     ucv = ucx;
3040   }
3041 #pragma omp atomic compare capture acquire
3042   {
3043     if (ucx > uce) {
3044       ucx = uce;
3045     }
3046     ucv = ucx;
3047   }
3048 #pragma omp atomic compare capture acquire
3049   {
3050     if (uce < ucx) {
3051       ucx = uce;
3052     }
3053     ucv = ucx;
3054   }
3055 #pragma omp atomic compare capture acquire
3056   {
3057     if (ucx < uce) {
3058       ucx = uce;
3059     }
3060     ucv = ucx;
3061   }
3062 #pragma omp atomic compare capture acquire
3063   {
3064     if (ucx == uce) {
3065       ucx = ucd;
3066     }
3067     ucv = ucx;
3068   }
3069 #pragma omp atomic compare capture acquire
3070   {
3071     if (uce == ucx) {
3072       ucx = ucd;
3073     }
3074     ucv = ucx;
3075   }
3076 #pragma omp atomic compare capture acquire
3077   if (ucx == uce) {
3078     ucx = ucd;
3079   } else {
3080     ucv = ucx;
3081   }
3082 #pragma omp atomic compare capture acquire
3083   if (uce == ucx) {
3084     ucx = ucd;
3085   } else {
3086     ucv = ucx;
3087   }
3088 #pragma omp atomic compare capture acquire
3089   {
3090     ucr = ucx == uce;
3091     if (ucr) {
3092       ucx = ucd;
3093     }
3094   }
3095 #pragma omp atomic compare capture acquire
3096   {
3097     ucr = uce == ucx;
3098     if (ucr) {
3099       ucx = ucd;
3100     }
3101   }
3102 #pragma omp atomic compare capture acquire
3103   {
3104     ucr = ucx == uce;
3105     if (ucr) {
3106       ucx = ucd;
3107     } else {
3108       ucv = ucx;
3109     }
3110   }
3111 #pragma omp atomic compare capture acquire
3112   {
3113     ucr = uce == ucx;
3114     if (ucr) {
3115       ucx = ucd;
3116     } else {
3117       ucv = ucx;
3118     }
3119   }
3120 
3121 #pragma omp atomic compare capture relaxed
3122   {
3123     ucv = ucx;
3124     if (uce > ucx) {
3125       ucx = uce;
3126     }
3127   }
3128 #pragma omp atomic compare capture relaxed
3129   {
3130     ucv = ucx;
3131     if (ucx > uce) {
3132       ucx = uce;
3133     }
3134   }
3135 #pragma omp atomic compare capture relaxed
3136   {
3137     ucv = ucx;
3138     if (uce < ucx) {
3139       ucx = uce;
3140     }
3141   }
3142 #pragma omp atomic compare capture relaxed
3143   {
3144     ucv = ucx;
3145     if (ucx < uce) {
3146       ucx = uce;
3147     }
3148   }
3149 #pragma omp atomic compare capture relaxed
3150   {
3151     ucv = ucx;
3152     if (ucx == uce) {
3153       ucx = ucd;
3154     }
3155   }
3156 #pragma omp atomic compare capture relaxed
3157   {
3158     ucv = ucx;
3159     if (uce == ucx) {
3160       ucx = ucd;
3161     }
3162   }
3163 #pragma omp atomic compare capture relaxed
3164   {
3165     if (uce > ucx) {
3166       ucx = uce;
3167     }
3168     ucv = ucx;
3169   }
3170 #pragma omp atomic compare capture relaxed
3171   {
3172     if (ucx > uce) {
3173       ucx = uce;
3174     }
3175     ucv = ucx;
3176   }
3177 #pragma omp atomic compare capture relaxed
3178   {
3179     if (uce < ucx) {
3180       ucx = uce;
3181     }
3182     ucv = ucx;
3183   }
3184 #pragma omp atomic compare capture relaxed
3185   {
3186     if (ucx < uce) {
3187       ucx = uce;
3188     }
3189     ucv = ucx;
3190   }
3191 #pragma omp atomic compare capture relaxed
3192   {
3193     if (ucx == uce) {
3194       ucx = ucd;
3195     }
3196     ucv = ucx;
3197   }
3198 #pragma omp atomic compare capture relaxed
3199   {
3200     if (uce == ucx) {
3201       ucx = ucd;
3202     }
3203     ucv = ucx;
3204   }
3205 #pragma omp atomic compare capture relaxed
3206   if (ucx == uce) {
3207     ucx = ucd;
3208   } else {
3209     ucv = ucx;
3210   }
3211 #pragma omp atomic compare capture relaxed
3212   if (uce == ucx) {
3213     ucx = ucd;
3214   } else {
3215     ucv = ucx;
3216   }
3217 #pragma omp atomic compare capture relaxed
3218   {
3219     ucr = ucx == uce;
3220     if (ucr) {
3221       ucx = ucd;
3222     }
3223   }
3224 #pragma omp atomic compare capture relaxed
3225   {
3226     ucr = uce == ucx;
3227     if (ucr) {
3228       ucx = ucd;
3229     }
3230   }
3231 #pragma omp atomic compare capture relaxed
3232   {
3233     ucr = ucx == uce;
3234     if (ucr) {
3235       ucx = ucd;
3236     } else {
3237       ucv = ucx;
3238     }
3239   }
3240 #pragma omp atomic compare capture relaxed
3241   {
3242     ucr = uce == ucx;
3243     if (ucr) {
3244       ucx = ucd;
3245     } else {
3246       ucv = ucx;
3247     }
3248   }
3249 
3250 #pragma omp atomic compare capture release
3251   {
3252     ucv = ucx;
3253     if (uce > ucx) {
3254       ucx = uce;
3255     }
3256   }
3257 #pragma omp atomic compare capture release
3258   {
3259     ucv = ucx;
3260     if (ucx > uce) {
3261       ucx = uce;
3262     }
3263   }
3264 #pragma omp atomic compare capture release
3265   {
3266     ucv = ucx;
3267     if (uce < ucx) {
3268       ucx = uce;
3269     }
3270   }
3271 #pragma omp atomic compare capture release
3272   {
3273     ucv = ucx;
3274     if (ucx < uce) {
3275       ucx = uce;
3276     }
3277   }
3278 #pragma omp atomic compare capture release
3279   {
3280     ucv = ucx;
3281     if (ucx == uce) {
3282       ucx = ucd;
3283     }
3284   }
3285 #pragma omp atomic compare capture release
3286   {
3287     ucv = ucx;
3288     if (uce == ucx) {
3289       ucx = ucd;
3290     }
3291   }
3292 #pragma omp atomic compare capture release
3293   {
3294     if (uce > ucx) {
3295       ucx = uce;
3296     }
3297     ucv = ucx;
3298   }
3299 #pragma omp atomic compare capture release
3300   {
3301     if (ucx > uce) {
3302       ucx = uce;
3303     }
3304     ucv = ucx;
3305   }
3306 #pragma omp atomic compare capture release
3307   {
3308     if (uce < ucx) {
3309       ucx = uce;
3310     }
3311     ucv = ucx;
3312   }
3313 #pragma omp atomic compare capture release
3314   {
3315     if (ucx < uce) {
3316       ucx = uce;
3317     }
3318     ucv = ucx;
3319   }
3320 #pragma omp atomic compare capture release
3321   {
3322     if (ucx == uce) {
3323       ucx = ucd;
3324     }
3325     ucv = ucx;
3326   }
3327 #pragma omp atomic compare capture release
3328   {
3329     if (uce == ucx) {
3330       ucx = ucd;
3331     }
3332     ucv = ucx;
3333   }
3334 #pragma omp atomic compare capture release
3335   if (ucx == uce) {
3336     ucx = ucd;
3337   } else {
3338     ucv = ucx;
3339   }
3340 #pragma omp atomic compare capture release
3341   if (uce == ucx) {
3342     ucx = ucd;
3343   } else {
3344     ucv = ucx;
3345   }
3346 #pragma omp atomic compare capture release
3347   {
3348     ucr = ucx == uce;
3349     if (ucr) {
3350       ucx = ucd;
3351     }
3352   }
3353 #pragma omp atomic compare capture release
3354   {
3355     ucr = uce == ucx;
3356     if (ucr) {
3357       ucx = ucd;
3358     }
3359   }
3360 #pragma omp atomic compare capture release
3361   {
3362     ucr = ucx == uce;
3363     if (ucr) {
3364       ucx = ucd;
3365     } else {
3366       ucv = ucx;
3367     }
3368   }
3369 #pragma omp atomic compare capture release
3370   {
3371     ucr = uce == ucx;
3372     if (ucr) {
3373       ucx = ucd;
3374     } else {
3375       ucv = ucx;
3376     }
3377   }
3378 
3379 #pragma omp atomic compare capture seq_cst
3380   {
3381     ucv = ucx;
3382     if (uce > ucx) {
3383       ucx = uce;
3384     }
3385   }
3386 #pragma omp atomic compare capture seq_cst
3387   {
3388     ucv = ucx;
3389     if (ucx > uce) {
3390       ucx = uce;
3391     }
3392   }
3393 #pragma omp atomic compare capture seq_cst
3394   {
3395     ucv = ucx;
3396     if (uce < ucx) {
3397       ucx = uce;
3398     }
3399   }
3400 #pragma omp atomic compare capture seq_cst
3401   {
3402     ucv = ucx;
3403     if (ucx < uce) {
3404       ucx = uce;
3405     }
3406   }
3407 #pragma omp atomic compare capture seq_cst
3408   {
3409     ucv = ucx;
3410     if (ucx == uce) {
3411       ucx = ucd;
3412     }
3413   }
3414 #pragma omp atomic compare capture seq_cst
3415   {
3416     ucv = ucx;
3417     if (uce == ucx) {
3418       ucx = ucd;
3419     }
3420   }
3421 #pragma omp atomic compare capture seq_cst
3422   {
3423     if (uce > ucx) {
3424       ucx = uce;
3425     }
3426     ucv = ucx;
3427   }
3428 #pragma omp atomic compare capture seq_cst
3429   {
3430     if (ucx > uce) {
3431       ucx = uce;
3432     }
3433     ucv = ucx;
3434   }
3435 #pragma omp atomic compare capture seq_cst
3436   {
3437     if (uce < ucx) {
3438       ucx = uce;
3439     }
3440     ucv = ucx;
3441   }
3442 #pragma omp atomic compare capture seq_cst
3443   {
3444     if (ucx < uce) {
3445       ucx = uce;
3446     }
3447     ucv = ucx;
3448   }
3449 #pragma omp atomic compare capture seq_cst
3450   {
3451     if (ucx == uce) {
3452       ucx = ucd;
3453     }
3454     ucv = ucx;
3455   }
3456 #pragma omp atomic compare capture seq_cst
3457   {
3458     if (uce == ucx) {
3459       ucx = ucd;
3460     }
3461     ucv = ucx;
3462   }
3463 #pragma omp atomic compare capture seq_cst
3464   if (ucx == uce) {
3465     ucx = ucd;
3466   } else {
3467     ucv = ucx;
3468   }
3469 #pragma omp atomic compare capture seq_cst
3470   if (uce == ucx) {
3471     ucx = ucd;
3472   } else {
3473     ucv = ucx;
3474   }
3475 #pragma omp atomic compare capture seq_cst
3476   {
3477     ucr = ucx == uce;
3478     if (ucr) {
3479       ucx = ucd;
3480     }
3481   }
3482 #pragma omp atomic compare capture seq_cst
3483   {
3484     ucr = uce == ucx;
3485     if (ucr) {
3486       ucx = ucd;
3487     }
3488   }
3489 #pragma omp atomic compare capture seq_cst
3490   {
3491     ucr = ucx == uce;
3492     if (ucr) {
3493       ucx = ucd;
3494     } else {
3495       ucv = ucx;
3496     }
3497   }
3498 #pragma omp atomic compare capture seq_cst
3499   {
3500     ucr = uce == ucx;
3501     if (ucr) {
3502       ucx = ucd;
3503     } else {
3504       ucv = ucx;
3505     }
3506   }
3507 
3508 #pragma omp atomic compare capture
3509   {
3510     sv = sx;
3511     if (se > sx) {
3512       sx = se;
3513     }
3514   }
3515 #pragma omp atomic compare capture
3516   {
3517     sv = sx;
3518     if (sx > se) {
3519       sx = se;
3520     }
3521   }
3522 #pragma omp atomic compare capture
3523   {
3524     sv = sx;
3525     if (se < sx) {
3526       sx = se;
3527     }
3528   }
3529 #pragma omp atomic compare capture
3530   {
3531     sv = sx;
3532     if (sx < se) {
3533       sx = se;
3534     }
3535   }
3536 #pragma omp atomic compare capture
3537   {
3538     sv = sx;
3539     if (sx == se) {
3540       sx = sd;
3541     }
3542   }
3543 #pragma omp atomic compare capture
3544   {
3545     sv = sx;
3546     if (se == sx) {
3547       sx = sd;
3548     }
3549   }
3550 #pragma omp atomic compare capture
3551   {
3552     if (se > sx) {
3553       sx = se;
3554     }
3555     sv = sx;
3556   }
3557 #pragma omp atomic compare capture
3558   {
3559     if (sx > se) {
3560       sx = se;
3561     }
3562     sv = sx;
3563   }
3564 #pragma omp atomic compare capture
3565   {
3566     if (se < sx) {
3567       sx = se;
3568     }
3569     sv = sx;
3570   }
3571 #pragma omp atomic compare capture
3572   {
3573     if (sx < se) {
3574       sx = se;
3575     }
3576     sv = sx;
3577   }
3578 #pragma omp atomic compare capture
3579   {
3580     if (sx == se) {
3581       sx = sd;
3582     }
3583     sv = sx;
3584   }
3585 #pragma omp atomic compare capture
3586   {
3587     if (se == sx) {
3588       sx = sd;
3589     }
3590     sv = sx;
3591   }
3592 #pragma omp atomic compare capture
3593   if (sx == se) {
3594     sx = sd;
3595   } else {
3596     sv = sx;
3597   }
3598 #pragma omp atomic compare capture
3599   if (se == sx) {
3600     sx = sd;
3601   } else {
3602     sv = sx;
3603   }
3604 #pragma omp atomic compare capture
3605   {
3606     sr = sx == se;
3607     if (sr) {
3608       sx = sd;
3609     }
3610   }
3611 #pragma omp atomic compare capture
3612   {
3613     sr = se == sx;
3614     if (sr) {
3615       sx = sd;
3616     }
3617   }
3618 #pragma omp atomic compare capture
3619   {
3620     sr = sx == se;
3621     if (sr) {
3622       sx = sd;
3623     } else {
3624       sv = sx;
3625     }
3626   }
3627 #pragma omp atomic compare capture
3628   {
3629     sr = se == sx;
3630     if (sr) {
3631       sx = sd;
3632     } else {
3633       sv = sx;
3634     }
3635   }
3636 
3637 #pragma omp atomic compare capture acq_rel
3638   {
3639     sv = sx;
3640     if (se > sx) {
3641       sx = se;
3642     }
3643   }
3644 #pragma omp atomic compare capture acq_rel
3645   {
3646     sv = sx;
3647     if (sx > se) {
3648       sx = se;
3649     }
3650   }
3651 #pragma omp atomic compare capture acq_rel
3652   {
3653     sv = sx;
3654     if (se < sx) {
3655       sx = se;
3656     }
3657   }
3658 #pragma omp atomic compare capture acq_rel
3659   {
3660     sv = sx;
3661     if (sx < se) {
3662       sx = se;
3663     }
3664   }
3665 #pragma omp atomic compare capture acq_rel
3666   {
3667     sv = sx;
3668     if (sx == se) {
3669       sx = sd;
3670     }
3671   }
3672 #pragma omp atomic compare capture acq_rel
3673   {
3674     sv = sx;
3675     if (se == sx) {
3676       sx = sd;
3677     }
3678   }
3679 #pragma omp atomic compare capture acq_rel
3680   {
3681     if (se > sx) {
3682       sx = se;
3683     }
3684     sv = sx;
3685   }
3686 #pragma omp atomic compare capture acq_rel
3687   {
3688     if (sx > se) {
3689       sx = se;
3690     }
3691     sv = sx;
3692   }
3693 #pragma omp atomic compare capture acq_rel
3694   {
3695     if (se < sx) {
3696       sx = se;
3697     }
3698     sv = sx;
3699   }
3700 #pragma omp atomic compare capture acq_rel
3701   {
3702     if (sx < se) {
3703       sx = se;
3704     }
3705     sv = sx;
3706   }
3707 #pragma omp atomic compare capture acq_rel
3708   {
3709     if (sx == se) {
3710       sx = sd;
3711     }
3712     sv = sx;
3713   }
3714 #pragma omp atomic compare capture acq_rel
3715   {
3716     if (se == sx) {
3717       sx = sd;
3718     }
3719     sv = sx;
3720   }
3721 #pragma omp atomic compare capture acq_rel
3722   if (sx == se) {
3723     sx = sd;
3724   } else {
3725     sv = sx;
3726   }
3727 #pragma omp atomic compare capture acq_rel
3728   if (se == sx) {
3729     sx = sd;
3730   } else {
3731     sv = sx;
3732   }
3733 #pragma omp atomic compare capture acq_rel
3734   {
3735     sr = sx == se;
3736     if (sr) {
3737       sx = sd;
3738     }
3739   }
3740 #pragma omp atomic compare capture acq_rel
3741   {
3742     sr = se == sx;
3743     if (sr) {
3744       sx = sd;
3745     }
3746   }
3747 #pragma omp atomic compare capture acq_rel
3748   {
3749     sr = sx == se;
3750     if (sr) {
3751       sx = sd;
3752     } else {
3753       sv = sx;
3754     }
3755   }
3756 #pragma omp atomic compare capture acq_rel
3757   {
3758     sr = se == sx;
3759     if (sr) {
3760       sx = sd;
3761     } else {
3762       sv = sx;
3763     }
3764   }
3765 
3766 #pragma omp atomic compare capture acquire
3767   {
3768     sv = sx;
3769     if (se > sx) {
3770       sx = se;
3771     }
3772   }
3773 #pragma omp atomic compare capture acquire
3774   {
3775     sv = sx;
3776     if (sx > se) {
3777       sx = se;
3778     }
3779   }
3780 #pragma omp atomic compare capture acquire
3781   {
3782     sv = sx;
3783     if (se < sx) {
3784       sx = se;
3785     }
3786   }
3787 #pragma omp atomic compare capture acquire
3788   {
3789     sv = sx;
3790     if (sx < se) {
3791       sx = se;
3792     }
3793   }
3794 #pragma omp atomic compare capture acquire
3795   {
3796     sv = sx;
3797     if (sx == se) {
3798       sx = sd;
3799     }
3800   }
3801 #pragma omp atomic compare capture acquire
3802   {
3803     sv = sx;
3804     if (se == sx) {
3805       sx = sd;
3806     }
3807   }
3808 #pragma omp atomic compare capture acquire
3809   {
3810     if (se > sx) {
3811       sx = se;
3812     }
3813     sv = sx;
3814   }
3815 #pragma omp atomic compare capture acquire
3816   {
3817     if (sx > se) {
3818       sx = se;
3819     }
3820     sv = sx;
3821   }
3822 #pragma omp atomic compare capture acquire
3823   {
3824     if (se < sx) {
3825       sx = se;
3826     }
3827     sv = sx;
3828   }
3829 #pragma omp atomic compare capture acquire
3830   {
3831     if (sx < se) {
3832       sx = se;
3833     }
3834     sv = sx;
3835   }
3836 #pragma omp atomic compare capture acquire
3837   {
3838     if (sx == se) {
3839       sx = sd;
3840     }
3841     sv = sx;
3842   }
3843 #pragma omp atomic compare capture acquire
3844   {
3845     if (se == sx) {
3846       sx = sd;
3847     }
3848     sv = sx;
3849   }
3850 #pragma omp atomic compare capture acquire
3851   if (sx == se) {
3852     sx = sd;
3853   } else {
3854     sv = sx;
3855   }
3856 #pragma omp atomic compare capture acquire
3857   if (se == sx) {
3858     sx = sd;
3859   } else {
3860     sv = sx;
3861   }
3862 #pragma omp atomic compare capture acquire
3863   {
3864     sr = sx == se;
3865     if (sr) {
3866       sx = sd;
3867     }
3868   }
3869 #pragma omp atomic compare capture acquire
3870   {
3871     sr = se == sx;
3872     if (sr) {
3873       sx = sd;
3874     }
3875   }
3876 #pragma omp atomic compare capture acquire
3877   {
3878     sr = sx == se;
3879     if (sr) {
3880       sx = sd;
3881     } else {
3882       sv = sx;
3883     }
3884   }
3885 #pragma omp atomic compare capture acquire
3886   {
3887     sr = se == sx;
3888     if (sr) {
3889       sx = sd;
3890     } else {
3891       sv = sx;
3892     }
3893   }
3894 
3895 #pragma omp atomic compare capture relaxed
3896   {
3897     sv = sx;
3898     if (se > sx) {
3899       sx = se;
3900     }
3901   }
3902 #pragma omp atomic compare capture relaxed
3903   {
3904     sv = sx;
3905     if (sx > se) {
3906       sx = se;
3907     }
3908   }
3909 #pragma omp atomic compare capture relaxed
3910   {
3911     sv = sx;
3912     if (se < sx) {
3913       sx = se;
3914     }
3915   }
3916 #pragma omp atomic compare capture relaxed
3917   {
3918     sv = sx;
3919     if (sx < se) {
3920       sx = se;
3921     }
3922   }
3923 #pragma omp atomic compare capture relaxed
3924   {
3925     sv = sx;
3926     if (sx == se) {
3927       sx = sd;
3928     }
3929   }
3930 #pragma omp atomic compare capture relaxed
3931   {
3932     sv = sx;
3933     if (se == sx) {
3934       sx = sd;
3935     }
3936   }
3937 #pragma omp atomic compare capture relaxed
3938   {
3939     if (se > sx) {
3940       sx = se;
3941     }
3942     sv = sx;
3943   }
3944 #pragma omp atomic compare capture relaxed
3945   {
3946     if (sx > se) {
3947       sx = se;
3948     }
3949     sv = sx;
3950   }
3951 #pragma omp atomic compare capture relaxed
3952   {
3953     if (se < sx) {
3954       sx = se;
3955     }
3956     sv = sx;
3957   }
3958 #pragma omp atomic compare capture relaxed
3959   {
3960     if (sx < se) {
3961       sx = se;
3962     }
3963     sv = sx;
3964   }
3965 #pragma omp atomic compare capture relaxed
3966   {
3967     if (sx == se) {
3968       sx = sd;
3969     }
3970     sv = sx;
3971   }
3972 #pragma omp atomic compare capture relaxed
3973   {
3974     if (se == sx) {
3975       sx = sd;
3976     }
3977     sv = sx;
3978   }
3979 #pragma omp atomic compare capture relaxed
3980   if (sx == se) {
3981     sx = sd;
3982   } else {
3983     sv = sx;
3984   }
3985 #pragma omp atomic compare capture relaxed
3986   if (se == sx) {
3987     sx = sd;
3988   } else {
3989     sv = sx;
3990   }
3991 #pragma omp atomic compare capture relaxed
3992   {
3993     sr = sx == se;
3994     if (sr) {
3995       sx = sd;
3996     }
3997   }
3998 #pragma omp atomic compare capture relaxed
3999   {
4000     sr = se == sx;
4001     if (sr) {
4002       sx = sd;
4003     }
4004   }
4005 #pragma omp atomic compare capture relaxed
4006   {
4007     sr = sx == se;
4008     if (sr) {
4009       sx = sd;
4010     } else {
4011       sv = sx;
4012     }
4013   }
4014 #pragma omp atomic compare capture relaxed
4015   {
4016     sr = se == sx;
4017     if (sr) {
4018       sx = sd;
4019     } else {
4020       sv = sx;
4021     }
4022   }
4023 
4024 #pragma omp atomic compare capture release
4025   {
4026     sv = sx;
4027     if (se > sx) {
4028       sx = se;
4029     }
4030   }
4031 #pragma omp atomic compare capture release
4032   {
4033     sv = sx;
4034     if (sx > se) {
4035       sx = se;
4036     }
4037   }
4038 #pragma omp atomic compare capture release
4039   {
4040     sv = sx;
4041     if (se < sx) {
4042       sx = se;
4043     }
4044   }
4045 #pragma omp atomic compare capture release
4046   {
4047     sv = sx;
4048     if (sx < se) {
4049       sx = se;
4050     }
4051   }
4052 #pragma omp atomic compare capture release
4053   {
4054     sv = sx;
4055     if (sx == se) {
4056       sx = sd;
4057     }
4058   }
4059 #pragma omp atomic compare capture release
4060   {
4061     sv = sx;
4062     if (se == sx) {
4063       sx = sd;
4064     }
4065   }
4066 #pragma omp atomic compare capture release
4067   {
4068     if (se > sx) {
4069       sx = se;
4070     }
4071     sv = sx;
4072   }
4073 #pragma omp atomic compare capture release
4074   {
4075     if (sx > se) {
4076       sx = se;
4077     }
4078     sv = sx;
4079   }
4080 #pragma omp atomic compare capture release
4081   {
4082     if (se < sx) {
4083       sx = se;
4084     }
4085     sv = sx;
4086   }
4087 #pragma omp atomic compare capture release
4088   {
4089     if (sx < se) {
4090       sx = se;
4091     }
4092     sv = sx;
4093   }
4094 #pragma omp atomic compare capture release
4095   {
4096     if (sx == se) {
4097       sx = sd;
4098     }
4099     sv = sx;
4100   }
4101 #pragma omp atomic compare capture release
4102   {
4103     if (se == sx) {
4104       sx = sd;
4105     }
4106     sv = sx;
4107   }
4108 #pragma omp atomic compare capture release
4109   if (sx == se) {
4110     sx = sd;
4111   } else {
4112     sv = sx;
4113   }
4114 #pragma omp atomic compare capture release
4115   if (se == sx) {
4116     sx = sd;
4117   } else {
4118     sv = sx;
4119   }
4120 #pragma omp atomic compare capture release
4121   {
4122     sr = sx == se;
4123     if (sr) {
4124       sx = sd;
4125     }
4126   }
4127 #pragma omp atomic compare capture release
4128   {
4129     sr = se == sx;
4130     if (sr) {
4131       sx = sd;
4132     }
4133   }
4134 #pragma omp atomic compare capture release
4135   {
4136     sr = sx == se;
4137     if (sr) {
4138       sx = sd;
4139     } else {
4140       sv = sx;
4141     }
4142   }
4143 #pragma omp atomic compare capture release
4144   {
4145     sr = se == sx;
4146     if (sr) {
4147       sx = sd;
4148     } else {
4149       sv = sx;
4150     }
4151   }
4152 
4153 #pragma omp atomic compare capture seq_cst
4154   {
4155     sv = sx;
4156     if (se > sx) {
4157       sx = se;
4158     }
4159   }
4160 #pragma omp atomic compare capture seq_cst
4161   {
4162     sv = sx;
4163     if (sx > se) {
4164       sx = se;
4165     }
4166   }
4167 #pragma omp atomic compare capture seq_cst
4168   {
4169     sv = sx;
4170     if (se < sx) {
4171       sx = se;
4172     }
4173   }
4174 #pragma omp atomic compare capture seq_cst
4175   {
4176     sv = sx;
4177     if (sx < se) {
4178       sx = se;
4179     }
4180   }
4181 #pragma omp atomic compare capture seq_cst
4182   {
4183     sv = sx;
4184     if (sx == se) {
4185       sx = sd;
4186     }
4187   }
4188 #pragma omp atomic compare capture seq_cst
4189   {
4190     sv = sx;
4191     if (se == sx) {
4192       sx = sd;
4193     }
4194   }
4195 #pragma omp atomic compare capture seq_cst
4196   {
4197     if (se > sx) {
4198       sx = se;
4199     }
4200     sv = sx;
4201   }
4202 #pragma omp atomic compare capture seq_cst
4203   {
4204     if (sx > se) {
4205       sx = se;
4206     }
4207     sv = sx;
4208   }
4209 #pragma omp atomic compare capture seq_cst
4210   {
4211     if (se < sx) {
4212       sx = se;
4213     }
4214     sv = sx;
4215   }
4216 #pragma omp atomic compare capture seq_cst
4217   {
4218     if (sx < se) {
4219       sx = se;
4220     }
4221     sv = sx;
4222   }
4223 #pragma omp atomic compare capture seq_cst
4224   {
4225     if (sx == se) {
4226       sx = sd;
4227     }
4228     sv = sx;
4229   }
4230 #pragma omp atomic compare capture seq_cst
4231   {
4232     if (se == sx) {
4233       sx = sd;
4234     }
4235     sv = sx;
4236   }
4237 #pragma omp atomic compare capture seq_cst
4238   if (sx == se) {
4239     sx = sd;
4240   } else {
4241     sv = sx;
4242   }
4243 #pragma omp atomic compare capture seq_cst
4244   if (se == sx) {
4245     sx = sd;
4246   } else {
4247     sv = sx;
4248   }
4249 #pragma omp atomic compare capture seq_cst
4250   {
4251     sr = sx == se;
4252     if (sr) {
4253       sx = sd;
4254     }
4255   }
4256 #pragma omp atomic compare capture seq_cst
4257   {
4258     sr = se == sx;
4259     if (sr) {
4260       sx = sd;
4261     }
4262   }
4263 #pragma omp atomic compare capture seq_cst
4264   {
4265     sr = sx == se;
4266     if (sr) {
4267       sx = sd;
4268     } else {
4269       sv = sx;
4270     }
4271   }
4272 #pragma omp atomic compare capture seq_cst
4273   {
4274     sr = se == sx;
4275     if (sr) {
4276       sx = sd;
4277     } else {
4278       sv = sx;
4279     }
4280   }
4281 
4282 #pragma omp atomic compare capture
4283   {
4284     usv = usx;
4285     if (use > usx) {
4286       usx = use;
4287     }
4288   }
4289 #pragma omp atomic compare capture
4290   {
4291     usv = usx;
4292     if (usx > use) {
4293       usx = use;
4294     }
4295   }
4296 #pragma omp atomic compare capture
4297   {
4298     usv = usx;
4299     if (use < usx) {
4300       usx = use;
4301     }
4302   }
4303 #pragma omp atomic compare capture
4304   {
4305     usv = usx;
4306     if (usx < use) {
4307       usx = use;
4308     }
4309   }
4310 #pragma omp atomic compare capture
4311   {
4312     usv = usx;
4313     if (usx == use) {
4314       usx = usd;
4315     }
4316   }
4317 #pragma omp atomic compare capture
4318   {
4319     usv = usx;
4320     if (use == usx) {
4321       usx = usd;
4322     }
4323   }
4324 #pragma omp atomic compare capture
4325   {
4326     if (use > usx) {
4327       usx = use;
4328     }
4329     usv = usx;
4330   }
4331 #pragma omp atomic compare capture
4332   {
4333     if (usx > use) {
4334       usx = use;
4335     }
4336     usv = usx;
4337   }
4338 #pragma omp atomic compare capture
4339   {
4340     if (use < usx) {
4341       usx = use;
4342     }
4343     usv = usx;
4344   }
4345 #pragma omp atomic compare capture
4346   {
4347     if (usx < use) {
4348       usx = use;
4349     }
4350     usv = usx;
4351   }
4352 #pragma omp atomic compare capture
4353   {
4354     if (usx == use) {
4355       usx = usd;
4356     }
4357     usv = usx;
4358   }
4359 #pragma omp atomic compare capture
4360   {
4361     if (use == usx) {
4362       usx = usd;
4363     }
4364     usv = usx;
4365   }
4366 #pragma omp atomic compare capture
4367   if (usx == use) {
4368     usx = usd;
4369   } else {
4370     usv = usx;
4371   }
4372 #pragma omp atomic compare capture
4373   if (use == usx) {
4374     usx = usd;
4375   } else {
4376     usv = usx;
4377   }
4378 #pragma omp atomic compare capture
4379   {
4380     usr = usx == use;
4381     if (usr) {
4382       usx = usd;
4383     }
4384   }
4385 #pragma omp atomic compare capture
4386   {
4387     usr = use == usx;
4388     if (usr) {
4389       usx = usd;
4390     }
4391   }
4392 #pragma omp atomic compare capture
4393   {
4394     usr = usx == use;
4395     if (usr) {
4396       usx = usd;
4397     } else {
4398       usv = usx;
4399     }
4400   }
4401 #pragma omp atomic compare capture
4402   {
4403     usr = use == usx;
4404     if (usr) {
4405       usx = usd;
4406     } else {
4407       usv = usx;
4408     }
4409   }
4410 
4411 #pragma omp atomic compare capture acq_rel
4412   {
4413     usv = usx;
4414     if (use > usx) {
4415       usx = use;
4416     }
4417   }
4418 #pragma omp atomic compare capture acq_rel
4419   {
4420     usv = usx;
4421     if (usx > use) {
4422       usx = use;
4423     }
4424   }
4425 #pragma omp atomic compare capture acq_rel
4426   {
4427     usv = usx;
4428     if (use < usx) {
4429       usx = use;
4430     }
4431   }
4432 #pragma omp atomic compare capture acq_rel
4433   {
4434     usv = usx;
4435     if (usx < use) {
4436       usx = use;
4437     }
4438   }
4439 #pragma omp atomic compare capture acq_rel
4440   {
4441     usv = usx;
4442     if (usx == use) {
4443       usx = usd;
4444     }
4445   }
4446 #pragma omp atomic compare capture acq_rel
4447   {
4448     usv = usx;
4449     if (use == usx) {
4450       usx = usd;
4451     }
4452   }
4453 #pragma omp atomic compare capture acq_rel
4454   {
4455     if (use > usx) {
4456       usx = use;
4457     }
4458     usv = usx;
4459   }
4460 #pragma omp atomic compare capture acq_rel
4461   {
4462     if (usx > use) {
4463       usx = use;
4464     }
4465     usv = usx;
4466   }
4467 #pragma omp atomic compare capture acq_rel
4468   {
4469     if (use < usx) {
4470       usx = use;
4471     }
4472     usv = usx;
4473   }
4474 #pragma omp atomic compare capture acq_rel
4475   {
4476     if (usx < use) {
4477       usx = use;
4478     }
4479     usv = usx;
4480   }
4481 #pragma omp atomic compare capture acq_rel
4482   {
4483     if (usx == use) {
4484       usx = usd;
4485     }
4486     usv = usx;
4487   }
4488 #pragma omp atomic compare capture acq_rel
4489   {
4490     if (use == usx) {
4491       usx = usd;
4492     }
4493     usv = usx;
4494   }
4495 #pragma omp atomic compare capture acq_rel
4496   if (usx == use) {
4497     usx = usd;
4498   } else {
4499     usv = usx;
4500   }
4501 #pragma omp atomic compare capture acq_rel
4502   if (use == usx) {
4503     usx = usd;
4504   } else {
4505     usv = usx;
4506   }
4507 #pragma omp atomic compare capture acq_rel
4508   {
4509     usr = usx == use;
4510     if (usr) {
4511       usx = usd;
4512     }
4513   }
4514 #pragma omp atomic compare capture acq_rel
4515   {
4516     usr = use == usx;
4517     if (usr) {
4518       usx = usd;
4519     }
4520   }
4521 #pragma omp atomic compare capture acq_rel
4522   {
4523     usr = usx == use;
4524     if (usr) {
4525       usx = usd;
4526     } else {
4527       usv = usx;
4528     }
4529   }
4530 #pragma omp atomic compare capture acq_rel
4531   {
4532     usr = use == usx;
4533     if (usr) {
4534       usx = usd;
4535     } else {
4536       usv = usx;
4537     }
4538   }
4539 
4540 #pragma omp atomic compare capture acquire
4541   {
4542     usv = usx;
4543     if (use > usx) {
4544       usx = use;
4545     }
4546   }
4547 #pragma omp atomic compare capture acquire
4548   {
4549     usv = usx;
4550     if (usx > use) {
4551       usx = use;
4552     }
4553   }
4554 #pragma omp atomic compare capture acquire
4555   {
4556     usv = usx;
4557     if (use < usx) {
4558       usx = use;
4559     }
4560   }
4561 #pragma omp atomic compare capture acquire
4562   {
4563     usv = usx;
4564     if (usx < use) {
4565       usx = use;
4566     }
4567   }
4568 #pragma omp atomic compare capture acquire
4569   {
4570     usv = usx;
4571     if (usx == use) {
4572       usx = usd;
4573     }
4574   }
4575 #pragma omp atomic compare capture acquire
4576   {
4577     usv = usx;
4578     if (use == usx) {
4579       usx = usd;
4580     }
4581   }
4582 #pragma omp atomic compare capture acquire
4583   {
4584     if (use > usx) {
4585       usx = use;
4586     }
4587     usv = usx;
4588   }
4589 #pragma omp atomic compare capture acquire
4590   {
4591     if (usx > use) {
4592       usx = use;
4593     }
4594     usv = usx;
4595   }
4596 #pragma omp atomic compare capture acquire
4597   {
4598     if (use < usx) {
4599       usx = use;
4600     }
4601     usv = usx;
4602   }
4603 #pragma omp atomic compare capture acquire
4604   {
4605     if (usx < use) {
4606       usx = use;
4607     }
4608     usv = usx;
4609   }
4610 #pragma omp atomic compare capture acquire
4611   {
4612     if (usx == use) {
4613       usx = usd;
4614     }
4615     usv = usx;
4616   }
4617 #pragma omp atomic compare capture acquire
4618   {
4619     if (use == usx) {
4620       usx = usd;
4621     }
4622     usv = usx;
4623   }
4624 #pragma omp atomic compare capture acquire
4625   if (usx == use) {
4626     usx = usd;
4627   } else {
4628     usv = usx;
4629   }
4630 #pragma omp atomic compare capture acquire
4631   if (use == usx) {
4632     usx = usd;
4633   } else {
4634     usv = usx;
4635   }
4636 #pragma omp atomic compare capture acquire
4637   {
4638     usr = usx == use;
4639     if (usr) {
4640       usx = usd;
4641     }
4642   }
4643 #pragma omp atomic compare capture acquire
4644   {
4645     usr = use == usx;
4646     if (usr) {
4647       usx = usd;
4648     }
4649   }
4650 #pragma omp atomic compare capture acquire
4651   {
4652     usr = usx == use;
4653     if (usr) {
4654       usx = usd;
4655     } else {
4656       usv = usx;
4657     }
4658   }
4659 #pragma omp atomic compare capture acquire
4660   {
4661     usr = use == usx;
4662     if (usr) {
4663       usx = usd;
4664     } else {
4665       usv = usx;
4666     }
4667   }
4668 
4669 #pragma omp atomic compare capture relaxed
4670   {
4671     usv = usx;
4672     if (use > usx) {
4673       usx = use;
4674     }
4675   }
4676 #pragma omp atomic compare capture relaxed
4677   {
4678     usv = usx;
4679     if (usx > use) {
4680       usx = use;
4681     }
4682   }
4683 #pragma omp atomic compare capture relaxed
4684   {
4685     usv = usx;
4686     if (use < usx) {
4687       usx = use;
4688     }
4689   }
4690 #pragma omp atomic compare capture relaxed
4691   {
4692     usv = usx;
4693     if (usx < use) {
4694       usx = use;
4695     }
4696   }
4697 #pragma omp atomic compare capture relaxed
4698   {
4699     usv = usx;
4700     if (usx == use) {
4701       usx = usd;
4702     }
4703   }
4704 #pragma omp atomic compare capture relaxed
4705   {
4706     usv = usx;
4707     if (use == usx) {
4708       usx = usd;
4709     }
4710   }
4711 #pragma omp atomic compare capture relaxed
4712   {
4713     if (use > usx) {
4714       usx = use;
4715     }
4716     usv = usx;
4717   }
4718 #pragma omp atomic compare capture relaxed
4719   {
4720     if (usx > use) {
4721       usx = use;
4722     }
4723     usv = usx;
4724   }
4725 #pragma omp atomic compare capture relaxed
4726   {
4727     if (use < usx) {
4728       usx = use;
4729     }
4730     usv = usx;
4731   }
4732 #pragma omp atomic compare capture relaxed
4733   {
4734     if (usx < use) {
4735       usx = use;
4736     }
4737     usv = usx;
4738   }
4739 #pragma omp atomic compare capture relaxed
4740   {
4741     if (usx == use) {
4742       usx = usd;
4743     }
4744     usv = usx;
4745   }
4746 #pragma omp atomic compare capture relaxed
4747   {
4748     if (use == usx) {
4749       usx = usd;
4750     }
4751     usv = usx;
4752   }
4753 #pragma omp atomic compare capture relaxed
4754   if (usx == use) {
4755     usx = usd;
4756   } else {
4757     usv = usx;
4758   }
4759 #pragma omp atomic compare capture relaxed
4760   if (use == usx) {
4761     usx = usd;
4762   } else {
4763     usv = usx;
4764   }
4765 #pragma omp atomic compare capture relaxed
4766   {
4767     usr = usx == use;
4768     if (usr) {
4769       usx = usd;
4770     }
4771   }
4772 #pragma omp atomic compare capture relaxed
4773   {
4774     usr = use == usx;
4775     if (usr) {
4776       usx = usd;
4777     }
4778   }
4779 #pragma omp atomic compare capture relaxed
4780   {
4781     usr = usx == use;
4782     if (usr) {
4783       usx = usd;
4784     } else {
4785       usv = usx;
4786     }
4787   }
4788 #pragma omp atomic compare capture relaxed
4789   {
4790     usr = use == usx;
4791     if (usr) {
4792       usx = usd;
4793     } else {
4794       usv = usx;
4795     }
4796   }
4797 
4798 #pragma omp atomic compare capture release
4799   {
4800     usv = usx;
4801     if (use > usx) {
4802       usx = use;
4803     }
4804   }
4805 #pragma omp atomic compare capture release
4806   {
4807     usv = usx;
4808     if (usx > use) {
4809       usx = use;
4810     }
4811   }
4812 #pragma omp atomic compare capture release
4813   {
4814     usv = usx;
4815     if (use < usx) {
4816       usx = use;
4817     }
4818   }
4819 #pragma omp atomic compare capture release
4820   {
4821     usv = usx;
4822     if (usx < use) {
4823       usx = use;
4824     }
4825   }
4826 #pragma omp atomic compare capture release
4827   {
4828     usv = usx;
4829     if (usx == use) {
4830       usx = usd;
4831     }
4832   }
4833 #pragma omp atomic compare capture release
4834   {
4835     usv = usx;
4836     if (use == usx) {
4837       usx = usd;
4838     }
4839   }
4840 #pragma omp atomic compare capture release
4841   {
4842     if (use > usx) {
4843       usx = use;
4844     }
4845     usv = usx;
4846   }
4847 #pragma omp atomic compare capture release
4848   {
4849     if (usx > use) {
4850       usx = use;
4851     }
4852     usv = usx;
4853   }
4854 #pragma omp atomic compare capture release
4855   {
4856     if (use < usx) {
4857       usx = use;
4858     }
4859     usv = usx;
4860   }
4861 #pragma omp atomic compare capture release
4862   {
4863     if (usx < use) {
4864       usx = use;
4865     }
4866     usv = usx;
4867   }
4868 #pragma omp atomic compare capture release
4869   {
4870     if (usx == use) {
4871       usx = usd;
4872     }
4873     usv = usx;
4874   }
4875 #pragma omp atomic compare capture release
4876   {
4877     if (use == usx) {
4878       usx = usd;
4879     }
4880     usv = usx;
4881   }
4882 #pragma omp atomic compare capture release
4883   if (usx == use) {
4884     usx = usd;
4885   } else {
4886     usv = usx;
4887   }
4888 #pragma omp atomic compare capture release
4889   if (use == usx) {
4890     usx = usd;
4891   } else {
4892     usv = usx;
4893   }
4894 #pragma omp atomic compare capture release
4895   {
4896     usr = usx == use;
4897     if (usr) {
4898       usx = usd;
4899     }
4900   }
4901 #pragma omp atomic compare capture release
4902   {
4903     usr = use == usx;
4904     if (usr) {
4905       usx = usd;
4906     }
4907   }
4908 #pragma omp atomic compare capture release
4909   {
4910     usr = usx == use;
4911     if (usr) {
4912       usx = usd;
4913     } else {
4914       usv = usx;
4915     }
4916   }
4917 #pragma omp atomic compare capture release
4918   {
4919     usr = use == usx;
4920     if (usr) {
4921       usx = usd;
4922     } else {
4923       usv = usx;
4924     }
4925   }
4926 
4927 #pragma omp atomic compare capture seq_cst
4928   {
4929     usv = usx;
4930     if (use > usx) {
4931       usx = use;
4932     }
4933   }
4934 #pragma omp atomic compare capture seq_cst
4935   {
4936     usv = usx;
4937     if (usx > use) {
4938       usx = use;
4939     }
4940   }
4941 #pragma omp atomic compare capture seq_cst
4942   {
4943     usv = usx;
4944     if (use < usx) {
4945       usx = use;
4946     }
4947   }
4948 #pragma omp atomic compare capture seq_cst
4949   {
4950     usv = usx;
4951     if (usx < use) {
4952       usx = use;
4953     }
4954   }
4955 #pragma omp atomic compare capture seq_cst
4956   {
4957     usv = usx;
4958     if (usx == use) {
4959       usx = usd;
4960     }
4961   }
4962 #pragma omp atomic compare capture seq_cst
4963   {
4964     usv = usx;
4965     if (use == usx) {
4966       usx = usd;
4967     }
4968   }
4969 #pragma omp atomic compare capture seq_cst
4970   {
4971     if (use > usx) {
4972       usx = use;
4973     }
4974     usv = usx;
4975   }
4976 #pragma omp atomic compare capture seq_cst
4977   {
4978     if (usx > use) {
4979       usx = use;
4980     }
4981     usv = usx;
4982   }
4983 #pragma omp atomic compare capture seq_cst
4984   {
4985     if (use < usx) {
4986       usx = use;
4987     }
4988     usv = usx;
4989   }
4990 #pragma omp atomic compare capture seq_cst
4991   {
4992     if (usx < use) {
4993       usx = use;
4994     }
4995     usv = usx;
4996   }
4997 #pragma omp atomic compare capture seq_cst
4998   {
4999     if (usx == use) {
5000       usx = usd;
5001     }
5002     usv = usx;
5003   }
5004 #pragma omp atomic compare capture seq_cst
5005   {
5006     if (use == usx) {
5007       usx = usd;
5008     }
5009     usv = usx;
5010   }
5011 #pragma omp atomic compare capture seq_cst
5012   if (usx == use) {
5013     usx = usd;
5014   } else {
5015     usv = usx;
5016   }
5017 #pragma omp atomic compare capture seq_cst
5018   if (use == usx) {
5019     usx = usd;
5020   } else {
5021     usv = usx;
5022   }
5023 #pragma omp atomic compare capture seq_cst
5024   {
5025     usr = usx == use;
5026     if (usr) {
5027       usx = usd;
5028     }
5029   }
5030 #pragma omp atomic compare capture seq_cst
5031   {
5032     usr = use == usx;
5033     if (usr) {
5034       usx = usd;
5035     }
5036   }
5037 #pragma omp atomic compare capture seq_cst
5038   {
5039     usr = usx == use;
5040     if (usr) {
5041       usx = usd;
5042     } else {
5043       usv = usx;
5044     }
5045   }
5046 #pragma omp atomic compare capture seq_cst
5047   {
5048     usr = use == usx;
5049     if (usr) {
5050       usx = usd;
5051     } else {
5052       usv = usx;
5053     }
5054   }
5055 
5056 #pragma omp atomic compare capture
5057   {
5058     iv = ix;
5059     if (ie > ix) {
5060       ix = ie;
5061     }
5062   }
5063 #pragma omp atomic compare capture
5064   {
5065     iv = ix;
5066     if (ix > ie) {
5067       ix = ie;
5068     }
5069   }
5070 #pragma omp atomic compare capture
5071   {
5072     iv = ix;
5073     if (ie < ix) {
5074       ix = ie;
5075     }
5076   }
5077 #pragma omp atomic compare capture
5078   {
5079     iv = ix;
5080     if (ix < ie) {
5081       ix = ie;
5082     }
5083   }
5084 #pragma omp atomic compare capture
5085   {
5086     iv = ix;
5087     if (ix == ie) {
5088       ix = id;
5089     }
5090   }
5091 #pragma omp atomic compare capture
5092   {
5093     iv = ix;
5094     if (ie == ix) {
5095       ix = id;
5096     }
5097   }
5098 #pragma omp atomic compare capture
5099   {
5100     if (ie > ix) {
5101       ix = ie;
5102     }
5103     iv = ix;
5104   }
5105 #pragma omp atomic compare capture
5106   {
5107     if (ix > ie) {
5108       ix = ie;
5109     }
5110     iv = ix;
5111   }
5112 #pragma omp atomic compare capture
5113   {
5114     if (ie < ix) {
5115       ix = ie;
5116     }
5117     iv = ix;
5118   }
5119 #pragma omp atomic compare capture
5120   {
5121     if (ix < ie) {
5122       ix = ie;
5123     }
5124     iv = ix;
5125   }
5126 #pragma omp atomic compare capture
5127   {
5128     if (ix == ie) {
5129       ix = id;
5130     }
5131     iv = ix;
5132   }
5133 #pragma omp atomic compare capture
5134   {
5135     if (ie == ix) {
5136       ix = id;
5137     }
5138     iv = ix;
5139   }
5140 #pragma omp atomic compare capture
5141   if (ix == ie) {
5142     ix = id;
5143   } else {
5144     iv = ix;
5145   }
5146 #pragma omp atomic compare capture
5147   if (ie == ix) {
5148     ix = id;
5149   } else {
5150     iv = ix;
5151   }
5152 #pragma omp atomic compare capture
5153   {
5154     ir = ix == ie;
5155     if (ir) {
5156       ix = id;
5157     }
5158   }
5159 #pragma omp atomic compare capture
5160   {
5161     ir = ie == ix;
5162     if (ir) {
5163       ix = id;
5164     }
5165   }
5166 #pragma omp atomic compare capture
5167   {
5168     ir = ix == ie;
5169     if (ir) {
5170       ix = id;
5171     } else {
5172       iv = ix;
5173     }
5174   }
5175 #pragma omp atomic compare capture
5176   {
5177     ir = ie == ix;
5178     if (ir) {
5179       ix = id;
5180     } else {
5181       iv = ix;
5182     }
5183   }
5184 
5185 #pragma omp atomic compare capture acq_rel
5186   {
5187     iv = ix;
5188     if (ie > ix) {
5189       ix = ie;
5190     }
5191   }
5192 #pragma omp atomic compare capture acq_rel
5193   {
5194     iv = ix;
5195     if (ix > ie) {
5196       ix = ie;
5197     }
5198   }
5199 #pragma omp atomic compare capture acq_rel
5200   {
5201     iv = ix;
5202     if (ie < ix) {
5203       ix = ie;
5204     }
5205   }
5206 #pragma omp atomic compare capture acq_rel
5207   {
5208     iv = ix;
5209     if (ix < ie) {
5210       ix = ie;
5211     }
5212   }
5213 #pragma omp atomic compare capture acq_rel
5214   {
5215     iv = ix;
5216     if (ix == ie) {
5217       ix = id;
5218     }
5219   }
5220 #pragma omp atomic compare capture acq_rel
5221   {
5222     iv = ix;
5223     if (ie == ix) {
5224       ix = id;
5225     }
5226   }
5227 #pragma omp atomic compare capture acq_rel
5228   {
5229     if (ie > ix) {
5230       ix = ie;
5231     }
5232     iv = ix;
5233   }
5234 #pragma omp atomic compare capture acq_rel
5235   {
5236     if (ix > ie) {
5237       ix = ie;
5238     }
5239     iv = ix;
5240   }
5241 #pragma omp atomic compare capture acq_rel
5242   {
5243     if (ie < ix) {
5244       ix = ie;
5245     }
5246     iv = ix;
5247   }
5248 #pragma omp atomic compare capture acq_rel
5249   {
5250     if (ix < ie) {
5251       ix = ie;
5252     }
5253     iv = ix;
5254   }
5255 #pragma omp atomic compare capture acq_rel
5256   {
5257     if (ix == ie) {
5258       ix = id;
5259     }
5260     iv = ix;
5261   }
5262 #pragma omp atomic compare capture acq_rel
5263   {
5264     if (ie == ix) {
5265       ix = id;
5266     }
5267     iv = ix;
5268   }
5269 #pragma omp atomic compare capture acq_rel
5270   if (ix == ie) {
5271     ix = id;
5272   } else {
5273     iv = ix;
5274   }
5275 #pragma omp atomic compare capture acq_rel
5276   if (ie == ix) {
5277     ix = id;
5278   } else {
5279     iv = ix;
5280   }
5281 #pragma omp atomic compare capture acq_rel
5282   {
5283     ir = ix == ie;
5284     if (ir) {
5285       ix = id;
5286     }
5287   }
5288 #pragma omp atomic compare capture acq_rel
5289   {
5290     ir = ie == ix;
5291     if (ir) {
5292       ix = id;
5293     }
5294   }
5295 #pragma omp atomic compare capture acq_rel
5296   {
5297     ir = ix == ie;
5298     if (ir) {
5299       ix = id;
5300     } else {
5301       iv = ix;
5302     }
5303   }
5304 #pragma omp atomic compare capture acq_rel
5305   {
5306     ir = ie == ix;
5307     if (ir) {
5308       ix = id;
5309     } else {
5310       iv = ix;
5311     }
5312   }
5313 
5314 #pragma omp atomic compare capture acquire
5315   {
5316     iv = ix;
5317     if (ie > ix) {
5318       ix = ie;
5319     }
5320   }
5321 #pragma omp atomic compare capture acquire
5322   {
5323     iv = ix;
5324     if (ix > ie) {
5325       ix = ie;
5326     }
5327   }
5328 #pragma omp atomic compare capture acquire
5329   {
5330     iv = ix;
5331     if (ie < ix) {
5332       ix = ie;
5333     }
5334   }
5335 #pragma omp atomic compare capture acquire
5336   {
5337     iv = ix;
5338     if (ix < ie) {
5339       ix = ie;
5340     }
5341   }
5342 #pragma omp atomic compare capture acquire
5343   {
5344     iv = ix;
5345     if (ix == ie) {
5346       ix = id;
5347     }
5348   }
5349 #pragma omp atomic compare capture acquire
5350   {
5351     iv = ix;
5352     if (ie == ix) {
5353       ix = id;
5354     }
5355   }
5356 #pragma omp atomic compare capture acquire
5357   {
5358     if (ie > ix) {
5359       ix = ie;
5360     }
5361     iv = ix;
5362   }
5363 #pragma omp atomic compare capture acquire
5364   {
5365     if (ix > ie) {
5366       ix = ie;
5367     }
5368     iv = ix;
5369   }
5370 #pragma omp atomic compare capture acquire
5371   {
5372     if (ie < ix) {
5373       ix = ie;
5374     }
5375     iv = ix;
5376   }
5377 #pragma omp atomic compare capture acquire
5378   {
5379     if (ix < ie) {
5380       ix = ie;
5381     }
5382     iv = ix;
5383   }
5384 #pragma omp atomic compare capture acquire
5385   {
5386     if (ix == ie) {
5387       ix = id;
5388     }
5389     iv = ix;
5390   }
5391 #pragma omp atomic compare capture acquire
5392   {
5393     if (ie == ix) {
5394       ix = id;
5395     }
5396     iv = ix;
5397   }
5398 #pragma omp atomic compare capture acquire
5399   if (ix == ie) {
5400     ix = id;
5401   } else {
5402     iv = ix;
5403   }
5404 #pragma omp atomic compare capture acquire
5405   if (ie == ix) {
5406     ix = id;
5407   } else {
5408     iv = ix;
5409   }
5410 #pragma omp atomic compare capture acquire
5411   {
5412     ir = ix == ie;
5413     if (ir) {
5414       ix = id;
5415     }
5416   }
5417 #pragma omp atomic compare capture acquire
5418   {
5419     ir = ie == ix;
5420     if (ir) {
5421       ix = id;
5422     }
5423   }
5424 #pragma omp atomic compare capture acquire
5425   {
5426     ir = ix == ie;
5427     if (ir) {
5428       ix = id;
5429     } else {
5430       iv = ix;
5431     }
5432   }
5433 #pragma omp atomic compare capture acquire
5434   {
5435     ir = ie == ix;
5436     if (ir) {
5437       ix = id;
5438     } else {
5439       iv = ix;
5440     }
5441   }
5442 
5443 #pragma omp atomic compare capture relaxed
5444   {
5445     iv = ix;
5446     if (ie > ix) {
5447       ix = ie;
5448     }
5449   }
5450 #pragma omp atomic compare capture relaxed
5451   {
5452     iv = ix;
5453     if (ix > ie) {
5454       ix = ie;
5455     }
5456   }
5457 #pragma omp atomic compare capture relaxed
5458   {
5459     iv = ix;
5460     if (ie < ix) {
5461       ix = ie;
5462     }
5463   }
5464 #pragma omp atomic compare capture relaxed
5465   {
5466     iv = ix;
5467     if (ix < ie) {
5468       ix = ie;
5469     }
5470   }
5471 #pragma omp atomic compare capture relaxed
5472   {
5473     iv = ix;
5474     if (ix == ie) {
5475       ix = id;
5476     }
5477   }
5478 #pragma omp atomic compare capture relaxed
5479   {
5480     iv = ix;
5481     if (ie == ix) {
5482       ix = id;
5483     }
5484   }
5485 #pragma omp atomic compare capture relaxed
5486   {
5487     if (ie > ix) {
5488       ix = ie;
5489     }
5490     iv = ix;
5491   }
5492 #pragma omp atomic compare capture relaxed
5493   {
5494     if (ix > ie) {
5495       ix = ie;
5496     }
5497     iv = ix;
5498   }
5499 #pragma omp atomic compare capture relaxed
5500   {
5501     if (ie < ix) {
5502       ix = ie;
5503     }
5504     iv = ix;
5505   }
5506 #pragma omp atomic compare capture relaxed
5507   {
5508     if (ix < ie) {
5509       ix = ie;
5510     }
5511     iv = ix;
5512   }
5513 #pragma omp atomic compare capture relaxed
5514   {
5515     if (ix == ie) {
5516       ix = id;
5517     }
5518     iv = ix;
5519   }
5520 #pragma omp atomic compare capture relaxed
5521   {
5522     if (ie == ix) {
5523       ix = id;
5524     }
5525     iv = ix;
5526   }
5527 #pragma omp atomic compare capture relaxed
5528   if (ix == ie) {
5529     ix = id;
5530   } else {
5531     iv = ix;
5532   }
5533 #pragma omp atomic compare capture relaxed
5534   if (ie == ix) {
5535     ix = id;
5536   } else {
5537     iv = ix;
5538   }
5539 #pragma omp atomic compare capture relaxed
5540   {
5541     ir = ix == ie;
5542     if (ir) {
5543       ix = id;
5544     }
5545   }
5546 #pragma omp atomic compare capture relaxed
5547   {
5548     ir = ie == ix;
5549     if (ir) {
5550       ix = id;
5551     }
5552   }
5553 #pragma omp atomic compare capture relaxed
5554   {
5555     ir = ix == ie;
5556     if (ir) {
5557       ix = id;
5558     } else {
5559       iv = ix;
5560     }
5561   }
5562 #pragma omp atomic compare capture relaxed
5563   {
5564     ir = ie == ix;
5565     if (ir) {
5566       ix = id;
5567     } else {
5568       iv = ix;
5569     }
5570   }
5571 
5572 #pragma omp atomic compare capture release
5573   {
5574     iv = ix;
5575     if (ie > ix) {
5576       ix = ie;
5577     }
5578   }
5579 #pragma omp atomic compare capture release
5580   {
5581     iv = ix;
5582     if (ix > ie) {
5583       ix = ie;
5584     }
5585   }
5586 #pragma omp atomic compare capture release
5587   {
5588     iv = ix;
5589     if (ie < ix) {
5590       ix = ie;
5591     }
5592   }
5593 #pragma omp atomic compare capture release
5594   {
5595     iv = ix;
5596     if (ix < ie) {
5597       ix = ie;
5598     }
5599   }
5600 #pragma omp atomic compare capture release
5601   {
5602     iv = ix;
5603     if (ix == ie) {
5604       ix = id;
5605     }
5606   }
5607 #pragma omp atomic compare capture release
5608   {
5609     iv = ix;
5610     if (ie == ix) {
5611       ix = id;
5612     }
5613   }
5614 #pragma omp atomic compare capture release
5615   {
5616     if (ie > ix) {
5617       ix = ie;
5618     }
5619     iv = ix;
5620   }
5621 #pragma omp atomic compare capture release
5622   {
5623     if (ix > ie) {
5624       ix = ie;
5625     }
5626     iv = ix;
5627   }
5628 #pragma omp atomic compare capture release
5629   {
5630     if (ie < ix) {
5631       ix = ie;
5632     }
5633     iv = ix;
5634   }
5635 #pragma omp atomic compare capture release
5636   {
5637     if (ix < ie) {
5638       ix = ie;
5639     }
5640     iv = ix;
5641   }
5642 #pragma omp atomic compare capture release
5643   {
5644     if (ix == ie) {
5645       ix = id;
5646     }
5647     iv = ix;
5648   }
5649 #pragma omp atomic compare capture release
5650   {
5651     if (ie == ix) {
5652       ix = id;
5653     }
5654     iv = ix;
5655   }
5656 #pragma omp atomic compare capture release
5657   if (ix == ie) {
5658     ix = id;
5659   } else {
5660     iv = ix;
5661   }
5662 #pragma omp atomic compare capture release
5663   if (ie == ix) {
5664     ix = id;
5665   } else {
5666     iv = ix;
5667   }
5668 #pragma omp atomic compare capture release
5669   {
5670     ir = ix == ie;
5671     if (ir) {
5672       ix = id;
5673     }
5674   }
5675 #pragma omp atomic compare capture release
5676   {
5677     ir = ie == ix;
5678     if (ir) {
5679       ix = id;
5680     }
5681   }
5682 #pragma omp atomic compare capture release
5683   {
5684     ir = ix == ie;
5685     if (ir) {
5686       ix = id;
5687     } else {
5688       iv = ix;
5689     }
5690   }
5691 #pragma omp atomic compare capture release
5692   {
5693     ir = ie == ix;
5694     if (ir) {
5695       ix = id;
5696     } else {
5697       iv = ix;
5698     }
5699   }
5700 
5701 #pragma omp atomic compare capture seq_cst
5702   {
5703     iv = ix;
5704     if (ie > ix) {
5705       ix = ie;
5706     }
5707   }
5708 #pragma omp atomic compare capture seq_cst
5709   {
5710     iv = ix;
5711     if (ix > ie) {
5712       ix = ie;
5713     }
5714   }
5715 #pragma omp atomic compare capture seq_cst
5716   {
5717     iv = ix;
5718     if (ie < ix) {
5719       ix = ie;
5720     }
5721   }
5722 #pragma omp atomic compare capture seq_cst
5723   {
5724     iv = ix;
5725     if (ix < ie) {
5726       ix = ie;
5727     }
5728   }
5729 #pragma omp atomic compare capture seq_cst
5730   {
5731     iv = ix;
5732     if (ix == ie) {
5733       ix = id;
5734     }
5735   }
5736 #pragma omp atomic compare capture seq_cst
5737   {
5738     iv = ix;
5739     if (ie == ix) {
5740       ix = id;
5741     }
5742   }
5743 #pragma omp atomic compare capture seq_cst
5744   {
5745     if (ie > ix) {
5746       ix = ie;
5747     }
5748     iv = ix;
5749   }
5750 #pragma omp atomic compare capture seq_cst
5751   {
5752     if (ix > ie) {
5753       ix = ie;
5754     }
5755     iv = ix;
5756   }
5757 #pragma omp atomic compare capture seq_cst
5758   {
5759     if (ie < ix) {
5760       ix = ie;
5761     }
5762     iv = ix;
5763   }
5764 #pragma omp atomic compare capture seq_cst
5765   {
5766     if (ix < ie) {
5767       ix = ie;
5768     }
5769     iv = ix;
5770   }
5771 #pragma omp atomic compare capture seq_cst
5772   {
5773     if (ix == ie) {
5774       ix = id;
5775     }
5776     iv = ix;
5777   }
5778 #pragma omp atomic compare capture seq_cst
5779   {
5780     if (ie == ix) {
5781       ix = id;
5782     }
5783     iv = ix;
5784   }
5785 #pragma omp atomic compare capture seq_cst
5786   if (ix == ie) {
5787     ix = id;
5788   } else {
5789     iv = ix;
5790   }
5791 #pragma omp atomic compare capture seq_cst
5792   if (ie == ix) {
5793     ix = id;
5794   } else {
5795     iv = ix;
5796   }
5797 #pragma omp atomic compare capture seq_cst
5798   {
5799     ir = ix == ie;
5800     if (ir) {
5801       ix = id;
5802     }
5803   }
5804 #pragma omp atomic compare capture seq_cst
5805   {
5806     ir = ie == ix;
5807     if (ir) {
5808       ix = id;
5809     }
5810   }
5811 #pragma omp atomic compare capture seq_cst
5812   {
5813     ir = ix == ie;
5814     if (ir) {
5815       ix = id;
5816     } else {
5817       iv = ix;
5818     }
5819   }
5820 #pragma omp atomic compare capture seq_cst
5821   {
5822     ir = ie == ix;
5823     if (ir) {
5824       ix = id;
5825     } else {
5826       iv = ix;
5827     }
5828   }
5829 
5830 #pragma omp atomic compare capture
5831   {
5832     uiv = uix;
5833     if (uie > uix) {
5834       uix = uie;
5835     }
5836   }
5837 #pragma omp atomic compare capture
5838   {
5839     uiv = uix;
5840     if (uix > uie) {
5841       uix = uie;
5842     }
5843   }
5844 #pragma omp atomic compare capture
5845   {
5846     uiv = uix;
5847     if (uie < uix) {
5848       uix = uie;
5849     }
5850   }
5851 #pragma omp atomic compare capture
5852   {
5853     uiv = uix;
5854     if (uix < uie) {
5855       uix = uie;
5856     }
5857   }
5858 #pragma omp atomic compare capture
5859   {
5860     uiv = uix;
5861     if (uix == uie) {
5862       uix = uid;
5863     }
5864   }
5865 #pragma omp atomic compare capture
5866   {
5867     uiv = uix;
5868     if (uie == uix) {
5869       uix = uid;
5870     }
5871   }
5872 #pragma omp atomic compare capture
5873   {
5874     if (uie > uix) {
5875       uix = uie;
5876     }
5877     uiv = uix;
5878   }
5879 #pragma omp atomic compare capture
5880   {
5881     if (uix > uie) {
5882       uix = uie;
5883     }
5884     uiv = uix;
5885   }
5886 #pragma omp atomic compare capture
5887   {
5888     if (uie < uix) {
5889       uix = uie;
5890     }
5891     uiv = uix;
5892   }
5893 #pragma omp atomic compare capture
5894   {
5895     if (uix < uie) {
5896       uix = uie;
5897     }
5898     uiv = uix;
5899   }
5900 #pragma omp atomic compare capture
5901   {
5902     if (uix == uie) {
5903       uix = uid;
5904     }
5905     uiv = uix;
5906   }
5907 #pragma omp atomic compare capture
5908   {
5909     if (uie == uix) {
5910       uix = uid;
5911     }
5912     uiv = uix;
5913   }
5914 #pragma omp atomic compare capture
5915   if (uix == uie) {
5916     uix = uid;
5917   } else {
5918     uiv = uix;
5919   }
5920 #pragma omp atomic compare capture
5921   if (uie == uix) {
5922     uix = uid;
5923   } else {
5924     uiv = uix;
5925   }
5926 #pragma omp atomic compare capture
5927   {
5928     uir = uix == uie;
5929     if (uir) {
5930       uix = uid;
5931     }
5932   }
5933 #pragma omp atomic compare capture
5934   {
5935     uir = uie == uix;
5936     if (uir) {
5937       uix = uid;
5938     }
5939   }
5940 #pragma omp atomic compare capture
5941   {
5942     uir = uix == uie;
5943     if (uir) {
5944       uix = uid;
5945     } else {
5946       uiv = uix;
5947     }
5948   }
5949 #pragma omp atomic compare capture
5950   {
5951     uir = uie == uix;
5952     if (uir) {
5953       uix = uid;
5954     } else {
5955       uiv = uix;
5956     }
5957   }
5958 
5959 #pragma omp atomic compare capture acq_rel
5960   {
5961     uiv = uix;
5962     if (uie > uix) {
5963       uix = uie;
5964     }
5965   }
5966 #pragma omp atomic compare capture acq_rel
5967   {
5968     uiv = uix;
5969     if (uix > uie) {
5970       uix = uie;
5971     }
5972   }
5973 #pragma omp atomic compare capture acq_rel
5974   {
5975     uiv = uix;
5976     if (uie < uix) {
5977       uix = uie;
5978     }
5979   }
5980 #pragma omp atomic compare capture acq_rel
5981   {
5982     uiv = uix;
5983     if (uix < uie) {
5984       uix = uie;
5985     }
5986   }
5987 #pragma omp atomic compare capture acq_rel
5988   {
5989     uiv = uix;
5990     if (uix == uie) {
5991       uix = uid;
5992     }
5993   }
5994 #pragma omp atomic compare capture acq_rel
5995   {
5996     uiv = uix;
5997     if (uie == uix) {
5998       uix = uid;
5999     }
6000   }
6001 #pragma omp atomic compare capture acq_rel
6002   {
6003     if (uie > uix) {
6004       uix = uie;
6005     }
6006     uiv = uix;
6007   }
6008 #pragma omp atomic compare capture acq_rel
6009   {
6010     if (uix > uie) {
6011       uix = uie;
6012     }
6013     uiv = uix;
6014   }
6015 #pragma omp atomic compare capture acq_rel
6016   {
6017     if (uie < uix) {
6018       uix = uie;
6019     }
6020     uiv = uix;
6021   }
6022 #pragma omp atomic compare capture acq_rel
6023   {
6024     if (uix < uie) {
6025       uix = uie;
6026     }
6027     uiv = uix;
6028   }
6029 #pragma omp atomic compare capture acq_rel
6030   {
6031     if (uix == uie) {
6032       uix = uid;
6033     }
6034     uiv = uix;
6035   }
6036 #pragma omp atomic compare capture acq_rel
6037   {
6038     if (uie == uix) {
6039       uix = uid;
6040     }
6041     uiv = uix;
6042   }
6043 #pragma omp atomic compare capture acq_rel
6044   if (uix == uie) {
6045     uix = uid;
6046   } else {
6047     uiv = uix;
6048   }
6049 #pragma omp atomic compare capture acq_rel
6050   if (uie == uix) {
6051     uix = uid;
6052   } else {
6053     uiv = uix;
6054   }
6055 #pragma omp atomic compare capture acq_rel
6056   {
6057     uir = uix == uie;
6058     if (uir) {
6059       uix = uid;
6060     }
6061   }
6062 #pragma omp atomic compare capture acq_rel
6063   {
6064     uir = uie == uix;
6065     if (uir) {
6066       uix = uid;
6067     }
6068   }
6069 #pragma omp atomic compare capture acq_rel
6070   {
6071     uir = uix == uie;
6072     if (uir) {
6073       uix = uid;
6074     } else {
6075       uiv = uix;
6076     }
6077   }
6078 #pragma omp atomic compare capture acq_rel
6079   {
6080     uir = uie == uix;
6081     if (uir) {
6082       uix = uid;
6083     } else {
6084       uiv = uix;
6085     }
6086   }
6087 
6088 #pragma omp atomic compare capture acquire
6089   {
6090     uiv = uix;
6091     if (uie > uix) {
6092       uix = uie;
6093     }
6094   }
6095 #pragma omp atomic compare capture acquire
6096   {
6097     uiv = uix;
6098     if (uix > uie) {
6099       uix = uie;
6100     }
6101   }
6102 #pragma omp atomic compare capture acquire
6103   {
6104     uiv = uix;
6105     if (uie < uix) {
6106       uix = uie;
6107     }
6108   }
6109 #pragma omp atomic compare capture acquire
6110   {
6111     uiv = uix;
6112     if (uix < uie) {
6113       uix = uie;
6114     }
6115   }
6116 #pragma omp atomic compare capture acquire
6117   {
6118     uiv = uix;
6119     if (uix == uie) {
6120       uix = uid;
6121     }
6122   }
6123 #pragma omp atomic compare capture acquire
6124   {
6125     uiv = uix;
6126     if (uie == uix) {
6127       uix = uid;
6128     }
6129   }
6130 #pragma omp atomic compare capture acquire
6131   {
6132     if (uie > uix) {
6133       uix = uie;
6134     }
6135     uiv = uix;
6136   }
6137 #pragma omp atomic compare capture acquire
6138   {
6139     if (uix > uie) {
6140       uix = uie;
6141     }
6142     uiv = uix;
6143   }
6144 #pragma omp atomic compare capture acquire
6145   {
6146     if (uie < uix) {
6147       uix = uie;
6148     }
6149     uiv = uix;
6150   }
6151 #pragma omp atomic compare capture acquire
6152   {
6153     if (uix < uie) {
6154       uix = uie;
6155     }
6156     uiv = uix;
6157   }
6158 #pragma omp atomic compare capture acquire
6159   {
6160     if (uix == uie) {
6161       uix = uid;
6162     }
6163     uiv = uix;
6164   }
6165 #pragma omp atomic compare capture acquire
6166   {
6167     if (uie == uix) {
6168       uix = uid;
6169     }
6170     uiv = uix;
6171   }
6172 #pragma omp atomic compare capture acquire
6173   if (uix == uie) {
6174     uix = uid;
6175   } else {
6176     uiv = uix;
6177   }
6178 #pragma omp atomic compare capture acquire
6179   if (uie == uix) {
6180     uix = uid;
6181   } else {
6182     uiv = uix;
6183   }
6184 #pragma omp atomic compare capture acquire
6185   {
6186     uir = uix == uie;
6187     if (uir) {
6188       uix = uid;
6189     }
6190   }
6191 #pragma omp atomic compare capture acquire
6192   {
6193     uir = uie == uix;
6194     if (uir) {
6195       uix = uid;
6196     }
6197   }
6198 #pragma omp atomic compare capture acquire
6199   {
6200     uir = uix == uie;
6201     if (uir) {
6202       uix = uid;
6203     } else {
6204       uiv = uix;
6205     }
6206   }
6207 #pragma omp atomic compare capture acquire
6208   {
6209     uir = uie == uix;
6210     if (uir) {
6211       uix = uid;
6212     } else {
6213       uiv = uix;
6214     }
6215   }
6216 
6217 #pragma omp atomic compare capture relaxed
6218   {
6219     uiv = uix;
6220     if (uie > uix) {
6221       uix = uie;
6222     }
6223   }
6224 #pragma omp atomic compare capture relaxed
6225   {
6226     uiv = uix;
6227     if (uix > uie) {
6228       uix = uie;
6229     }
6230   }
6231 #pragma omp atomic compare capture relaxed
6232   {
6233     uiv = uix;
6234     if (uie < uix) {
6235       uix = uie;
6236     }
6237   }
6238 #pragma omp atomic compare capture relaxed
6239   {
6240     uiv = uix;
6241     if (uix < uie) {
6242       uix = uie;
6243     }
6244   }
6245 #pragma omp atomic compare capture relaxed
6246   {
6247     uiv = uix;
6248     if (uix == uie) {
6249       uix = uid;
6250     }
6251   }
6252 #pragma omp atomic compare capture relaxed
6253   {
6254     uiv = uix;
6255     if (uie == uix) {
6256       uix = uid;
6257     }
6258   }
6259 #pragma omp atomic compare capture relaxed
6260   {
6261     if (uie > uix) {
6262       uix = uie;
6263     }
6264     uiv = uix;
6265   }
6266 #pragma omp atomic compare capture relaxed
6267   {
6268     if (uix > uie) {
6269       uix = uie;
6270     }
6271     uiv = uix;
6272   }
6273 #pragma omp atomic compare capture relaxed
6274   {
6275     if (uie < uix) {
6276       uix = uie;
6277     }
6278     uiv = uix;
6279   }
6280 #pragma omp atomic compare capture relaxed
6281   {
6282     if (uix < uie) {
6283       uix = uie;
6284     }
6285     uiv = uix;
6286   }
6287 #pragma omp atomic compare capture relaxed
6288   {
6289     if (uix == uie) {
6290       uix = uid;
6291     }
6292     uiv = uix;
6293   }
6294 #pragma omp atomic compare capture relaxed
6295   {
6296     if (uie == uix) {
6297       uix = uid;
6298     }
6299     uiv = uix;
6300   }
6301 #pragma omp atomic compare capture relaxed
6302   if (uix == uie) {
6303     uix = uid;
6304   } else {
6305     uiv = uix;
6306   }
6307 #pragma omp atomic compare capture relaxed
6308   if (uie == uix) {
6309     uix = uid;
6310   } else {
6311     uiv = uix;
6312   }
6313 #pragma omp atomic compare capture relaxed
6314   {
6315     uir = uix == uie;
6316     if (uir) {
6317       uix = uid;
6318     }
6319   }
6320 #pragma omp atomic compare capture relaxed
6321   {
6322     uir = uie == uix;
6323     if (uir) {
6324       uix = uid;
6325     }
6326   }
6327 #pragma omp atomic compare capture relaxed
6328   {
6329     uir = uix == uie;
6330     if (uir) {
6331       uix = uid;
6332     } else {
6333       uiv = uix;
6334     }
6335   }
6336 #pragma omp atomic compare capture relaxed
6337   {
6338     uir = uie == uix;
6339     if (uir) {
6340       uix = uid;
6341     } else {
6342       uiv = uix;
6343     }
6344   }
6345 
6346 #pragma omp atomic compare capture release
6347   {
6348     uiv = uix;
6349     if (uie > uix) {
6350       uix = uie;
6351     }
6352   }
6353 #pragma omp atomic compare capture release
6354   {
6355     uiv = uix;
6356     if (uix > uie) {
6357       uix = uie;
6358     }
6359   }
6360 #pragma omp atomic compare capture release
6361   {
6362     uiv = uix;
6363     if (uie < uix) {
6364       uix = uie;
6365     }
6366   }
6367 #pragma omp atomic compare capture release
6368   {
6369     uiv = uix;
6370     if (uix < uie) {
6371       uix = uie;
6372     }
6373   }
6374 #pragma omp atomic compare capture release
6375   {
6376     uiv = uix;
6377     if (uix == uie) {
6378       uix = uid;
6379     }
6380   }
6381 #pragma omp atomic compare capture release
6382   {
6383     uiv = uix;
6384     if (uie == uix) {
6385       uix = uid;
6386     }
6387   }
6388 #pragma omp atomic compare capture release
6389   {
6390     if (uie > uix) {
6391       uix = uie;
6392     }
6393     uiv = uix;
6394   }
6395 #pragma omp atomic compare capture release
6396   {
6397     if (uix > uie) {
6398       uix = uie;
6399     }
6400     uiv = uix;
6401   }
6402 #pragma omp atomic compare capture release
6403   {
6404     if (uie < uix) {
6405       uix = uie;
6406     }
6407     uiv = uix;
6408   }
6409 #pragma omp atomic compare capture release
6410   {
6411     if (uix < uie) {
6412       uix = uie;
6413     }
6414     uiv = uix;
6415   }
6416 #pragma omp atomic compare capture release
6417   {
6418     if (uix == uie) {
6419       uix = uid;
6420     }
6421     uiv = uix;
6422   }
6423 #pragma omp atomic compare capture release
6424   {
6425     if (uie == uix) {
6426       uix = uid;
6427     }
6428     uiv = uix;
6429   }
6430 #pragma omp atomic compare capture release
6431   if (uix == uie) {
6432     uix = uid;
6433   } else {
6434     uiv = uix;
6435   }
6436 #pragma omp atomic compare capture release
6437   if (uie == uix) {
6438     uix = uid;
6439   } else {
6440     uiv = uix;
6441   }
6442 #pragma omp atomic compare capture release
6443   {
6444     uir = uix == uie;
6445     if (uir) {
6446       uix = uid;
6447     }
6448   }
6449 #pragma omp atomic compare capture release
6450   {
6451     uir = uie == uix;
6452     if (uir) {
6453       uix = uid;
6454     }
6455   }
6456 #pragma omp atomic compare capture release
6457   {
6458     uir = uix == uie;
6459     if (uir) {
6460       uix = uid;
6461     } else {
6462       uiv = uix;
6463     }
6464   }
6465 #pragma omp atomic compare capture release
6466   {
6467     uir = uie == uix;
6468     if (uir) {
6469       uix = uid;
6470     } else {
6471       uiv = uix;
6472     }
6473   }
6474 
6475 #pragma omp atomic compare capture seq_cst
6476   {
6477     uiv = uix;
6478     if (uie > uix) {
6479       uix = uie;
6480     }
6481   }
6482 #pragma omp atomic compare capture seq_cst
6483   {
6484     uiv = uix;
6485     if (uix > uie) {
6486       uix = uie;
6487     }
6488   }
6489 #pragma omp atomic compare capture seq_cst
6490   {
6491     uiv = uix;
6492     if (uie < uix) {
6493       uix = uie;
6494     }
6495   }
6496 #pragma omp atomic compare capture seq_cst
6497   {
6498     uiv = uix;
6499     if (uix < uie) {
6500       uix = uie;
6501     }
6502   }
6503 #pragma omp atomic compare capture seq_cst
6504   {
6505     uiv = uix;
6506     if (uix == uie) {
6507       uix = uid;
6508     }
6509   }
6510 #pragma omp atomic compare capture seq_cst
6511   {
6512     uiv = uix;
6513     if (uie == uix) {
6514       uix = uid;
6515     }
6516   }
6517 #pragma omp atomic compare capture seq_cst
6518   {
6519     if (uie > uix) {
6520       uix = uie;
6521     }
6522     uiv = uix;
6523   }
6524 #pragma omp atomic compare capture seq_cst
6525   {
6526     if (uix > uie) {
6527       uix = uie;
6528     }
6529     uiv = uix;
6530   }
6531 #pragma omp atomic compare capture seq_cst
6532   {
6533     if (uie < uix) {
6534       uix = uie;
6535     }
6536     uiv = uix;
6537   }
6538 #pragma omp atomic compare capture seq_cst
6539   {
6540     if (uix < uie) {
6541       uix = uie;
6542     }
6543     uiv = uix;
6544   }
6545 #pragma omp atomic compare capture seq_cst
6546   {
6547     if (uix == uie) {
6548       uix = uid;
6549     }
6550     uiv = uix;
6551   }
6552 #pragma omp atomic compare capture seq_cst
6553   {
6554     if (uie == uix) {
6555       uix = uid;
6556     }
6557     uiv = uix;
6558   }
6559 #pragma omp atomic compare capture seq_cst
6560   if (uix == uie) {
6561     uix = uid;
6562   } else {
6563     uiv = uix;
6564   }
6565 #pragma omp atomic compare capture seq_cst
6566   if (uie == uix) {
6567     uix = uid;
6568   } else {
6569     uiv = uix;
6570   }
6571 #pragma omp atomic compare capture seq_cst
6572   {
6573     uir = uix == uie;
6574     if (uir) {
6575       uix = uid;
6576     }
6577   }
6578 #pragma omp atomic compare capture seq_cst
6579   {
6580     uir = uie == uix;
6581     if (uir) {
6582       uix = uid;
6583     }
6584   }
6585 #pragma omp atomic compare capture seq_cst
6586   {
6587     uir = uix == uie;
6588     if (uir) {
6589       uix = uid;
6590     } else {
6591       uiv = uix;
6592     }
6593   }
6594 #pragma omp atomic compare capture seq_cst
6595   {
6596     uir = uie == uix;
6597     if (uir) {
6598       uix = uid;
6599     } else {
6600       uiv = uix;
6601     }
6602   }
6603 
6604 #pragma omp atomic compare capture
6605   {
6606     lv = lx;
6607     if (le > lx) {
6608       lx = le;
6609     }
6610   }
6611 #pragma omp atomic compare capture
6612   {
6613     lv = lx;
6614     if (lx > le) {
6615       lx = le;
6616     }
6617   }
6618 #pragma omp atomic compare capture
6619   {
6620     lv = lx;
6621     if (le < lx) {
6622       lx = le;
6623     }
6624   }
6625 #pragma omp atomic compare capture
6626   {
6627     lv = lx;
6628     if (lx < le) {
6629       lx = le;
6630     }
6631   }
6632 #pragma omp atomic compare capture
6633   {
6634     lv = lx;
6635     if (lx == le) {
6636       lx = ld;
6637     }
6638   }
6639 #pragma omp atomic compare capture
6640   {
6641     lv = lx;
6642     if (le == lx) {
6643       lx = ld;
6644     }
6645   }
6646 #pragma omp atomic compare capture
6647   {
6648     if (le > lx) {
6649       lx = le;
6650     }
6651     lv = lx;
6652   }
6653 #pragma omp atomic compare capture
6654   {
6655     if (lx > le) {
6656       lx = le;
6657     }
6658     lv = lx;
6659   }
6660 #pragma omp atomic compare capture
6661   {
6662     if (le < lx) {
6663       lx = le;
6664     }
6665     lv = lx;
6666   }
6667 #pragma omp atomic compare capture
6668   {
6669     if (lx < le) {
6670       lx = le;
6671     }
6672     lv = lx;
6673   }
6674 #pragma omp atomic compare capture
6675   {
6676     if (lx == le) {
6677       lx = ld;
6678     }
6679     lv = lx;
6680   }
6681 #pragma omp atomic compare capture
6682   {
6683     if (le == lx) {
6684       lx = ld;
6685     }
6686     lv = lx;
6687   }
6688 #pragma omp atomic compare capture
6689   if (lx == le) {
6690     lx = ld;
6691   } else {
6692     lv = lx;
6693   }
6694 #pragma omp atomic compare capture
6695   if (le == lx) {
6696     lx = ld;
6697   } else {
6698     lv = lx;
6699   }
6700 #pragma omp atomic compare capture
6701   {
6702     lr = lx == le;
6703     if (lr) {
6704       lx = ld;
6705     }
6706   }
6707 #pragma omp atomic compare capture
6708   {
6709     lr = le == lx;
6710     if (lr) {
6711       lx = ld;
6712     }
6713   }
6714 #pragma omp atomic compare capture
6715   {
6716     lr = lx == le;
6717     if (lr) {
6718       lx = ld;
6719     } else {
6720       lv = lx;
6721     }
6722   }
6723 #pragma omp atomic compare capture
6724   {
6725     lr = le == lx;
6726     if (lr) {
6727       lx = ld;
6728     } else {
6729       lv = lx;
6730     }
6731   }
6732 
6733 #pragma omp atomic compare capture acq_rel
6734   {
6735     lv = lx;
6736     if (le > lx) {
6737       lx = le;
6738     }
6739   }
6740 #pragma omp atomic compare capture acq_rel
6741   {
6742     lv = lx;
6743     if (lx > le) {
6744       lx = le;
6745     }
6746   }
6747 #pragma omp atomic compare capture acq_rel
6748   {
6749     lv = lx;
6750     if (le < lx) {
6751       lx = le;
6752     }
6753   }
6754 #pragma omp atomic compare capture acq_rel
6755   {
6756     lv = lx;
6757     if (lx < le) {
6758       lx = le;
6759     }
6760   }
6761 #pragma omp atomic compare capture acq_rel
6762   {
6763     lv = lx;
6764     if (lx == le) {
6765       lx = ld;
6766     }
6767   }
6768 #pragma omp atomic compare capture acq_rel
6769   {
6770     lv = lx;
6771     if (le == lx) {
6772       lx = ld;
6773     }
6774   }
6775 #pragma omp atomic compare capture acq_rel
6776   {
6777     if (le > lx) {
6778       lx = le;
6779     }
6780     lv = lx;
6781   }
6782 #pragma omp atomic compare capture acq_rel
6783   {
6784     if (lx > le) {
6785       lx = le;
6786     }
6787     lv = lx;
6788   }
6789 #pragma omp atomic compare capture acq_rel
6790   {
6791     if (le < lx) {
6792       lx = le;
6793     }
6794     lv = lx;
6795   }
6796 #pragma omp atomic compare capture acq_rel
6797   {
6798     if (lx < le) {
6799       lx = le;
6800     }
6801     lv = lx;
6802   }
6803 #pragma omp atomic compare capture acq_rel
6804   {
6805     if (lx == le) {
6806       lx = ld;
6807     }
6808     lv = lx;
6809   }
6810 #pragma omp atomic compare capture acq_rel
6811   {
6812     if (le == lx) {
6813       lx = ld;
6814     }
6815     lv = lx;
6816   }
6817 #pragma omp atomic compare capture acq_rel
6818   if (lx == le) {
6819     lx = ld;
6820   } else {
6821     lv = lx;
6822   }
6823 #pragma omp atomic compare capture acq_rel
6824   if (le == lx) {
6825     lx = ld;
6826   } else {
6827     lv = lx;
6828   }
6829 #pragma omp atomic compare capture acq_rel
6830   {
6831     lr = lx == le;
6832     if (lr) {
6833       lx = ld;
6834     }
6835   }
6836 #pragma omp atomic compare capture acq_rel
6837   {
6838     lr = le == lx;
6839     if (lr) {
6840       lx = ld;
6841     }
6842   }
6843 #pragma omp atomic compare capture acq_rel
6844   {
6845     lr = lx == le;
6846     if (lr) {
6847       lx = ld;
6848     } else {
6849       lv = lx;
6850     }
6851   }
6852 #pragma omp atomic compare capture acq_rel
6853   {
6854     lr = le == lx;
6855     if (lr) {
6856       lx = ld;
6857     } else {
6858       lv = lx;
6859     }
6860   }
6861 
6862 #pragma omp atomic compare capture acquire
6863   {
6864     lv = lx;
6865     if (le > lx) {
6866       lx = le;
6867     }
6868   }
6869 #pragma omp atomic compare capture acquire
6870   {
6871     lv = lx;
6872     if (lx > le) {
6873       lx = le;
6874     }
6875   }
6876 #pragma omp atomic compare capture acquire
6877   {
6878     lv = lx;
6879     if (le < lx) {
6880       lx = le;
6881     }
6882   }
6883 #pragma omp atomic compare capture acquire
6884   {
6885     lv = lx;
6886     if (lx < le) {
6887       lx = le;
6888     }
6889   }
6890 #pragma omp atomic compare capture acquire
6891   {
6892     lv = lx;
6893     if (lx == le) {
6894       lx = ld;
6895     }
6896   }
6897 #pragma omp atomic compare capture acquire
6898   {
6899     lv = lx;
6900     if (le == lx) {
6901       lx = ld;
6902     }
6903   }
6904 #pragma omp atomic compare capture acquire
6905   {
6906     if (le > lx) {
6907       lx = le;
6908     }
6909     lv = lx;
6910   }
6911 #pragma omp atomic compare capture acquire
6912   {
6913     if (lx > le) {
6914       lx = le;
6915     }
6916     lv = lx;
6917   }
6918 #pragma omp atomic compare capture acquire
6919   {
6920     if (le < lx) {
6921       lx = le;
6922     }
6923     lv = lx;
6924   }
6925 #pragma omp atomic compare capture acquire
6926   {
6927     if (lx < le) {
6928       lx = le;
6929     }
6930     lv = lx;
6931   }
6932 #pragma omp atomic compare capture acquire
6933   {
6934     if (lx == le) {
6935       lx = ld;
6936     }
6937     lv = lx;
6938   }
6939 #pragma omp atomic compare capture acquire
6940   {
6941     if (le == lx) {
6942       lx = ld;
6943     }
6944     lv = lx;
6945   }
6946 #pragma omp atomic compare capture acquire
6947   if (lx == le) {
6948     lx = ld;
6949   } else {
6950     lv = lx;
6951   }
6952 #pragma omp atomic compare capture acquire
6953   if (le == lx) {
6954     lx = ld;
6955   } else {
6956     lv = lx;
6957   }
6958 #pragma omp atomic compare capture acquire
6959   {
6960     lr = lx == le;
6961     if (lr) {
6962       lx = ld;
6963     }
6964   }
6965 #pragma omp atomic compare capture acquire
6966   {
6967     lr = le == lx;
6968     if (lr) {
6969       lx = ld;
6970     }
6971   }
6972 #pragma omp atomic compare capture acquire
6973   {
6974     lr = lx == le;
6975     if (lr) {
6976       lx = ld;
6977     } else {
6978       lv = lx;
6979     }
6980   }
6981 #pragma omp atomic compare capture acquire
6982   {
6983     lr = le == lx;
6984     if (lr) {
6985       lx = ld;
6986     } else {
6987       lv = lx;
6988     }
6989   }
6990 
6991 #pragma omp atomic compare capture relaxed
6992   {
6993     lv = lx;
6994     if (le > lx) {
6995       lx = le;
6996     }
6997   }
6998 #pragma omp atomic compare capture relaxed
6999   {
7000     lv = lx;
7001     if (lx > le) {
7002       lx = le;
7003     }
7004   }
7005 #pragma omp atomic compare capture relaxed
7006   {
7007     lv = lx;
7008     if (le < lx) {
7009       lx = le;
7010     }
7011   }
7012 #pragma omp atomic compare capture relaxed
7013   {
7014     lv = lx;
7015     if (lx < le) {
7016       lx = le;
7017     }
7018   }
7019 #pragma omp atomic compare capture relaxed
7020   {
7021     lv = lx;
7022     if (lx == le) {
7023       lx = ld;
7024     }
7025   }
7026 #pragma omp atomic compare capture relaxed
7027   {
7028     lv = lx;
7029     if (le == lx) {
7030       lx = ld;
7031     }
7032   }
7033 #pragma omp atomic compare capture relaxed
7034   {
7035     if (le > lx) {
7036       lx = le;
7037     }
7038     lv = lx;
7039   }
7040 #pragma omp atomic compare capture relaxed
7041   {
7042     if (lx > le) {
7043       lx = le;
7044     }
7045     lv = lx;
7046   }
7047 #pragma omp atomic compare capture relaxed
7048   {
7049     if (le < lx) {
7050       lx = le;
7051     }
7052     lv = lx;
7053   }
7054 #pragma omp atomic compare capture relaxed
7055   {
7056     if (lx < le) {
7057       lx = le;
7058     }
7059     lv = lx;
7060   }
7061 #pragma omp atomic compare capture relaxed
7062   {
7063     if (lx == le) {
7064       lx = ld;
7065     }
7066     lv = lx;
7067   }
7068 #pragma omp atomic compare capture relaxed
7069   {
7070     if (le == lx) {
7071       lx = ld;
7072     }
7073     lv = lx;
7074   }
7075 #pragma omp atomic compare capture relaxed
7076   if (lx == le) {
7077     lx = ld;
7078   } else {
7079     lv = lx;
7080   }
7081 #pragma omp atomic compare capture relaxed
7082   if (le == lx) {
7083     lx = ld;
7084   } else {
7085     lv = lx;
7086   }
7087 #pragma omp atomic compare capture relaxed
7088   {
7089     lr = lx == le;
7090     if (lr) {
7091       lx = ld;
7092     }
7093   }
7094 #pragma omp atomic compare capture relaxed
7095   {
7096     lr = le == lx;
7097     if (lr) {
7098       lx = ld;
7099     }
7100   }
7101 #pragma omp atomic compare capture relaxed
7102   {
7103     lr = lx == le;
7104     if (lr) {
7105       lx = ld;
7106     } else {
7107       lv = lx;
7108     }
7109   }
7110 #pragma omp atomic compare capture relaxed
7111   {
7112     lr = le == lx;
7113     if (lr) {
7114       lx = ld;
7115     } else {
7116       lv = lx;
7117     }
7118   }
7119 
7120 #pragma omp atomic compare capture release
7121   {
7122     lv = lx;
7123     if (le > lx) {
7124       lx = le;
7125     }
7126   }
7127 #pragma omp atomic compare capture release
7128   {
7129     lv = lx;
7130     if (lx > le) {
7131       lx = le;
7132     }
7133   }
7134 #pragma omp atomic compare capture release
7135   {
7136     lv = lx;
7137     if (le < lx) {
7138       lx = le;
7139     }
7140   }
7141 #pragma omp atomic compare capture release
7142   {
7143     lv = lx;
7144     if (lx < le) {
7145       lx = le;
7146     }
7147   }
7148 #pragma omp atomic compare capture release
7149   {
7150     lv = lx;
7151     if (lx == le) {
7152       lx = ld;
7153     }
7154   }
7155 #pragma omp atomic compare capture release
7156   {
7157     lv = lx;
7158     if (le == lx) {
7159       lx = ld;
7160     }
7161   }
7162 #pragma omp atomic compare capture release
7163   {
7164     if (le > lx) {
7165       lx = le;
7166     }
7167     lv = lx;
7168   }
7169 #pragma omp atomic compare capture release
7170   {
7171     if (lx > le) {
7172       lx = le;
7173     }
7174     lv = lx;
7175   }
7176 #pragma omp atomic compare capture release
7177   {
7178     if (le < lx) {
7179       lx = le;
7180     }
7181     lv = lx;
7182   }
7183 #pragma omp atomic compare capture release
7184   {
7185     if (lx < le) {
7186       lx = le;
7187     }
7188     lv = lx;
7189   }
7190 #pragma omp atomic compare capture release
7191   {
7192     if (lx == le) {
7193       lx = ld;
7194     }
7195     lv = lx;
7196   }
7197 #pragma omp atomic compare capture release
7198   {
7199     if (le == lx) {
7200       lx = ld;
7201     }
7202     lv = lx;
7203   }
7204 #pragma omp atomic compare capture release
7205   if (lx == le) {
7206     lx = ld;
7207   } else {
7208     lv = lx;
7209   }
7210 #pragma omp atomic compare capture release
7211   if (le == lx) {
7212     lx = ld;
7213   } else {
7214     lv = lx;
7215   }
7216 #pragma omp atomic compare capture release
7217   {
7218     lr = lx == le;
7219     if (lr) {
7220       lx = ld;
7221     }
7222   }
7223 #pragma omp atomic compare capture release
7224   {
7225     lr = le == lx;
7226     if (lr) {
7227       lx = ld;
7228     }
7229   }
7230 #pragma omp atomic compare capture release
7231   {
7232     lr = lx == le;
7233     if (lr) {
7234       lx = ld;
7235     } else {
7236       lv = lx;
7237     }
7238   }
7239 #pragma omp atomic compare capture release
7240   {
7241     lr = le == lx;
7242     if (lr) {
7243       lx = ld;
7244     } else {
7245       lv = lx;
7246     }
7247   }
7248 
7249 #pragma omp atomic compare capture seq_cst
7250   {
7251     lv = lx;
7252     if (le > lx) {
7253       lx = le;
7254     }
7255   }
7256 #pragma omp atomic compare capture seq_cst
7257   {
7258     lv = lx;
7259     if (lx > le) {
7260       lx = le;
7261     }
7262   }
7263 #pragma omp atomic compare capture seq_cst
7264   {
7265     lv = lx;
7266     if (le < lx) {
7267       lx = le;
7268     }
7269   }
7270 #pragma omp atomic compare capture seq_cst
7271   {
7272     lv = lx;
7273     if (lx < le) {
7274       lx = le;
7275     }
7276   }
7277 #pragma omp atomic compare capture seq_cst
7278   {
7279     lv = lx;
7280     if (lx == le) {
7281       lx = ld;
7282     }
7283   }
7284 #pragma omp atomic compare capture seq_cst
7285   {
7286     lv = lx;
7287     if (le == lx) {
7288       lx = ld;
7289     }
7290   }
7291 #pragma omp atomic compare capture seq_cst
7292   {
7293     if (le > lx) {
7294       lx = le;
7295     }
7296     lv = lx;
7297   }
7298 #pragma omp atomic compare capture seq_cst
7299   {
7300     if (lx > le) {
7301       lx = le;
7302     }
7303     lv = lx;
7304   }
7305 #pragma omp atomic compare capture seq_cst
7306   {
7307     if (le < lx) {
7308       lx = le;
7309     }
7310     lv = lx;
7311   }
7312 #pragma omp atomic compare capture seq_cst
7313   {
7314     if (lx < le) {
7315       lx = le;
7316     }
7317     lv = lx;
7318   }
7319 #pragma omp atomic compare capture seq_cst
7320   {
7321     if (lx == le) {
7322       lx = ld;
7323     }
7324     lv = lx;
7325   }
7326 #pragma omp atomic compare capture seq_cst
7327   {
7328     if (le == lx) {
7329       lx = ld;
7330     }
7331     lv = lx;
7332   }
7333 #pragma omp atomic compare capture seq_cst
7334   if (lx == le) {
7335     lx = ld;
7336   } else {
7337     lv = lx;
7338   }
7339 #pragma omp atomic compare capture seq_cst
7340   if (le == lx) {
7341     lx = ld;
7342   } else {
7343     lv = lx;
7344   }
7345 #pragma omp atomic compare capture seq_cst
7346   {
7347     lr = lx == le;
7348     if (lr) {
7349       lx = ld;
7350     }
7351   }
7352 #pragma omp atomic compare capture seq_cst
7353   {
7354     lr = le == lx;
7355     if (lr) {
7356       lx = ld;
7357     }
7358   }
7359 #pragma omp atomic compare capture seq_cst
7360   {
7361     lr = lx == le;
7362     if (lr) {
7363       lx = ld;
7364     } else {
7365       lv = lx;
7366     }
7367   }
7368 #pragma omp atomic compare capture seq_cst
7369   {
7370     lr = le == lx;
7371     if (lr) {
7372       lx = ld;
7373     } else {
7374       lv = lx;
7375     }
7376   }
7377 
7378 #pragma omp atomic compare capture
7379   {
7380     ulv = ulx;
7381     if (ule > ulx) {
7382       ulx = ule;
7383     }
7384   }
7385 #pragma omp atomic compare capture
7386   {
7387     ulv = ulx;
7388     if (ulx > ule) {
7389       ulx = ule;
7390     }
7391   }
7392 #pragma omp atomic compare capture
7393   {
7394     ulv = ulx;
7395     if (ule < ulx) {
7396       ulx = ule;
7397     }
7398   }
7399 #pragma omp atomic compare capture
7400   {
7401     ulv = ulx;
7402     if (ulx < ule) {
7403       ulx = ule;
7404     }
7405   }
7406 #pragma omp atomic compare capture
7407   {
7408     ulv = ulx;
7409     if (ulx == ule) {
7410       ulx = uld;
7411     }
7412   }
7413 #pragma omp atomic compare capture
7414   {
7415     ulv = ulx;
7416     if (ule == ulx) {
7417       ulx = uld;
7418     }
7419   }
7420 #pragma omp atomic compare capture
7421   {
7422     if (ule > ulx) {
7423       ulx = ule;
7424     }
7425     ulv = ulx;
7426   }
7427 #pragma omp atomic compare capture
7428   {
7429     if (ulx > ule) {
7430       ulx = ule;
7431     }
7432     ulv = ulx;
7433   }
7434 #pragma omp atomic compare capture
7435   {
7436     if (ule < ulx) {
7437       ulx = ule;
7438     }
7439     ulv = ulx;
7440   }
7441 #pragma omp atomic compare capture
7442   {
7443     if (ulx < ule) {
7444       ulx = ule;
7445     }
7446     ulv = ulx;
7447   }
7448 #pragma omp atomic compare capture
7449   {
7450     if (ulx == ule) {
7451       ulx = uld;
7452     }
7453     ulv = ulx;
7454   }
7455 #pragma omp atomic compare capture
7456   {
7457     if (ule == ulx) {
7458       ulx = uld;
7459     }
7460     ulv = ulx;
7461   }
7462 #pragma omp atomic compare capture
7463   if (ulx == ule) {
7464     ulx = uld;
7465   } else {
7466     ulv = ulx;
7467   }
7468 #pragma omp atomic compare capture
7469   if (ule == ulx) {
7470     ulx = uld;
7471   } else {
7472     ulv = ulx;
7473   }
7474 #pragma omp atomic compare capture
7475   {
7476     ulr = ulx == ule;
7477     if (ulr) {
7478       ulx = uld;
7479     }
7480   }
7481 #pragma omp atomic compare capture
7482   {
7483     ulr = ule == ulx;
7484     if (ulr) {
7485       ulx = uld;
7486     }
7487   }
7488 #pragma omp atomic compare capture
7489   {
7490     ulr = ulx == ule;
7491     if (ulr) {
7492       ulx = uld;
7493     } else {
7494       ulv = ulx;
7495     }
7496   }
7497 #pragma omp atomic compare capture
7498   {
7499     ulr = ule == ulx;
7500     if (ulr) {
7501       ulx = uld;
7502     } else {
7503       ulv = ulx;
7504     }
7505   }
7506 
7507 #pragma omp atomic compare capture acq_rel
7508   {
7509     ulv = ulx;
7510     if (ule > ulx) {
7511       ulx = ule;
7512     }
7513   }
7514 #pragma omp atomic compare capture acq_rel
7515   {
7516     ulv = ulx;
7517     if (ulx > ule) {
7518       ulx = ule;
7519     }
7520   }
7521 #pragma omp atomic compare capture acq_rel
7522   {
7523     ulv = ulx;
7524     if (ule < ulx) {
7525       ulx = ule;
7526     }
7527   }
7528 #pragma omp atomic compare capture acq_rel
7529   {
7530     ulv = ulx;
7531     if (ulx < ule) {
7532       ulx = ule;
7533     }
7534   }
7535 #pragma omp atomic compare capture acq_rel
7536   {
7537     ulv = ulx;
7538     if (ulx == ule) {
7539       ulx = uld;
7540     }
7541   }
7542 #pragma omp atomic compare capture acq_rel
7543   {
7544     ulv = ulx;
7545     if (ule == ulx) {
7546       ulx = uld;
7547     }
7548   }
7549 #pragma omp atomic compare capture acq_rel
7550   {
7551     if (ule > ulx) {
7552       ulx = ule;
7553     }
7554     ulv = ulx;
7555   }
7556 #pragma omp atomic compare capture acq_rel
7557   {
7558     if (ulx > ule) {
7559       ulx = ule;
7560     }
7561     ulv = ulx;
7562   }
7563 #pragma omp atomic compare capture acq_rel
7564   {
7565     if (ule < ulx) {
7566       ulx = ule;
7567     }
7568     ulv = ulx;
7569   }
7570 #pragma omp atomic compare capture acq_rel
7571   {
7572     if (ulx < ule) {
7573       ulx = ule;
7574     }
7575     ulv = ulx;
7576   }
7577 #pragma omp atomic compare capture acq_rel
7578   {
7579     if (ulx == ule) {
7580       ulx = uld;
7581     }
7582     ulv = ulx;
7583   }
7584 #pragma omp atomic compare capture acq_rel
7585   {
7586     if (ule == ulx) {
7587       ulx = uld;
7588     }
7589     ulv = ulx;
7590   }
7591 #pragma omp atomic compare capture acq_rel
7592   if (ulx == ule) {
7593     ulx = uld;
7594   } else {
7595     ulv = ulx;
7596   }
7597 #pragma omp atomic compare capture acq_rel
7598   if (ule == ulx) {
7599     ulx = uld;
7600   } else {
7601     ulv = ulx;
7602   }
7603 #pragma omp atomic compare capture acq_rel
7604   {
7605     ulr = ulx == ule;
7606     if (ulr) {
7607       ulx = uld;
7608     }
7609   }
7610 #pragma omp atomic compare capture acq_rel
7611   {
7612     ulr = ule == ulx;
7613     if (ulr) {
7614       ulx = uld;
7615     }
7616   }
7617 #pragma omp atomic compare capture acq_rel
7618   {
7619     ulr = ulx == ule;
7620     if (ulr) {
7621       ulx = uld;
7622     } else {
7623       ulv = ulx;
7624     }
7625   }
7626 #pragma omp atomic compare capture acq_rel
7627   {
7628     ulr = ule == ulx;
7629     if (ulr) {
7630       ulx = uld;
7631     } else {
7632       ulv = ulx;
7633     }
7634   }
7635 
7636 #pragma omp atomic compare capture acquire
7637   {
7638     ulv = ulx;
7639     if (ule > ulx) {
7640       ulx = ule;
7641     }
7642   }
7643 #pragma omp atomic compare capture acquire
7644   {
7645     ulv = ulx;
7646     if (ulx > ule) {
7647       ulx = ule;
7648     }
7649   }
7650 #pragma omp atomic compare capture acquire
7651   {
7652     ulv = ulx;
7653     if (ule < ulx) {
7654       ulx = ule;
7655     }
7656   }
7657 #pragma omp atomic compare capture acquire
7658   {
7659     ulv = ulx;
7660     if (ulx < ule) {
7661       ulx = ule;
7662     }
7663   }
7664 #pragma omp atomic compare capture acquire
7665   {
7666     ulv = ulx;
7667     if (ulx == ule) {
7668       ulx = uld;
7669     }
7670   }
7671 #pragma omp atomic compare capture acquire
7672   {
7673     ulv = ulx;
7674     if (ule == ulx) {
7675       ulx = uld;
7676     }
7677   }
7678 #pragma omp atomic compare capture acquire
7679   {
7680     if (ule > ulx) {
7681       ulx = ule;
7682     }
7683     ulv = ulx;
7684   }
7685 #pragma omp atomic compare capture acquire
7686   {
7687     if (ulx > ule) {
7688       ulx = ule;
7689     }
7690     ulv = ulx;
7691   }
7692 #pragma omp atomic compare capture acquire
7693   {
7694     if (ule < ulx) {
7695       ulx = ule;
7696     }
7697     ulv = ulx;
7698   }
7699 #pragma omp atomic compare capture acquire
7700   {
7701     if (ulx < ule) {
7702       ulx = ule;
7703     }
7704     ulv = ulx;
7705   }
7706 #pragma omp atomic compare capture acquire
7707   {
7708     if (ulx == ule) {
7709       ulx = uld;
7710     }
7711     ulv = ulx;
7712   }
7713 #pragma omp atomic compare capture acquire
7714   {
7715     if (ule == ulx) {
7716       ulx = uld;
7717     }
7718     ulv = ulx;
7719   }
7720 #pragma omp atomic compare capture acquire
7721   if (ulx == ule) {
7722     ulx = uld;
7723   } else {
7724     ulv = ulx;
7725   }
7726 #pragma omp atomic compare capture acquire
7727   if (ule == ulx) {
7728     ulx = uld;
7729   } else {
7730     ulv = ulx;
7731   }
7732 #pragma omp atomic compare capture acquire
7733   {
7734     ulr = ulx == ule;
7735     if (ulr) {
7736       ulx = uld;
7737     }
7738   }
7739 #pragma omp atomic compare capture acquire
7740   {
7741     ulr = ule == ulx;
7742     if (ulr) {
7743       ulx = uld;
7744     }
7745   }
7746 #pragma omp atomic compare capture acquire
7747   {
7748     ulr = ulx == ule;
7749     if (ulr) {
7750       ulx = uld;
7751     } else {
7752       ulv = ulx;
7753     }
7754   }
7755 #pragma omp atomic compare capture acquire
7756   {
7757     ulr = ule == ulx;
7758     if (ulr) {
7759       ulx = uld;
7760     } else {
7761       ulv = ulx;
7762     }
7763   }
7764 
7765 #pragma omp atomic compare capture relaxed
7766   {
7767     ulv = ulx;
7768     if (ule > ulx) {
7769       ulx = ule;
7770     }
7771   }
7772 #pragma omp atomic compare capture relaxed
7773   {
7774     ulv = ulx;
7775     if (ulx > ule) {
7776       ulx = ule;
7777     }
7778   }
7779 #pragma omp atomic compare capture relaxed
7780   {
7781     ulv = ulx;
7782     if (ule < ulx) {
7783       ulx = ule;
7784     }
7785   }
7786 #pragma omp atomic compare capture relaxed
7787   {
7788     ulv = ulx;
7789     if (ulx < ule) {
7790       ulx = ule;
7791     }
7792   }
7793 #pragma omp atomic compare capture relaxed
7794   {
7795     ulv = ulx;
7796     if (ulx == ule) {
7797       ulx = uld;
7798     }
7799   }
7800 #pragma omp atomic compare capture relaxed
7801   {
7802     ulv = ulx;
7803     if (ule == ulx) {
7804       ulx = uld;
7805     }
7806   }
7807 #pragma omp atomic compare capture relaxed
7808   {
7809     if (ule > ulx) {
7810       ulx = ule;
7811     }
7812     ulv = ulx;
7813   }
7814 #pragma omp atomic compare capture relaxed
7815   {
7816     if (ulx > ule) {
7817       ulx = ule;
7818     }
7819     ulv = ulx;
7820   }
7821 #pragma omp atomic compare capture relaxed
7822   {
7823     if (ule < ulx) {
7824       ulx = ule;
7825     }
7826     ulv = ulx;
7827   }
7828 #pragma omp atomic compare capture relaxed
7829   {
7830     if (ulx < ule) {
7831       ulx = ule;
7832     }
7833     ulv = ulx;
7834   }
7835 #pragma omp atomic compare capture relaxed
7836   {
7837     if (ulx == ule) {
7838       ulx = uld;
7839     }
7840     ulv = ulx;
7841   }
7842 #pragma omp atomic compare capture relaxed
7843   {
7844     if (ule == ulx) {
7845       ulx = uld;
7846     }
7847     ulv = ulx;
7848   }
7849 #pragma omp atomic compare capture relaxed
7850   if (ulx == ule) {
7851     ulx = uld;
7852   } else {
7853     ulv = ulx;
7854   }
7855 #pragma omp atomic compare capture relaxed
7856   if (ule == ulx) {
7857     ulx = uld;
7858   } else {
7859     ulv = ulx;
7860   }
7861 #pragma omp atomic compare capture relaxed
7862   {
7863     ulr = ulx == ule;
7864     if (ulr) {
7865       ulx = uld;
7866     }
7867   }
7868 #pragma omp atomic compare capture relaxed
7869   {
7870     ulr = ule == ulx;
7871     if (ulr) {
7872       ulx = uld;
7873     }
7874   }
7875 #pragma omp atomic compare capture relaxed
7876   {
7877     ulr = ulx == ule;
7878     if (ulr) {
7879       ulx = uld;
7880     } else {
7881       ulv = ulx;
7882     }
7883   }
7884 #pragma omp atomic compare capture relaxed
7885   {
7886     ulr = ule == ulx;
7887     if (ulr) {
7888       ulx = uld;
7889     } else {
7890       ulv = ulx;
7891     }
7892   }
7893 
7894 #pragma omp atomic compare capture release
7895   {
7896     ulv = ulx;
7897     if (ule > ulx) {
7898       ulx = ule;
7899     }
7900   }
7901 #pragma omp atomic compare capture release
7902   {
7903     ulv = ulx;
7904     if (ulx > ule) {
7905       ulx = ule;
7906     }
7907   }
7908 #pragma omp atomic compare capture release
7909   {
7910     ulv = ulx;
7911     if (ule < ulx) {
7912       ulx = ule;
7913     }
7914   }
7915 #pragma omp atomic compare capture release
7916   {
7917     ulv = ulx;
7918     if (ulx < ule) {
7919       ulx = ule;
7920     }
7921   }
7922 #pragma omp atomic compare capture release
7923   {
7924     ulv = ulx;
7925     if (ulx == ule) {
7926       ulx = uld;
7927     }
7928   }
7929 #pragma omp atomic compare capture release
7930   {
7931     ulv = ulx;
7932     if (ule == ulx) {
7933       ulx = uld;
7934     }
7935   }
7936 #pragma omp atomic compare capture release
7937   {
7938     if (ule > ulx) {
7939       ulx = ule;
7940     }
7941     ulv = ulx;
7942   }
7943 #pragma omp atomic compare capture release
7944   {
7945     if (ulx > ule) {
7946       ulx = ule;
7947     }
7948     ulv = ulx;
7949   }
7950 #pragma omp atomic compare capture release
7951   {
7952     if (ule < ulx) {
7953       ulx = ule;
7954     }
7955     ulv = ulx;
7956   }
7957 #pragma omp atomic compare capture release
7958   {
7959     if (ulx < ule) {
7960       ulx = ule;
7961     }
7962     ulv = ulx;
7963   }
7964 #pragma omp atomic compare capture release
7965   {
7966     if (ulx == ule) {
7967       ulx = uld;
7968     }
7969     ulv = ulx;
7970   }
7971 #pragma omp atomic compare capture release
7972   {
7973     if (ule == ulx) {
7974       ulx = uld;
7975     }
7976     ulv = ulx;
7977   }
7978 #pragma omp atomic compare capture release
7979   if (ulx == ule) {
7980     ulx = uld;
7981   } else {
7982     ulv = ulx;
7983   }
7984 #pragma omp atomic compare capture release
7985   if (ule == ulx) {
7986     ulx = uld;
7987   } else {
7988     ulv = ulx;
7989   }
7990 #pragma omp atomic compare capture release
7991   {
7992     ulr = ulx == ule;
7993     if (ulr) {
7994       ulx = uld;
7995     }
7996   }
7997 #pragma omp atomic compare capture release
7998   {
7999     ulr = ule == ulx;
8000     if (ulr) {
8001       ulx = uld;
8002     }
8003   }
8004 #pragma omp atomic compare capture release
8005   {
8006     ulr = ulx == ule;
8007     if (ulr) {
8008       ulx = uld;
8009     } else {
8010       ulv = ulx;
8011     }
8012   }
8013 #pragma omp atomic compare capture release
8014   {
8015     ulr = ule == ulx;
8016     if (ulr) {
8017       ulx = uld;
8018     } else {
8019       ulv = ulx;
8020     }
8021   }
8022 
8023 #pragma omp atomic compare capture seq_cst
8024   {
8025     ulv = ulx;
8026     if (ule > ulx) {
8027       ulx = ule;
8028     }
8029   }
8030 #pragma omp atomic compare capture seq_cst
8031   {
8032     ulv = ulx;
8033     if (ulx > ule) {
8034       ulx = ule;
8035     }
8036   }
8037 #pragma omp atomic compare capture seq_cst
8038   {
8039     ulv = ulx;
8040     if (ule < ulx) {
8041       ulx = ule;
8042     }
8043   }
8044 #pragma omp atomic compare capture seq_cst
8045   {
8046     ulv = ulx;
8047     if (ulx < ule) {
8048       ulx = ule;
8049     }
8050   }
8051 #pragma omp atomic compare capture seq_cst
8052   {
8053     ulv = ulx;
8054     if (ulx == ule) {
8055       ulx = uld;
8056     }
8057   }
8058 #pragma omp atomic compare capture seq_cst
8059   {
8060     ulv = ulx;
8061     if (ule == ulx) {
8062       ulx = uld;
8063     }
8064   }
8065 #pragma omp atomic compare capture seq_cst
8066   {
8067     if (ule > ulx) {
8068       ulx = ule;
8069     }
8070     ulv = ulx;
8071   }
8072 #pragma omp atomic compare capture seq_cst
8073   {
8074     if (ulx > ule) {
8075       ulx = ule;
8076     }
8077     ulv = ulx;
8078   }
8079 #pragma omp atomic compare capture seq_cst
8080   {
8081     if (ule < ulx) {
8082       ulx = ule;
8083     }
8084     ulv = ulx;
8085   }
8086 #pragma omp atomic compare capture seq_cst
8087   {
8088     if (ulx < ule) {
8089       ulx = ule;
8090     }
8091     ulv = ulx;
8092   }
8093 #pragma omp atomic compare capture seq_cst
8094   {
8095     if (ulx == ule) {
8096       ulx = uld;
8097     }
8098     ulv = ulx;
8099   }
8100 #pragma omp atomic compare capture seq_cst
8101   {
8102     if (ule == ulx) {
8103       ulx = uld;
8104     }
8105     ulv = ulx;
8106   }
8107 #pragma omp atomic compare capture seq_cst
8108   if (ulx == ule) {
8109     ulx = uld;
8110   } else {
8111     ulv = ulx;
8112   }
8113 #pragma omp atomic compare capture seq_cst
8114   if (ule == ulx) {
8115     ulx = uld;
8116   } else {
8117     ulv = ulx;
8118   }
8119 #pragma omp atomic compare capture seq_cst
8120   {
8121     ulr = ulx == ule;
8122     if (ulr) {
8123       ulx = uld;
8124     }
8125   }
8126 #pragma omp atomic compare capture seq_cst
8127   {
8128     ulr = ule == ulx;
8129     if (ulr) {
8130       ulx = uld;
8131     }
8132   }
8133 #pragma omp atomic compare capture seq_cst
8134   {
8135     ulr = ulx == ule;
8136     if (ulr) {
8137       ulx = uld;
8138     } else {
8139       ulv = ulx;
8140     }
8141   }
8142 #pragma omp atomic compare capture seq_cst
8143   {
8144     ulr = ule == ulx;
8145     if (ulr) {
8146       ulx = uld;
8147     } else {
8148       ulv = ulx;
8149     }
8150   }
8151 
8152 #pragma omp atomic compare capture
8153   {
8154     llv = llx;
8155     if (lle > llx) {
8156       llx = lle;
8157     }
8158   }
8159 #pragma omp atomic compare capture
8160   {
8161     llv = llx;
8162     if (llx > lle) {
8163       llx = lle;
8164     }
8165   }
8166 #pragma omp atomic compare capture
8167   {
8168     llv = llx;
8169     if (lle < llx) {
8170       llx = lle;
8171     }
8172   }
8173 #pragma omp atomic compare capture
8174   {
8175     llv = llx;
8176     if (llx < lle) {
8177       llx = lle;
8178     }
8179   }
8180 #pragma omp atomic compare capture
8181   {
8182     llv = llx;
8183     if (llx == lle) {
8184       llx = lld;
8185     }
8186   }
8187 #pragma omp atomic compare capture
8188   {
8189     llv = llx;
8190     if (lle == llx) {
8191       llx = lld;
8192     }
8193   }
8194 #pragma omp atomic compare capture
8195   {
8196     if (lle > llx) {
8197       llx = lle;
8198     }
8199     llv = llx;
8200   }
8201 #pragma omp atomic compare capture
8202   {
8203     if (llx > lle) {
8204       llx = lle;
8205     }
8206     llv = llx;
8207   }
8208 #pragma omp atomic compare capture
8209   {
8210     if (lle < llx) {
8211       llx = lle;
8212     }
8213     llv = llx;
8214   }
8215 #pragma omp atomic compare capture
8216   {
8217     if (llx < lle) {
8218       llx = lle;
8219     }
8220     llv = llx;
8221   }
8222 #pragma omp atomic compare capture
8223   {
8224     if (llx == lle) {
8225       llx = lld;
8226     }
8227     llv = llx;
8228   }
8229 #pragma omp atomic compare capture
8230   {
8231     if (lle == llx) {
8232       llx = lld;
8233     }
8234     llv = llx;
8235   }
8236 #pragma omp atomic compare capture
8237   if (llx == lle) {
8238     llx = lld;
8239   } else {
8240     llv = llx;
8241   }
8242 #pragma omp atomic compare capture
8243   if (lle == llx) {
8244     llx = lld;
8245   } else {
8246     llv = llx;
8247   }
8248 #pragma omp atomic compare capture
8249   {
8250     llr = llx == lle;
8251     if (llr) {
8252       llx = lld;
8253     }
8254   }
8255 #pragma omp atomic compare capture
8256   {
8257     llr = lle == llx;
8258     if (llr) {
8259       llx = lld;
8260     }
8261   }
8262 #pragma omp atomic compare capture
8263   {
8264     llr = llx == lle;
8265     if (llr) {
8266       llx = lld;
8267     } else {
8268       llv = llx;
8269     }
8270   }
8271 #pragma omp atomic compare capture
8272   {
8273     llr = lle == llx;
8274     if (llr) {
8275       llx = lld;
8276     } else {
8277       llv = llx;
8278     }
8279   }
8280 
8281 #pragma omp atomic compare capture acq_rel
8282   {
8283     llv = llx;
8284     if (lle > llx) {
8285       llx = lle;
8286     }
8287   }
8288 #pragma omp atomic compare capture acq_rel
8289   {
8290     llv = llx;
8291     if (llx > lle) {
8292       llx = lle;
8293     }
8294   }
8295 #pragma omp atomic compare capture acq_rel
8296   {
8297     llv = llx;
8298     if (lle < llx) {
8299       llx = lle;
8300     }
8301   }
8302 #pragma omp atomic compare capture acq_rel
8303   {
8304     llv = llx;
8305     if (llx < lle) {
8306       llx = lle;
8307     }
8308   }
8309 #pragma omp atomic compare capture acq_rel
8310   {
8311     llv = llx;
8312     if (llx == lle) {
8313       llx = lld;
8314     }
8315   }
8316 #pragma omp atomic compare capture acq_rel
8317   {
8318     llv = llx;
8319     if (lle == llx) {
8320       llx = lld;
8321     }
8322   }
8323 #pragma omp atomic compare capture acq_rel
8324   {
8325     if (lle > llx) {
8326       llx = lle;
8327     }
8328     llv = llx;
8329   }
8330 #pragma omp atomic compare capture acq_rel
8331   {
8332     if (llx > lle) {
8333       llx = lle;
8334     }
8335     llv = llx;
8336   }
8337 #pragma omp atomic compare capture acq_rel
8338   {
8339     if (lle < llx) {
8340       llx = lle;
8341     }
8342     llv = llx;
8343   }
8344 #pragma omp atomic compare capture acq_rel
8345   {
8346     if (llx < lle) {
8347       llx = lle;
8348     }
8349     llv = llx;
8350   }
8351 #pragma omp atomic compare capture acq_rel
8352   {
8353     if (llx == lle) {
8354       llx = lld;
8355     }
8356     llv = llx;
8357   }
8358 #pragma omp atomic compare capture acq_rel
8359   {
8360     if (lle == llx) {
8361       llx = lld;
8362     }
8363     llv = llx;
8364   }
8365 #pragma omp atomic compare capture acq_rel
8366   if (llx == lle) {
8367     llx = lld;
8368   } else {
8369     llv = llx;
8370   }
8371 #pragma omp atomic compare capture acq_rel
8372   if (lle == llx) {
8373     llx = lld;
8374   } else {
8375     llv = llx;
8376   }
8377 #pragma omp atomic compare capture acq_rel
8378   {
8379     llr = llx == lle;
8380     if (llr) {
8381       llx = lld;
8382     }
8383   }
8384 #pragma omp atomic compare capture acq_rel
8385   {
8386     llr = lle == llx;
8387     if (llr) {
8388       llx = lld;
8389     }
8390   }
8391 #pragma omp atomic compare capture acq_rel
8392   {
8393     llr = llx == lle;
8394     if (llr) {
8395       llx = lld;
8396     } else {
8397       llv = llx;
8398     }
8399   }
8400 #pragma omp atomic compare capture acq_rel
8401   {
8402     llr = lle == llx;
8403     if (llr) {
8404       llx = lld;
8405     } else {
8406       llv = llx;
8407     }
8408   }
8409 
8410 #pragma omp atomic compare capture acquire
8411   {
8412     llv = llx;
8413     if (lle > llx) {
8414       llx = lle;
8415     }
8416   }
8417 #pragma omp atomic compare capture acquire
8418   {
8419     llv = llx;
8420     if (llx > lle) {
8421       llx = lle;
8422     }
8423   }
8424 #pragma omp atomic compare capture acquire
8425   {
8426     llv = llx;
8427     if (lle < llx) {
8428       llx = lle;
8429     }
8430   }
8431 #pragma omp atomic compare capture acquire
8432   {
8433     llv = llx;
8434     if (llx < lle) {
8435       llx = lle;
8436     }
8437   }
8438 #pragma omp atomic compare capture acquire
8439   {
8440     llv = llx;
8441     if (llx == lle) {
8442       llx = lld;
8443     }
8444   }
8445 #pragma omp atomic compare capture acquire
8446   {
8447     llv = llx;
8448     if (lle == llx) {
8449       llx = lld;
8450     }
8451   }
8452 #pragma omp atomic compare capture acquire
8453   {
8454     if (lle > llx) {
8455       llx = lle;
8456     }
8457     llv = llx;
8458   }
8459 #pragma omp atomic compare capture acquire
8460   {
8461     if (llx > lle) {
8462       llx = lle;
8463     }
8464     llv = llx;
8465   }
8466 #pragma omp atomic compare capture acquire
8467   {
8468     if (lle < llx) {
8469       llx = lle;
8470     }
8471     llv = llx;
8472   }
8473 #pragma omp atomic compare capture acquire
8474   {
8475     if (llx < lle) {
8476       llx = lle;
8477     }
8478     llv = llx;
8479   }
8480 #pragma omp atomic compare capture acquire
8481   {
8482     if (llx == lle) {
8483       llx = lld;
8484     }
8485     llv = llx;
8486   }
8487 #pragma omp atomic compare capture acquire
8488   {
8489     if (lle == llx) {
8490       llx = lld;
8491     }
8492     llv = llx;
8493   }
8494 #pragma omp atomic compare capture acquire
8495   if (llx == lle) {
8496     llx = lld;
8497   } else {
8498     llv = llx;
8499   }
8500 #pragma omp atomic compare capture acquire
8501   if (lle == llx) {
8502     llx = lld;
8503   } else {
8504     llv = llx;
8505   }
8506 #pragma omp atomic compare capture acquire
8507   {
8508     llr = llx == lle;
8509     if (llr) {
8510       llx = lld;
8511     }
8512   }
8513 #pragma omp atomic compare capture acquire
8514   {
8515     llr = lle == llx;
8516     if (llr) {
8517       llx = lld;
8518     }
8519   }
8520 #pragma omp atomic compare capture acquire
8521   {
8522     llr = llx == lle;
8523     if (llr) {
8524       llx = lld;
8525     } else {
8526       llv = llx;
8527     }
8528   }
8529 #pragma omp atomic compare capture acquire
8530   {
8531     llr = lle == llx;
8532     if (llr) {
8533       llx = lld;
8534     } else {
8535       llv = llx;
8536     }
8537   }
8538 
8539 #pragma omp atomic compare capture relaxed
8540   {
8541     llv = llx;
8542     if (lle > llx) {
8543       llx = lle;
8544     }
8545   }
8546 #pragma omp atomic compare capture relaxed
8547   {
8548     llv = llx;
8549     if (llx > lle) {
8550       llx = lle;
8551     }
8552   }
8553 #pragma omp atomic compare capture relaxed
8554   {
8555     llv = llx;
8556     if (lle < llx) {
8557       llx = lle;
8558     }
8559   }
8560 #pragma omp atomic compare capture relaxed
8561   {
8562     llv = llx;
8563     if (llx < lle) {
8564       llx = lle;
8565     }
8566   }
8567 #pragma omp atomic compare capture relaxed
8568   {
8569     llv = llx;
8570     if (llx == lle) {
8571       llx = lld;
8572     }
8573   }
8574 #pragma omp atomic compare capture relaxed
8575   {
8576     llv = llx;
8577     if (lle == llx) {
8578       llx = lld;
8579     }
8580   }
8581 #pragma omp atomic compare capture relaxed
8582   {
8583     if (lle > llx) {
8584       llx = lle;
8585     }
8586     llv = llx;
8587   }
8588 #pragma omp atomic compare capture relaxed
8589   {
8590     if (llx > lle) {
8591       llx = lle;
8592     }
8593     llv = llx;
8594   }
8595 #pragma omp atomic compare capture relaxed
8596   {
8597     if (lle < llx) {
8598       llx = lle;
8599     }
8600     llv = llx;
8601   }
8602 #pragma omp atomic compare capture relaxed
8603   {
8604     if (llx < lle) {
8605       llx = lle;
8606     }
8607     llv = llx;
8608   }
8609 #pragma omp atomic compare capture relaxed
8610   {
8611     if (llx == lle) {
8612       llx = lld;
8613     }
8614     llv = llx;
8615   }
8616 #pragma omp atomic compare capture relaxed
8617   {
8618     if (lle == llx) {
8619       llx = lld;
8620     }
8621     llv = llx;
8622   }
8623 #pragma omp atomic compare capture relaxed
8624   if (llx == lle) {
8625     llx = lld;
8626   } else {
8627     llv = llx;
8628   }
8629 #pragma omp atomic compare capture relaxed
8630   if (lle == llx) {
8631     llx = lld;
8632   } else {
8633     llv = llx;
8634   }
8635 #pragma omp atomic compare capture relaxed
8636   {
8637     llr = llx == lle;
8638     if (llr) {
8639       llx = lld;
8640     }
8641   }
8642 #pragma omp atomic compare capture relaxed
8643   {
8644     llr = lle == llx;
8645     if (llr) {
8646       llx = lld;
8647     }
8648   }
8649 #pragma omp atomic compare capture relaxed
8650   {
8651     llr = llx == lle;
8652     if (llr) {
8653       llx = lld;
8654     } else {
8655       llv = llx;
8656     }
8657   }
8658 #pragma omp atomic compare capture relaxed
8659   {
8660     llr = lle == llx;
8661     if (llr) {
8662       llx = lld;
8663     } else {
8664       llv = llx;
8665     }
8666   }
8667 
8668 #pragma omp atomic compare capture release
8669   {
8670     llv = llx;
8671     if (lle > llx) {
8672       llx = lle;
8673     }
8674   }
8675 #pragma omp atomic compare capture release
8676   {
8677     llv = llx;
8678     if (llx > lle) {
8679       llx = lle;
8680     }
8681   }
8682 #pragma omp atomic compare capture release
8683   {
8684     llv = llx;
8685     if (lle < llx) {
8686       llx = lle;
8687     }
8688   }
8689 #pragma omp atomic compare capture release
8690   {
8691     llv = llx;
8692     if (llx < lle) {
8693       llx = lle;
8694     }
8695   }
8696 #pragma omp atomic compare capture release
8697   {
8698     llv = llx;
8699     if (llx == lle) {
8700       llx = lld;
8701     }
8702   }
8703 #pragma omp atomic compare capture release
8704   {
8705     llv = llx;
8706     if (lle == llx) {
8707       llx = lld;
8708     }
8709   }
8710 #pragma omp atomic compare capture release
8711   {
8712     if (lle > llx) {
8713       llx = lle;
8714     }
8715     llv = llx;
8716   }
8717 #pragma omp atomic compare capture release
8718   {
8719     if (llx > lle) {
8720       llx = lle;
8721     }
8722     llv = llx;
8723   }
8724 #pragma omp atomic compare capture release
8725   {
8726     if (lle < llx) {
8727       llx = lle;
8728     }
8729     llv = llx;
8730   }
8731 #pragma omp atomic compare capture release
8732   {
8733     if (llx < lle) {
8734       llx = lle;
8735     }
8736     llv = llx;
8737   }
8738 #pragma omp atomic compare capture release
8739   {
8740     if (llx == lle) {
8741       llx = lld;
8742     }
8743     llv = llx;
8744   }
8745 #pragma omp atomic compare capture release
8746   {
8747     if (lle == llx) {
8748       llx = lld;
8749     }
8750     llv = llx;
8751   }
8752 #pragma omp atomic compare capture release
8753   if (llx == lle) {
8754     llx = lld;
8755   } else {
8756     llv = llx;
8757   }
8758 #pragma omp atomic compare capture release
8759   if (lle == llx) {
8760     llx = lld;
8761   } else {
8762     llv = llx;
8763   }
8764 #pragma omp atomic compare capture release
8765   {
8766     llr = llx == lle;
8767     if (llr) {
8768       llx = lld;
8769     }
8770   }
8771 #pragma omp atomic compare capture release
8772   {
8773     llr = lle == llx;
8774     if (llr) {
8775       llx = lld;
8776     }
8777   }
8778 #pragma omp atomic compare capture release
8779   {
8780     llr = llx == lle;
8781     if (llr) {
8782       llx = lld;
8783     } else {
8784       llv = llx;
8785     }
8786   }
8787 #pragma omp atomic compare capture release
8788   {
8789     llr = lle == llx;
8790     if (llr) {
8791       llx = lld;
8792     } else {
8793       llv = llx;
8794     }
8795   }
8796 
8797 #pragma omp atomic compare capture seq_cst
8798   {
8799     llv = llx;
8800     if (lle > llx) {
8801       llx = lle;
8802     }
8803   }
8804 #pragma omp atomic compare capture seq_cst
8805   {
8806     llv = llx;
8807     if (llx > lle) {
8808       llx = lle;
8809     }
8810   }
8811 #pragma omp atomic compare capture seq_cst
8812   {
8813     llv = llx;
8814     if (lle < llx) {
8815       llx = lle;
8816     }
8817   }
8818 #pragma omp atomic compare capture seq_cst
8819   {
8820     llv = llx;
8821     if (llx < lle) {
8822       llx = lle;
8823     }
8824   }
8825 #pragma omp atomic compare capture seq_cst
8826   {
8827     llv = llx;
8828     if (llx == lle) {
8829       llx = lld;
8830     }
8831   }
8832 #pragma omp atomic compare capture seq_cst
8833   {
8834     llv = llx;
8835     if (lle == llx) {
8836       llx = lld;
8837     }
8838   }
8839 #pragma omp atomic compare capture seq_cst
8840   {
8841     if (lle > llx) {
8842       llx = lle;
8843     }
8844     llv = llx;
8845   }
8846 #pragma omp atomic compare capture seq_cst
8847   {
8848     if (llx > lle) {
8849       llx = lle;
8850     }
8851     llv = llx;
8852   }
8853 #pragma omp atomic compare capture seq_cst
8854   {
8855     if (lle < llx) {
8856       llx = lle;
8857     }
8858     llv = llx;
8859   }
8860 #pragma omp atomic compare capture seq_cst
8861   {
8862     if (llx < lle) {
8863       llx = lle;
8864     }
8865     llv = llx;
8866   }
8867 #pragma omp atomic compare capture seq_cst
8868   {
8869     if (llx == lle) {
8870       llx = lld;
8871     }
8872     llv = llx;
8873   }
8874 #pragma omp atomic compare capture seq_cst
8875   {
8876     if (lle == llx) {
8877       llx = lld;
8878     }
8879     llv = llx;
8880   }
8881 #pragma omp atomic compare capture seq_cst
8882   if (llx == lle) {
8883     llx = lld;
8884   } else {
8885     llv = llx;
8886   }
8887 #pragma omp atomic compare capture seq_cst
8888   if (lle == llx) {
8889     llx = lld;
8890   } else {
8891     llv = llx;
8892   }
8893 #pragma omp atomic compare capture seq_cst
8894   {
8895     llr = llx == lle;
8896     if (llr) {
8897       llx = lld;
8898     }
8899   }
8900 #pragma omp atomic compare capture seq_cst
8901   {
8902     llr = lle == llx;
8903     if (llr) {
8904       llx = lld;
8905     }
8906   }
8907 #pragma omp atomic compare capture seq_cst
8908   {
8909     llr = llx == lle;
8910     if (llr) {
8911       llx = lld;
8912     } else {
8913       llv = llx;
8914     }
8915   }
8916 #pragma omp atomic compare capture seq_cst
8917   {
8918     llr = lle == llx;
8919     if (llr) {
8920       llx = lld;
8921     } else {
8922       llv = llx;
8923     }
8924   }
8925 
8926 #pragma omp atomic compare capture
8927   {
8928     ullv = ullx;
8929     if (ulle > ullx) {
8930       ullx = ulle;
8931     }
8932   }
8933 #pragma omp atomic compare capture
8934   {
8935     ullv = ullx;
8936     if (ullx > ulle) {
8937       ullx = ulle;
8938     }
8939   }
8940 #pragma omp atomic compare capture
8941   {
8942     ullv = ullx;
8943     if (ulle < ullx) {
8944       ullx = ulle;
8945     }
8946   }
8947 #pragma omp atomic compare capture
8948   {
8949     ullv = ullx;
8950     if (ullx < ulle) {
8951       ullx = ulle;
8952     }
8953   }
8954 #pragma omp atomic compare capture
8955   {
8956     ullv = ullx;
8957     if (ullx == ulle) {
8958       ullx = ulld;
8959     }
8960   }
8961 #pragma omp atomic compare capture
8962   {
8963     ullv = ullx;
8964     if (ulle == ullx) {
8965       ullx = ulld;
8966     }
8967   }
8968 #pragma omp atomic compare capture
8969   {
8970     if (ulle > ullx) {
8971       ullx = ulle;
8972     }
8973     ullv = ullx;
8974   }
8975 #pragma omp atomic compare capture
8976   {
8977     if (ullx > ulle) {
8978       ullx = ulle;
8979     }
8980     ullv = ullx;
8981   }
8982 #pragma omp atomic compare capture
8983   {
8984     if (ulle < ullx) {
8985       ullx = ulle;
8986     }
8987     ullv = ullx;
8988   }
8989 #pragma omp atomic compare capture
8990   {
8991     if (ullx < ulle) {
8992       ullx = ulle;
8993     }
8994     ullv = ullx;
8995   }
8996 #pragma omp atomic compare capture
8997   {
8998     if (ullx == ulle) {
8999       ullx = ulld;
9000     }
9001     ullv = ullx;
9002   }
9003 #pragma omp atomic compare capture
9004   {
9005     if (ulle == ullx) {
9006       ullx = ulld;
9007     }
9008     ullv = ullx;
9009   }
9010 #pragma omp atomic compare capture
9011   if (ullx == ulle) {
9012     ullx = ulld;
9013   } else {
9014     ullv = ullx;
9015   }
9016 #pragma omp atomic compare capture
9017   if (ulle == ullx) {
9018     ullx = ulld;
9019   } else {
9020     ullv = ullx;
9021   }
9022 #pragma omp atomic compare capture
9023   {
9024     ullr = ullx == ulle;
9025     if (ullr) {
9026       ullx = ulld;
9027     }
9028   }
9029 #pragma omp atomic compare capture
9030   {
9031     ullr = ulle == ullx;
9032     if (ullr) {
9033       ullx = ulld;
9034     }
9035   }
9036 #pragma omp atomic compare capture
9037   {
9038     ullr = ullx == ulle;
9039     if (ullr) {
9040       ullx = ulld;
9041     } else {
9042       ullv = ullx;
9043     }
9044   }
9045 #pragma omp atomic compare capture
9046   {
9047     ullr = ulle == ullx;
9048     if (ullr) {
9049       ullx = ulld;
9050     } else {
9051       ullv = ullx;
9052     }
9053   }
9054 
9055 #pragma omp atomic compare capture acq_rel
9056   {
9057     ullv = ullx;
9058     if (ulle > ullx) {
9059       ullx = ulle;
9060     }
9061   }
9062 #pragma omp atomic compare capture acq_rel
9063   {
9064     ullv = ullx;
9065     if (ullx > ulle) {
9066       ullx = ulle;
9067     }
9068   }
9069 #pragma omp atomic compare capture acq_rel
9070   {
9071     ullv = ullx;
9072     if (ulle < ullx) {
9073       ullx = ulle;
9074     }
9075   }
9076 #pragma omp atomic compare capture acq_rel
9077   {
9078     ullv = ullx;
9079     if (ullx < ulle) {
9080       ullx = ulle;
9081     }
9082   }
9083 #pragma omp atomic compare capture acq_rel
9084   {
9085     ullv = ullx;
9086     if (ullx == ulle) {
9087       ullx = ulld;
9088     }
9089   }
9090 #pragma omp atomic compare capture acq_rel
9091   {
9092     ullv = ullx;
9093     if (ulle == ullx) {
9094       ullx = ulld;
9095     }
9096   }
9097 #pragma omp atomic compare capture acq_rel
9098   {
9099     if (ulle > ullx) {
9100       ullx = ulle;
9101     }
9102     ullv = ullx;
9103   }
9104 #pragma omp atomic compare capture acq_rel
9105   {
9106     if (ullx > ulle) {
9107       ullx = ulle;
9108     }
9109     ullv = ullx;
9110   }
9111 #pragma omp atomic compare capture acq_rel
9112   {
9113     if (ulle < ullx) {
9114       ullx = ulle;
9115     }
9116     ullv = ullx;
9117   }
9118 #pragma omp atomic compare capture acq_rel
9119   {
9120     if (ullx < ulle) {
9121       ullx = ulle;
9122     }
9123     ullv = ullx;
9124   }
9125 #pragma omp atomic compare capture acq_rel
9126   {
9127     if (ullx == ulle) {
9128       ullx = ulld;
9129     }
9130     ullv = ullx;
9131   }
9132 #pragma omp atomic compare capture acq_rel
9133   {
9134     if (ulle == ullx) {
9135       ullx = ulld;
9136     }
9137     ullv = ullx;
9138   }
9139 #pragma omp atomic compare capture acq_rel
9140   if (ullx == ulle) {
9141     ullx = ulld;
9142   } else {
9143     ullv = ullx;
9144   }
9145 #pragma omp atomic compare capture acq_rel
9146   if (ulle == ullx) {
9147     ullx = ulld;
9148   } else {
9149     ullv = ullx;
9150   }
9151 #pragma omp atomic compare capture acq_rel
9152   {
9153     ullr = ullx == ulle;
9154     if (ullr) {
9155       ullx = ulld;
9156     }
9157   }
9158 #pragma omp atomic compare capture acq_rel
9159   {
9160     ullr = ulle == ullx;
9161     if (ullr) {
9162       ullx = ulld;
9163     }
9164   }
9165 #pragma omp atomic compare capture acq_rel
9166   {
9167     ullr = ullx == ulle;
9168     if (ullr) {
9169       ullx = ulld;
9170     } else {
9171       ullv = ullx;
9172     }
9173   }
9174 #pragma omp atomic compare capture acq_rel
9175   {
9176     ullr = ulle == ullx;
9177     if (ullr) {
9178       ullx = ulld;
9179     } else {
9180       ullv = ullx;
9181     }
9182   }
9183 
9184 #pragma omp atomic compare capture acquire
9185   {
9186     ullv = ullx;
9187     if (ulle > ullx) {
9188       ullx = ulle;
9189     }
9190   }
9191 #pragma omp atomic compare capture acquire
9192   {
9193     ullv = ullx;
9194     if (ullx > ulle) {
9195       ullx = ulle;
9196     }
9197   }
9198 #pragma omp atomic compare capture acquire
9199   {
9200     ullv = ullx;
9201     if (ulle < ullx) {
9202       ullx = ulle;
9203     }
9204   }
9205 #pragma omp atomic compare capture acquire
9206   {
9207     ullv = ullx;
9208     if (ullx < ulle) {
9209       ullx = ulle;
9210     }
9211   }
9212 #pragma omp atomic compare capture acquire
9213   {
9214     ullv = ullx;
9215     if (ullx == ulle) {
9216       ullx = ulld;
9217     }
9218   }
9219 #pragma omp atomic compare capture acquire
9220   {
9221     ullv = ullx;
9222     if (ulle == ullx) {
9223       ullx = ulld;
9224     }
9225   }
9226 #pragma omp atomic compare capture acquire
9227   {
9228     if (ulle > ullx) {
9229       ullx = ulle;
9230     }
9231     ullv = ullx;
9232   }
9233 #pragma omp atomic compare capture acquire
9234   {
9235     if (ullx > ulle) {
9236       ullx = ulle;
9237     }
9238     ullv = ullx;
9239   }
9240 #pragma omp atomic compare capture acquire
9241   {
9242     if (ulle < ullx) {
9243       ullx = ulle;
9244     }
9245     ullv = ullx;
9246   }
9247 #pragma omp atomic compare capture acquire
9248   {
9249     if (ullx < ulle) {
9250       ullx = ulle;
9251     }
9252     ullv = ullx;
9253   }
9254 #pragma omp atomic compare capture acquire
9255   {
9256     if (ullx == ulle) {
9257       ullx = ulld;
9258     }
9259     ullv = ullx;
9260   }
9261 #pragma omp atomic compare capture acquire
9262   {
9263     if (ulle == ullx) {
9264       ullx = ulld;
9265     }
9266     ullv = ullx;
9267   }
9268 #pragma omp atomic compare capture acquire
9269   if (ullx == ulle) {
9270     ullx = ulld;
9271   } else {
9272     ullv = ullx;
9273   }
9274 #pragma omp atomic compare capture acquire
9275   if (ulle == ullx) {
9276     ullx = ulld;
9277   } else {
9278     ullv = ullx;
9279   }
9280 #pragma omp atomic compare capture acquire
9281   {
9282     ullr = ullx == ulle;
9283     if (ullr) {
9284       ullx = ulld;
9285     }
9286   }
9287 #pragma omp atomic compare capture acquire
9288   {
9289     ullr = ulle == ullx;
9290     if (ullr) {
9291       ullx = ulld;
9292     }
9293   }
9294 #pragma omp atomic compare capture acquire
9295   {
9296     ullr = ullx == ulle;
9297     if (ullr) {
9298       ullx = ulld;
9299     } else {
9300       ullv = ullx;
9301     }
9302   }
9303 #pragma omp atomic compare capture acquire
9304   {
9305     ullr = ulle == ullx;
9306     if (ullr) {
9307       ullx = ulld;
9308     } else {
9309       ullv = ullx;
9310     }
9311   }
9312 
9313 #pragma omp atomic compare capture relaxed
9314   {
9315     ullv = ullx;
9316     if (ulle > ullx) {
9317       ullx = ulle;
9318     }
9319   }
9320 #pragma omp atomic compare capture relaxed
9321   {
9322     ullv = ullx;
9323     if (ullx > ulle) {
9324       ullx = ulle;
9325     }
9326   }
9327 #pragma omp atomic compare capture relaxed
9328   {
9329     ullv = ullx;
9330     if (ulle < ullx) {
9331       ullx = ulle;
9332     }
9333   }
9334 #pragma omp atomic compare capture relaxed
9335   {
9336     ullv = ullx;
9337     if (ullx < ulle) {
9338       ullx = ulle;
9339     }
9340   }
9341 #pragma omp atomic compare capture relaxed
9342   {
9343     ullv = ullx;
9344     if (ullx == ulle) {
9345       ullx = ulld;
9346     }
9347   }
9348 #pragma omp atomic compare capture relaxed
9349   {
9350     ullv = ullx;
9351     if (ulle == ullx) {
9352       ullx = ulld;
9353     }
9354   }
9355 #pragma omp atomic compare capture relaxed
9356   {
9357     if (ulle > ullx) {
9358       ullx = ulle;
9359     }
9360     ullv = ullx;
9361   }
9362 #pragma omp atomic compare capture relaxed
9363   {
9364     if (ullx > ulle) {
9365       ullx = ulle;
9366     }
9367     ullv = ullx;
9368   }
9369 #pragma omp atomic compare capture relaxed
9370   {
9371     if (ulle < ullx) {
9372       ullx = ulle;
9373     }
9374     ullv = ullx;
9375   }
9376 #pragma omp atomic compare capture relaxed
9377   {
9378     if (ullx < ulle) {
9379       ullx = ulle;
9380     }
9381     ullv = ullx;
9382   }
9383 #pragma omp atomic compare capture relaxed
9384   {
9385     if (ullx == ulle) {
9386       ullx = ulld;
9387     }
9388     ullv = ullx;
9389   }
9390 #pragma omp atomic compare capture relaxed
9391   {
9392     if (ulle == ullx) {
9393       ullx = ulld;
9394     }
9395     ullv = ullx;
9396   }
9397 #pragma omp atomic compare capture relaxed
9398   if (ullx == ulle) {
9399     ullx = ulld;
9400   } else {
9401     ullv = ullx;
9402   }
9403 #pragma omp atomic compare capture relaxed
9404   if (ulle == ullx) {
9405     ullx = ulld;
9406   } else {
9407     ullv = ullx;
9408   }
9409 #pragma omp atomic compare capture relaxed
9410   {
9411     ullr = ullx == ulle;
9412     if (ullr) {
9413       ullx = ulld;
9414     }
9415   }
9416 #pragma omp atomic compare capture relaxed
9417   {
9418     ullr = ulle == ullx;
9419     if (ullr) {
9420       ullx = ulld;
9421     }
9422   }
9423 #pragma omp atomic compare capture relaxed
9424   {
9425     ullr = ullx == ulle;
9426     if (ullr) {
9427       ullx = ulld;
9428     } else {
9429       ullv = ullx;
9430     }
9431   }
9432 #pragma omp atomic compare capture relaxed
9433   {
9434     ullr = ulle == ullx;
9435     if (ullr) {
9436       ullx = ulld;
9437     } else {
9438       ullv = ullx;
9439     }
9440   }
9441 
9442 #pragma omp atomic compare capture release
9443   {
9444     ullv = ullx;
9445     if (ulle > ullx) {
9446       ullx = ulle;
9447     }
9448   }
9449 #pragma omp atomic compare capture release
9450   {
9451     ullv = ullx;
9452     if (ullx > ulle) {
9453       ullx = ulle;
9454     }
9455   }
9456 #pragma omp atomic compare capture release
9457   {
9458     ullv = ullx;
9459     if (ulle < ullx) {
9460       ullx = ulle;
9461     }
9462   }
9463 #pragma omp atomic compare capture release
9464   {
9465     ullv = ullx;
9466     if (ullx < ulle) {
9467       ullx = ulle;
9468     }
9469   }
9470 #pragma omp atomic compare capture release
9471   {
9472     ullv = ullx;
9473     if (ullx == ulle) {
9474       ullx = ulld;
9475     }
9476   }
9477 #pragma omp atomic compare capture release
9478   {
9479     ullv = ullx;
9480     if (ulle == ullx) {
9481       ullx = ulld;
9482     }
9483   }
9484 #pragma omp atomic compare capture release
9485   {
9486     if (ulle > ullx) {
9487       ullx = ulle;
9488     }
9489     ullv = ullx;
9490   }
9491 #pragma omp atomic compare capture release
9492   {
9493     if (ullx > ulle) {
9494       ullx = ulle;
9495     }
9496     ullv = ullx;
9497   }
9498 #pragma omp atomic compare capture release
9499   {
9500     if (ulle < ullx) {
9501       ullx = ulle;
9502     }
9503     ullv = ullx;
9504   }
9505 #pragma omp atomic compare capture release
9506   {
9507     if (ullx < ulle) {
9508       ullx = ulle;
9509     }
9510     ullv = ullx;
9511   }
9512 #pragma omp atomic compare capture release
9513   {
9514     if (ullx == ulle) {
9515       ullx = ulld;
9516     }
9517     ullv = ullx;
9518   }
9519 #pragma omp atomic compare capture release
9520   {
9521     if (ulle == ullx) {
9522       ullx = ulld;
9523     }
9524     ullv = ullx;
9525   }
9526 #pragma omp atomic compare capture release
9527   if (ullx == ulle) {
9528     ullx = ulld;
9529   } else {
9530     ullv = ullx;
9531   }
9532 #pragma omp atomic compare capture release
9533   if (ulle == ullx) {
9534     ullx = ulld;
9535   } else {
9536     ullv = ullx;
9537   }
9538 #pragma omp atomic compare capture release
9539   {
9540     ullr = ullx == ulle;
9541     if (ullr) {
9542       ullx = ulld;
9543     }
9544   }
9545 #pragma omp atomic compare capture release
9546   {
9547     ullr = ulle == ullx;
9548     if (ullr) {
9549       ullx = ulld;
9550     }
9551   }
9552 #pragma omp atomic compare capture release
9553   {
9554     ullr = ullx == ulle;
9555     if (ullr) {
9556       ullx = ulld;
9557     } else {
9558       ullv = ullx;
9559     }
9560   }
9561 #pragma omp atomic compare capture release
9562   {
9563     ullr = ulle == ullx;
9564     if (ullr) {
9565       ullx = ulld;
9566     } else {
9567       ullv = ullx;
9568     }
9569   }
9570 
9571 #pragma omp atomic compare capture seq_cst
9572   {
9573     ullv = ullx;
9574     if (ulle > ullx) {
9575       ullx = ulle;
9576     }
9577   }
9578 #pragma omp atomic compare capture seq_cst
9579   {
9580     ullv = ullx;
9581     if (ullx > ulle) {
9582       ullx = ulle;
9583     }
9584   }
9585 #pragma omp atomic compare capture seq_cst
9586   {
9587     ullv = ullx;
9588     if (ulle < ullx) {
9589       ullx = ulle;
9590     }
9591   }
9592 #pragma omp atomic compare capture seq_cst
9593   {
9594     ullv = ullx;
9595     if (ullx < ulle) {
9596       ullx = ulle;
9597     }
9598   }
9599 #pragma omp atomic compare capture seq_cst
9600   {
9601     ullv = ullx;
9602     if (ullx == ulle) {
9603       ullx = ulld;
9604     }
9605   }
9606 #pragma omp atomic compare capture seq_cst
9607   {
9608     ullv = ullx;
9609     if (ulle == ullx) {
9610       ullx = ulld;
9611     }
9612   }
9613 #pragma omp atomic compare capture seq_cst
9614   {
9615     if (ulle > ullx) {
9616       ullx = ulle;
9617     }
9618     ullv = ullx;
9619   }
9620 #pragma omp atomic compare capture seq_cst
9621   {
9622     if (ullx > ulle) {
9623       ullx = ulle;
9624     }
9625     ullv = ullx;
9626   }
9627 #pragma omp atomic compare capture seq_cst
9628   {
9629     if (ulle < ullx) {
9630       ullx = ulle;
9631     }
9632     ullv = ullx;
9633   }
9634 #pragma omp atomic compare capture seq_cst
9635   {
9636     if (ullx < ulle) {
9637       ullx = ulle;
9638     }
9639     ullv = ullx;
9640   }
9641 #pragma omp atomic compare capture seq_cst
9642   {
9643     if (ullx == ulle) {
9644       ullx = ulld;
9645     }
9646     ullv = ullx;
9647   }
9648 #pragma omp atomic compare capture seq_cst
9649   {
9650     if (ulle == ullx) {
9651       ullx = ulld;
9652     }
9653     ullv = ullx;
9654   }
9655 #pragma omp atomic compare capture seq_cst
9656   if (ullx == ulle) {
9657     ullx = ulld;
9658   } else {
9659     ullv = ullx;
9660   }
9661 #pragma omp atomic compare capture seq_cst
9662   if (ulle == ullx) {
9663     ullx = ulld;
9664   } else {
9665     ullv = ullx;
9666   }
9667 #pragma omp atomic compare capture seq_cst
9668   {
9669     ullr = ullx == ulle;
9670     if (ullr) {
9671       ullx = ulld;
9672     }
9673   }
9674 #pragma omp atomic compare capture seq_cst
9675   {
9676     ullr = ulle == ullx;
9677     if (ullr) {
9678       ullx = ulld;
9679     }
9680   }
9681 #pragma omp atomic compare capture seq_cst
9682   {
9683     ullr = ullx == ulle;
9684     if (ullr) {
9685       ullx = ulld;
9686     } else {
9687       ullv = ullx;
9688     }
9689   }
9690 #pragma omp atomic compare capture seq_cst
9691   {
9692     ullr = ulle == ullx;
9693     if (ullr) {
9694       ullx = ulld;
9695     } else {
9696       ullv = ullx;
9697     }
9698   }
9699 }
9700 
9701 #endif
9702 // CHECK-LABEL: @foo(
9703 // CHECK-NEXT:  entry:
9704 // CHECK-NEXT:    [[CX:%.*]] = alloca i8, align 1
9705 // CHECK-NEXT:    [[CE:%.*]] = alloca i8, align 1
9706 // CHECK-NEXT:    [[CD:%.*]] = alloca i8, align 1
9707 // CHECK-NEXT:    [[UCX:%.*]] = alloca i8, align 1
9708 // CHECK-NEXT:    [[UCE:%.*]] = alloca i8, align 1
9709 // CHECK-NEXT:    [[UCD:%.*]] = alloca i8, align 1
9710 // CHECK-NEXT:    [[SX:%.*]] = alloca i16, align 2
9711 // CHECK-NEXT:    [[SE:%.*]] = alloca i16, align 2
9712 // CHECK-NEXT:    [[SD:%.*]] = alloca i16, align 2
9713 // CHECK-NEXT:    [[USX:%.*]] = alloca i16, align 2
9714 // CHECK-NEXT:    [[USE:%.*]] = alloca i16, align 2
9715 // CHECK-NEXT:    [[USD:%.*]] = alloca i16, align 2
9716 // CHECK-NEXT:    [[IX:%.*]] = alloca i32, align 4
9717 // CHECK-NEXT:    [[IE:%.*]] = alloca i32, align 4
9718 // CHECK-NEXT:    [[ID:%.*]] = alloca i32, align 4
9719 // CHECK-NEXT:    [[UIX:%.*]] = alloca i32, align 4
9720 // CHECK-NEXT:    [[UIE:%.*]] = alloca i32, align 4
9721 // CHECK-NEXT:    [[UID:%.*]] = alloca i32, align 4
9722 // CHECK-NEXT:    [[LX:%.*]] = alloca i64, align 8
9723 // CHECK-NEXT:    [[LE:%.*]] = alloca i64, align 8
9724 // CHECK-NEXT:    [[LD:%.*]] = alloca i64, align 8
9725 // CHECK-NEXT:    [[ULX:%.*]] = alloca i64, align 8
9726 // CHECK-NEXT:    [[ULE:%.*]] = alloca i64, align 8
9727 // CHECK-NEXT:    [[ULD:%.*]] = alloca i64, align 8
9728 // CHECK-NEXT:    [[LLX:%.*]] = alloca i64, align 8
9729 // CHECK-NEXT:    [[LLE:%.*]] = alloca i64, align 8
9730 // CHECK-NEXT:    [[LLD:%.*]] = alloca i64, align 8
9731 // CHECK-NEXT:    [[ULLX:%.*]] = alloca i64, align 8
9732 // CHECK-NEXT:    [[ULLE:%.*]] = alloca i64, align 8
9733 // CHECK-NEXT:    [[ULLD:%.*]] = alloca i64, align 8
9734 // CHECK-NEXT:    [[TMP0:%.*]] = load i8, i8* [[CE]], align 1
9735 // CHECK-NEXT:    [[TMP1:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP0]] monotonic, align 1
9736 // CHECK-NEXT:    [[TMP2:%.*]] = load i8, i8* [[CE]], align 1
9737 // CHECK-NEXT:    [[TMP3:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP2]] monotonic, align 1
9738 // CHECK-NEXT:    [[TMP4:%.*]] = load i8, i8* [[CE]], align 1
9739 // CHECK-NEXT:    [[TMP5:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP4]] monotonic, align 1
9740 // CHECK-NEXT:    [[TMP6:%.*]] = load i8, i8* [[CE]], align 1
9741 // CHECK-NEXT:    [[TMP7:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP6]] monotonic, align 1
9742 // CHECK-NEXT:    [[TMP8:%.*]] = load i8, i8* [[CE]], align 1
9743 // CHECK-NEXT:    [[TMP9:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP8]] monotonic, align 1
9744 // CHECK-NEXT:    [[TMP10:%.*]] = load i8, i8* [[CE]], align 1
9745 // CHECK-NEXT:    [[TMP11:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP10]] monotonic, align 1
9746 // CHECK-NEXT:    [[TMP12:%.*]] = load i8, i8* [[CE]], align 1
9747 // CHECK-NEXT:    [[TMP13:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP12]] monotonic, align 1
9748 // CHECK-NEXT:    [[TMP14:%.*]] = load i8, i8* [[CE]], align 1
9749 // CHECK-NEXT:    [[TMP15:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP14]] monotonic, align 1
9750 // CHECK-NEXT:    [[TMP16:%.*]] = load i8, i8* [[CE]], align 1
9751 // CHECK-NEXT:    [[TMP17:%.*]] = load i8, i8* [[CD]], align 1
9752 // CHECK-NEXT:    [[TMP18:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP16]], i8 [[TMP17]] monotonic monotonic, align 1
9753 // CHECK-NEXT:    [[TMP19:%.*]] = load i8, i8* [[CE]], align 1
9754 // CHECK-NEXT:    [[TMP20:%.*]] = load i8, i8* [[CD]], align 1
9755 // CHECK-NEXT:    [[TMP21:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP19]], i8 [[TMP20]] monotonic monotonic, align 1
9756 // CHECK-NEXT:    [[TMP22:%.*]] = load i8, i8* [[CE]], align 1
9757 // CHECK-NEXT:    [[TMP23:%.*]] = load i8, i8* [[CD]], align 1
9758 // CHECK-NEXT:    [[TMP24:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP22]], i8 [[TMP23]] monotonic monotonic, align 1
9759 // CHECK-NEXT:    [[TMP25:%.*]] = load i8, i8* [[CE]], align 1
9760 // CHECK-NEXT:    [[TMP26:%.*]] = load i8, i8* [[CD]], align 1
9761 // CHECK-NEXT:    [[TMP27:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP25]], i8 [[TMP26]] monotonic monotonic, align 1
9762 // CHECK-NEXT:    [[TMP28:%.*]] = load i8, i8* [[UCE]], align 1
9763 // CHECK-NEXT:    [[TMP29:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP28]] monotonic, align 1
9764 // CHECK-NEXT:    [[TMP30:%.*]] = load i8, i8* [[UCE]], align 1
9765 // CHECK-NEXT:    [[TMP31:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP30]] monotonic, align 1
9766 // CHECK-NEXT:    [[TMP32:%.*]] = load i8, i8* [[UCE]], align 1
9767 // CHECK-NEXT:    [[TMP33:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP32]] monotonic, align 1
9768 // CHECK-NEXT:    [[TMP34:%.*]] = load i8, i8* [[UCE]], align 1
9769 // CHECK-NEXT:    [[TMP35:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP34]] monotonic, align 1
9770 // CHECK-NEXT:    [[TMP36:%.*]] = load i8, i8* [[UCE]], align 1
9771 // CHECK-NEXT:    [[TMP37:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP36]] monotonic, align 1
9772 // CHECK-NEXT:    [[TMP38:%.*]] = load i8, i8* [[UCE]], align 1
9773 // CHECK-NEXT:    [[TMP39:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP38]] monotonic, align 1
9774 // CHECK-NEXT:    [[TMP40:%.*]] = load i8, i8* [[UCE]], align 1
9775 // CHECK-NEXT:    [[TMP41:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP40]] monotonic, align 1
9776 // CHECK-NEXT:    [[TMP42:%.*]] = load i8, i8* [[UCE]], align 1
9777 // CHECK-NEXT:    [[TMP43:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP42]] monotonic, align 1
9778 // CHECK-NEXT:    [[TMP44:%.*]] = load i8, i8* [[UCE]], align 1
9779 // CHECK-NEXT:    [[TMP45:%.*]] = load i8, i8* [[UCD]], align 1
9780 // CHECK-NEXT:    [[TMP46:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP44]], i8 [[TMP45]] monotonic monotonic, align 1
9781 // CHECK-NEXT:    [[TMP47:%.*]] = load i8, i8* [[UCE]], align 1
9782 // CHECK-NEXT:    [[TMP48:%.*]] = load i8, i8* [[UCD]], align 1
9783 // CHECK-NEXT:    [[TMP49:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP47]], i8 [[TMP48]] monotonic monotonic, align 1
9784 // CHECK-NEXT:    [[TMP50:%.*]] = load i8, i8* [[UCE]], align 1
9785 // CHECK-NEXT:    [[TMP51:%.*]] = load i8, i8* [[UCD]], align 1
9786 // CHECK-NEXT:    [[TMP52:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP50]], i8 [[TMP51]] monotonic monotonic, align 1
9787 // CHECK-NEXT:    [[TMP53:%.*]] = load i8, i8* [[UCE]], align 1
9788 // CHECK-NEXT:    [[TMP54:%.*]] = load i8, i8* [[UCD]], align 1
9789 // CHECK-NEXT:    [[TMP55:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP53]], i8 [[TMP54]] monotonic monotonic, align 1
9790 // CHECK-NEXT:    [[TMP56:%.*]] = load i8, i8* [[CE]], align 1
9791 // CHECK-NEXT:    [[TMP57:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP56]] acq_rel, align 1
9792 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1:[0-9]+]])
9793 // CHECK-NEXT:    [[TMP58:%.*]] = load i8, i8* [[CE]], align 1
9794 // CHECK-NEXT:    [[TMP59:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP58]] acq_rel, align 1
9795 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9796 // CHECK-NEXT:    [[TMP60:%.*]] = load i8, i8* [[CE]], align 1
9797 // CHECK-NEXT:    [[TMP61:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP60]] acq_rel, align 1
9798 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9799 // CHECK-NEXT:    [[TMP62:%.*]] = load i8, i8* [[CE]], align 1
9800 // CHECK-NEXT:    [[TMP63:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP62]] acq_rel, align 1
9801 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9802 // CHECK-NEXT:    [[TMP64:%.*]] = load i8, i8* [[CE]], align 1
9803 // CHECK-NEXT:    [[TMP65:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP64]] acq_rel, align 1
9804 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9805 // CHECK-NEXT:    [[TMP66:%.*]] = load i8, i8* [[CE]], align 1
9806 // CHECK-NEXT:    [[TMP67:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP66]] acq_rel, align 1
9807 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9808 // CHECK-NEXT:    [[TMP68:%.*]] = load i8, i8* [[CE]], align 1
9809 // CHECK-NEXT:    [[TMP69:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP68]] acq_rel, align 1
9810 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9811 // CHECK-NEXT:    [[TMP70:%.*]] = load i8, i8* [[CE]], align 1
9812 // CHECK-NEXT:    [[TMP71:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP70]] acq_rel, align 1
9813 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9814 // CHECK-NEXT:    [[TMP72:%.*]] = load i8, i8* [[CE]], align 1
9815 // CHECK-NEXT:    [[TMP73:%.*]] = load i8, i8* [[CD]], align 1
9816 // CHECK-NEXT:    [[TMP74:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP72]], i8 [[TMP73]] acq_rel acquire, align 1
9817 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9818 // CHECK-NEXT:    [[TMP75:%.*]] = load i8, i8* [[CE]], align 1
9819 // CHECK-NEXT:    [[TMP76:%.*]] = load i8, i8* [[CD]], align 1
9820 // CHECK-NEXT:    [[TMP77:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP75]], i8 [[TMP76]] acq_rel acquire, align 1
9821 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9822 // CHECK-NEXT:    [[TMP78:%.*]] = load i8, i8* [[CE]], align 1
9823 // CHECK-NEXT:    [[TMP79:%.*]] = load i8, i8* [[CD]], align 1
9824 // CHECK-NEXT:    [[TMP80:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP78]], i8 [[TMP79]] acq_rel acquire, align 1
9825 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9826 // CHECK-NEXT:    [[TMP81:%.*]] = load i8, i8* [[CE]], align 1
9827 // CHECK-NEXT:    [[TMP82:%.*]] = load i8, i8* [[CD]], align 1
9828 // CHECK-NEXT:    [[TMP83:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP81]], i8 [[TMP82]] acq_rel acquire, align 1
9829 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9830 // CHECK-NEXT:    [[TMP84:%.*]] = load i8, i8* [[UCE]], align 1
9831 // CHECK-NEXT:    [[TMP85:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP84]] acq_rel, align 1
9832 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9833 // CHECK-NEXT:    [[TMP86:%.*]] = load i8, i8* [[UCE]], align 1
9834 // CHECK-NEXT:    [[TMP87:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP86]] acq_rel, align 1
9835 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9836 // CHECK-NEXT:    [[TMP88:%.*]] = load i8, i8* [[UCE]], align 1
9837 // CHECK-NEXT:    [[TMP89:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP88]] acq_rel, align 1
9838 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9839 // CHECK-NEXT:    [[TMP90:%.*]] = load i8, i8* [[UCE]], align 1
9840 // CHECK-NEXT:    [[TMP91:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP90]] acq_rel, align 1
9841 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9842 // CHECK-NEXT:    [[TMP92:%.*]] = load i8, i8* [[UCE]], align 1
9843 // CHECK-NEXT:    [[TMP93:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP92]] acq_rel, align 1
9844 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9845 // CHECK-NEXT:    [[TMP94:%.*]] = load i8, i8* [[UCE]], align 1
9846 // CHECK-NEXT:    [[TMP95:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP94]] acq_rel, align 1
9847 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9848 // CHECK-NEXT:    [[TMP96:%.*]] = load i8, i8* [[UCE]], align 1
9849 // CHECK-NEXT:    [[TMP97:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP96]] acq_rel, align 1
9850 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9851 // CHECK-NEXT:    [[TMP98:%.*]] = load i8, i8* [[UCE]], align 1
9852 // CHECK-NEXT:    [[TMP99:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP98]] acq_rel, align 1
9853 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9854 // CHECK-NEXT:    [[TMP100:%.*]] = load i8, i8* [[UCE]], align 1
9855 // CHECK-NEXT:    [[TMP101:%.*]] = load i8, i8* [[UCD]], align 1
9856 // CHECK-NEXT:    [[TMP102:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP100]], i8 [[TMP101]] acq_rel acquire, align 1
9857 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9858 // CHECK-NEXT:    [[TMP103:%.*]] = load i8, i8* [[UCE]], align 1
9859 // CHECK-NEXT:    [[TMP104:%.*]] = load i8, i8* [[UCD]], align 1
9860 // CHECK-NEXT:    [[TMP105:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP103]], i8 [[TMP104]] acq_rel acquire, align 1
9861 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9862 // CHECK-NEXT:    [[TMP106:%.*]] = load i8, i8* [[UCE]], align 1
9863 // CHECK-NEXT:    [[TMP107:%.*]] = load i8, i8* [[UCD]], align 1
9864 // CHECK-NEXT:    [[TMP108:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP106]], i8 [[TMP107]] acq_rel acquire, align 1
9865 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9866 // CHECK-NEXT:    [[TMP109:%.*]] = load i8, i8* [[UCE]], align 1
9867 // CHECK-NEXT:    [[TMP110:%.*]] = load i8, i8* [[UCD]], align 1
9868 // CHECK-NEXT:    [[TMP111:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP109]], i8 [[TMP110]] acq_rel acquire, align 1
9869 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9870 // CHECK-NEXT:    [[TMP112:%.*]] = load i8, i8* [[CE]], align 1
9871 // CHECK-NEXT:    [[TMP113:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP112]] acquire, align 1
9872 // CHECK-NEXT:    [[TMP114:%.*]] = load i8, i8* [[CE]], align 1
9873 // CHECK-NEXT:    [[TMP115:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP114]] acquire, align 1
9874 // CHECK-NEXT:    [[TMP116:%.*]] = load i8, i8* [[CE]], align 1
9875 // CHECK-NEXT:    [[TMP117:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP116]] acquire, align 1
9876 // CHECK-NEXT:    [[TMP118:%.*]] = load i8, i8* [[CE]], align 1
9877 // CHECK-NEXT:    [[TMP119:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP118]] acquire, align 1
9878 // CHECK-NEXT:    [[TMP120:%.*]] = load i8, i8* [[CE]], align 1
9879 // CHECK-NEXT:    [[TMP121:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP120]] acquire, align 1
9880 // CHECK-NEXT:    [[TMP122:%.*]] = load i8, i8* [[CE]], align 1
9881 // CHECK-NEXT:    [[TMP123:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP122]] acquire, align 1
9882 // CHECK-NEXT:    [[TMP124:%.*]] = load i8, i8* [[CE]], align 1
9883 // CHECK-NEXT:    [[TMP125:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP124]] acquire, align 1
9884 // CHECK-NEXT:    [[TMP126:%.*]] = load i8, i8* [[CE]], align 1
9885 // CHECK-NEXT:    [[TMP127:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP126]] acquire, align 1
9886 // CHECK-NEXT:    [[TMP128:%.*]] = load i8, i8* [[CE]], align 1
9887 // CHECK-NEXT:    [[TMP129:%.*]] = load i8, i8* [[CD]], align 1
9888 // CHECK-NEXT:    [[TMP130:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP128]], i8 [[TMP129]] acquire acquire, align 1
9889 // CHECK-NEXT:    [[TMP131:%.*]] = load i8, i8* [[CE]], align 1
9890 // CHECK-NEXT:    [[TMP132:%.*]] = load i8, i8* [[CD]], align 1
9891 // CHECK-NEXT:    [[TMP133:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP131]], i8 [[TMP132]] acquire acquire, align 1
9892 // CHECK-NEXT:    [[TMP134:%.*]] = load i8, i8* [[CE]], align 1
9893 // CHECK-NEXT:    [[TMP135:%.*]] = load i8, i8* [[CD]], align 1
9894 // CHECK-NEXT:    [[TMP136:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP134]], i8 [[TMP135]] acquire acquire, align 1
9895 // CHECK-NEXT:    [[TMP137:%.*]] = load i8, i8* [[CE]], align 1
9896 // CHECK-NEXT:    [[TMP138:%.*]] = load i8, i8* [[CD]], align 1
9897 // CHECK-NEXT:    [[TMP139:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP137]], i8 [[TMP138]] acquire acquire, align 1
9898 // CHECK-NEXT:    [[TMP140:%.*]] = load i8, i8* [[UCE]], align 1
9899 // CHECK-NEXT:    [[TMP141:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP140]] acquire, align 1
9900 // CHECK-NEXT:    [[TMP142:%.*]] = load i8, i8* [[UCE]], align 1
9901 // CHECK-NEXT:    [[TMP143:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP142]] acquire, align 1
9902 // CHECK-NEXT:    [[TMP144:%.*]] = load i8, i8* [[UCE]], align 1
9903 // CHECK-NEXT:    [[TMP145:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP144]] acquire, align 1
9904 // CHECK-NEXT:    [[TMP146:%.*]] = load i8, i8* [[UCE]], align 1
9905 // CHECK-NEXT:    [[TMP147:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP146]] acquire, align 1
9906 // CHECK-NEXT:    [[TMP148:%.*]] = load i8, i8* [[UCE]], align 1
9907 // CHECK-NEXT:    [[TMP149:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP148]] acquire, align 1
9908 // CHECK-NEXT:    [[TMP150:%.*]] = load i8, i8* [[UCE]], align 1
9909 // CHECK-NEXT:    [[TMP151:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP150]] acquire, align 1
9910 // CHECK-NEXT:    [[TMP152:%.*]] = load i8, i8* [[UCE]], align 1
9911 // CHECK-NEXT:    [[TMP153:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP152]] acquire, align 1
9912 // CHECK-NEXT:    [[TMP154:%.*]] = load i8, i8* [[UCE]], align 1
9913 // CHECK-NEXT:    [[TMP155:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP154]] acquire, align 1
9914 // CHECK-NEXT:    [[TMP156:%.*]] = load i8, i8* [[UCE]], align 1
9915 // CHECK-NEXT:    [[TMP157:%.*]] = load i8, i8* [[UCD]], align 1
9916 // CHECK-NEXT:    [[TMP158:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP156]], i8 [[TMP157]] acquire acquire, align 1
9917 // CHECK-NEXT:    [[TMP159:%.*]] = load i8, i8* [[UCE]], align 1
9918 // CHECK-NEXT:    [[TMP160:%.*]] = load i8, i8* [[UCD]], align 1
9919 // CHECK-NEXT:    [[TMP161:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP159]], i8 [[TMP160]] acquire acquire, align 1
9920 // CHECK-NEXT:    [[TMP162:%.*]] = load i8, i8* [[UCE]], align 1
9921 // CHECK-NEXT:    [[TMP163:%.*]] = load i8, i8* [[UCD]], align 1
9922 // CHECK-NEXT:    [[TMP164:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP162]], i8 [[TMP163]] acquire acquire, align 1
9923 // CHECK-NEXT:    [[TMP165:%.*]] = load i8, i8* [[UCE]], align 1
9924 // CHECK-NEXT:    [[TMP166:%.*]] = load i8, i8* [[UCD]], align 1
9925 // CHECK-NEXT:    [[TMP167:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP165]], i8 [[TMP166]] acquire acquire, align 1
9926 // CHECK-NEXT:    [[TMP168:%.*]] = load i8, i8* [[CE]], align 1
9927 // CHECK-NEXT:    [[TMP169:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP168]] monotonic, align 1
9928 // CHECK-NEXT:    [[TMP170:%.*]] = load i8, i8* [[CE]], align 1
9929 // CHECK-NEXT:    [[TMP171:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP170]] monotonic, align 1
9930 // CHECK-NEXT:    [[TMP172:%.*]] = load i8, i8* [[CE]], align 1
9931 // CHECK-NEXT:    [[TMP173:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP172]] monotonic, align 1
9932 // CHECK-NEXT:    [[TMP174:%.*]] = load i8, i8* [[CE]], align 1
9933 // CHECK-NEXT:    [[TMP175:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP174]] monotonic, align 1
9934 // CHECK-NEXT:    [[TMP176:%.*]] = load i8, i8* [[CE]], align 1
9935 // CHECK-NEXT:    [[TMP177:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP176]] monotonic, align 1
9936 // CHECK-NEXT:    [[TMP178:%.*]] = load i8, i8* [[CE]], align 1
9937 // CHECK-NEXT:    [[TMP179:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP178]] monotonic, align 1
9938 // CHECK-NEXT:    [[TMP180:%.*]] = load i8, i8* [[CE]], align 1
9939 // CHECK-NEXT:    [[TMP181:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP180]] monotonic, align 1
9940 // CHECK-NEXT:    [[TMP182:%.*]] = load i8, i8* [[CE]], align 1
9941 // CHECK-NEXT:    [[TMP183:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP182]] monotonic, align 1
9942 // CHECK-NEXT:    [[TMP184:%.*]] = load i8, i8* [[CE]], align 1
9943 // CHECK-NEXT:    [[TMP185:%.*]] = load i8, i8* [[CD]], align 1
9944 // CHECK-NEXT:    [[TMP186:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP184]], i8 [[TMP185]] monotonic monotonic, align 1
9945 // CHECK-NEXT:    [[TMP187:%.*]] = load i8, i8* [[CE]], align 1
9946 // CHECK-NEXT:    [[TMP188:%.*]] = load i8, i8* [[CD]], align 1
9947 // CHECK-NEXT:    [[TMP189:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP187]], i8 [[TMP188]] monotonic monotonic, align 1
9948 // CHECK-NEXT:    [[TMP190:%.*]] = load i8, i8* [[CE]], align 1
9949 // CHECK-NEXT:    [[TMP191:%.*]] = load i8, i8* [[CD]], align 1
9950 // CHECK-NEXT:    [[TMP192:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP190]], i8 [[TMP191]] monotonic monotonic, align 1
9951 // CHECK-NEXT:    [[TMP193:%.*]] = load i8, i8* [[CE]], align 1
9952 // CHECK-NEXT:    [[TMP194:%.*]] = load i8, i8* [[CD]], align 1
9953 // CHECK-NEXT:    [[TMP195:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP193]], i8 [[TMP194]] monotonic monotonic, align 1
9954 // CHECK-NEXT:    [[TMP196:%.*]] = load i8, i8* [[UCE]], align 1
9955 // CHECK-NEXT:    [[TMP197:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP196]] monotonic, align 1
9956 // CHECK-NEXT:    [[TMP198:%.*]] = load i8, i8* [[UCE]], align 1
9957 // CHECK-NEXT:    [[TMP199:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP198]] monotonic, align 1
9958 // CHECK-NEXT:    [[TMP200:%.*]] = load i8, i8* [[UCE]], align 1
9959 // CHECK-NEXT:    [[TMP201:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP200]] monotonic, align 1
9960 // CHECK-NEXT:    [[TMP202:%.*]] = load i8, i8* [[UCE]], align 1
9961 // CHECK-NEXT:    [[TMP203:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP202]] monotonic, align 1
9962 // CHECK-NEXT:    [[TMP204:%.*]] = load i8, i8* [[UCE]], align 1
9963 // CHECK-NEXT:    [[TMP205:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP204]] monotonic, align 1
9964 // CHECK-NEXT:    [[TMP206:%.*]] = load i8, i8* [[UCE]], align 1
9965 // CHECK-NEXT:    [[TMP207:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP206]] monotonic, align 1
9966 // CHECK-NEXT:    [[TMP208:%.*]] = load i8, i8* [[UCE]], align 1
9967 // CHECK-NEXT:    [[TMP209:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP208]] monotonic, align 1
9968 // CHECK-NEXT:    [[TMP210:%.*]] = load i8, i8* [[UCE]], align 1
9969 // CHECK-NEXT:    [[TMP211:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP210]] monotonic, align 1
9970 // CHECK-NEXT:    [[TMP212:%.*]] = load i8, i8* [[UCE]], align 1
9971 // CHECK-NEXT:    [[TMP213:%.*]] = load i8, i8* [[UCD]], align 1
9972 // CHECK-NEXT:    [[TMP214:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP212]], i8 [[TMP213]] monotonic monotonic, align 1
9973 // CHECK-NEXT:    [[TMP215:%.*]] = load i8, i8* [[UCE]], align 1
9974 // CHECK-NEXT:    [[TMP216:%.*]] = load i8, i8* [[UCD]], align 1
9975 // CHECK-NEXT:    [[TMP217:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP215]], i8 [[TMP216]] monotonic monotonic, align 1
9976 // CHECK-NEXT:    [[TMP218:%.*]] = load i8, i8* [[UCE]], align 1
9977 // CHECK-NEXT:    [[TMP219:%.*]] = load i8, i8* [[UCD]], align 1
9978 // CHECK-NEXT:    [[TMP220:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP218]], i8 [[TMP219]] monotonic monotonic, align 1
9979 // CHECK-NEXT:    [[TMP221:%.*]] = load i8, i8* [[UCE]], align 1
9980 // CHECK-NEXT:    [[TMP222:%.*]] = load i8, i8* [[UCD]], align 1
9981 // CHECK-NEXT:    [[TMP223:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP221]], i8 [[TMP222]] monotonic monotonic, align 1
9982 // CHECK-NEXT:    [[TMP224:%.*]] = load i8, i8* [[CE]], align 1
9983 // CHECK-NEXT:    [[TMP225:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP224]] release, align 1
9984 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9985 // CHECK-NEXT:    [[TMP226:%.*]] = load i8, i8* [[CE]], align 1
9986 // CHECK-NEXT:    [[TMP227:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP226]] release, align 1
9987 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9988 // CHECK-NEXT:    [[TMP228:%.*]] = load i8, i8* [[CE]], align 1
9989 // CHECK-NEXT:    [[TMP229:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP228]] release, align 1
9990 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9991 // CHECK-NEXT:    [[TMP230:%.*]] = load i8, i8* [[CE]], align 1
9992 // CHECK-NEXT:    [[TMP231:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP230]] release, align 1
9993 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9994 // CHECK-NEXT:    [[TMP232:%.*]] = load i8, i8* [[CE]], align 1
9995 // CHECK-NEXT:    [[TMP233:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP232]] release, align 1
9996 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
9997 // CHECK-NEXT:    [[TMP234:%.*]] = load i8, i8* [[CE]], align 1
9998 // CHECK-NEXT:    [[TMP235:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP234]] release, align 1
9999 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10000 // CHECK-NEXT:    [[TMP236:%.*]] = load i8, i8* [[CE]], align 1
10001 // CHECK-NEXT:    [[TMP237:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP236]] release, align 1
10002 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10003 // CHECK-NEXT:    [[TMP238:%.*]] = load i8, i8* [[CE]], align 1
10004 // CHECK-NEXT:    [[TMP239:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP238]] release, align 1
10005 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10006 // CHECK-NEXT:    [[TMP240:%.*]] = load i8, i8* [[CE]], align 1
10007 // CHECK-NEXT:    [[TMP241:%.*]] = load i8, i8* [[CD]], align 1
10008 // CHECK-NEXT:    [[TMP242:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP240]], i8 [[TMP241]] release monotonic, align 1
10009 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10010 // CHECK-NEXT:    [[TMP243:%.*]] = load i8, i8* [[CE]], align 1
10011 // CHECK-NEXT:    [[TMP244:%.*]] = load i8, i8* [[CD]], align 1
10012 // CHECK-NEXT:    [[TMP245:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP243]], i8 [[TMP244]] release monotonic, align 1
10013 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10014 // CHECK-NEXT:    [[TMP246:%.*]] = load i8, i8* [[CE]], align 1
10015 // CHECK-NEXT:    [[TMP247:%.*]] = load i8, i8* [[CD]], align 1
10016 // CHECK-NEXT:    [[TMP248:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP246]], i8 [[TMP247]] release monotonic, align 1
10017 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10018 // CHECK-NEXT:    [[TMP249:%.*]] = load i8, i8* [[CE]], align 1
10019 // CHECK-NEXT:    [[TMP250:%.*]] = load i8, i8* [[CD]], align 1
10020 // CHECK-NEXT:    [[TMP251:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP249]], i8 [[TMP250]] release monotonic, align 1
10021 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10022 // CHECK-NEXT:    [[TMP252:%.*]] = load i8, i8* [[UCE]], align 1
10023 // CHECK-NEXT:    [[TMP253:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP252]] release, align 1
10024 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10025 // CHECK-NEXT:    [[TMP254:%.*]] = load i8, i8* [[UCE]], align 1
10026 // CHECK-NEXT:    [[TMP255:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP254]] release, align 1
10027 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10028 // CHECK-NEXT:    [[TMP256:%.*]] = load i8, i8* [[UCE]], align 1
10029 // CHECK-NEXT:    [[TMP257:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP256]] release, align 1
10030 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10031 // CHECK-NEXT:    [[TMP258:%.*]] = load i8, i8* [[UCE]], align 1
10032 // CHECK-NEXT:    [[TMP259:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP258]] release, align 1
10033 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10034 // CHECK-NEXT:    [[TMP260:%.*]] = load i8, i8* [[UCE]], align 1
10035 // CHECK-NEXT:    [[TMP261:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP260]] release, align 1
10036 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10037 // CHECK-NEXT:    [[TMP262:%.*]] = load i8, i8* [[UCE]], align 1
10038 // CHECK-NEXT:    [[TMP263:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP262]] release, align 1
10039 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10040 // CHECK-NEXT:    [[TMP264:%.*]] = load i8, i8* [[UCE]], align 1
10041 // CHECK-NEXT:    [[TMP265:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP264]] release, align 1
10042 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10043 // CHECK-NEXT:    [[TMP266:%.*]] = load i8, i8* [[UCE]], align 1
10044 // CHECK-NEXT:    [[TMP267:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP266]] release, align 1
10045 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10046 // CHECK-NEXT:    [[TMP268:%.*]] = load i8, i8* [[UCE]], align 1
10047 // CHECK-NEXT:    [[TMP269:%.*]] = load i8, i8* [[UCD]], align 1
10048 // CHECK-NEXT:    [[TMP270:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP268]], i8 [[TMP269]] release monotonic, align 1
10049 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10050 // CHECK-NEXT:    [[TMP271:%.*]] = load i8, i8* [[UCE]], align 1
10051 // CHECK-NEXT:    [[TMP272:%.*]] = load i8, i8* [[UCD]], align 1
10052 // CHECK-NEXT:    [[TMP273:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP271]], i8 [[TMP272]] release monotonic, align 1
10053 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10054 // CHECK-NEXT:    [[TMP274:%.*]] = load i8, i8* [[UCE]], align 1
10055 // CHECK-NEXT:    [[TMP275:%.*]] = load i8, i8* [[UCD]], align 1
10056 // CHECK-NEXT:    [[TMP276:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP274]], i8 [[TMP275]] release monotonic, align 1
10057 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10058 // CHECK-NEXT:    [[TMP277:%.*]] = load i8, i8* [[UCE]], align 1
10059 // CHECK-NEXT:    [[TMP278:%.*]] = load i8, i8* [[UCD]], align 1
10060 // CHECK-NEXT:    [[TMP279:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP277]], i8 [[TMP278]] release monotonic, align 1
10061 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10062 // CHECK-NEXT:    [[TMP280:%.*]] = load i8, i8* [[CE]], align 1
10063 // CHECK-NEXT:    [[TMP281:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP280]] seq_cst, align 1
10064 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10065 // CHECK-NEXT:    [[TMP282:%.*]] = load i8, i8* [[CE]], align 1
10066 // CHECK-NEXT:    [[TMP283:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP282]] seq_cst, align 1
10067 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10068 // CHECK-NEXT:    [[TMP284:%.*]] = load i8, i8* [[CE]], align 1
10069 // CHECK-NEXT:    [[TMP285:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP284]] seq_cst, align 1
10070 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10071 // CHECK-NEXT:    [[TMP286:%.*]] = load i8, i8* [[CE]], align 1
10072 // CHECK-NEXT:    [[TMP287:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP286]] seq_cst, align 1
10073 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10074 // CHECK-NEXT:    [[TMP288:%.*]] = load i8, i8* [[CE]], align 1
10075 // CHECK-NEXT:    [[TMP289:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP288]] seq_cst, align 1
10076 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10077 // CHECK-NEXT:    [[TMP290:%.*]] = load i8, i8* [[CE]], align 1
10078 // CHECK-NEXT:    [[TMP291:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP290]] seq_cst, align 1
10079 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10080 // CHECK-NEXT:    [[TMP292:%.*]] = load i8, i8* [[CE]], align 1
10081 // CHECK-NEXT:    [[TMP293:%.*]] = atomicrmw max i8* [[CX]], i8 [[TMP292]] seq_cst, align 1
10082 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10083 // CHECK-NEXT:    [[TMP294:%.*]] = load i8, i8* [[CE]], align 1
10084 // CHECK-NEXT:    [[TMP295:%.*]] = atomicrmw min i8* [[CX]], i8 [[TMP294]] seq_cst, align 1
10085 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10086 // CHECK-NEXT:    [[TMP296:%.*]] = load i8, i8* [[CE]], align 1
10087 // CHECK-NEXT:    [[TMP297:%.*]] = load i8, i8* [[CD]], align 1
10088 // CHECK-NEXT:    [[TMP298:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP296]], i8 [[TMP297]] seq_cst seq_cst, align 1
10089 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10090 // CHECK-NEXT:    [[TMP299:%.*]] = load i8, i8* [[CE]], align 1
10091 // CHECK-NEXT:    [[TMP300:%.*]] = load i8, i8* [[CD]], align 1
10092 // CHECK-NEXT:    [[TMP301:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP299]], i8 [[TMP300]] seq_cst seq_cst, align 1
10093 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10094 // CHECK-NEXT:    [[TMP302:%.*]] = load i8, i8* [[CE]], align 1
10095 // CHECK-NEXT:    [[TMP303:%.*]] = load i8, i8* [[CD]], align 1
10096 // CHECK-NEXT:    [[TMP304:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP302]], i8 [[TMP303]] seq_cst seq_cst, align 1
10097 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10098 // CHECK-NEXT:    [[TMP305:%.*]] = load i8, i8* [[CE]], align 1
10099 // CHECK-NEXT:    [[TMP306:%.*]] = load i8, i8* [[CD]], align 1
10100 // CHECK-NEXT:    [[TMP307:%.*]] = cmpxchg i8* [[CX]], i8 [[TMP305]], i8 [[TMP306]] seq_cst seq_cst, align 1
10101 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10102 // CHECK-NEXT:    [[TMP308:%.*]] = load i8, i8* [[UCE]], align 1
10103 // CHECK-NEXT:    [[TMP309:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP308]] seq_cst, align 1
10104 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10105 // CHECK-NEXT:    [[TMP310:%.*]] = load i8, i8* [[UCE]], align 1
10106 // CHECK-NEXT:    [[TMP311:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP310]] seq_cst, align 1
10107 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10108 // CHECK-NEXT:    [[TMP312:%.*]] = load i8, i8* [[UCE]], align 1
10109 // CHECK-NEXT:    [[TMP313:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP312]] seq_cst, align 1
10110 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10111 // CHECK-NEXT:    [[TMP314:%.*]] = load i8, i8* [[UCE]], align 1
10112 // CHECK-NEXT:    [[TMP315:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP314]] seq_cst, align 1
10113 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10114 // CHECK-NEXT:    [[TMP316:%.*]] = load i8, i8* [[UCE]], align 1
10115 // CHECK-NEXT:    [[TMP317:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP316]] seq_cst, align 1
10116 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10117 // CHECK-NEXT:    [[TMP318:%.*]] = load i8, i8* [[UCE]], align 1
10118 // CHECK-NEXT:    [[TMP319:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP318]] seq_cst, align 1
10119 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10120 // CHECK-NEXT:    [[TMP320:%.*]] = load i8, i8* [[UCE]], align 1
10121 // CHECK-NEXT:    [[TMP321:%.*]] = atomicrmw umax i8* [[UCX]], i8 [[TMP320]] seq_cst, align 1
10122 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10123 // CHECK-NEXT:    [[TMP322:%.*]] = load i8, i8* [[UCE]], align 1
10124 // CHECK-NEXT:    [[TMP323:%.*]] = atomicrmw umin i8* [[UCX]], i8 [[TMP322]] seq_cst, align 1
10125 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10126 // CHECK-NEXT:    [[TMP324:%.*]] = load i8, i8* [[UCE]], align 1
10127 // CHECK-NEXT:    [[TMP325:%.*]] = load i8, i8* [[UCD]], align 1
10128 // CHECK-NEXT:    [[TMP326:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP324]], i8 [[TMP325]] seq_cst seq_cst, align 1
10129 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10130 // CHECK-NEXT:    [[TMP327:%.*]] = load i8, i8* [[UCE]], align 1
10131 // CHECK-NEXT:    [[TMP328:%.*]] = load i8, i8* [[UCD]], align 1
10132 // CHECK-NEXT:    [[TMP329:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP327]], i8 [[TMP328]] seq_cst seq_cst, align 1
10133 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10134 // CHECK-NEXT:    [[TMP330:%.*]] = load i8, i8* [[UCE]], align 1
10135 // CHECK-NEXT:    [[TMP331:%.*]] = load i8, i8* [[UCD]], align 1
10136 // CHECK-NEXT:    [[TMP332:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP330]], i8 [[TMP331]] seq_cst seq_cst, align 1
10137 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10138 // CHECK-NEXT:    [[TMP333:%.*]] = load i8, i8* [[UCE]], align 1
10139 // CHECK-NEXT:    [[TMP334:%.*]] = load i8, i8* [[UCD]], align 1
10140 // CHECK-NEXT:    [[TMP335:%.*]] = cmpxchg i8* [[UCX]], i8 [[TMP333]], i8 [[TMP334]] seq_cst seq_cst, align 1
10141 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10142 // CHECK-NEXT:    [[TMP336:%.*]] = load i16, i16* [[SE]], align 2
10143 // CHECK-NEXT:    [[TMP337:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP336]] monotonic, align 2
10144 // CHECK-NEXT:    [[TMP338:%.*]] = load i16, i16* [[SE]], align 2
10145 // CHECK-NEXT:    [[TMP339:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP338]] monotonic, align 2
10146 // CHECK-NEXT:    [[TMP340:%.*]] = load i16, i16* [[SE]], align 2
10147 // CHECK-NEXT:    [[TMP341:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP340]] monotonic, align 2
10148 // CHECK-NEXT:    [[TMP342:%.*]] = load i16, i16* [[SE]], align 2
10149 // CHECK-NEXT:    [[TMP343:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP342]] monotonic, align 2
10150 // CHECK-NEXT:    [[TMP344:%.*]] = load i16, i16* [[SE]], align 2
10151 // CHECK-NEXT:    [[TMP345:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP344]] monotonic, align 2
10152 // CHECK-NEXT:    [[TMP346:%.*]] = load i16, i16* [[SE]], align 2
10153 // CHECK-NEXT:    [[TMP347:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP346]] monotonic, align 2
10154 // CHECK-NEXT:    [[TMP348:%.*]] = load i16, i16* [[SE]], align 2
10155 // CHECK-NEXT:    [[TMP349:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP348]] monotonic, align 2
10156 // CHECK-NEXT:    [[TMP350:%.*]] = load i16, i16* [[SE]], align 2
10157 // CHECK-NEXT:    [[TMP351:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP350]] monotonic, align 2
10158 // CHECK-NEXT:    [[TMP352:%.*]] = load i16, i16* [[SE]], align 2
10159 // CHECK-NEXT:    [[TMP353:%.*]] = load i16, i16* [[SD]], align 2
10160 // CHECK-NEXT:    [[TMP354:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP352]], i16 [[TMP353]] monotonic monotonic, align 2
10161 // CHECK-NEXT:    [[TMP355:%.*]] = load i16, i16* [[SE]], align 2
10162 // CHECK-NEXT:    [[TMP356:%.*]] = load i16, i16* [[SD]], align 2
10163 // CHECK-NEXT:    [[TMP357:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP355]], i16 [[TMP356]] monotonic monotonic, align 2
10164 // CHECK-NEXT:    [[TMP358:%.*]] = load i16, i16* [[SE]], align 2
10165 // CHECK-NEXT:    [[TMP359:%.*]] = load i16, i16* [[SD]], align 2
10166 // CHECK-NEXT:    [[TMP360:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP358]], i16 [[TMP359]] monotonic monotonic, align 2
10167 // CHECK-NEXT:    [[TMP361:%.*]] = load i16, i16* [[SE]], align 2
10168 // CHECK-NEXT:    [[TMP362:%.*]] = load i16, i16* [[SD]], align 2
10169 // CHECK-NEXT:    [[TMP363:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP361]], i16 [[TMP362]] monotonic monotonic, align 2
10170 // CHECK-NEXT:    [[TMP364:%.*]] = load i16, i16* [[USE]], align 2
10171 // CHECK-NEXT:    [[TMP365:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP364]] monotonic, align 2
10172 // CHECK-NEXT:    [[TMP366:%.*]] = load i16, i16* [[USE]], align 2
10173 // CHECK-NEXT:    [[TMP367:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP366]] monotonic, align 2
10174 // CHECK-NEXT:    [[TMP368:%.*]] = load i16, i16* [[USE]], align 2
10175 // CHECK-NEXT:    [[TMP369:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP368]] monotonic, align 2
10176 // CHECK-NEXT:    [[TMP370:%.*]] = load i16, i16* [[USE]], align 2
10177 // CHECK-NEXT:    [[TMP371:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP370]] monotonic, align 2
10178 // CHECK-NEXT:    [[TMP372:%.*]] = load i16, i16* [[USE]], align 2
10179 // CHECK-NEXT:    [[TMP373:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP372]] monotonic, align 2
10180 // CHECK-NEXT:    [[TMP374:%.*]] = load i16, i16* [[USE]], align 2
10181 // CHECK-NEXT:    [[TMP375:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP374]] monotonic, align 2
10182 // CHECK-NEXT:    [[TMP376:%.*]] = load i16, i16* [[USE]], align 2
10183 // CHECK-NEXT:    [[TMP377:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP376]] monotonic, align 2
10184 // CHECK-NEXT:    [[TMP378:%.*]] = load i16, i16* [[USE]], align 2
10185 // CHECK-NEXT:    [[TMP379:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP378]] monotonic, align 2
10186 // CHECK-NEXT:    [[TMP380:%.*]] = load i16, i16* [[USE]], align 2
10187 // CHECK-NEXT:    [[TMP381:%.*]] = load i16, i16* [[USD]], align 2
10188 // CHECK-NEXT:    [[TMP382:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP380]], i16 [[TMP381]] monotonic monotonic, align 2
10189 // CHECK-NEXT:    [[TMP383:%.*]] = load i16, i16* [[USE]], align 2
10190 // CHECK-NEXT:    [[TMP384:%.*]] = load i16, i16* [[USD]], align 2
10191 // CHECK-NEXT:    [[TMP385:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP383]], i16 [[TMP384]] monotonic monotonic, align 2
10192 // CHECK-NEXT:    [[TMP386:%.*]] = load i16, i16* [[USE]], align 2
10193 // CHECK-NEXT:    [[TMP387:%.*]] = load i16, i16* [[USD]], align 2
10194 // CHECK-NEXT:    [[TMP388:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP386]], i16 [[TMP387]] monotonic monotonic, align 2
10195 // CHECK-NEXT:    [[TMP389:%.*]] = load i16, i16* [[USE]], align 2
10196 // CHECK-NEXT:    [[TMP390:%.*]] = load i16, i16* [[USD]], align 2
10197 // CHECK-NEXT:    [[TMP391:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP389]], i16 [[TMP390]] monotonic monotonic, align 2
10198 // CHECK-NEXT:    [[TMP392:%.*]] = load i16, i16* [[SE]], align 2
10199 // CHECK-NEXT:    [[TMP393:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP392]] acq_rel, align 2
10200 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10201 // CHECK-NEXT:    [[TMP394:%.*]] = load i16, i16* [[SE]], align 2
10202 // CHECK-NEXT:    [[TMP395:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP394]] acq_rel, align 2
10203 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10204 // CHECK-NEXT:    [[TMP396:%.*]] = load i16, i16* [[SE]], align 2
10205 // CHECK-NEXT:    [[TMP397:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP396]] acq_rel, align 2
10206 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10207 // CHECK-NEXT:    [[TMP398:%.*]] = load i16, i16* [[SE]], align 2
10208 // CHECK-NEXT:    [[TMP399:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP398]] acq_rel, align 2
10209 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10210 // CHECK-NEXT:    [[TMP400:%.*]] = load i16, i16* [[SE]], align 2
10211 // CHECK-NEXT:    [[TMP401:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP400]] acq_rel, align 2
10212 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10213 // CHECK-NEXT:    [[TMP402:%.*]] = load i16, i16* [[SE]], align 2
10214 // CHECK-NEXT:    [[TMP403:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP402]] acq_rel, align 2
10215 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10216 // CHECK-NEXT:    [[TMP404:%.*]] = load i16, i16* [[SE]], align 2
10217 // CHECK-NEXT:    [[TMP405:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP404]] acq_rel, align 2
10218 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10219 // CHECK-NEXT:    [[TMP406:%.*]] = load i16, i16* [[SE]], align 2
10220 // CHECK-NEXT:    [[TMP407:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP406]] acq_rel, align 2
10221 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10222 // CHECK-NEXT:    [[TMP408:%.*]] = load i16, i16* [[SE]], align 2
10223 // CHECK-NEXT:    [[TMP409:%.*]] = load i16, i16* [[SD]], align 2
10224 // CHECK-NEXT:    [[TMP410:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP408]], i16 [[TMP409]] acq_rel acquire, align 2
10225 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10226 // CHECK-NEXT:    [[TMP411:%.*]] = load i16, i16* [[SE]], align 2
10227 // CHECK-NEXT:    [[TMP412:%.*]] = load i16, i16* [[SD]], align 2
10228 // CHECK-NEXT:    [[TMP413:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP411]], i16 [[TMP412]] acq_rel acquire, align 2
10229 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10230 // CHECK-NEXT:    [[TMP414:%.*]] = load i16, i16* [[SE]], align 2
10231 // CHECK-NEXT:    [[TMP415:%.*]] = load i16, i16* [[SD]], align 2
10232 // CHECK-NEXT:    [[TMP416:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP414]], i16 [[TMP415]] acq_rel acquire, align 2
10233 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10234 // CHECK-NEXT:    [[TMP417:%.*]] = load i16, i16* [[SE]], align 2
10235 // CHECK-NEXT:    [[TMP418:%.*]] = load i16, i16* [[SD]], align 2
10236 // CHECK-NEXT:    [[TMP419:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP417]], i16 [[TMP418]] acq_rel acquire, align 2
10237 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10238 // CHECK-NEXT:    [[TMP420:%.*]] = load i16, i16* [[USE]], align 2
10239 // CHECK-NEXT:    [[TMP421:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP420]] acq_rel, align 2
10240 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10241 // CHECK-NEXT:    [[TMP422:%.*]] = load i16, i16* [[USE]], align 2
10242 // CHECK-NEXT:    [[TMP423:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP422]] acq_rel, align 2
10243 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10244 // CHECK-NEXT:    [[TMP424:%.*]] = load i16, i16* [[USE]], align 2
10245 // CHECK-NEXT:    [[TMP425:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP424]] acq_rel, align 2
10246 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10247 // CHECK-NEXT:    [[TMP426:%.*]] = load i16, i16* [[USE]], align 2
10248 // CHECK-NEXT:    [[TMP427:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP426]] acq_rel, align 2
10249 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10250 // CHECK-NEXT:    [[TMP428:%.*]] = load i16, i16* [[USE]], align 2
10251 // CHECK-NEXT:    [[TMP429:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP428]] acq_rel, align 2
10252 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10253 // CHECK-NEXT:    [[TMP430:%.*]] = load i16, i16* [[USE]], align 2
10254 // CHECK-NEXT:    [[TMP431:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP430]] acq_rel, align 2
10255 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10256 // CHECK-NEXT:    [[TMP432:%.*]] = load i16, i16* [[USE]], align 2
10257 // CHECK-NEXT:    [[TMP433:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP432]] acq_rel, align 2
10258 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10259 // CHECK-NEXT:    [[TMP434:%.*]] = load i16, i16* [[USE]], align 2
10260 // CHECK-NEXT:    [[TMP435:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP434]] acq_rel, align 2
10261 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10262 // CHECK-NEXT:    [[TMP436:%.*]] = load i16, i16* [[USE]], align 2
10263 // CHECK-NEXT:    [[TMP437:%.*]] = load i16, i16* [[USD]], align 2
10264 // CHECK-NEXT:    [[TMP438:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP436]], i16 [[TMP437]] acq_rel acquire, align 2
10265 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10266 // CHECK-NEXT:    [[TMP439:%.*]] = load i16, i16* [[USE]], align 2
10267 // CHECK-NEXT:    [[TMP440:%.*]] = load i16, i16* [[USD]], align 2
10268 // CHECK-NEXT:    [[TMP441:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP439]], i16 [[TMP440]] acq_rel acquire, align 2
10269 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10270 // CHECK-NEXT:    [[TMP442:%.*]] = load i16, i16* [[USE]], align 2
10271 // CHECK-NEXT:    [[TMP443:%.*]] = load i16, i16* [[USD]], align 2
10272 // CHECK-NEXT:    [[TMP444:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP442]], i16 [[TMP443]] acq_rel acquire, align 2
10273 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10274 // CHECK-NEXT:    [[TMP445:%.*]] = load i16, i16* [[USE]], align 2
10275 // CHECK-NEXT:    [[TMP446:%.*]] = load i16, i16* [[USD]], align 2
10276 // CHECK-NEXT:    [[TMP447:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP445]], i16 [[TMP446]] acq_rel acquire, align 2
10277 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10278 // CHECK-NEXT:    [[TMP448:%.*]] = load i16, i16* [[SE]], align 2
10279 // CHECK-NEXT:    [[TMP449:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP448]] acquire, align 2
10280 // CHECK-NEXT:    [[TMP450:%.*]] = load i16, i16* [[SE]], align 2
10281 // CHECK-NEXT:    [[TMP451:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP450]] acquire, align 2
10282 // CHECK-NEXT:    [[TMP452:%.*]] = load i16, i16* [[SE]], align 2
10283 // CHECK-NEXT:    [[TMP453:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP452]] acquire, align 2
10284 // CHECK-NEXT:    [[TMP454:%.*]] = load i16, i16* [[SE]], align 2
10285 // CHECK-NEXT:    [[TMP455:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP454]] acquire, align 2
10286 // CHECK-NEXT:    [[TMP456:%.*]] = load i16, i16* [[SE]], align 2
10287 // CHECK-NEXT:    [[TMP457:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP456]] acquire, align 2
10288 // CHECK-NEXT:    [[TMP458:%.*]] = load i16, i16* [[SE]], align 2
10289 // CHECK-NEXT:    [[TMP459:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP458]] acquire, align 2
10290 // CHECK-NEXT:    [[TMP460:%.*]] = load i16, i16* [[SE]], align 2
10291 // CHECK-NEXT:    [[TMP461:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP460]] acquire, align 2
10292 // CHECK-NEXT:    [[TMP462:%.*]] = load i16, i16* [[SE]], align 2
10293 // CHECK-NEXT:    [[TMP463:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP462]] acquire, align 2
10294 // CHECK-NEXT:    [[TMP464:%.*]] = load i16, i16* [[SE]], align 2
10295 // CHECK-NEXT:    [[TMP465:%.*]] = load i16, i16* [[SD]], align 2
10296 // CHECK-NEXT:    [[TMP466:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP464]], i16 [[TMP465]] acquire acquire, align 2
10297 // CHECK-NEXT:    [[TMP467:%.*]] = load i16, i16* [[SE]], align 2
10298 // CHECK-NEXT:    [[TMP468:%.*]] = load i16, i16* [[SD]], align 2
10299 // CHECK-NEXT:    [[TMP469:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP467]], i16 [[TMP468]] acquire acquire, align 2
10300 // CHECK-NEXT:    [[TMP470:%.*]] = load i16, i16* [[SE]], align 2
10301 // CHECK-NEXT:    [[TMP471:%.*]] = load i16, i16* [[SD]], align 2
10302 // CHECK-NEXT:    [[TMP472:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP470]], i16 [[TMP471]] acquire acquire, align 2
10303 // CHECK-NEXT:    [[TMP473:%.*]] = load i16, i16* [[SE]], align 2
10304 // CHECK-NEXT:    [[TMP474:%.*]] = load i16, i16* [[SD]], align 2
10305 // CHECK-NEXT:    [[TMP475:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP473]], i16 [[TMP474]] acquire acquire, align 2
10306 // CHECK-NEXT:    [[TMP476:%.*]] = load i16, i16* [[USE]], align 2
10307 // CHECK-NEXT:    [[TMP477:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP476]] acquire, align 2
10308 // CHECK-NEXT:    [[TMP478:%.*]] = load i16, i16* [[USE]], align 2
10309 // CHECK-NEXT:    [[TMP479:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP478]] acquire, align 2
10310 // CHECK-NEXT:    [[TMP480:%.*]] = load i16, i16* [[USE]], align 2
10311 // CHECK-NEXT:    [[TMP481:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP480]] acquire, align 2
10312 // CHECK-NEXT:    [[TMP482:%.*]] = load i16, i16* [[USE]], align 2
10313 // CHECK-NEXT:    [[TMP483:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP482]] acquire, align 2
10314 // CHECK-NEXT:    [[TMP484:%.*]] = load i16, i16* [[USE]], align 2
10315 // CHECK-NEXT:    [[TMP485:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP484]] acquire, align 2
10316 // CHECK-NEXT:    [[TMP486:%.*]] = load i16, i16* [[USE]], align 2
10317 // CHECK-NEXT:    [[TMP487:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP486]] acquire, align 2
10318 // CHECK-NEXT:    [[TMP488:%.*]] = load i16, i16* [[USE]], align 2
10319 // CHECK-NEXT:    [[TMP489:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP488]] acquire, align 2
10320 // CHECK-NEXT:    [[TMP490:%.*]] = load i16, i16* [[USE]], align 2
10321 // CHECK-NEXT:    [[TMP491:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP490]] acquire, align 2
10322 // CHECK-NEXT:    [[TMP492:%.*]] = load i16, i16* [[USE]], align 2
10323 // CHECK-NEXT:    [[TMP493:%.*]] = load i16, i16* [[USD]], align 2
10324 // CHECK-NEXT:    [[TMP494:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP492]], i16 [[TMP493]] acquire acquire, align 2
10325 // CHECK-NEXT:    [[TMP495:%.*]] = load i16, i16* [[USE]], align 2
10326 // CHECK-NEXT:    [[TMP496:%.*]] = load i16, i16* [[USD]], align 2
10327 // CHECK-NEXT:    [[TMP497:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP495]], i16 [[TMP496]] acquire acquire, align 2
10328 // CHECK-NEXT:    [[TMP498:%.*]] = load i16, i16* [[USE]], align 2
10329 // CHECK-NEXT:    [[TMP499:%.*]] = load i16, i16* [[USD]], align 2
10330 // CHECK-NEXT:    [[TMP500:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP498]], i16 [[TMP499]] acquire acquire, align 2
10331 // CHECK-NEXT:    [[TMP501:%.*]] = load i16, i16* [[USE]], align 2
10332 // CHECK-NEXT:    [[TMP502:%.*]] = load i16, i16* [[USD]], align 2
10333 // CHECK-NEXT:    [[TMP503:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP501]], i16 [[TMP502]] acquire acquire, align 2
10334 // CHECK-NEXT:    [[TMP504:%.*]] = load i16, i16* [[SE]], align 2
10335 // CHECK-NEXT:    [[TMP505:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP504]] monotonic, align 2
10336 // CHECK-NEXT:    [[TMP506:%.*]] = load i16, i16* [[SE]], align 2
10337 // CHECK-NEXT:    [[TMP507:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP506]] monotonic, align 2
10338 // CHECK-NEXT:    [[TMP508:%.*]] = load i16, i16* [[SE]], align 2
10339 // CHECK-NEXT:    [[TMP509:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP508]] monotonic, align 2
10340 // CHECK-NEXT:    [[TMP510:%.*]] = load i16, i16* [[SE]], align 2
10341 // CHECK-NEXT:    [[TMP511:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP510]] monotonic, align 2
10342 // CHECK-NEXT:    [[TMP512:%.*]] = load i16, i16* [[SE]], align 2
10343 // CHECK-NEXT:    [[TMP513:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP512]] monotonic, align 2
10344 // CHECK-NEXT:    [[TMP514:%.*]] = load i16, i16* [[SE]], align 2
10345 // CHECK-NEXT:    [[TMP515:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP514]] monotonic, align 2
10346 // CHECK-NEXT:    [[TMP516:%.*]] = load i16, i16* [[SE]], align 2
10347 // CHECK-NEXT:    [[TMP517:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP516]] monotonic, align 2
10348 // CHECK-NEXT:    [[TMP518:%.*]] = load i16, i16* [[SE]], align 2
10349 // CHECK-NEXT:    [[TMP519:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP518]] monotonic, align 2
10350 // CHECK-NEXT:    [[TMP520:%.*]] = load i16, i16* [[SE]], align 2
10351 // CHECK-NEXT:    [[TMP521:%.*]] = load i16, i16* [[SD]], align 2
10352 // CHECK-NEXT:    [[TMP522:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP520]], i16 [[TMP521]] monotonic monotonic, align 2
10353 // CHECK-NEXT:    [[TMP523:%.*]] = load i16, i16* [[SE]], align 2
10354 // CHECK-NEXT:    [[TMP524:%.*]] = load i16, i16* [[SD]], align 2
10355 // CHECK-NEXT:    [[TMP525:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP523]], i16 [[TMP524]] monotonic monotonic, align 2
10356 // CHECK-NEXT:    [[TMP526:%.*]] = load i16, i16* [[SE]], align 2
10357 // CHECK-NEXT:    [[TMP527:%.*]] = load i16, i16* [[SD]], align 2
10358 // CHECK-NEXT:    [[TMP528:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP526]], i16 [[TMP527]] monotonic monotonic, align 2
10359 // CHECK-NEXT:    [[TMP529:%.*]] = load i16, i16* [[SE]], align 2
10360 // CHECK-NEXT:    [[TMP530:%.*]] = load i16, i16* [[SD]], align 2
10361 // CHECK-NEXT:    [[TMP531:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP529]], i16 [[TMP530]] monotonic monotonic, align 2
10362 // CHECK-NEXT:    [[TMP532:%.*]] = load i16, i16* [[USE]], align 2
10363 // CHECK-NEXT:    [[TMP533:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP532]] monotonic, align 2
10364 // CHECK-NEXT:    [[TMP534:%.*]] = load i16, i16* [[USE]], align 2
10365 // CHECK-NEXT:    [[TMP535:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP534]] monotonic, align 2
10366 // CHECK-NEXT:    [[TMP536:%.*]] = load i16, i16* [[USE]], align 2
10367 // CHECK-NEXT:    [[TMP537:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP536]] monotonic, align 2
10368 // CHECK-NEXT:    [[TMP538:%.*]] = load i16, i16* [[USE]], align 2
10369 // CHECK-NEXT:    [[TMP539:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP538]] monotonic, align 2
10370 // CHECK-NEXT:    [[TMP540:%.*]] = load i16, i16* [[USE]], align 2
10371 // CHECK-NEXT:    [[TMP541:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP540]] monotonic, align 2
10372 // CHECK-NEXT:    [[TMP542:%.*]] = load i16, i16* [[USE]], align 2
10373 // CHECK-NEXT:    [[TMP543:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP542]] monotonic, align 2
10374 // CHECK-NEXT:    [[TMP544:%.*]] = load i16, i16* [[USE]], align 2
10375 // CHECK-NEXT:    [[TMP545:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP544]] monotonic, align 2
10376 // CHECK-NEXT:    [[TMP546:%.*]] = load i16, i16* [[USE]], align 2
10377 // CHECK-NEXT:    [[TMP547:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP546]] monotonic, align 2
10378 // CHECK-NEXT:    [[TMP548:%.*]] = load i16, i16* [[USE]], align 2
10379 // CHECK-NEXT:    [[TMP549:%.*]] = load i16, i16* [[USD]], align 2
10380 // CHECK-NEXT:    [[TMP550:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP548]], i16 [[TMP549]] monotonic monotonic, align 2
10381 // CHECK-NEXT:    [[TMP551:%.*]] = load i16, i16* [[USE]], align 2
10382 // CHECK-NEXT:    [[TMP552:%.*]] = load i16, i16* [[USD]], align 2
10383 // CHECK-NEXT:    [[TMP553:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP551]], i16 [[TMP552]] monotonic monotonic, align 2
10384 // CHECK-NEXT:    [[TMP554:%.*]] = load i16, i16* [[USE]], align 2
10385 // CHECK-NEXT:    [[TMP555:%.*]] = load i16, i16* [[USD]], align 2
10386 // CHECK-NEXT:    [[TMP556:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP554]], i16 [[TMP555]] monotonic monotonic, align 2
10387 // CHECK-NEXT:    [[TMP557:%.*]] = load i16, i16* [[USE]], align 2
10388 // CHECK-NEXT:    [[TMP558:%.*]] = load i16, i16* [[USD]], align 2
10389 // CHECK-NEXT:    [[TMP559:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP557]], i16 [[TMP558]] monotonic monotonic, align 2
10390 // CHECK-NEXT:    [[TMP560:%.*]] = load i16, i16* [[SE]], align 2
10391 // CHECK-NEXT:    [[TMP561:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP560]] release, align 2
10392 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10393 // CHECK-NEXT:    [[TMP562:%.*]] = load i16, i16* [[SE]], align 2
10394 // CHECK-NEXT:    [[TMP563:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP562]] release, align 2
10395 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10396 // CHECK-NEXT:    [[TMP564:%.*]] = load i16, i16* [[SE]], align 2
10397 // CHECK-NEXT:    [[TMP565:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP564]] release, align 2
10398 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10399 // CHECK-NEXT:    [[TMP566:%.*]] = load i16, i16* [[SE]], align 2
10400 // CHECK-NEXT:    [[TMP567:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP566]] release, align 2
10401 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10402 // CHECK-NEXT:    [[TMP568:%.*]] = load i16, i16* [[SE]], align 2
10403 // CHECK-NEXT:    [[TMP569:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP568]] release, align 2
10404 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10405 // CHECK-NEXT:    [[TMP570:%.*]] = load i16, i16* [[SE]], align 2
10406 // CHECK-NEXT:    [[TMP571:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP570]] release, align 2
10407 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10408 // CHECK-NEXT:    [[TMP572:%.*]] = load i16, i16* [[SE]], align 2
10409 // CHECK-NEXT:    [[TMP573:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP572]] release, align 2
10410 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10411 // CHECK-NEXT:    [[TMP574:%.*]] = load i16, i16* [[SE]], align 2
10412 // CHECK-NEXT:    [[TMP575:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP574]] release, align 2
10413 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10414 // CHECK-NEXT:    [[TMP576:%.*]] = load i16, i16* [[SE]], align 2
10415 // CHECK-NEXT:    [[TMP577:%.*]] = load i16, i16* [[SD]], align 2
10416 // CHECK-NEXT:    [[TMP578:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP576]], i16 [[TMP577]] release monotonic, align 2
10417 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10418 // CHECK-NEXT:    [[TMP579:%.*]] = load i16, i16* [[SE]], align 2
10419 // CHECK-NEXT:    [[TMP580:%.*]] = load i16, i16* [[SD]], align 2
10420 // CHECK-NEXT:    [[TMP581:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP579]], i16 [[TMP580]] release monotonic, align 2
10421 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10422 // CHECK-NEXT:    [[TMP582:%.*]] = load i16, i16* [[SE]], align 2
10423 // CHECK-NEXT:    [[TMP583:%.*]] = load i16, i16* [[SD]], align 2
10424 // CHECK-NEXT:    [[TMP584:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP582]], i16 [[TMP583]] release monotonic, align 2
10425 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10426 // CHECK-NEXT:    [[TMP585:%.*]] = load i16, i16* [[SE]], align 2
10427 // CHECK-NEXT:    [[TMP586:%.*]] = load i16, i16* [[SD]], align 2
10428 // CHECK-NEXT:    [[TMP587:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP585]], i16 [[TMP586]] release monotonic, align 2
10429 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10430 // CHECK-NEXT:    [[TMP588:%.*]] = load i16, i16* [[USE]], align 2
10431 // CHECK-NEXT:    [[TMP589:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP588]] release, align 2
10432 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10433 // CHECK-NEXT:    [[TMP590:%.*]] = load i16, i16* [[USE]], align 2
10434 // CHECK-NEXT:    [[TMP591:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP590]] release, align 2
10435 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10436 // CHECK-NEXT:    [[TMP592:%.*]] = load i16, i16* [[USE]], align 2
10437 // CHECK-NEXT:    [[TMP593:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP592]] release, align 2
10438 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10439 // CHECK-NEXT:    [[TMP594:%.*]] = load i16, i16* [[USE]], align 2
10440 // CHECK-NEXT:    [[TMP595:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP594]] release, align 2
10441 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10442 // CHECK-NEXT:    [[TMP596:%.*]] = load i16, i16* [[USE]], align 2
10443 // CHECK-NEXT:    [[TMP597:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP596]] release, align 2
10444 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10445 // CHECK-NEXT:    [[TMP598:%.*]] = load i16, i16* [[USE]], align 2
10446 // CHECK-NEXT:    [[TMP599:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP598]] release, align 2
10447 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10448 // CHECK-NEXT:    [[TMP600:%.*]] = load i16, i16* [[USE]], align 2
10449 // CHECK-NEXT:    [[TMP601:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP600]] release, align 2
10450 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10451 // CHECK-NEXT:    [[TMP602:%.*]] = load i16, i16* [[USE]], align 2
10452 // CHECK-NEXT:    [[TMP603:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP602]] release, align 2
10453 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10454 // CHECK-NEXT:    [[TMP604:%.*]] = load i16, i16* [[USE]], align 2
10455 // CHECK-NEXT:    [[TMP605:%.*]] = load i16, i16* [[USD]], align 2
10456 // CHECK-NEXT:    [[TMP606:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP604]], i16 [[TMP605]] release monotonic, align 2
10457 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10458 // CHECK-NEXT:    [[TMP607:%.*]] = load i16, i16* [[USE]], align 2
10459 // CHECK-NEXT:    [[TMP608:%.*]] = load i16, i16* [[USD]], align 2
10460 // CHECK-NEXT:    [[TMP609:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP607]], i16 [[TMP608]] release monotonic, align 2
10461 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10462 // CHECK-NEXT:    [[TMP610:%.*]] = load i16, i16* [[USE]], align 2
10463 // CHECK-NEXT:    [[TMP611:%.*]] = load i16, i16* [[USD]], align 2
10464 // CHECK-NEXT:    [[TMP612:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP610]], i16 [[TMP611]] release monotonic, align 2
10465 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10466 // CHECK-NEXT:    [[TMP613:%.*]] = load i16, i16* [[USE]], align 2
10467 // CHECK-NEXT:    [[TMP614:%.*]] = load i16, i16* [[USD]], align 2
10468 // CHECK-NEXT:    [[TMP615:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP613]], i16 [[TMP614]] release monotonic, align 2
10469 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10470 // CHECK-NEXT:    [[TMP616:%.*]] = load i16, i16* [[SE]], align 2
10471 // CHECK-NEXT:    [[TMP617:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP616]] seq_cst, align 2
10472 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10473 // CHECK-NEXT:    [[TMP618:%.*]] = load i16, i16* [[SE]], align 2
10474 // CHECK-NEXT:    [[TMP619:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP618]] seq_cst, align 2
10475 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10476 // CHECK-NEXT:    [[TMP620:%.*]] = load i16, i16* [[SE]], align 2
10477 // CHECK-NEXT:    [[TMP621:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP620]] seq_cst, align 2
10478 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10479 // CHECK-NEXT:    [[TMP622:%.*]] = load i16, i16* [[SE]], align 2
10480 // CHECK-NEXT:    [[TMP623:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP622]] seq_cst, align 2
10481 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10482 // CHECK-NEXT:    [[TMP624:%.*]] = load i16, i16* [[SE]], align 2
10483 // CHECK-NEXT:    [[TMP625:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP624]] seq_cst, align 2
10484 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10485 // CHECK-NEXT:    [[TMP626:%.*]] = load i16, i16* [[SE]], align 2
10486 // CHECK-NEXT:    [[TMP627:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP626]] seq_cst, align 2
10487 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10488 // CHECK-NEXT:    [[TMP628:%.*]] = load i16, i16* [[SE]], align 2
10489 // CHECK-NEXT:    [[TMP629:%.*]] = atomicrmw max i16* [[SX]], i16 [[TMP628]] seq_cst, align 2
10490 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10491 // CHECK-NEXT:    [[TMP630:%.*]] = load i16, i16* [[SE]], align 2
10492 // CHECK-NEXT:    [[TMP631:%.*]] = atomicrmw min i16* [[SX]], i16 [[TMP630]] seq_cst, align 2
10493 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10494 // CHECK-NEXT:    [[TMP632:%.*]] = load i16, i16* [[SE]], align 2
10495 // CHECK-NEXT:    [[TMP633:%.*]] = load i16, i16* [[SD]], align 2
10496 // CHECK-NEXT:    [[TMP634:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP632]], i16 [[TMP633]] seq_cst seq_cst, align 2
10497 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10498 // CHECK-NEXT:    [[TMP635:%.*]] = load i16, i16* [[SE]], align 2
10499 // CHECK-NEXT:    [[TMP636:%.*]] = load i16, i16* [[SD]], align 2
10500 // CHECK-NEXT:    [[TMP637:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP635]], i16 [[TMP636]] seq_cst seq_cst, align 2
10501 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10502 // CHECK-NEXT:    [[TMP638:%.*]] = load i16, i16* [[SE]], align 2
10503 // CHECK-NEXT:    [[TMP639:%.*]] = load i16, i16* [[SD]], align 2
10504 // CHECK-NEXT:    [[TMP640:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP638]], i16 [[TMP639]] seq_cst seq_cst, align 2
10505 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10506 // CHECK-NEXT:    [[TMP641:%.*]] = load i16, i16* [[SE]], align 2
10507 // CHECK-NEXT:    [[TMP642:%.*]] = load i16, i16* [[SD]], align 2
10508 // CHECK-NEXT:    [[TMP643:%.*]] = cmpxchg i16* [[SX]], i16 [[TMP641]], i16 [[TMP642]] seq_cst seq_cst, align 2
10509 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10510 // CHECK-NEXT:    [[TMP644:%.*]] = load i16, i16* [[USE]], align 2
10511 // CHECK-NEXT:    [[TMP645:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP644]] seq_cst, align 2
10512 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10513 // CHECK-NEXT:    [[TMP646:%.*]] = load i16, i16* [[USE]], align 2
10514 // CHECK-NEXT:    [[TMP647:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP646]] seq_cst, align 2
10515 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10516 // CHECK-NEXT:    [[TMP648:%.*]] = load i16, i16* [[USE]], align 2
10517 // CHECK-NEXT:    [[TMP649:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP648]] seq_cst, align 2
10518 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10519 // CHECK-NEXT:    [[TMP650:%.*]] = load i16, i16* [[USE]], align 2
10520 // CHECK-NEXT:    [[TMP651:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP650]] seq_cst, align 2
10521 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10522 // CHECK-NEXT:    [[TMP652:%.*]] = load i16, i16* [[USE]], align 2
10523 // CHECK-NEXT:    [[TMP653:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP652]] seq_cst, align 2
10524 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10525 // CHECK-NEXT:    [[TMP654:%.*]] = load i16, i16* [[USE]], align 2
10526 // CHECK-NEXT:    [[TMP655:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP654]] seq_cst, align 2
10527 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10528 // CHECK-NEXT:    [[TMP656:%.*]] = load i16, i16* [[USE]], align 2
10529 // CHECK-NEXT:    [[TMP657:%.*]] = atomicrmw umax i16* [[USX]], i16 [[TMP656]] seq_cst, align 2
10530 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10531 // CHECK-NEXT:    [[TMP658:%.*]] = load i16, i16* [[USE]], align 2
10532 // CHECK-NEXT:    [[TMP659:%.*]] = atomicrmw umin i16* [[USX]], i16 [[TMP658]] seq_cst, align 2
10533 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10534 // CHECK-NEXT:    [[TMP660:%.*]] = load i16, i16* [[USE]], align 2
10535 // CHECK-NEXT:    [[TMP661:%.*]] = load i16, i16* [[USD]], align 2
10536 // CHECK-NEXT:    [[TMP662:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP660]], i16 [[TMP661]] seq_cst seq_cst, align 2
10537 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10538 // CHECK-NEXT:    [[TMP663:%.*]] = load i16, i16* [[USE]], align 2
10539 // CHECK-NEXT:    [[TMP664:%.*]] = load i16, i16* [[USD]], align 2
10540 // CHECK-NEXT:    [[TMP665:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP663]], i16 [[TMP664]] seq_cst seq_cst, align 2
10541 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10542 // CHECK-NEXT:    [[TMP666:%.*]] = load i16, i16* [[USE]], align 2
10543 // CHECK-NEXT:    [[TMP667:%.*]] = load i16, i16* [[USD]], align 2
10544 // CHECK-NEXT:    [[TMP668:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP666]], i16 [[TMP667]] seq_cst seq_cst, align 2
10545 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10546 // CHECK-NEXT:    [[TMP669:%.*]] = load i16, i16* [[USE]], align 2
10547 // CHECK-NEXT:    [[TMP670:%.*]] = load i16, i16* [[USD]], align 2
10548 // CHECK-NEXT:    [[TMP671:%.*]] = cmpxchg i16* [[USX]], i16 [[TMP669]], i16 [[TMP670]] seq_cst seq_cst, align 2
10549 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10550 // CHECK-NEXT:    [[TMP672:%.*]] = load i32, i32* [[IE]], align 4
10551 // CHECK-NEXT:    [[TMP673:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP672]] monotonic, align 4
10552 // CHECK-NEXT:    [[TMP674:%.*]] = load i32, i32* [[IE]], align 4
10553 // CHECK-NEXT:    [[TMP675:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP674]] monotonic, align 4
10554 // CHECK-NEXT:    [[TMP676:%.*]] = load i32, i32* [[IE]], align 4
10555 // CHECK-NEXT:    [[TMP677:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP676]] monotonic, align 4
10556 // CHECK-NEXT:    [[TMP678:%.*]] = load i32, i32* [[IE]], align 4
10557 // CHECK-NEXT:    [[TMP679:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP678]] monotonic, align 4
10558 // CHECK-NEXT:    [[TMP680:%.*]] = load i32, i32* [[IE]], align 4
10559 // CHECK-NEXT:    [[TMP681:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP680]] monotonic, align 4
10560 // CHECK-NEXT:    [[TMP682:%.*]] = load i32, i32* [[IE]], align 4
10561 // CHECK-NEXT:    [[TMP683:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP682]] monotonic, align 4
10562 // CHECK-NEXT:    [[TMP684:%.*]] = load i32, i32* [[IE]], align 4
10563 // CHECK-NEXT:    [[TMP685:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP684]] monotonic, align 4
10564 // CHECK-NEXT:    [[TMP686:%.*]] = load i32, i32* [[IE]], align 4
10565 // CHECK-NEXT:    [[TMP687:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP686]] monotonic, align 4
10566 // CHECK-NEXT:    [[TMP688:%.*]] = load i32, i32* [[IE]], align 4
10567 // CHECK-NEXT:    [[TMP689:%.*]] = load i32, i32* [[ID]], align 4
10568 // CHECK-NEXT:    [[TMP690:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP688]], i32 [[TMP689]] monotonic monotonic, align 4
10569 // CHECK-NEXT:    [[TMP691:%.*]] = load i32, i32* [[IE]], align 4
10570 // CHECK-NEXT:    [[TMP692:%.*]] = load i32, i32* [[ID]], align 4
10571 // CHECK-NEXT:    [[TMP693:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP691]], i32 [[TMP692]] monotonic monotonic, align 4
10572 // CHECK-NEXT:    [[TMP694:%.*]] = load i32, i32* [[IE]], align 4
10573 // CHECK-NEXT:    [[TMP695:%.*]] = load i32, i32* [[ID]], align 4
10574 // CHECK-NEXT:    [[TMP696:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP694]], i32 [[TMP695]] monotonic monotonic, align 4
10575 // CHECK-NEXT:    [[TMP697:%.*]] = load i32, i32* [[IE]], align 4
10576 // CHECK-NEXT:    [[TMP698:%.*]] = load i32, i32* [[ID]], align 4
10577 // CHECK-NEXT:    [[TMP699:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP697]], i32 [[TMP698]] monotonic monotonic, align 4
10578 // CHECK-NEXT:    [[TMP700:%.*]] = load i32, i32* [[UIE]], align 4
10579 // CHECK-NEXT:    [[TMP701:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP700]] monotonic, align 4
10580 // CHECK-NEXT:    [[TMP702:%.*]] = load i32, i32* [[UIE]], align 4
10581 // CHECK-NEXT:    [[TMP703:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP702]] monotonic, align 4
10582 // CHECK-NEXT:    [[TMP704:%.*]] = load i32, i32* [[UIE]], align 4
10583 // CHECK-NEXT:    [[TMP705:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP704]] monotonic, align 4
10584 // CHECK-NEXT:    [[TMP706:%.*]] = load i32, i32* [[UIE]], align 4
10585 // CHECK-NEXT:    [[TMP707:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP706]] monotonic, align 4
10586 // CHECK-NEXT:    [[TMP708:%.*]] = load i32, i32* [[UIE]], align 4
10587 // CHECK-NEXT:    [[TMP709:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP708]] monotonic, align 4
10588 // CHECK-NEXT:    [[TMP710:%.*]] = load i32, i32* [[UIE]], align 4
10589 // CHECK-NEXT:    [[TMP711:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP710]] monotonic, align 4
10590 // CHECK-NEXT:    [[TMP712:%.*]] = load i32, i32* [[UIE]], align 4
10591 // CHECK-NEXT:    [[TMP713:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP712]] monotonic, align 4
10592 // CHECK-NEXT:    [[TMP714:%.*]] = load i32, i32* [[UIE]], align 4
10593 // CHECK-NEXT:    [[TMP715:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP714]] monotonic, align 4
10594 // CHECK-NEXT:    [[TMP716:%.*]] = load i32, i32* [[UIE]], align 4
10595 // CHECK-NEXT:    [[TMP717:%.*]] = load i32, i32* [[UID]], align 4
10596 // CHECK-NEXT:    [[TMP718:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP716]], i32 [[TMP717]] monotonic monotonic, align 4
10597 // CHECK-NEXT:    [[TMP719:%.*]] = load i32, i32* [[UIE]], align 4
10598 // CHECK-NEXT:    [[TMP720:%.*]] = load i32, i32* [[UID]], align 4
10599 // CHECK-NEXT:    [[TMP721:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP719]], i32 [[TMP720]] monotonic monotonic, align 4
10600 // CHECK-NEXT:    [[TMP722:%.*]] = load i32, i32* [[UIE]], align 4
10601 // CHECK-NEXT:    [[TMP723:%.*]] = load i32, i32* [[UID]], align 4
10602 // CHECK-NEXT:    [[TMP724:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP722]], i32 [[TMP723]] monotonic monotonic, align 4
10603 // CHECK-NEXT:    [[TMP725:%.*]] = load i32, i32* [[UIE]], align 4
10604 // CHECK-NEXT:    [[TMP726:%.*]] = load i32, i32* [[UID]], align 4
10605 // CHECK-NEXT:    [[TMP727:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP725]], i32 [[TMP726]] monotonic monotonic, align 4
10606 // CHECK-NEXT:    [[TMP728:%.*]] = load i32, i32* [[IE]], align 4
10607 // CHECK-NEXT:    [[TMP729:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP728]] acq_rel, align 4
10608 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10609 // CHECK-NEXT:    [[TMP730:%.*]] = load i32, i32* [[IE]], align 4
10610 // CHECK-NEXT:    [[TMP731:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP730]] acq_rel, align 4
10611 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10612 // CHECK-NEXT:    [[TMP732:%.*]] = load i32, i32* [[IE]], align 4
10613 // CHECK-NEXT:    [[TMP733:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP732]] acq_rel, align 4
10614 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10615 // CHECK-NEXT:    [[TMP734:%.*]] = load i32, i32* [[IE]], align 4
10616 // CHECK-NEXT:    [[TMP735:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP734]] acq_rel, align 4
10617 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10618 // CHECK-NEXT:    [[TMP736:%.*]] = load i32, i32* [[IE]], align 4
10619 // CHECK-NEXT:    [[TMP737:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP736]] acq_rel, align 4
10620 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10621 // CHECK-NEXT:    [[TMP738:%.*]] = load i32, i32* [[IE]], align 4
10622 // CHECK-NEXT:    [[TMP739:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP738]] acq_rel, align 4
10623 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10624 // CHECK-NEXT:    [[TMP740:%.*]] = load i32, i32* [[IE]], align 4
10625 // CHECK-NEXT:    [[TMP741:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP740]] acq_rel, align 4
10626 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10627 // CHECK-NEXT:    [[TMP742:%.*]] = load i32, i32* [[IE]], align 4
10628 // CHECK-NEXT:    [[TMP743:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP742]] acq_rel, align 4
10629 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10630 // CHECK-NEXT:    [[TMP744:%.*]] = load i32, i32* [[IE]], align 4
10631 // CHECK-NEXT:    [[TMP745:%.*]] = load i32, i32* [[ID]], align 4
10632 // CHECK-NEXT:    [[TMP746:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP744]], i32 [[TMP745]] acq_rel acquire, align 4
10633 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10634 // CHECK-NEXT:    [[TMP747:%.*]] = load i32, i32* [[IE]], align 4
10635 // CHECK-NEXT:    [[TMP748:%.*]] = load i32, i32* [[ID]], align 4
10636 // CHECK-NEXT:    [[TMP749:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP747]], i32 [[TMP748]] acq_rel acquire, align 4
10637 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10638 // CHECK-NEXT:    [[TMP750:%.*]] = load i32, i32* [[IE]], align 4
10639 // CHECK-NEXT:    [[TMP751:%.*]] = load i32, i32* [[ID]], align 4
10640 // CHECK-NEXT:    [[TMP752:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP750]], i32 [[TMP751]] acq_rel acquire, align 4
10641 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10642 // CHECK-NEXT:    [[TMP753:%.*]] = load i32, i32* [[IE]], align 4
10643 // CHECK-NEXT:    [[TMP754:%.*]] = load i32, i32* [[ID]], align 4
10644 // CHECK-NEXT:    [[TMP755:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP753]], i32 [[TMP754]] acq_rel acquire, align 4
10645 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10646 // CHECK-NEXT:    [[TMP756:%.*]] = load i32, i32* [[UIE]], align 4
10647 // CHECK-NEXT:    [[TMP757:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP756]] acq_rel, align 4
10648 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10649 // CHECK-NEXT:    [[TMP758:%.*]] = load i32, i32* [[UIE]], align 4
10650 // CHECK-NEXT:    [[TMP759:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP758]] acq_rel, align 4
10651 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10652 // CHECK-NEXT:    [[TMP760:%.*]] = load i32, i32* [[UIE]], align 4
10653 // CHECK-NEXT:    [[TMP761:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP760]] acq_rel, align 4
10654 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10655 // CHECK-NEXT:    [[TMP762:%.*]] = load i32, i32* [[UIE]], align 4
10656 // CHECK-NEXT:    [[TMP763:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP762]] acq_rel, align 4
10657 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10658 // CHECK-NEXT:    [[TMP764:%.*]] = load i32, i32* [[UIE]], align 4
10659 // CHECK-NEXT:    [[TMP765:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP764]] acq_rel, align 4
10660 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10661 // CHECK-NEXT:    [[TMP766:%.*]] = load i32, i32* [[UIE]], align 4
10662 // CHECK-NEXT:    [[TMP767:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP766]] acq_rel, align 4
10663 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10664 // CHECK-NEXT:    [[TMP768:%.*]] = load i32, i32* [[UIE]], align 4
10665 // CHECK-NEXT:    [[TMP769:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP768]] acq_rel, align 4
10666 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10667 // CHECK-NEXT:    [[TMP770:%.*]] = load i32, i32* [[UIE]], align 4
10668 // CHECK-NEXT:    [[TMP771:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP770]] acq_rel, align 4
10669 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10670 // CHECK-NEXT:    [[TMP772:%.*]] = load i32, i32* [[UIE]], align 4
10671 // CHECK-NEXT:    [[TMP773:%.*]] = load i32, i32* [[UID]], align 4
10672 // CHECK-NEXT:    [[TMP774:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP772]], i32 [[TMP773]] acq_rel acquire, align 4
10673 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10674 // CHECK-NEXT:    [[TMP775:%.*]] = load i32, i32* [[UIE]], align 4
10675 // CHECK-NEXT:    [[TMP776:%.*]] = load i32, i32* [[UID]], align 4
10676 // CHECK-NEXT:    [[TMP777:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP775]], i32 [[TMP776]] acq_rel acquire, align 4
10677 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10678 // CHECK-NEXT:    [[TMP778:%.*]] = load i32, i32* [[UIE]], align 4
10679 // CHECK-NEXT:    [[TMP779:%.*]] = load i32, i32* [[UID]], align 4
10680 // CHECK-NEXT:    [[TMP780:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP778]], i32 [[TMP779]] acq_rel acquire, align 4
10681 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10682 // CHECK-NEXT:    [[TMP781:%.*]] = load i32, i32* [[UIE]], align 4
10683 // CHECK-NEXT:    [[TMP782:%.*]] = load i32, i32* [[UID]], align 4
10684 // CHECK-NEXT:    [[TMP783:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP781]], i32 [[TMP782]] acq_rel acquire, align 4
10685 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10686 // CHECK-NEXT:    [[TMP784:%.*]] = load i32, i32* [[IE]], align 4
10687 // CHECK-NEXT:    [[TMP785:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP784]] acquire, align 4
10688 // CHECK-NEXT:    [[TMP786:%.*]] = load i32, i32* [[IE]], align 4
10689 // CHECK-NEXT:    [[TMP787:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP786]] acquire, align 4
10690 // CHECK-NEXT:    [[TMP788:%.*]] = load i32, i32* [[IE]], align 4
10691 // CHECK-NEXT:    [[TMP789:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP788]] acquire, align 4
10692 // CHECK-NEXT:    [[TMP790:%.*]] = load i32, i32* [[IE]], align 4
10693 // CHECK-NEXT:    [[TMP791:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP790]] acquire, align 4
10694 // CHECK-NEXT:    [[TMP792:%.*]] = load i32, i32* [[IE]], align 4
10695 // CHECK-NEXT:    [[TMP793:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP792]] acquire, align 4
10696 // CHECK-NEXT:    [[TMP794:%.*]] = load i32, i32* [[IE]], align 4
10697 // CHECK-NEXT:    [[TMP795:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP794]] acquire, align 4
10698 // CHECK-NEXT:    [[TMP796:%.*]] = load i32, i32* [[IE]], align 4
10699 // CHECK-NEXT:    [[TMP797:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP796]] acquire, align 4
10700 // CHECK-NEXT:    [[TMP798:%.*]] = load i32, i32* [[IE]], align 4
10701 // CHECK-NEXT:    [[TMP799:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP798]] acquire, align 4
10702 // CHECK-NEXT:    [[TMP800:%.*]] = load i32, i32* [[IE]], align 4
10703 // CHECK-NEXT:    [[TMP801:%.*]] = load i32, i32* [[ID]], align 4
10704 // CHECK-NEXT:    [[TMP802:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP800]], i32 [[TMP801]] acquire acquire, align 4
10705 // CHECK-NEXT:    [[TMP803:%.*]] = load i32, i32* [[IE]], align 4
10706 // CHECK-NEXT:    [[TMP804:%.*]] = load i32, i32* [[ID]], align 4
10707 // CHECK-NEXT:    [[TMP805:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP803]], i32 [[TMP804]] acquire acquire, align 4
10708 // CHECK-NEXT:    [[TMP806:%.*]] = load i32, i32* [[IE]], align 4
10709 // CHECK-NEXT:    [[TMP807:%.*]] = load i32, i32* [[ID]], align 4
10710 // CHECK-NEXT:    [[TMP808:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP806]], i32 [[TMP807]] acquire acquire, align 4
10711 // CHECK-NEXT:    [[TMP809:%.*]] = load i32, i32* [[IE]], align 4
10712 // CHECK-NEXT:    [[TMP810:%.*]] = load i32, i32* [[ID]], align 4
10713 // CHECK-NEXT:    [[TMP811:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP809]], i32 [[TMP810]] acquire acquire, align 4
10714 // CHECK-NEXT:    [[TMP812:%.*]] = load i32, i32* [[UIE]], align 4
10715 // CHECK-NEXT:    [[TMP813:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP812]] acquire, align 4
10716 // CHECK-NEXT:    [[TMP814:%.*]] = load i32, i32* [[UIE]], align 4
10717 // CHECK-NEXT:    [[TMP815:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP814]] acquire, align 4
10718 // CHECK-NEXT:    [[TMP816:%.*]] = load i32, i32* [[UIE]], align 4
10719 // CHECK-NEXT:    [[TMP817:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP816]] acquire, align 4
10720 // CHECK-NEXT:    [[TMP818:%.*]] = load i32, i32* [[UIE]], align 4
10721 // CHECK-NEXT:    [[TMP819:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP818]] acquire, align 4
10722 // CHECK-NEXT:    [[TMP820:%.*]] = load i32, i32* [[UIE]], align 4
10723 // CHECK-NEXT:    [[TMP821:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP820]] acquire, align 4
10724 // CHECK-NEXT:    [[TMP822:%.*]] = load i32, i32* [[UIE]], align 4
10725 // CHECK-NEXT:    [[TMP823:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP822]] acquire, align 4
10726 // CHECK-NEXT:    [[TMP824:%.*]] = load i32, i32* [[UIE]], align 4
10727 // CHECK-NEXT:    [[TMP825:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP824]] acquire, align 4
10728 // CHECK-NEXT:    [[TMP826:%.*]] = load i32, i32* [[UIE]], align 4
10729 // CHECK-NEXT:    [[TMP827:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP826]] acquire, align 4
10730 // CHECK-NEXT:    [[TMP828:%.*]] = load i32, i32* [[UIE]], align 4
10731 // CHECK-NEXT:    [[TMP829:%.*]] = load i32, i32* [[UID]], align 4
10732 // CHECK-NEXT:    [[TMP830:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP828]], i32 [[TMP829]] acquire acquire, align 4
10733 // CHECK-NEXT:    [[TMP831:%.*]] = load i32, i32* [[UIE]], align 4
10734 // CHECK-NEXT:    [[TMP832:%.*]] = load i32, i32* [[UID]], align 4
10735 // CHECK-NEXT:    [[TMP833:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP831]], i32 [[TMP832]] acquire acquire, align 4
10736 // CHECK-NEXT:    [[TMP834:%.*]] = load i32, i32* [[UIE]], align 4
10737 // CHECK-NEXT:    [[TMP835:%.*]] = load i32, i32* [[UID]], align 4
10738 // CHECK-NEXT:    [[TMP836:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP834]], i32 [[TMP835]] acquire acquire, align 4
10739 // CHECK-NEXT:    [[TMP837:%.*]] = load i32, i32* [[UIE]], align 4
10740 // CHECK-NEXT:    [[TMP838:%.*]] = load i32, i32* [[UID]], align 4
10741 // CHECK-NEXT:    [[TMP839:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP837]], i32 [[TMP838]] acquire acquire, align 4
10742 // CHECK-NEXT:    [[TMP840:%.*]] = load i32, i32* [[IE]], align 4
10743 // CHECK-NEXT:    [[TMP841:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP840]] monotonic, align 4
10744 // CHECK-NEXT:    [[TMP842:%.*]] = load i32, i32* [[IE]], align 4
10745 // CHECK-NEXT:    [[TMP843:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP842]] monotonic, align 4
10746 // CHECK-NEXT:    [[TMP844:%.*]] = load i32, i32* [[IE]], align 4
10747 // CHECK-NEXT:    [[TMP845:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP844]] monotonic, align 4
10748 // CHECK-NEXT:    [[TMP846:%.*]] = load i32, i32* [[IE]], align 4
10749 // CHECK-NEXT:    [[TMP847:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP846]] monotonic, align 4
10750 // CHECK-NEXT:    [[TMP848:%.*]] = load i32, i32* [[IE]], align 4
10751 // CHECK-NEXT:    [[TMP849:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP848]] monotonic, align 4
10752 // CHECK-NEXT:    [[TMP850:%.*]] = load i32, i32* [[IE]], align 4
10753 // CHECK-NEXT:    [[TMP851:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP850]] monotonic, align 4
10754 // CHECK-NEXT:    [[TMP852:%.*]] = load i32, i32* [[IE]], align 4
10755 // CHECK-NEXT:    [[TMP853:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP852]] monotonic, align 4
10756 // CHECK-NEXT:    [[TMP854:%.*]] = load i32, i32* [[IE]], align 4
10757 // CHECK-NEXT:    [[TMP855:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP854]] monotonic, align 4
10758 // CHECK-NEXT:    [[TMP856:%.*]] = load i32, i32* [[IE]], align 4
10759 // CHECK-NEXT:    [[TMP857:%.*]] = load i32, i32* [[ID]], align 4
10760 // CHECK-NEXT:    [[TMP858:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP856]], i32 [[TMP857]] monotonic monotonic, align 4
10761 // CHECK-NEXT:    [[TMP859:%.*]] = load i32, i32* [[IE]], align 4
10762 // CHECK-NEXT:    [[TMP860:%.*]] = load i32, i32* [[ID]], align 4
10763 // CHECK-NEXT:    [[TMP861:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP859]], i32 [[TMP860]] monotonic monotonic, align 4
10764 // CHECK-NEXT:    [[TMP862:%.*]] = load i32, i32* [[IE]], align 4
10765 // CHECK-NEXT:    [[TMP863:%.*]] = load i32, i32* [[ID]], align 4
10766 // CHECK-NEXT:    [[TMP864:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP862]], i32 [[TMP863]] monotonic monotonic, align 4
10767 // CHECK-NEXT:    [[TMP865:%.*]] = load i32, i32* [[IE]], align 4
10768 // CHECK-NEXT:    [[TMP866:%.*]] = load i32, i32* [[ID]], align 4
10769 // CHECK-NEXT:    [[TMP867:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP865]], i32 [[TMP866]] monotonic monotonic, align 4
10770 // CHECK-NEXT:    [[TMP868:%.*]] = load i32, i32* [[UIE]], align 4
10771 // CHECK-NEXT:    [[TMP869:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP868]] monotonic, align 4
10772 // CHECK-NEXT:    [[TMP870:%.*]] = load i32, i32* [[UIE]], align 4
10773 // CHECK-NEXT:    [[TMP871:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP870]] monotonic, align 4
10774 // CHECK-NEXT:    [[TMP872:%.*]] = load i32, i32* [[UIE]], align 4
10775 // CHECK-NEXT:    [[TMP873:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP872]] monotonic, align 4
10776 // CHECK-NEXT:    [[TMP874:%.*]] = load i32, i32* [[UIE]], align 4
10777 // CHECK-NEXT:    [[TMP875:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP874]] monotonic, align 4
10778 // CHECK-NEXT:    [[TMP876:%.*]] = load i32, i32* [[UIE]], align 4
10779 // CHECK-NEXT:    [[TMP877:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP876]] monotonic, align 4
10780 // CHECK-NEXT:    [[TMP878:%.*]] = load i32, i32* [[UIE]], align 4
10781 // CHECK-NEXT:    [[TMP879:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP878]] monotonic, align 4
10782 // CHECK-NEXT:    [[TMP880:%.*]] = load i32, i32* [[UIE]], align 4
10783 // CHECK-NEXT:    [[TMP881:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP880]] monotonic, align 4
10784 // CHECK-NEXT:    [[TMP882:%.*]] = load i32, i32* [[UIE]], align 4
10785 // CHECK-NEXT:    [[TMP883:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP882]] monotonic, align 4
10786 // CHECK-NEXT:    [[TMP884:%.*]] = load i32, i32* [[UIE]], align 4
10787 // CHECK-NEXT:    [[TMP885:%.*]] = load i32, i32* [[UID]], align 4
10788 // CHECK-NEXT:    [[TMP886:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP884]], i32 [[TMP885]] monotonic monotonic, align 4
10789 // CHECK-NEXT:    [[TMP887:%.*]] = load i32, i32* [[UIE]], align 4
10790 // CHECK-NEXT:    [[TMP888:%.*]] = load i32, i32* [[UID]], align 4
10791 // CHECK-NEXT:    [[TMP889:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP887]], i32 [[TMP888]] monotonic monotonic, align 4
10792 // CHECK-NEXT:    [[TMP890:%.*]] = load i32, i32* [[UIE]], align 4
10793 // CHECK-NEXT:    [[TMP891:%.*]] = load i32, i32* [[UID]], align 4
10794 // CHECK-NEXT:    [[TMP892:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP890]], i32 [[TMP891]] monotonic monotonic, align 4
10795 // CHECK-NEXT:    [[TMP893:%.*]] = load i32, i32* [[UIE]], align 4
10796 // CHECK-NEXT:    [[TMP894:%.*]] = load i32, i32* [[UID]], align 4
10797 // CHECK-NEXT:    [[TMP895:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP893]], i32 [[TMP894]] monotonic monotonic, align 4
10798 // CHECK-NEXT:    [[TMP896:%.*]] = load i32, i32* [[IE]], align 4
10799 // CHECK-NEXT:    [[TMP897:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP896]] release, align 4
10800 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10801 // CHECK-NEXT:    [[TMP898:%.*]] = load i32, i32* [[IE]], align 4
10802 // CHECK-NEXT:    [[TMP899:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP898]] release, align 4
10803 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10804 // CHECK-NEXT:    [[TMP900:%.*]] = load i32, i32* [[IE]], align 4
10805 // CHECK-NEXT:    [[TMP901:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP900]] release, align 4
10806 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10807 // CHECK-NEXT:    [[TMP902:%.*]] = load i32, i32* [[IE]], align 4
10808 // CHECK-NEXT:    [[TMP903:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP902]] release, align 4
10809 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10810 // CHECK-NEXT:    [[TMP904:%.*]] = load i32, i32* [[IE]], align 4
10811 // CHECK-NEXT:    [[TMP905:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP904]] release, align 4
10812 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10813 // CHECK-NEXT:    [[TMP906:%.*]] = load i32, i32* [[IE]], align 4
10814 // CHECK-NEXT:    [[TMP907:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP906]] release, align 4
10815 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10816 // CHECK-NEXT:    [[TMP908:%.*]] = load i32, i32* [[IE]], align 4
10817 // CHECK-NEXT:    [[TMP909:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP908]] release, align 4
10818 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10819 // CHECK-NEXT:    [[TMP910:%.*]] = load i32, i32* [[IE]], align 4
10820 // CHECK-NEXT:    [[TMP911:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP910]] release, align 4
10821 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10822 // CHECK-NEXT:    [[TMP912:%.*]] = load i32, i32* [[IE]], align 4
10823 // CHECK-NEXT:    [[TMP913:%.*]] = load i32, i32* [[ID]], align 4
10824 // CHECK-NEXT:    [[TMP914:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP912]], i32 [[TMP913]] release monotonic, align 4
10825 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10826 // CHECK-NEXT:    [[TMP915:%.*]] = load i32, i32* [[IE]], align 4
10827 // CHECK-NEXT:    [[TMP916:%.*]] = load i32, i32* [[ID]], align 4
10828 // CHECK-NEXT:    [[TMP917:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP915]], i32 [[TMP916]] release monotonic, align 4
10829 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10830 // CHECK-NEXT:    [[TMP918:%.*]] = load i32, i32* [[IE]], align 4
10831 // CHECK-NEXT:    [[TMP919:%.*]] = load i32, i32* [[ID]], align 4
10832 // CHECK-NEXT:    [[TMP920:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP918]], i32 [[TMP919]] release monotonic, align 4
10833 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10834 // CHECK-NEXT:    [[TMP921:%.*]] = load i32, i32* [[IE]], align 4
10835 // CHECK-NEXT:    [[TMP922:%.*]] = load i32, i32* [[ID]], align 4
10836 // CHECK-NEXT:    [[TMP923:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP921]], i32 [[TMP922]] release monotonic, align 4
10837 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10838 // CHECK-NEXT:    [[TMP924:%.*]] = load i32, i32* [[UIE]], align 4
10839 // CHECK-NEXT:    [[TMP925:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP924]] release, align 4
10840 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10841 // CHECK-NEXT:    [[TMP926:%.*]] = load i32, i32* [[UIE]], align 4
10842 // CHECK-NEXT:    [[TMP927:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP926]] release, align 4
10843 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10844 // CHECK-NEXT:    [[TMP928:%.*]] = load i32, i32* [[UIE]], align 4
10845 // CHECK-NEXT:    [[TMP929:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP928]] release, align 4
10846 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10847 // CHECK-NEXT:    [[TMP930:%.*]] = load i32, i32* [[UIE]], align 4
10848 // CHECK-NEXT:    [[TMP931:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP930]] release, align 4
10849 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10850 // CHECK-NEXT:    [[TMP932:%.*]] = load i32, i32* [[UIE]], align 4
10851 // CHECK-NEXT:    [[TMP933:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP932]] release, align 4
10852 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10853 // CHECK-NEXT:    [[TMP934:%.*]] = load i32, i32* [[UIE]], align 4
10854 // CHECK-NEXT:    [[TMP935:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP934]] release, align 4
10855 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10856 // CHECK-NEXT:    [[TMP936:%.*]] = load i32, i32* [[UIE]], align 4
10857 // CHECK-NEXT:    [[TMP937:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP936]] release, align 4
10858 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10859 // CHECK-NEXT:    [[TMP938:%.*]] = load i32, i32* [[UIE]], align 4
10860 // CHECK-NEXT:    [[TMP939:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP938]] release, align 4
10861 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10862 // CHECK-NEXT:    [[TMP940:%.*]] = load i32, i32* [[UIE]], align 4
10863 // CHECK-NEXT:    [[TMP941:%.*]] = load i32, i32* [[UID]], align 4
10864 // CHECK-NEXT:    [[TMP942:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP940]], i32 [[TMP941]] release monotonic, align 4
10865 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10866 // CHECK-NEXT:    [[TMP943:%.*]] = load i32, i32* [[UIE]], align 4
10867 // CHECK-NEXT:    [[TMP944:%.*]] = load i32, i32* [[UID]], align 4
10868 // CHECK-NEXT:    [[TMP945:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP943]], i32 [[TMP944]] release monotonic, align 4
10869 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10870 // CHECK-NEXT:    [[TMP946:%.*]] = load i32, i32* [[UIE]], align 4
10871 // CHECK-NEXT:    [[TMP947:%.*]] = load i32, i32* [[UID]], align 4
10872 // CHECK-NEXT:    [[TMP948:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP946]], i32 [[TMP947]] release monotonic, align 4
10873 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10874 // CHECK-NEXT:    [[TMP949:%.*]] = load i32, i32* [[UIE]], align 4
10875 // CHECK-NEXT:    [[TMP950:%.*]] = load i32, i32* [[UID]], align 4
10876 // CHECK-NEXT:    [[TMP951:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP949]], i32 [[TMP950]] release monotonic, align 4
10877 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10878 // CHECK-NEXT:    [[TMP952:%.*]] = load i32, i32* [[IE]], align 4
10879 // CHECK-NEXT:    [[TMP953:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP952]] seq_cst, align 4
10880 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10881 // CHECK-NEXT:    [[TMP954:%.*]] = load i32, i32* [[IE]], align 4
10882 // CHECK-NEXT:    [[TMP955:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP954]] seq_cst, align 4
10883 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10884 // CHECK-NEXT:    [[TMP956:%.*]] = load i32, i32* [[IE]], align 4
10885 // CHECK-NEXT:    [[TMP957:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP956]] seq_cst, align 4
10886 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10887 // CHECK-NEXT:    [[TMP958:%.*]] = load i32, i32* [[IE]], align 4
10888 // CHECK-NEXT:    [[TMP959:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP958]] seq_cst, align 4
10889 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10890 // CHECK-NEXT:    [[TMP960:%.*]] = load i32, i32* [[IE]], align 4
10891 // CHECK-NEXT:    [[TMP961:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP960]] seq_cst, align 4
10892 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10893 // CHECK-NEXT:    [[TMP962:%.*]] = load i32, i32* [[IE]], align 4
10894 // CHECK-NEXT:    [[TMP963:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP962]] seq_cst, align 4
10895 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10896 // CHECK-NEXT:    [[TMP964:%.*]] = load i32, i32* [[IE]], align 4
10897 // CHECK-NEXT:    [[TMP965:%.*]] = atomicrmw max i32* [[IX]], i32 [[TMP964]] seq_cst, align 4
10898 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10899 // CHECK-NEXT:    [[TMP966:%.*]] = load i32, i32* [[IE]], align 4
10900 // CHECK-NEXT:    [[TMP967:%.*]] = atomicrmw min i32* [[IX]], i32 [[TMP966]] seq_cst, align 4
10901 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10902 // CHECK-NEXT:    [[TMP968:%.*]] = load i32, i32* [[IE]], align 4
10903 // CHECK-NEXT:    [[TMP969:%.*]] = load i32, i32* [[ID]], align 4
10904 // CHECK-NEXT:    [[TMP970:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP968]], i32 [[TMP969]] seq_cst seq_cst, align 4
10905 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10906 // CHECK-NEXT:    [[TMP971:%.*]] = load i32, i32* [[IE]], align 4
10907 // CHECK-NEXT:    [[TMP972:%.*]] = load i32, i32* [[ID]], align 4
10908 // CHECK-NEXT:    [[TMP973:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP971]], i32 [[TMP972]] seq_cst seq_cst, align 4
10909 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10910 // CHECK-NEXT:    [[TMP974:%.*]] = load i32, i32* [[IE]], align 4
10911 // CHECK-NEXT:    [[TMP975:%.*]] = load i32, i32* [[ID]], align 4
10912 // CHECK-NEXT:    [[TMP976:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP974]], i32 [[TMP975]] seq_cst seq_cst, align 4
10913 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10914 // CHECK-NEXT:    [[TMP977:%.*]] = load i32, i32* [[IE]], align 4
10915 // CHECK-NEXT:    [[TMP978:%.*]] = load i32, i32* [[ID]], align 4
10916 // CHECK-NEXT:    [[TMP979:%.*]] = cmpxchg i32* [[IX]], i32 [[TMP977]], i32 [[TMP978]] seq_cst seq_cst, align 4
10917 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10918 // CHECK-NEXT:    [[TMP980:%.*]] = load i32, i32* [[UIE]], align 4
10919 // CHECK-NEXT:    [[TMP981:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP980]] seq_cst, align 4
10920 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10921 // CHECK-NEXT:    [[TMP982:%.*]] = load i32, i32* [[UIE]], align 4
10922 // CHECK-NEXT:    [[TMP983:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP982]] seq_cst, align 4
10923 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10924 // CHECK-NEXT:    [[TMP984:%.*]] = load i32, i32* [[UIE]], align 4
10925 // CHECK-NEXT:    [[TMP985:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP984]] seq_cst, align 4
10926 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10927 // CHECK-NEXT:    [[TMP986:%.*]] = load i32, i32* [[UIE]], align 4
10928 // CHECK-NEXT:    [[TMP987:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP986]] seq_cst, align 4
10929 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10930 // CHECK-NEXT:    [[TMP988:%.*]] = load i32, i32* [[UIE]], align 4
10931 // CHECK-NEXT:    [[TMP989:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP988]] seq_cst, align 4
10932 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10933 // CHECK-NEXT:    [[TMP990:%.*]] = load i32, i32* [[UIE]], align 4
10934 // CHECK-NEXT:    [[TMP991:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP990]] seq_cst, align 4
10935 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10936 // CHECK-NEXT:    [[TMP992:%.*]] = load i32, i32* [[UIE]], align 4
10937 // CHECK-NEXT:    [[TMP993:%.*]] = atomicrmw umax i32* [[UIX]], i32 [[TMP992]] seq_cst, align 4
10938 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10939 // CHECK-NEXT:    [[TMP994:%.*]] = load i32, i32* [[UIE]], align 4
10940 // CHECK-NEXT:    [[TMP995:%.*]] = atomicrmw umin i32* [[UIX]], i32 [[TMP994]] seq_cst, align 4
10941 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10942 // CHECK-NEXT:    [[TMP996:%.*]] = load i32, i32* [[UIE]], align 4
10943 // CHECK-NEXT:    [[TMP997:%.*]] = load i32, i32* [[UID]], align 4
10944 // CHECK-NEXT:    [[TMP998:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP996]], i32 [[TMP997]] seq_cst seq_cst, align 4
10945 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10946 // CHECK-NEXT:    [[TMP999:%.*]] = load i32, i32* [[UIE]], align 4
10947 // CHECK-NEXT:    [[TMP1000:%.*]] = load i32, i32* [[UID]], align 4
10948 // CHECK-NEXT:    [[TMP1001:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP999]], i32 [[TMP1000]] seq_cst seq_cst, align 4
10949 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10950 // CHECK-NEXT:    [[TMP1002:%.*]] = load i32, i32* [[UIE]], align 4
10951 // CHECK-NEXT:    [[TMP1003:%.*]] = load i32, i32* [[UID]], align 4
10952 // CHECK-NEXT:    [[TMP1004:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP1002]], i32 [[TMP1003]] seq_cst seq_cst, align 4
10953 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10954 // CHECK-NEXT:    [[TMP1005:%.*]] = load i32, i32* [[UIE]], align 4
10955 // CHECK-NEXT:    [[TMP1006:%.*]] = load i32, i32* [[UID]], align 4
10956 // CHECK-NEXT:    [[TMP1007:%.*]] = cmpxchg i32* [[UIX]], i32 [[TMP1005]], i32 [[TMP1006]] seq_cst seq_cst, align 4
10957 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
10958 // CHECK-NEXT:    [[TMP1008:%.*]] = load i64, i64* [[LE]], align 8
10959 // CHECK-NEXT:    [[TMP1009:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1008]] monotonic, align 8
10960 // CHECK-NEXT:    [[TMP1010:%.*]] = load i64, i64* [[LE]], align 8
10961 // CHECK-NEXT:    [[TMP1011:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1010]] monotonic, align 8
10962 // CHECK-NEXT:    [[TMP1012:%.*]] = load i64, i64* [[LE]], align 8
10963 // CHECK-NEXT:    [[TMP1013:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1012]] monotonic, align 8
10964 // CHECK-NEXT:    [[TMP1014:%.*]] = load i64, i64* [[LE]], align 8
10965 // CHECK-NEXT:    [[TMP1015:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1014]] monotonic, align 8
10966 // CHECK-NEXT:    [[TMP1016:%.*]] = load i64, i64* [[LE]], align 8
10967 // CHECK-NEXT:    [[TMP1017:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1016]] monotonic, align 8
10968 // CHECK-NEXT:    [[TMP1018:%.*]] = load i64, i64* [[LE]], align 8
10969 // CHECK-NEXT:    [[TMP1019:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1018]] monotonic, align 8
10970 // CHECK-NEXT:    [[TMP1020:%.*]] = load i64, i64* [[LE]], align 8
10971 // CHECK-NEXT:    [[TMP1021:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1020]] monotonic, align 8
10972 // CHECK-NEXT:    [[TMP1022:%.*]] = load i64, i64* [[LE]], align 8
10973 // CHECK-NEXT:    [[TMP1023:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1022]] monotonic, align 8
10974 // CHECK-NEXT:    [[TMP1024:%.*]] = load i64, i64* [[LE]], align 8
10975 // CHECK-NEXT:    [[TMP1025:%.*]] = load i64, i64* [[LD]], align 8
10976 // CHECK-NEXT:    [[TMP1026:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1024]], i64 [[TMP1025]] monotonic monotonic, align 8
10977 // CHECK-NEXT:    [[TMP1027:%.*]] = load i64, i64* [[LE]], align 8
10978 // CHECK-NEXT:    [[TMP1028:%.*]] = load i64, i64* [[LD]], align 8
10979 // CHECK-NEXT:    [[TMP1029:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1027]], i64 [[TMP1028]] monotonic monotonic, align 8
10980 // CHECK-NEXT:    [[TMP1030:%.*]] = load i64, i64* [[LE]], align 8
10981 // CHECK-NEXT:    [[TMP1031:%.*]] = load i64, i64* [[LD]], align 8
10982 // CHECK-NEXT:    [[TMP1032:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1030]], i64 [[TMP1031]] monotonic monotonic, align 8
10983 // CHECK-NEXT:    [[TMP1033:%.*]] = load i64, i64* [[LE]], align 8
10984 // CHECK-NEXT:    [[TMP1034:%.*]] = load i64, i64* [[LD]], align 8
10985 // CHECK-NEXT:    [[TMP1035:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1033]], i64 [[TMP1034]] monotonic monotonic, align 8
10986 // CHECK-NEXT:    [[TMP1036:%.*]] = load i64, i64* [[ULE]], align 8
10987 // CHECK-NEXT:    [[TMP1037:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1036]] monotonic, align 8
10988 // CHECK-NEXT:    [[TMP1038:%.*]] = load i64, i64* [[ULE]], align 8
10989 // CHECK-NEXT:    [[TMP1039:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1038]] monotonic, align 8
10990 // CHECK-NEXT:    [[TMP1040:%.*]] = load i64, i64* [[ULE]], align 8
10991 // CHECK-NEXT:    [[TMP1041:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1040]] monotonic, align 8
10992 // CHECK-NEXT:    [[TMP1042:%.*]] = load i64, i64* [[ULE]], align 8
10993 // CHECK-NEXT:    [[TMP1043:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1042]] monotonic, align 8
10994 // CHECK-NEXT:    [[TMP1044:%.*]] = load i64, i64* [[ULE]], align 8
10995 // CHECK-NEXT:    [[TMP1045:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1044]] monotonic, align 8
10996 // CHECK-NEXT:    [[TMP1046:%.*]] = load i64, i64* [[ULE]], align 8
10997 // CHECK-NEXT:    [[TMP1047:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1046]] monotonic, align 8
10998 // CHECK-NEXT:    [[TMP1048:%.*]] = load i64, i64* [[ULE]], align 8
10999 // CHECK-NEXT:    [[TMP1049:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1048]] monotonic, align 8
11000 // CHECK-NEXT:    [[TMP1050:%.*]] = load i64, i64* [[ULE]], align 8
11001 // CHECK-NEXT:    [[TMP1051:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1050]] monotonic, align 8
11002 // CHECK-NEXT:    [[TMP1052:%.*]] = load i64, i64* [[ULE]], align 8
11003 // CHECK-NEXT:    [[TMP1053:%.*]] = load i64, i64* [[ULD]], align 8
11004 // CHECK-NEXT:    [[TMP1054:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1052]], i64 [[TMP1053]] monotonic monotonic, align 8
11005 // CHECK-NEXT:    [[TMP1055:%.*]] = load i64, i64* [[ULE]], align 8
11006 // CHECK-NEXT:    [[TMP1056:%.*]] = load i64, i64* [[ULD]], align 8
11007 // CHECK-NEXT:    [[TMP1057:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1055]], i64 [[TMP1056]] monotonic monotonic, align 8
11008 // CHECK-NEXT:    [[TMP1058:%.*]] = load i64, i64* [[ULE]], align 8
11009 // CHECK-NEXT:    [[TMP1059:%.*]] = load i64, i64* [[ULD]], align 8
11010 // CHECK-NEXT:    [[TMP1060:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1058]], i64 [[TMP1059]] monotonic monotonic, align 8
11011 // CHECK-NEXT:    [[TMP1061:%.*]] = load i64, i64* [[ULE]], align 8
11012 // CHECK-NEXT:    [[TMP1062:%.*]] = load i64, i64* [[ULD]], align 8
11013 // CHECK-NEXT:    [[TMP1063:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1061]], i64 [[TMP1062]] monotonic monotonic, align 8
11014 // CHECK-NEXT:    [[TMP1064:%.*]] = load i64, i64* [[LE]], align 8
11015 // CHECK-NEXT:    [[TMP1065:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1064]] acq_rel, align 8
11016 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11017 // CHECK-NEXT:    [[TMP1066:%.*]] = load i64, i64* [[LE]], align 8
11018 // CHECK-NEXT:    [[TMP1067:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1066]] acq_rel, align 8
11019 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11020 // CHECK-NEXT:    [[TMP1068:%.*]] = load i64, i64* [[LE]], align 8
11021 // CHECK-NEXT:    [[TMP1069:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1068]] acq_rel, align 8
11022 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11023 // CHECK-NEXT:    [[TMP1070:%.*]] = load i64, i64* [[LE]], align 8
11024 // CHECK-NEXT:    [[TMP1071:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1070]] acq_rel, align 8
11025 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11026 // CHECK-NEXT:    [[TMP1072:%.*]] = load i64, i64* [[LE]], align 8
11027 // CHECK-NEXT:    [[TMP1073:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1072]] acq_rel, align 8
11028 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11029 // CHECK-NEXT:    [[TMP1074:%.*]] = load i64, i64* [[LE]], align 8
11030 // CHECK-NEXT:    [[TMP1075:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1074]] acq_rel, align 8
11031 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11032 // CHECK-NEXT:    [[TMP1076:%.*]] = load i64, i64* [[LE]], align 8
11033 // CHECK-NEXT:    [[TMP1077:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1076]] acq_rel, align 8
11034 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11035 // CHECK-NEXT:    [[TMP1078:%.*]] = load i64, i64* [[LE]], align 8
11036 // CHECK-NEXT:    [[TMP1079:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1078]] acq_rel, align 8
11037 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11038 // CHECK-NEXT:    [[TMP1080:%.*]] = load i64, i64* [[LE]], align 8
11039 // CHECK-NEXT:    [[TMP1081:%.*]] = load i64, i64* [[LD]], align 8
11040 // CHECK-NEXT:    [[TMP1082:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1080]], i64 [[TMP1081]] acq_rel acquire, align 8
11041 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11042 // CHECK-NEXT:    [[TMP1083:%.*]] = load i64, i64* [[LE]], align 8
11043 // CHECK-NEXT:    [[TMP1084:%.*]] = load i64, i64* [[LD]], align 8
11044 // CHECK-NEXT:    [[TMP1085:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1083]], i64 [[TMP1084]] acq_rel acquire, align 8
11045 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11046 // CHECK-NEXT:    [[TMP1086:%.*]] = load i64, i64* [[LE]], align 8
11047 // CHECK-NEXT:    [[TMP1087:%.*]] = load i64, i64* [[LD]], align 8
11048 // CHECK-NEXT:    [[TMP1088:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1086]], i64 [[TMP1087]] acq_rel acquire, align 8
11049 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11050 // CHECK-NEXT:    [[TMP1089:%.*]] = load i64, i64* [[LE]], align 8
11051 // CHECK-NEXT:    [[TMP1090:%.*]] = load i64, i64* [[LD]], align 8
11052 // CHECK-NEXT:    [[TMP1091:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1089]], i64 [[TMP1090]] acq_rel acquire, align 8
11053 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11054 // CHECK-NEXT:    [[TMP1092:%.*]] = load i64, i64* [[ULE]], align 8
11055 // CHECK-NEXT:    [[TMP1093:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1092]] acq_rel, align 8
11056 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11057 // CHECK-NEXT:    [[TMP1094:%.*]] = load i64, i64* [[ULE]], align 8
11058 // CHECK-NEXT:    [[TMP1095:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1094]] acq_rel, align 8
11059 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11060 // CHECK-NEXT:    [[TMP1096:%.*]] = load i64, i64* [[ULE]], align 8
11061 // CHECK-NEXT:    [[TMP1097:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1096]] acq_rel, align 8
11062 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11063 // CHECK-NEXT:    [[TMP1098:%.*]] = load i64, i64* [[ULE]], align 8
11064 // CHECK-NEXT:    [[TMP1099:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1098]] acq_rel, align 8
11065 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11066 // CHECK-NEXT:    [[TMP1100:%.*]] = load i64, i64* [[ULE]], align 8
11067 // CHECK-NEXT:    [[TMP1101:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1100]] acq_rel, align 8
11068 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11069 // CHECK-NEXT:    [[TMP1102:%.*]] = load i64, i64* [[ULE]], align 8
11070 // CHECK-NEXT:    [[TMP1103:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1102]] acq_rel, align 8
11071 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11072 // CHECK-NEXT:    [[TMP1104:%.*]] = load i64, i64* [[ULE]], align 8
11073 // CHECK-NEXT:    [[TMP1105:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1104]] acq_rel, align 8
11074 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11075 // CHECK-NEXT:    [[TMP1106:%.*]] = load i64, i64* [[ULE]], align 8
11076 // CHECK-NEXT:    [[TMP1107:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1106]] acq_rel, align 8
11077 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11078 // CHECK-NEXT:    [[TMP1108:%.*]] = load i64, i64* [[ULE]], align 8
11079 // CHECK-NEXT:    [[TMP1109:%.*]] = load i64, i64* [[ULD]], align 8
11080 // CHECK-NEXT:    [[TMP1110:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1108]], i64 [[TMP1109]] acq_rel acquire, align 8
11081 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11082 // CHECK-NEXT:    [[TMP1111:%.*]] = load i64, i64* [[ULE]], align 8
11083 // CHECK-NEXT:    [[TMP1112:%.*]] = load i64, i64* [[ULD]], align 8
11084 // CHECK-NEXT:    [[TMP1113:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1111]], i64 [[TMP1112]] acq_rel acquire, align 8
11085 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11086 // CHECK-NEXT:    [[TMP1114:%.*]] = load i64, i64* [[ULE]], align 8
11087 // CHECK-NEXT:    [[TMP1115:%.*]] = load i64, i64* [[ULD]], align 8
11088 // CHECK-NEXT:    [[TMP1116:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1114]], i64 [[TMP1115]] acq_rel acquire, align 8
11089 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11090 // CHECK-NEXT:    [[TMP1117:%.*]] = load i64, i64* [[ULE]], align 8
11091 // CHECK-NEXT:    [[TMP1118:%.*]] = load i64, i64* [[ULD]], align 8
11092 // CHECK-NEXT:    [[TMP1119:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1117]], i64 [[TMP1118]] acq_rel acquire, align 8
11093 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11094 // CHECK-NEXT:    [[TMP1120:%.*]] = load i64, i64* [[LE]], align 8
11095 // CHECK-NEXT:    [[TMP1121:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1120]] acquire, align 8
11096 // CHECK-NEXT:    [[TMP1122:%.*]] = load i64, i64* [[LE]], align 8
11097 // CHECK-NEXT:    [[TMP1123:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1122]] acquire, align 8
11098 // CHECK-NEXT:    [[TMP1124:%.*]] = load i64, i64* [[LE]], align 8
11099 // CHECK-NEXT:    [[TMP1125:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1124]] acquire, align 8
11100 // CHECK-NEXT:    [[TMP1126:%.*]] = load i64, i64* [[LE]], align 8
11101 // CHECK-NEXT:    [[TMP1127:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1126]] acquire, align 8
11102 // CHECK-NEXT:    [[TMP1128:%.*]] = load i64, i64* [[LE]], align 8
11103 // CHECK-NEXT:    [[TMP1129:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1128]] acquire, align 8
11104 // CHECK-NEXT:    [[TMP1130:%.*]] = load i64, i64* [[LE]], align 8
11105 // CHECK-NEXT:    [[TMP1131:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1130]] acquire, align 8
11106 // CHECK-NEXT:    [[TMP1132:%.*]] = load i64, i64* [[LE]], align 8
11107 // CHECK-NEXT:    [[TMP1133:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1132]] acquire, align 8
11108 // CHECK-NEXT:    [[TMP1134:%.*]] = load i64, i64* [[LE]], align 8
11109 // CHECK-NEXT:    [[TMP1135:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1134]] acquire, align 8
11110 // CHECK-NEXT:    [[TMP1136:%.*]] = load i64, i64* [[LE]], align 8
11111 // CHECK-NEXT:    [[TMP1137:%.*]] = load i64, i64* [[LD]], align 8
11112 // CHECK-NEXT:    [[TMP1138:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1136]], i64 [[TMP1137]] acquire acquire, align 8
11113 // CHECK-NEXT:    [[TMP1139:%.*]] = load i64, i64* [[LE]], align 8
11114 // CHECK-NEXT:    [[TMP1140:%.*]] = load i64, i64* [[LD]], align 8
11115 // CHECK-NEXT:    [[TMP1141:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1139]], i64 [[TMP1140]] acquire acquire, align 8
11116 // CHECK-NEXT:    [[TMP1142:%.*]] = load i64, i64* [[LE]], align 8
11117 // CHECK-NEXT:    [[TMP1143:%.*]] = load i64, i64* [[LD]], align 8
11118 // CHECK-NEXT:    [[TMP1144:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1142]], i64 [[TMP1143]] acquire acquire, align 8
11119 // CHECK-NEXT:    [[TMP1145:%.*]] = load i64, i64* [[LE]], align 8
11120 // CHECK-NEXT:    [[TMP1146:%.*]] = load i64, i64* [[LD]], align 8
11121 // CHECK-NEXT:    [[TMP1147:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1145]], i64 [[TMP1146]] acquire acquire, align 8
11122 // CHECK-NEXT:    [[TMP1148:%.*]] = load i64, i64* [[ULE]], align 8
11123 // CHECK-NEXT:    [[TMP1149:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1148]] acquire, align 8
11124 // CHECK-NEXT:    [[TMP1150:%.*]] = load i64, i64* [[ULE]], align 8
11125 // CHECK-NEXT:    [[TMP1151:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1150]] acquire, align 8
11126 // CHECK-NEXT:    [[TMP1152:%.*]] = load i64, i64* [[ULE]], align 8
11127 // CHECK-NEXT:    [[TMP1153:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1152]] acquire, align 8
11128 // CHECK-NEXT:    [[TMP1154:%.*]] = load i64, i64* [[ULE]], align 8
11129 // CHECK-NEXT:    [[TMP1155:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1154]] acquire, align 8
11130 // CHECK-NEXT:    [[TMP1156:%.*]] = load i64, i64* [[ULE]], align 8
11131 // CHECK-NEXT:    [[TMP1157:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1156]] acquire, align 8
11132 // CHECK-NEXT:    [[TMP1158:%.*]] = load i64, i64* [[ULE]], align 8
11133 // CHECK-NEXT:    [[TMP1159:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1158]] acquire, align 8
11134 // CHECK-NEXT:    [[TMP1160:%.*]] = load i64, i64* [[ULE]], align 8
11135 // CHECK-NEXT:    [[TMP1161:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1160]] acquire, align 8
11136 // CHECK-NEXT:    [[TMP1162:%.*]] = load i64, i64* [[ULE]], align 8
11137 // CHECK-NEXT:    [[TMP1163:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1162]] acquire, align 8
11138 // CHECK-NEXT:    [[TMP1164:%.*]] = load i64, i64* [[ULE]], align 8
11139 // CHECK-NEXT:    [[TMP1165:%.*]] = load i64, i64* [[ULD]], align 8
11140 // CHECK-NEXT:    [[TMP1166:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1164]], i64 [[TMP1165]] acquire acquire, align 8
11141 // CHECK-NEXT:    [[TMP1167:%.*]] = load i64, i64* [[ULE]], align 8
11142 // CHECK-NEXT:    [[TMP1168:%.*]] = load i64, i64* [[ULD]], align 8
11143 // CHECK-NEXT:    [[TMP1169:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1167]], i64 [[TMP1168]] acquire acquire, align 8
11144 // CHECK-NEXT:    [[TMP1170:%.*]] = load i64, i64* [[ULE]], align 8
11145 // CHECK-NEXT:    [[TMP1171:%.*]] = load i64, i64* [[ULD]], align 8
11146 // CHECK-NEXT:    [[TMP1172:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1170]], i64 [[TMP1171]] acquire acquire, align 8
11147 // CHECK-NEXT:    [[TMP1173:%.*]] = load i64, i64* [[ULE]], align 8
11148 // CHECK-NEXT:    [[TMP1174:%.*]] = load i64, i64* [[ULD]], align 8
11149 // CHECK-NEXT:    [[TMP1175:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1173]], i64 [[TMP1174]] acquire acquire, align 8
11150 // CHECK-NEXT:    [[TMP1176:%.*]] = load i64, i64* [[LE]], align 8
11151 // CHECK-NEXT:    [[TMP1177:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1176]] monotonic, align 8
11152 // CHECK-NEXT:    [[TMP1178:%.*]] = load i64, i64* [[LE]], align 8
11153 // CHECK-NEXT:    [[TMP1179:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1178]] monotonic, align 8
11154 // CHECK-NEXT:    [[TMP1180:%.*]] = load i64, i64* [[LE]], align 8
11155 // CHECK-NEXT:    [[TMP1181:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1180]] monotonic, align 8
11156 // CHECK-NEXT:    [[TMP1182:%.*]] = load i64, i64* [[LE]], align 8
11157 // CHECK-NEXT:    [[TMP1183:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1182]] monotonic, align 8
11158 // CHECK-NEXT:    [[TMP1184:%.*]] = load i64, i64* [[LE]], align 8
11159 // CHECK-NEXT:    [[TMP1185:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1184]] monotonic, align 8
11160 // CHECK-NEXT:    [[TMP1186:%.*]] = load i64, i64* [[LE]], align 8
11161 // CHECK-NEXT:    [[TMP1187:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1186]] monotonic, align 8
11162 // CHECK-NEXT:    [[TMP1188:%.*]] = load i64, i64* [[LE]], align 8
11163 // CHECK-NEXT:    [[TMP1189:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1188]] monotonic, align 8
11164 // CHECK-NEXT:    [[TMP1190:%.*]] = load i64, i64* [[LE]], align 8
11165 // CHECK-NEXT:    [[TMP1191:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1190]] monotonic, align 8
11166 // CHECK-NEXT:    [[TMP1192:%.*]] = load i64, i64* [[LE]], align 8
11167 // CHECK-NEXT:    [[TMP1193:%.*]] = load i64, i64* [[LD]], align 8
11168 // CHECK-NEXT:    [[TMP1194:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1192]], i64 [[TMP1193]] monotonic monotonic, align 8
11169 // CHECK-NEXT:    [[TMP1195:%.*]] = load i64, i64* [[LE]], align 8
11170 // CHECK-NEXT:    [[TMP1196:%.*]] = load i64, i64* [[LD]], align 8
11171 // CHECK-NEXT:    [[TMP1197:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1195]], i64 [[TMP1196]] monotonic monotonic, align 8
11172 // CHECK-NEXT:    [[TMP1198:%.*]] = load i64, i64* [[LE]], align 8
11173 // CHECK-NEXT:    [[TMP1199:%.*]] = load i64, i64* [[LD]], align 8
11174 // CHECK-NEXT:    [[TMP1200:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1198]], i64 [[TMP1199]] monotonic monotonic, align 8
11175 // CHECK-NEXT:    [[TMP1201:%.*]] = load i64, i64* [[LE]], align 8
11176 // CHECK-NEXT:    [[TMP1202:%.*]] = load i64, i64* [[LD]], align 8
11177 // CHECK-NEXT:    [[TMP1203:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1201]], i64 [[TMP1202]] monotonic monotonic, align 8
11178 // CHECK-NEXT:    [[TMP1204:%.*]] = load i64, i64* [[ULE]], align 8
11179 // CHECK-NEXT:    [[TMP1205:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1204]] monotonic, align 8
11180 // CHECK-NEXT:    [[TMP1206:%.*]] = load i64, i64* [[ULE]], align 8
11181 // CHECK-NEXT:    [[TMP1207:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1206]] monotonic, align 8
11182 // CHECK-NEXT:    [[TMP1208:%.*]] = load i64, i64* [[ULE]], align 8
11183 // CHECK-NEXT:    [[TMP1209:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1208]] monotonic, align 8
11184 // CHECK-NEXT:    [[TMP1210:%.*]] = load i64, i64* [[ULE]], align 8
11185 // CHECK-NEXT:    [[TMP1211:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1210]] monotonic, align 8
11186 // CHECK-NEXT:    [[TMP1212:%.*]] = load i64, i64* [[ULE]], align 8
11187 // CHECK-NEXT:    [[TMP1213:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1212]] monotonic, align 8
11188 // CHECK-NEXT:    [[TMP1214:%.*]] = load i64, i64* [[ULE]], align 8
11189 // CHECK-NEXT:    [[TMP1215:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1214]] monotonic, align 8
11190 // CHECK-NEXT:    [[TMP1216:%.*]] = load i64, i64* [[ULE]], align 8
11191 // CHECK-NEXT:    [[TMP1217:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1216]] monotonic, align 8
11192 // CHECK-NEXT:    [[TMP1218:%.*]] = load i64, i64* [[ULE]], align 8
11193 // CHECK-NEXT:    [[TMP1219:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1218]] monotonic, align 8
11194 // CHECK-NEXT:    [[TMP1220:%.*]] = load i64, i64* [[ULE]], align 8
11195 // CHECK-NEXT:    [[TMP1221:%.*]] = load i64, i64* [[ULD]], align 8
11196 // CHECK-NEXT:    [[TMP1222:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1220]], i64 [[TMP1221]] monotonic monotonic, align 8
11197 // CHECK-NEXT:    [[TMP1223:%.*]] = load i64, i64* [[ULE]], align 8
11198 // CHECK-NEXT:    [[TMP1224:%.*]] = load i64, i64* [[ULD]], align 8
11199 // CHECK-NEXT:    [[TMP1225:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1223]], i64 [[TMP1224]] monotonic monotonic, align 8
11200 // CHECK-NEXT:    [[TMP1226:%.*]] = load i64, i64* [[ULE]], align 8
11201 // CHECK-NEXT:    [[TMP1227:%.*]] = load i64, i64* [[ULD]], align 8
11202 // CHECK-NEXT:    [[TMP1228:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1226]], i64 [[TMP1227]] monotonic monotonic, align 8
11203 // CHECK-NEXT:    [[TMP1229:%.*]] = load i64, i64* [[ULE]], align 8
11204 // CHECK-NEXT:    [[TMP1230:%.*]] = load i64, i64* [[ULD]], align 8
11205 // CHECK-NEXT:    [[TMP1231:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1229]], i64 [[TMP1230]] monotonic monotonic, align 8
11206 // CHECK-NEXT:    [[TMP1232:%.*]] = load i64, i64* [[LE]], align 8
11207 // CHECK-NEXT:    [[TMP1233:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1232]] release, align 8
11208 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11209 // CHECK-NEXT:    [[TMP1234:%.*]] = load i64, i64* [[LE]], align 8
11210 // CHECK-NEXT:    [[TMP1235:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1234]] release, align 8
11211 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11212 // CHECK-NEXT:    [[TMP1236:%.*]] = load i64, i64* [[LE]], align 8
11213 // CHECK-NEXT:    [[TMP1237:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1236]] release, align 8
11214 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11215 // CHECK-NEXT:    [[TMP1238:%.*]] = load i64, i64* [[LE]], align 8
11216 // CHECK-NEXT:    [[TMP1239:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1238]] release, align 8
11217 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11218 // CHECK-NEXT:    [[TMP1240:%.*]] = load i64, i64* [[LE]], align 8
11219 // CHECK-NEXT:    [[TMP1241:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1240]] release, align 8
11220 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11221 // CHECK-NEXT:    [[TMP1242:%.*]] = load i64, i64* [[LE]], align 8
11222 // CHECK-NEXT:    [[TMP1243:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1242]] release, align 8
11223 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11224 // CHECK-NEXT:    [[TMP1244:%.*]] = load i64, i64* [[LE]], align 8
11225 // CHECK-NEXT:    [[TMP1245:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1244]] release, align 8
11226 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11227 // CHECK-NEXT:    [[TMP1246:%.*]] = load i64, i64* [[LE]], align 8
11228 // CHECK-NEXT:    [[TMP1247:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1246]] release, align 8
11229 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11230 // CHECK-NEXT:    [[TMP1248:%.*]] = load i64, i64* [[LE]], align 8
11231 // CHECK-NEXT:    [[TMP1249:%.*]] = load i64, i64* [[LD]], align 8
11232 // CHECK-NEXT:    [[TMP1250:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1248]], i64 [[TMP1249]] release monotonic, align 8
11233 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11234 // CHECK-NEXT:    [[TMP1251:%.*]] = load i64, i64* [[LE]], align 8
11235 // CHECK-NEXT:    [[TMP1252:%.*]] = load i64, i64* [[LD]], align 8
11236 // CHECK-NEXT:    [[TMP1253:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1251]], i64 [[TMP1252]] release monotonic, align 8
11237 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11238 // CHECK-NEXT:    [[TMP1254:%.*]] = load i64, i64* [[LE]], align 8
11239 // CHECK-NEXT:    [[TMP1255:%.*]] = load i64, i64* [[LD]], align 8
11240 // CHECK-NEXT:    [[TMP1256:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1254]], i64 [[TMP1255]] release monotonic, align 8
11241 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11242 // CHECK-NEXT:    [[TMP1257:%.*]] = load i64, i64* [[LE]], align 8
11243 // CHECK-NEXT:    [[TMP1258:%.*]] = load i64, i64* [[LD]], align 8
11244 // CHECK-NEXT:    [[TMP1259:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1257]], i64 [[TMP1258]] release monotonic, align 8
11245 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11246 // CHECK-NEXT:    [[TMP1260:%.*]] = load i64, i64* [[ULE]], align 8
11247 // CHECK-NEXT:    [[TMP1261:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1260]] release, align 8
11248 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11249 // CHECK-NEXT:    [[TMP1262:%.*]] = load i64, i64* [[ULE]], align 8
11250 // CHECK-NEXT:    [[TMP1263:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1262]] release, align 8
11251 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11252 // CHECK-NEXT:    [[TMP1264:%.*]] = load i64, i64* [[ULE]], align 8
11253 // CHECK-NEXT:    [[TMP1265:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1264]] release, align 8
11254 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11255 // CHECK-NEXT:    [[TMP1266:%.*]] = load i64, i64* [[ULE]], align 8
11256 // CHECK-NEXT:    [[TMP1267:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1266]] release, align 8
11257 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11258 // CHECK-NEXT:    [[TMP1268:%.*]] = load i64, i64* [[ULE]], align 8
11259 // CHECK-NEXT:    [[TMP1269:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1268]] release, align 8
11260 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11261 // CHECK-NEXT:    [[TMP1270:%.*]] = load i64, i64* [[ULE]], align 8
11262 // CHECK-NEXT:    [[TMP1271:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1270]] release, align 8
11263 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11264 // CHECK-NEXT:    [[TMP1272:%.*]] = load i64, i64* [[ULE]], align 8
11265 // CHECK-NEXT:    [[TMP1273:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1272]] release, align 8
11266 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11267 // CHECK-NEXT:    [[TMP1274:%.*]] = load i64, i64* [[ULE]], align 8
11268 // CHECK-NEXT:    [[TMP1275:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1274]] release, align 8
11269 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11270 // CHECK-NEXT:    [[TMP1276:%.*]] = load i64, i64* [[ULE]], align 8
11271 // CHECK-NEXT:    [[TMP1277:%.*]] = load i64, i64* [[ULD]], align 8
11272 // CHECK-NEXT:    [[TMP1278:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1276]], i64 [[TMP1277]] release monotonic, align 8
11273 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11274 // CHECK-NEXT:    [[TMP1279:%.*]] = load i64, i64* [[ULE]], align 8
11275 // CHECK-NEXT:    [[TMP1280:%.*]] = load i64, i64* [[ULD]], align 8
11276 // CHECK-NEXT:    [[TMP1281:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1279]], i64 [[TMP1280]] release monotonic, align 8
11277 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11278 // CHECK-NEXT:    [[TMP1282:%.*]] = load i64, i64* [[ULE]], align 8
11279 // CHECK-NEXT:    [[TMP1283:%.*]] = load i64, i64* [[ULD]], align 8
11280 // CHECK-NEXT:    [[TMP1284:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1282]], i64 [[TMP1283]] release monotonic, align 8
11281 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11282 // CHECK-NEXT:    [[TMP1285:%.*]] = load i64, i64* [[ULE]], align 8
11283 // CHECK-NEXT:    [[TMP1286:%.*]] = load i64, i64* [[ULD]], align 8
11284 // CHECK-NEXT:    [[TMP1287:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1285]], i64 [[TMP1286]] release monotonic, align 8
11285 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11286 // CHECK-NEXT:    [[TMP1288:%.*]] = load i64, i64* [[LE]], align 8
11287 // CHECK-NEXT:    [[TMP1289:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1288]] seq_cst, align 8
11288 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11289 // CHECK-NEXT:    [[TMP1290:%.*]] = load i64, i64* [[LE]], align 8
11290 // CHECK-NEXT:    [[TMP1291:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1290]] seq_cst, align 8
11291 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11292 // CHECK-NEXT:    [[TMP1292:%.*]] = load i64, i64* [[LE]], align 8
11293 // CHECK-NEXT:    [[TMP1293:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1292]] seq_cst, align 8
11294 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11295 // CHECK-NEXT:    [[TMP1294:%.*]] = load i64, i64* [[LE]], align 8
11296 // CHECK-NEXT:    [[TMP1295:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1294]] seq_cst, align 8
11297 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11298 // CHECK-NEXT:    [[TMP1296:%.*]] = load i64, i64* [[LE]], align 8
11299 // CHECK-NEXT:    [[TMP1297:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1296]] seq_cst, align 8
11300 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11301 // CHECK-NEXT:    [[TMP1298:%.*]] = load i64, i64* [[LE]], align 8
11302 // CHECK-NEXT:    [[TMP1299:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1298]] seq_cst, align 8
11303 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11304 // CHECK-NEXT:    [[TMP1300:%.*]] = load i64, i64* [[LE]], align 8
11305 // CHECK-NEXT:    [[TMP1301:%.*]] = atomicrmw max i64* [[LX]], i64 [[TMP1300]] seq_cst, align 8
11306 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11307 // CHECK-NEXT:    [[TMP1302:%.*]] = load i64, i64* [[LE]], align 8
11308 // CHECK-NEXT:    [[TMP1303:%.*]] = atomicrmw min i64* [[LX]], i64 [[TMP1302]] seq_cst, align 8
11309 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11310 // CHECK-NEXT:    [[TMP1304:%.*]] = load i64, i64* [[LE]], align 8
11311 // CHECK-NEXT:    [[TMP1305:%.*]] = load i64, i64* [[LD]], align 8
11312 // CHECK-NEXT:    [[TMP1306:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1304]], i64 [[TMP1305]] seq_cst seq_cst, align 8
11313 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11314 // CHECK-NEXT:    [[TMP1307:%.*]] = load i64, i64* [[LE]], align 8
11315 // CHECK-NEXT:    [[TMP1308:%.*]] = load i64, i64* [[LD]], align 8
11316 // CHECK-NEXT:    [[TMP1309:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1307]], i64 [[TMP1308]] seq_cst seq_cst, align 8
11317 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11318 // CHECK-NEXT:    [[TMP1310:%.*]] = load i64, i64* [[LE]], align 8
11319 // CHECK-NEXT:    [[TMP1311:%.*]] = load i64, i64* [[LD]], align 8
11320 // CHECK-NEXT:    [[TMP1312:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1310]], i64 [[TMP1311]] seq_cst seq_cst, align 8
11321 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11322 // CHECK-NEXT:    [[TMP1313:%.*]] = load i64, i64* [[LE]], align 8
11323 // CHECK-NEXT:    [[TMP1314:%.*]] = load i64, i64* [[LD]], align 8
11324 // CHECK-NEXT:    [[TMP1315:%.*]] = cmpxchg i64* [[LX]], i64 [[TMP1313]], i64 [[TMP1314]] seq_cst seq_cst, align 8
11325 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11326 // CHECK-NEXT:    [[TMP1316:%.*]] = load i64, i64* [[ULE]], align 8
11327 // CHECK-NEXT:    [[TMP1317:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1316]] seq_cst, align 8
11328 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11329 // CHECK-NEXT:    [[TMP1318:%.*]] = load i64, i64* [[ULE]], align 8
11330 // CHECK-NEXT:    [[TMP1319:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1318]] seq_cst, align 8
11331 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11332 // CHECK-NEXT:    [[TMP1320:%.*]] = load i64, i64* [[ULE]], align 8
11333 // CHECK-NEXT:    [[TMP1321:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1320]] seq_cst, align 8
11334 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11335 // CHECK-NEXT:    [[TMP1322:%.*]] = load i64, i64* [[ULE]], align 8
11336 // CHECK-NEXT:    [[TMP1323:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1322]] seq_cst, align 8
11337 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11338 // CHECK-NEXT:    [[TMP1324:%.*]] = load i64, i64* [[ULE]], align 8
11339 // CHECK-NEXT:    [[TMP1325:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1324]] seq_cst, align 8
11340 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11341 // CHECK-NEXT:    [[TMP1326:%.*]] = load i64, i64* [[ULE]], align 8
11342 // CHECK-NEXT:    [[TMP1327:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1326]] seq_cst, align 8
11343 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11344 // CHECK-NEXT:    [[TMP1328:%.*]] = load i64, i64* [[ULE]], align 8
11345 // CHECK-NEXT:    [[TMP1329:%.*]] = atomicrmw umax i64* [[ULX]], i64 [[TMP1328]] seq_cst, align 8
11346 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11347 // CHECK-NEXT:    [[TMP1330:%.*]] = load i64, i64* [[ULE]], align 8
11348 // CHECK-NEXT:    [[TMP1331:%.*]] = atomicrmw umin i64* [[ULX]], i64 [[TMP1330]] seq_cst, align 8
11349 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11350 // CHECK-NEXT:    [[TMP1332:%.*]] = load i64, i64* [[ULE]], align 8
11351 // CHECK-NEXT:    [[TMP1333:%.*]] = load i64, i64* [[ULD]], align 8
11352 // CHECK-NEXT:    [[TMP1334:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1332]], i64 [[TMP1333]] seq_cst seq_cst, align 8
11353 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11354 // CHECK-NEXT:    [[TMP1335:%.*]] = load i64, i64* [[ULE]], align 8
11355 // CHECK-NEXT:    [[TMP1336:%.*]] = load i64, i64* [[ULD]], align 8
11356 // CHECK-NEXT:    [[TMP1337:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1335]], i64 [[TMP1336]] seq_cst seq_cst, align 8
11357 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11358 // CHECK-NEXT:    [[TMP1338:%.*]] = load i64, i64* [[ULE]], align 8
11359 // CHECK-NEXT:    [[TMP1339:%.*]] = load i64, i64* [[ULD]], align 8
11360 // CHECK-NEXT:    [[TMP1340:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1338]], i64 [[TMP1339]] seq_cst seq_cst, align 8
11361 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11362 // CHECK-NEXT:    [[TMP1341:%.*]] = load i64, i64* [[ULE]], align 8
11363 // CHECK-NEXT:    [[TMP1342:%.*]] = load i64, i64* [[ULD]], align 8
11364 // CHECK-NEXT:    [[TMP1343:%.*]] = cmpxchg i64* [[ULX]], i64 [[TMP1341]], i64 [[TMP1342]] seq_cst seq_cst, align 8
11365 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11366 // CHECK-NEXT:    [[TMP1344:%.*]] = load i64, i64* [[LLE]], align 8
11367 // CHECK-NEXT:    [[TMP1345:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1344]] monotonic, align 8
11368 // CHECK-NEXT:    [[TMP1346:%.*]] = load i64, i64* [[LLE]], align 8
11369 // CHECK-NEXT:    [[TMP1347:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1346]] monotonic, align 8
11370 // CHECK-NEXT:    [[TMP1348:%.*]] = load i64, i64* [[LLE]], align 8
11371 // CHECK-NEXT:    [[TMP1349:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1348]] monotonic, align 8
11372 // CHECK-NEXT:    [[TMP1350:%.*]] = load i64, i64* [[LLE]], align 8
11373 // CHECK-NEXT:    [[TMP1351:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1350]] monotonic, align 8
11374 // CHECK-NEXT:    [[TMP1352:%.*]] = load i64, i64* [[LLE]], align 8
11375 // CHECK-NEXT:    [[TMP1353:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1352]] monotonic, align 8
11376 // CHECK-NEXT:    [[TMP1354:%.*]] = load i64, i64* [[LLE]], align 8
11377 // CHECK-NEXT:    [[TMP1355:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1354]] monotonic, align 8
11378 // CHECK-NEXT:    [[TMP1356:%.*]] = load i64, i64* [[LLE]], align 8
11379 // CHECK-NEXT:    [[TMP1357:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1356]] monotonic, align 8
11380 // CHECK-NEXT:    [[TMP1358:%.*]] = load i64, i64* [[LLE]], align 8
11381 // CHECK-NEXT:    [[TMP1359:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1358]] monotonic, align 8
11382 // CHECK-NEXT:    [[TMP1360:%.*]] = load i64, i64* [[LLE]], align 8
11383 // CHECK-NEXT:    [[TMP1361:%.*]] = load i64, i64* [[LLD]], align 8
11384 // CHECK-NEXT:    [[TMP1362:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1360]], i64 [[TMP1361]] monotonic monotonic, align 8
11385 // CHECK-NEXT:    [[TMP1363:%.*]] = load i64, i64* [[LLE]], align 8
11386 // CHECK-NEXT:    [[TMP1364:%.*]] = load i64, i64* [[LLD]], align 8
11387 // CHECK-NEXT:    [[TMP1365:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1363]], i64 [[TMP1364]] monotonic monotonic, align 8
11388 // CHECK-NEXT:    [[TMP1366:%.*]] = load i64, i64* [[LLE]], align 8
11389 // CHECK-NEXT:    [[TMP1367:%.*]] = load i64, i64* [[LLD]], align 8
11390 // CHECK-NEXT:    [[TMP1368:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1366]], i64 [[TMP1367]] monotonic monotonic, align 8
11391 // CHECK-NEXT:    [[TMP1369:%.*]] = load i64, i64* [[LLE]], align 8
11392 // CHECK-NEXT:    [[TMP1370:%.*]] = load i64, i64* [[LLD]], align 8
11393 // CHECK-NEXT:    [[TMP1371:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1369]], i64 [[TMP1370]] monotonic monotonic, align 8
11394 // CHECK-NEXT:    [[TMP1372:%.*]] = load i64, i64* [[ULLE]], align 8
11395 // CHECK-NEXT:    [[TMP1373:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1372]] monotonic, align 8
11396 // CHECK-NEXT:    [[TMP1374:%.*]] = load i64, i64* [[ULLE]], align 8
11397 // CHECK-NEXT:    [[TMP1375:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1374]] monotonic, align 8
11398 // CHECK-NEXT:    [[TMP1376:%.*]] = load i64, i64* [[ULLE]], align 8
11399 // CHECK-NEXT:    [[TMP1377:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1376]] monotonic, align 8
11400 // CHECK-NEXT:    [[TMP1378:%.*]] = load i64, i64* [[ULLE]], align 8
11401 // CHECK-NEXT:    [[TMP1379:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1378]] monotonic, align 8
11402 // CHECK-NEXT:    [[TMP1380:%.*]] = load i64, i64* [[ULLE]], align 8
11403 // CHECK-NEXT:    [[TMP1381:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1380]] monotonic, align 8
11404 // CHECK-NEXT:    [[TMP1382:%.*]] = load i64, i64* [[ULLE]], align 8
11405 // CHECK-NEXT:    [[TMP1383:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1382]] monotonic, align 8
11406 // CHECK-NEXT:    [[TMP1384:%.*]] = load i64, i64* [[ULLE]], align 8
11407 // CHECK-NEXT:    [[TMP1385:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1384]] monotonic, align 8
11408 // CHECK-NEXT:    [[TMP1386:%.*]] = load i64, i64* [[ULLE]], align 8
11409 // CHECK-NEXT:    [[TMP1387:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1386]] monotonic, align 8
11410 // CHECK-NEXT:    [[TMP1388:%.*]] = load i64, i64* [[ULLE]], align 8
11411 // CHECK-NEXT:    [[TMP1389:%.*]] = load i64, i64* [[ULLD]], align 8
11412 // CHECK-NEXT:    [[TMP1390:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1388]], i64 [[TMP1389]] monotonic monotonic, align 8
11413 // CHECK-NEXT:    [[TMP1391:%.*]] = load i64, i64* [[ULLE]], align 8
11414 // CHECK-NEXT:    [[TMP1392:%.*]] = load i64, i64* [[ULLD]], align 8
11415 // CHECK-NEXT:    [[TMP1393:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1391]], i64 [[TMP1392]] monotonic monotonic, align 8
11416 // CHECK-NEXT:    [[TMP1394:%.*]] = load i64, i64* [[ULLE]], align 8
11417 // CHECK-NEXT:    [[TMP1395:%.*]] = load i64, i64* [[ULLD]], align 8
11418 // CHECK-NEXT:    [[TMP1396:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1394]], i64 [[TMP1395]] monotonic monotonic, align 8
11419 // CHECK-NEXT:    [[TMP1397:%.*]] = load i64, i64* [[ULLE]], align 8
11420 // CHECK-NEXT:    [[TMP1398:%.*]] = load i64, i64* [[ULLD]], align 8
11421 // CHECK-NEXT:    [[TMP1399:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1397]], i64 [[TMP1398]] monotonic monotonic, align 8
11422 // CHECK-NEXT:    [[TMP1400:%.*]] = load i64, i64* [[LLE]], align 8
11423 // CHECK-NEXT:    [[TMP1401:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1400]] acq_rel, align 8
11424 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11425 // CHECK-NEXT:    [[TMP1402:%.*]] = load i64, i64* [[LLE]], align 8
11426 // CHECK-NEXT:    [[TMP1403:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1402]] acq_rel, align 8
11427 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11428 // CHECK-NEXT:    [[TMP1404:%.*]] = load i64, i64* [[LLE]], align 8
11429 // CHECK-NEXT:    [[TMP1405:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1404]] acq_rel, align 8
11430 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11431 // CHECK-NEXT:    [[TMP1406:%.*]] = load i64, i64* [[LLE]], align 8
11432 // CHECK-NEXT:    [[TMP1407:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1406]] acq_rel, align 8
11433 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11434 // CHECK-NEXT:    [[TMP1408:%.*]] = load i64, i64* [[LLE]], align 8
11435 // CHECK-NEXT:    [[TMP1409:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1408]] acq_rel, align 8
11436 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11437 // CHECK-NEXT:    [[TMP1410:%.*]] = load i64, i64* [[LLE]], align 8
11438 // CHECK-NEXT:    [[TMP1411:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1410]] acq_rel, align 8
11439 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11440 // CHECK-NEXT:    [[TMP1412:%.*]] = load i64, i64* [[LLE]], align 8
11441 // CHECK-NEXT:    [[TMP1413:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1412]] acq_rel, align 8
11442 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11443 // CHECK-NEXT:    [[TMP1414:%.*]] = load i64, i64* [[LLE]], align 8
11444 // CHECK-NEXT:    [[TMP1415:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1414]] acq_rel, align 8
11445 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11446 // CHECK-NEXT:    [[TMP1416:%.*]] = load i64, i64* [[LLE]], align 8
11447 // CHECK-NEXT:    [[TMP1417:%.*]] = load i64, i64* [[LLD]], align 8
11448 // CHECK-NEXT:    [[TMP1418:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1416]], i64 [[TMP1417]] acq_rel acquire, align 8
11449 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11450 // CHECK-NEXT:    [[TMP1419:%.*]] = load i64, i64* [[LLE]], align 8
11451 // CHECK-NEXT:    [[TMP1420:%.*]] = load i64, i64* [[LLD]], align 8
11452 // CHECK-NEXT:    [[TMP1421:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1419]], i64 [[TMP1420]] acq_rel acquire, align 8
11453 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11454 // CHECK-NEXT:    [[TMP1422:%.*]] = load i64, i64* [[LLE]], align 8
11455 // CHECK-NEXT:    [[TMP1423:%.*]] = load i64, i64* [[LLD]], align 8
11456 // CHECK-NEXT:    [[TMP1424:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1422]], i64 [[TMP1423]] acq_rel acquire, align 8
11457 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11458 // CHECK-NEXT:    [[TMP1425:%.*]] = load i64, i64* [[LLE]], align 8
11459 // CHECK-NEXT:    [[TMP1426:%.*]] = load i64, i64* [[LLD]], align 8
11460 // CHECK-NEXT:    [[TMP1427:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1425]], i64 [[TMP1426]] acq_rel acquire, align 8
11461 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11462 // CHECK-NEXT:    [[TMP1428:%.*]] = load i64, i64* [[ULLE]], align 8
11463 // CHECK-NEXT:    [[TMP1429:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1428]] acq_rel, align 8
11464 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11465 // CHECK-NEXT:    [[TMP1430:%.*]] = load i64, i64* [[ULLE]], align 8
11466 // CHECK-NEXT:    [[TMP1431:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1430]] acq_rel, align 8
11467 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11468 // CHECK-NEXT:    [[TMP1432:%.*]] = load i64, i64* [[ULLE]], align 8
11469 // CHECK-NEXT:    [[TMP1433:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1432]] acq_rel, align 8
11470 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11471 // CHECK-NEXT:    [[TMP1434:%.*]] = load i64, i64* [[ULLE]], align 8
11472 // CHECK-NEXT:    [[TMP1435:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1434]] acq_rel, align 8
11473 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11474 // CHECK-NEXT:    [[TMP1436:%.*]] = load i64, i64* [[ULLE]], align 8
11475 // CHECK-NEXT:    [[TMP1437:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1436]] acq_rel, align 8
11476 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11477 // CHECK-NEXT:    [[TMP1438:%.*]] = load i64, i64* [[ULLE]], align 8
11478 // CHECK-NEXT:    [[TMP1439:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1438]] acq_rel, align 8
11479 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11480 // CHECK-NEXT:    [[TMP1440:%.*]] = load i64, i64* [[ULLE]], align 8
11481 // CHECK-NEXT:    [[TMP1441:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1440]] acq_rel, align 8
11482 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11483 // CHECK-NEXT:    [[TMP1442:%.*]] = load i64, i64* [[ULLE]], align 8
11484 // CHECK-NEXT:    [[TMP1443:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1442]] acq_rel, align 8
11485 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11486 // CHECK-NEXT:    [[TMP1444:%.*]] = load i64, i64* [[ULLE]], align 8
11487 // CHECK-NEXT:    [[TMP1445:%.*]] = load i64, i64* [[ULLD]], align 8
11488 // CHECK-NEXT:    [[TMP1446:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1444]], i64 [[TMP1445]] acq_rel acquire, align 8
11489 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11490 // CHECK-NEXT:    [[TMP1447:%.*]] = load i64, i64* [[ULLE]], align 8
11491 // CHECK-NEXT:    [[TMP1448:%.*]] = load i64, i64* [[ULLD]], align 8
11492 // CHECK-NEXT:    [[TMP1449:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1447]], i64 [[TMP1448]] acq_rel acquire, align 8
11493 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11494 // CHECK-NEXT:    [[TMP1450:%.*]] = load i64, i64* [[ULLE]], align 8
11495 // CHECK-NEXT:    [[TMP1451:%.*]] = load i64, i64* [[ULLD]], align 8
11496 // CHECK-NEXT:    [[TMP1452:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1450]], i64 [[TMP1451]] acq_rel acquire, align 8
11497 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11498 // CHECK-NEXT:    [[TMP1453:%.*]] = load i64, i64* [[ULLE]], align 8
11499 // CHECK-NEXT:    [[TMP1454:%.*]] = load i64, i64* [[ULLD]], align 8
11500 // CHECK-NEXT:    [[TMP1455:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1453]], i64 [[TMP1454]] acq_rel acquire, align 8
11501 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11502 // CHECK-NEXT:    [[TMP1456:%.*]] = load i64, i64* [[LLE]], align 8
11503 // CHECK-NEXT:    [[TMP1457:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1456]] acquire, align 8
11504 // CHECK-NEXT:    [[TMP1458:%.*]] = load i64, i64* [[LLE]], align 8
11505 // CHECK-NEXT:    [[TMP1459:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1458]] acquire, align 8
11506 // CHECK-NEXT:    [[TMP1460:%.*]] = load i64, i64* [[LLE]], align 8
11507 // CHECK-NEXT:    [[TMP1461:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1460]] acquire, align 8
11508 // CHECK-NEXT:    [[TMP1462:%.*]] = load i64, i64* [[LLE]], align 8
11509 // CHECK-NEXT:    [[TMP1463:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1462]] acquire, align 8
11510 // CHECK-NEXT:    [[TMP1464:%.*]] = load i64, i64* [[LLE]], align 8
11511 // CHECK-NEXT:    [[TMP1465:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1464]] acquire, align 8
11512 // CHECK-NEXT:    [[TMP1466:%.*]] = load i64, i64* [[LLE]], align 8
11513 // CHECK-NEXT:    [[TMP1467:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1466]] acquire, align 8
11514 // CHECK-NEXT:    [[TMP1468:%.*]] = load i64, i64* [[LLE]], align 8
11515 // CHECK-NEXT:    [[TMP1469:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1468]] acquire, align 8
11516 // CHECK-NEXT:    [[TMP1470:%.*]] = load i64, i64* [[LLE]], align 8
11517 // CHECK-NEXT:    [[TMP1471:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1470]] acquire, align 8
11518 // CHECK-NEXT:    [[TMP1472:%.*]] = load i64, i64* [[LLE]], align 8
11519 // CHECK-NEXT:    [[TMP1473:%.*]] = load i64, i64* [[LLD]], align 8
11520 // CHECK-NEXT:    [[TMP1474:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1472]], i64 [[TMP1473]] acquire acquire, align 8
11521 // CHECK-NEXT:    [[TMP1475:%.*]] = load i64, i64* [[LLE]], align 8
11522 // CHECK-NEXT:    [[TMP1476:%.*]] = load i64, i64* [[LLD]], align 8
11523 // CHECK-NEXT:    [[TMP1477:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1475]], i64 [[TMP1476]] acquire acquire, align 8
11524 // CHECK-NEXT:    [[TMP1478:%.*]] = load i64, i64* [[LLE]], align 8
11525 // CHECK-NEXT:    [[TMP1479:%.*]] = load i64, i64* [[LLD]], align 8
11526 // CHECK-NEXT:    [[TMP1480:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1478]], i64 [[TMP1479]] acquire acquire, align 8
11527 // CHECK-NEXT:    [[TMP1481:%.*]] = load i64, i64* [[LLE]], align 8
11528 // CHECK-NEXT:    [[TMP1482:%.*]] = load i64, i64* [[LLD]], align 8
11529 // CHECK-NEXT:    [[TMP1483:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1481]], i64 [[TMP1482]] acquire acquire, align 8
11530 // CHECK-NEXT:    [[TMP1484:%.*]] = load i64, i64* [[ULLE]], align 8
11531 // CHECK-NEXT:    [[TMP1485:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1484]] acquire, align 8
11532 // CHECK-NEXT:    [[TMP1486:%.*]] = load i64, i64* [[ULLE]], align 8
11533 // CHECK-NEXT:    [[TMP1487:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1486]] acquire, align 8
11534 // CHECK-NEXT:    [[TMP1488:%.*]] = load i64, i64* [[ULLE]], align 8
11535 // CHECK-NEXT:    [[TMP1489:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1488]] acquire, align 8
11536 // CHECK-NEXT:    [[TMP1490:%.*]] = load i64, i64* [[ULLE]], align 8
11537 // CHECK-NEXT:    [[TMP1491:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1490]] acquire, align 8
11538 // CHECK-NEXT:    [[TMP1492:%.*]] = load i64, i64* [[ULLE]], align 8
11539 // CHECK-NEXT:    [[TMP1493:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1492]] acquire, align 8
11540 // CHECK-NEXT:    [[TMP1494:%.*]] = load i64, i64* [[ULLE]], align 8
11541 // CHECK-NEXT:    [[TMP1495:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1494]] acquire, align 8
11542 // CHECK-NEXT:    [[TMP1496:%.*]] = load i64, i64* [[ULLE]], align 8
11543 // CHECK-NEXT:    [[TMP1497:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1496]] acquire, align 8
11544 // CHECK-NEXT:    [[TMP1498:%.*]] = load i64, i64* [[ULLE]], align 8
11545 // CHECK-NEXT:    [[TMP1499:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1498]] acquire, align 8
11546 // CHECK-NEXT:    [[TMP1500:%.*]] = load i64, i64* [[ULLE]], align 8
11547 // CHECK-NEXT:    [[TMP1501:%.*]] = load i64, i64* [[ULLD]], align 8
11548 // CHECK-NEXT:    [[TMP1502:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1500]], i64 [[TMP1501]] acquire acquire, align 8
11549 // CHECK-NEXT:    [[TMP1503:%.*]] = load i64, i64* [[ULLE]], align 8
11550 // CHECK-NEXT:    [[TMP1504:%.*]] = load i64, i64* [[ULLD]], align 8
11551 // CHECK-NEXT:    [[TMP1505:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1503]], i64 [[TMP1504]] acquire acquire, align 8
11552 // CHECK-NEXT:    [[TMP1506:%.*]] = load i64, i64* [[ULLE]], align 8
11553 // CHECK-NEXT:    [[TMP1507:%.*]] = load i64, i64* [[ULLD]], align 8
11554 // CHECK-NEXT:    [[TMP1508:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1506]], i64 [[TMP1507]] acquire acquire, align 8
11555 // CHECK-NEXT:    [[TMP1509:%.*]] = load i64, i64* [[ULLE]], align 8
11556 // CHECK-NEXT:    [[TMP1510:%.*]] = load i64, i64* [[ULLD]], align 8
11557 // CHECK-NEXT:    [[TMP1511:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1509]], i64 [[TMP1510]] acquire acquire, align 8
11558 // CHECK-NEXT:    [[TMP1512:%.*]] = load i64, i64* [[LLE]], align 8
11559 // CHECK-NEXT:    [[TMP1513:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1512]] monotonic, align 8
11560 // CHECK-NEXT:    [[TMP1514:%.*]] = load i64, i64* [[LLE]], align 8
11561 // CHECK-NEXT:    [[TMP1515:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1514]] monotonic, align 8
11562 // CHECK-NEXT:    [[TMP1516:%.*]] = load i64, i64* [[LLE]], align 8
11563 // CHECK-NEXT:    [[TMP1517:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1516]] monotonic, align 8
11564 // CHECK-NEXT:    [[TMP1518:%.*]] = load i64, i64* [[LLE]], align 8
11565 // CHECK-NEXT:    [[TMP1519:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1518]] monotonic, align 8
11566 // CHECK-NEXT:    [[TMP1520:%.*]] = load i64, i64* [[LLE]], align 8
11567 // CHECK-NEXT:    [[TMP1521:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1520]] monotonic, align 8
11568 // CHECK-NEXT:    [[TMP1522:%.*]] = load i64, i64* [[LLE]], align 8
11569 // CHECK-NEXT:    [[TMP1523:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1522]] monotonic, align 8
11570 // CHECK-NEXT:    [[TMP1524:%.*]] = load i64, i64* [[LLE]], align 8
11571 // CHECK-NEXT:    [[TMP1525:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1524]] monotonic, align 8
11572 // CHECK-NEXT:    [[TMP1526:%.*]] = load i64, i64* [[LLE]], align 8
11573 // CHECK-NEXT:    [[TMP1527:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1526]] monotonic, align 8
11574 // CHECK-NEXT:    [[TMP1528:%.*]] = load i64, i64* [[LLE]], align 8
11575 // CHECK-NEXT:    [[TMP1529:%.*]] = load i64, i64* [[LLD]], align 8
11576 // CHECK-NEXT:    [[TMP1530:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1528]], i64 [[TMP1529]] monotonic monotonic, align 8
11577 // CHECK-NEXT:    [[TMP1531:%.*]] = load i64, i64* [[LLE]], align 8
11578 // CHECK-NEXT:    [[TMP1532:%.*]] = load i64, i64* [[LLD]], align 8
11579 // CHECK-NEXT:    [[TMP1533:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1531]], i64 [[TMP1532]] monotonic monotonic, align 8
11580 // CHECK-NEXT:    [[TMP1534:%.*]] = load i64, i64* [[LLE]], align 8
11581 // CHECK-NEXT:    [[TMP1535:%.*]] = load i64, i64* [[LLD]], align 8
11582 // CHECK-NEXT:    [[TMP1536:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1534]], i64 [[TMP1535]] monotonic monotonic, align 8
11583 // CHECK-NEXT:    [[TMP1537:%.*]] = load i64, i64* [[LLE]], align 8
11584 // CHECK-NEXT:    [[TMP1538:%.*]] = load i64, i64* [[LLD]], align 8
11585 // CHECK-NEXT:    [[TMP1539:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1537]], i64 [[TMP1538]] monotonic monotonic, align 8
11586 // CHECK-NEXT:    [[TMP1540:%.*]] = load i64, i64* [[ULLE]], align 8
11587 // CHECK-NEXT:    [[TMP1541:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1540]] monotonic, align 8
11588 // CHECK-NEXT:    [[TMP1542:%.*]] = load i64, i64* [[ULLE]], align 8
11589 // CHECK-NEXT:    [[TMP1543:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1542]] monotonic, align 8
11590 // CHECK-NEXT:    [[TMP1544:%.*]] = load i64, i64* [[ULLE]], align 8
11591 // CHECK-NEXT:    [[TMP1545:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1544]] monotonic, align 8
11592 // CHECK-NEXT:    [[TMP1546:%.*]] = load i64, i64* [[ULLE]], align 8
11593 // CHECK-NEXT:    [[TMP1547:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1546]] monotonic, align 8
11594 // CHECK-NEXT:    [[TMP1548:%.*]] = load i64, i64* [[ULLE]], align 8
11595 // CHECK-NEXT:    [[TMP1549:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1548]] monotonic, align 8
11596 // CHECK-NEXT:    [[TMP1550:%.*]] = load i64, i64* [[ULLE]], align 8
11597 // CHECK-NEXT:    [[TMP1551:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1550]] monotonic, align 8
11598 // CHECK-NEXT:    [[TMP1552:%.*]] = load i64, i64* [[ULLE]], align 8
11599 // CHECK-NEXT:    [[TMP1553:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1552]] monotonic, align 8
11600 // CHECK-NEXT:    [[TMP1554:%.*]] = load i64, i64* [[ULLE]], align 8
11601 // CHECK-NEXT:    [[TMP1555:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1554]] monotonic, align 8
11602 // CHECK-NEXT:    [[TMP1556:%.*]] = load i64, i64* [[ULLE]], align 8
11603 // CHECK-NEXT:    [[TMP1557:%.*]] = load i64, i64* [[ULLD]], align 8
11604 // CHECK-NEXT:    [[TMP1558:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1556]], i64 [[TMP1557]] monotonic monotonic, align 8
11605 // CHECK-NEXT:    [[TMP1559:%.*]] = load i64, i64* [[ULLE]], align 8
11606 // CHECK-NEXT:    [[TMP1560:%.*]] = load i64, i64* [[ULLD]], align 8
11607 // CHECK-NEXT:    [[TMP1561:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1559]], i64 [[TMP1560]] monotonic monotonic, align 8
11608 // CHECK-NEXT:    [[TMP1562:%.*]] = load i64, i64* [[ULLE]], align 8
11609 // CHECK-NEXT:    [[TMP1563:%.*]] = load i64, i64* [[ULLD]], align 8
11610 // CHECK-NEXT:    [[TMP1564:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1562]], i64 [[TMP1563]] monotonic monotonic, align 8
11611 // CHECK-NEXT:    [[TMP1565:%.*]] = load i64, i64* [[ULLE]], align 8
11612 // CHECK-NEXT:    [[TMP1566:%.*]] = load i64, i64* [[ULLD]], align 8
11613 // CHECK-NEXT:    [[TMP1567:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1565]], i64 [[TMP1566]] monotonic monotonic, align 8
11614 // CHECK-NEXT:    [[TMP1568:%.*]] = load i64, i64* [[LLE]], align 8
11615 // CHECK-NEXT:    [[TMP1569:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1568]] release, align 8
11616 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11617 // CHECK-NEXT:    [[TMP1570:%.*]] = load i64, i64* [[LLE]], align 8
11618 // CHECK-NEXT:    [[TMP1571:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1570]] release, align 8
11619 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11620 // CHECK-NEXT:    [[TMP1572:%.*]] = load i64, i64* [[LLE]], align 8
11621 // CHECK-NEXT:    [[TMP1573:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1572]] release, align 8
11622 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11623 // CHECK-NEXT:    [[TMP1574:%.*]] = load i64, i64* [[LLE]], align 8
11624 // CHECK-NEXT:    [[TMP1575:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1574]] release, align 8
11625 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11626 // CHECK-NEXT:    [[TMP1576:%.*]] = load i64, i64* [[LLE]], align 8
11627 // CHECK-NEXT:    [[TMP1577:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1576]] release, align 8
11628 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11629 // CHECK-NEXT:    [[TMP1578:%.*]] = load i64, i64* [[LLE]], align 8
11630 // CHECK-NEXT:    [[TMP1579:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1578]] release, align 8
11631 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11632 // CHECK-NEXT:    [[TMP1580:%.*]] = load i64, i64* [[LLE]], align 8
11633 // CHECK-NEXT:    [[TMP1581:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1580]] release, align 8
11634 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11635 // CHECK-NEXT:    [[TMP1582:%.*]] = load i64, i64* [[LLE]], align 8
11636 // CHECK-NEXT:    [[TMP1583:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1582]] release, align 8
11637 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11638 // CHECK-NEXT:    [[TMP1584:%.*]] = load i64, i64* [[LLE]], align 8
11639 // CHECK-NEXT:    [[TMP1585:%.*]] = load i64, i64* [[LLD]], align 8
11640 // CHECK-NEXT:    [[TMP1586:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1584]], i64 [[TMP1585]] release monotonic, align 8
11641 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11642 // CHECK-NEXT:    [[TMP1587:%.*]] = load i64, i64* [[LLE]], align 8
11643 // CHECK-NEXT:    [[TMP1588:%.*]] = load i64, i64* [[LLD]], align 8
11644 // CHECK-NEXT:    [[TMP1589:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1587]], i64 [[TMP1588]] release monotonic, align 8
11645 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11646 // CHECK-NEXT:    [[TMP1590:%.*]] = load i64, i64* [[LLE]], align 8
11647 // CHECK-NEXT:    [[TMP1591:%.*]] = load i64, i64* [[LLD]], align 8
11648 // CHECK-NEXT:    [[TMP1592:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1590]], i64 [[TMP1591]] release monotonic, align 8
11649 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11650 // CHECK-NEXT:    [[TMP1593:%.*]] = load i64, i64* [[LLE]], align 8
11651 // CHECK-NEXT:    [[TMP1594:%.*]] = load i64, i64* [[LLD]], align 8
11652 // CHECK-NEXT:    [[TMP1595:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1593]], i64 [[TMP1594]] release monotonic, align 8
11653 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11654 // CHECK-NEXT:    [[TMP1596:%.*]] = load i64, i64* [[ULLE]], align 8
11655 // CHECK-NEXT:    [[TMP1597:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1596]] release, align 8
11656 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11657 // CHECK-NEXT:    [[TMP1598:%.*]] = load i64, i64* [[ULLE]], align 8
11658 // CHECK-NEXT:    [[TMP1599:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1598]] release, align 8
11659 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11660 // CHECK-NEXT:    [[TMP1600:%.*]] = load i64, i64* [[ULLE]], align 8
11661 // CHECK-NEXT:    [[TMP1601:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1600]] release, align 8
11662 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11663 // CHECK-NEXT:    [[TMP1602:%.*]] = load i64, i64* [[ULLE]], align 8
11664 // CHECK-NEXT:    [[TMP1603:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1602]] release, align 8
11665 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11666 // CHECK-NEXT:    [[TMP1604:%.*]] = load i64, i64* [[ULLE]], align 8
11667 // CHECK-NEXT:    [[TMP1605:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1604]] release, align 8
11668 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11669 // CHECK-NEXT:    [[TMP1606:%.*]] = load i64, i64* [[ULLE]], align 8
11670 // CHECK-NEXT:    [[TMP1607:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1606]] release, align 8
11671 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11672 // CHECK-NEXT:    [[TMP1608:%.*]] = load i64, i64* [[ULLE]], align 8
11673 // CHECK-NEXT:    [[TMP1609:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1608]] release, align 8
11674 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11675 // CHECK-NEXT:    [[TMP1610:%.*]] = load i64, i64* [[ULLE]], align 8
11676 // CHECK-NEXT:    [[TMP1611:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1610]] release, align 8
11677 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11678 // CHECK-NEXT:    [[TMP1612:%.*]] = load i64, i64* [[ULLE]], align 8
11679 // CHECK-NEXT:    [[TMP1613:%.*]] = load i64, i64* [[ULLD]], align 8
11680 // CHECK-NEXT:    [[TMP1614:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1612]], i64 [[TMP1613]] release monotonic, align 8
11681 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11682 // CHECK-NEXT:    [[TMP1615:%.*]] = load i64, i64* [[ULLE]], align 8
11683 // CHECK-NEXT:    [[TMP1616:%.*]] = load i64, i64* [[ULLD]], align 8
11684 // CHECK-NEXT:    [[TMP1617:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1615]], i64 [[TMP1616]] release monotonic, align 8
11685 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11686 // CHECK-NEXT:    [[TMP1618:%.*]] = load i64, i64* [[ULLE]], align 8
11687 // CHECK-NEXT:    [[TMP1619:%.*]] = load i64, i64* [[ULLD]], align 8
11688 // CHECK-NEXT:    [[TMP1620:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1618]], i64 [[TMP1619]] release monotonic, align 8
11689 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11690 // CHECK-NEXT:    [[TMP1621:%.*]] = load i64, i64* [[ULLE]], align 8
11691 // CHECK-NEXT:    [[TMP1622:%.*]] = load i64, i64* [[ULLD]], align 8
11692 // CHECK-NEXT:    [[TMP1623:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1621]], i64 [[TMP1622]] release monotonic, align 8
11693 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11694 // CHECK-NEXT:    [[TMP1624:%.*]] = load i64, i64* [[LLE]], align 8
11695 // CHECK-NEXT:    [[TMP1625:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1624]] seq_cst, align 8
11696 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11697 // CHECK-NEXT:    [[TMP1626:%.*]] = load i64, i64* [[LLE]], align 8
11698 // CHECK-NEXT:    [[TMP1627:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1626]] seq_cst, align 8
11699 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11700 // CHECK-NEXT:    [[TMP1628:%.*]] = load i64, i64* [[LLE]], align 8
11701 // CHECK-NEXT:    [[TMP1629:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1628]] seq_cst, align 8
11702 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11703 // CHECK-NEXT:    [[TMP1630:%.*]] = load i64, i64* [[LLE]], align 8
11704 // CHECK-NEXT:    [[TMP1631:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1630]] seq_cst, align 8
11705 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11706 // CHECK-NEXT:    [[TMP1632:%.*]] = load i64, i64* [[LLE]], align 8
11707 // CHECK-NEXT:    [[TMP1633:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1632]] seq_cst, align 8
11708 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11709 // CHECK-NEXT:    [[TMP1634:%.*]] = load i64, i64* [[LLE]], align 8
11710 // CHECK-NEXT:    [[TMP1635:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1634]] seq_cst, align 8
11711 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11712 // CHECK-NEXT:    [[TMP1636:%.*]] = load i64, i64* [[LLE]], align 8
11713 // CHECK-NEXT:    [[TMP1637:%.*]] = atomicrmw max i64* [[LLX]], i64 [[TMP1636]] seq_cst, align 8
11714 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11715 // CHECK-NEXT:    [[TMP1638:%.*]] = load i64, i64* [[LLE]], align 8
11716 // CHECK-NEXT:    [[TMP1639:%.*]] = atomicrmw min i64* [[LLX]], i64 [[TMP1638]] seq_cst, align 8
11717 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11718 // CHECK-NEXT:    [[TMP1640:%.*]] = load i64, i64* [[LLE]], align 8
11719 // CHECK-NEXT:    [[TMP1641:%.*]] = load i64, i64* [[LLD]], align 8
11720 // CHECK-NEXT:    [[TMP1642:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1640]], i64 [[TMP1641]] seq_cst seq_cst, align 8
11721 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11722 // CHECK-NEXT:    [[TMP1643:%.*]] = load i64, i64* [[LLE]], align 8
11723 // CHECK-NEXT:    [[TMP1644:%.*]] = load i64, i64* [[LLD]], align 8
11724 // CHECK-NEXT:    [[TMP1645:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1643]], i64 [[TMP1644]] seq_cst seq_cst, align 8
11725 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11726 // CHECK-NEXT:    [[TMP1646:%.*]] = load i64, i64* [[LLE]], align 8
11727 // CHECK-NEXT:    [[TMP1647:%.*]] = load i64, i64* [[LLD]], align 8
11728 // CHECK-NEXT:    [[TMP1648:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1646]], i64 [[TMP1647]] seq_cst seq_cst, align 8
11729 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11730 // CHECK-NEXT:    [[TMP1649:%.*]] = load i64, i64* [[LLE]], align 8
11731 // CHECK-NEXT:    [[TMP1650:%.*]] = load i64, i64* [[LLD]], align 8
11732 // CHECK-NEXT:    [[TMP1651:%.*]] = cmpxchg i64* [[LLX]], i64 [[TMP1649]], i64 [[TMP1650]] seq_cst seq_cst, align 8
11733 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11734 // CHECK-NEXT:    [[TMP1652:%.*]] = load i64, i64* [[ULLE]], align 8
11735 // CHECK-NEXT:    [[TMP1653:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1652]] seq_cst, align 8
11736 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11737 // CHECK-NEXT:    [[TMP1654:%.*]] = load i64, i64* [[ULLE]], align 8
11738 // CHECK-NEXT:    [[TMP1655:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1654]] seq_cst, align 8
11739 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11740 // CHECK-NEXT:    [[TMP1656:%.*]] = load i64, i64* [[ULLE]], align 8
11741 // CHECK-NEXT:    [[TMP1657:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1656]] seq_cst, align 8
11742 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11743 // CHECK-NEXT:    [[TMP1658:%.*]] = load i64, i64* [[ULLE]], align 8
11744 // CHECK-NEXT:    [[TMP1659:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1658]] seq_cst, align 8
11745 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11746 // CHECK-NEXT:    [[TMP1660:%.*]] = load i64, i64* [[ULLE]], align 8
11747 // CHECK-NEXT:    [[TMP1661:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1660]] seq_cst, align 8
11748 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11749 // CHECK-NEXT:    [[TMP1662:%.*]] = load i64, i64* [[ULLE]], align 8
11750 // CHECK-NEXT:    [[TMP1663:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1662]] seq_cst, align 8
11751 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11752 // CHECK-NEXT:    [[TMP1664:%.*]] = load i64, i64* [[ULLE]], align 8
11753 // CHECK-NEXT:    [[TMP1665:%.*]] = atomicrmw umax i64* [[ULLX]], i64 [[TMP1664]] seq_cst, align 8
11754 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11755 // CHECK-NEXT:    [[TMP1666:%.*]] = load i64, i64* [[ULLE]], align 8
11756 // CHECK-NEXT:    [[TMP1667:%.*]] = atomicrmw umin i64* [[ULLX]], i64 [[TMP1666]] seq_cst, align 8
11757 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11758 // CHECK-NEXT:    [[TMP1668:%.*]] = load i64, i64* [[ULLE]], align 8
11759 // CHECK-NEXT:    [[TMP1669:%.*]] = load i64, i64* [[ULLD]], align 8
11760 // CHECK-NEXT:    [[TMP1670:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1668]], i64 [[TMP1669]] seq_cst seq_cst, align 8
11761 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11762 // CHECK-NEXT:    [[TMP1671:%.*]] = load i64, i64* [[ULLE]], align 8
11763 // CHECK-NEXT:    [[TMP1672:%.*]] = load i64, i64* [[ULLD]], align 8
11764 // CHECK-NEXT:    [[TMP1673:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1671]], i64 [[TMP1672]] seq_cst seq_cst, align 8
11765 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11766 // CHECK-NEXT:    [[TMP1674:%.*]] = load i64, i64* [[ULLE]], align 8
11767 // CHECK-NEXT:    [[TMP1675:%.*]] = load i64, i64* [[ULLD]], align 8
11768 // CHECK-NEXT:    [[TMP1676:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1674]], i64 [[TMP1675]] seq_cst seq_cst, align 8
11769 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11770 // CHECK-NEXT:    [[TMP1677:%.*]] = load i64, i64* [[ULLE]], align 8
11771 // CHECK-NEXT:    [[TMP1678:%.*]] = load i64, i64* [[ULLD]], align 8
11772 // CHECK-NEXT:    [[TMP1679:%.*]] = cmpxchg i64* [[ULLX]], i64 [[TMP1677]], i64 [[TMP1678]] seq_cst seq_cst, align 8
11773 // CHECK-NEXT:    call void @__kmpc_flush(%struct.ident_t* @[[GLOB1]])
11774 // CHECK-NEXT:    ret void
11775