Add PR check to suggest alternatives to using undef (#118506)
[llvm-project.git] / llvm / test / CodeGen / AArch64 / Atomics / aarch64_be-atomic-load-v8_1a.ll
blob322dcb24d6bf3953d926c4fa6630b8fb5e84c2bb
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --filter-out "\b(sp)\b" --filter "^\s*(ld|st[^r]|swp|cas|bl|add|and|eor|orn|orr|sub|mvn|sxt|cmp|ccmp|csel|dmb)"
2 ; The base test file was generated by ./llvm/test/CodeGen/AArch64/Atomics/generate-tests.py
3 ; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64_be -mattr=+v8.1a -O0 | FileCheck %s --check-prefixes=CHECK,-O0
4 ; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64_be -mattr=+v8.1a -O1 | FileCheck %s --check-prefixes=CHECK,-O1
6 define dso_local i8 @load_atomic_i8_aligned_unordered(ptr %ptr) {
7 ; CHECK-LABEL: load_atomic_i8_aligned_unordered:
8 ; CHECK:    ldrb w0, [x0]
9     %r = load atomic i8, ptr %ptr unordered, align 1
10     ret i8 %r
13 define dso_local i8 @load_atomic_i8_aligned_unordered_const(ptr readonly %ptr) {
14 ; CHECK-LABEL: load_atomic_i8_aligned_unordered_const:
15 ; CHECK:    ldrb w0, [x0]
16     %r = load atomic i8, ptr %ptr unordered, align 1
17     ret i8 %r
20 define dso_local i8 @load_atomic_i8_aligned_monotonic(ptr %ptr) {
21 ; CHECK-LABEL: load_atomic_i8_aligned_monotonic:
22 ; CHECK:    ldrb w0, [x0]
23     %r = load atomic i8, ptr %ptr monotonic, align 1
24     ret i8 %r
27 define dso_local i8 @load_atomic_i8_aligned_monotonic_const(ptr readonly %ptr) {
28 ; CHECK-LABEL: load_atomic_i8_aligned_monotonic_const:
29 ; CHECK:    ldrb w0, [x0]
30     %r = load atomic i8, ptr %ptr monotonic, align 1
31     ret i8 %r
34 define dso_local i8 @load_atomic_i8_aligned_acquire(ptr %ptr) {
35 ; CHECK-LABEL: load_atomic_i8_aligned_acquire:
36 ; CHECK:    ldarb w0, [x0]
37     %r = load atomic i8, ptr %ptr acquire, align 1
38     ret i8 %r
41 define dso_local i8 @load_atomic_i8_aligned_acquire_const(ptr readonly %ptr) {
42 ; CHECK-LABEL: load_atomic_i8_aligned_acquire_const:
43 ; CHECK:    ldarb w0, [x0]
44     %r = load atomic i8, ptr %ptr acquire, align 1
45     ret i8 %r
48 define dso_local i8 @load_atomic_i8_aligned_seq_cst(ptr %ptr) {
49 ; CHECK-LABEL: load_atomic_i8_aligned_seq_cst:
50 ; CHECK:    ldarb w0, [x0]
51     %r = load atomic i8, ptr %ptr seq_cst, align 1
52     ret i8 %r
55 define dso_local i8 @load_atomic_i8_aligned_seq_cst_const(ptr readonly %ptr) {
56 ; CHECK-LABEL: load_atomic_i8_aligned_seq_cst_const:
57 ; CHECK:    ldarb w0, [x0]
58     %r = load atomic i8, ptr %ptr seq_cst, align 1
59     ret i8 %r
62 define dso_local i16 @load_atomic_i16_aligned_unordered(ptr %ptr) {
63 ; CHECK-LABEL: load_atomic_i16_aligned_unordered:
64 ; CHECK:    ldrh w0, [x0]
65     %r = load atomic i16, ptr %ptr unordered, align 2
66     ret i16 %r
69 define dso_local i16 @load_atomic_i16_aligned_unordered_const(ptr readonly %ptr) {
70 ; CHECK-LABEL: load_atomic_i16_aligned_unordered_const:
71 ; CHECK:    ldrh w0, [x0]
72     %r = load atomic i16, ptr %ptr unordered, align 2
73     ret i16 %r
76 define dso_local i16 @load_atomic_i16_aligned_monotonic(ptr %ptr) {
77 ; CHECK-LABEL: load_atomic_i16_aligned_monotonic:
78 ; CHECK:    ldrh w0, [x0]
79     %r = load atomic i16, ptr %ptr monotonic, align 2
80     ret i16 %r
83 define dso_local i16 @load_atomic_i16_aligned_monotonic_const(ptr readonly %ptr) {
84 ; CHECK-LABEL: load_atomic_i16_aligned_monotonic_const:
85 ; CHECK:    ldrh w0, [x0]
86     %r = load atomic i16, ptr %ptr monotonic, align 2
87     ret i16 %r
90 define dso_local i16 @load_atomic_i16_aligned_acquire(ptr %ptr) {
91 ; CHECK-LABEL: load_atomic_i16_aligned_acquire:
92 ; CHECK:    ldarh w0, [x0]
93     %r = load atomic i16, ptr %ptr acquire, align 2
94     ret i16 %r
97 define dso_local i16 @load_atomic_i16_aligned_acquire_const(ptr readonly %ptr) {
98 ; CHECK-LABEL: load_atomic_i16_aligned_acquire_const:
99 ; CHECK:    ldarh w0, [x0]
100     %r = load atomic i16, ptr %ptr acquire, align 2
101     ret i16 %r
104 define dso_local i16 @load_atomic_i16_aligned_seq_cst(ptr %ptr) {
105 ; CHECK-LABEL: load_atomic_i16_aligned_seq_cst:
106 ; CHECK:    ldarh w0, [x0]
107     %r = load atomic i16, ptr %ptr seq_cst, align 2
108     ret i16 %r
111 define dso_local i16 @load_atomic_i16_aligned_seq_cst_const(ptr readonly %ptr) {
112 ; CHECK-LABEL: load_atomic_i16_aligned_seq_cst_const:
113 ; CHECK:    ldarh w0, [x0]
114     %r = load atomic i16, ptr %ptr seq_cst, align 2
115     ret i16 %r
118 define dso_local i32 @load_atomic_i32_aligned_unordered(ptr %ptr) {
119 ; CHECK-LABEL: load_atomic_i32_aligned_unordered:
120 ; CHECK:    ldr w0, [x0]
121     %r = load atomic i32, ptr %ptr unordered, align 4
122     ret i32 %r
125 define dso_local i32 @load_atomic_i32_aligned_unordered_const(ptr readonly %ptr) {
126 ; CHECK-LABEL: load_atomic_i32_aligned_unordered_const:
127 ; CHECK:    ldr w0, [x0]
128     %r = load atomic i32, ptr %ptr unordered, align 4
129     ret i32 %r
132 define dso_local i32 @load_atomic_i32_aligned_monotonic(ptr %ptr) {
133 ; CHECK-LABEL: load_atomic_i32_aligned_monotonic:
134 ; CHECK:    ldr w0, [x0]
135     %r = load atomic i32, ptr %ptr monotonic, align 4
136     ret i32 %r
139 define dso_local i32 @load_atomic_i32_aligned_monotonic_const(ptr readonly %ptr) {
140 ; CHECK-LABEL: load_atomic_i32_aligned_monotonic_const:
141 ; CHECK:    ldr w0, [x0]
142     %r = load atomic i32, ptr %ptr monotonic, align 4
143     ret i32 %r
146 define dso_local i32 @load_atomic_i32_aligned_acquire(ptr %ptr) {
147 ; CHECK-LABEL: load_atomic_i32_aligned_acquire:
148 ; CHECK:    ldar w0, [x0]
149     %r = load atomic i32, ptr %ptr acquire, align 4
150     ret i32 %r
153 define dso_local i32 @load_atomic_i32_aligned_acquire_const(ptr readonly %ptr) {
154 ; CHECK-LABEL: load_atomic_i32_aligned_acquire_const:
155 ; CHECK:    ldar w0, [x0]
156     %r = load atomic i32, ptr %ptr acquire, align 4
157     ret i32 %r
160 define dso_local i32 @load_atomic_i32_aligned_seq_cst(ptr %ptr) {
161 ; CHECK-LABEL: load_atomic_i32_aligned_seq_cst:
162 ; CHECK:    ldar w0, [x0]
163     %r = load atomic i32, ptr %ptr seq_cst, align 4
164     ret i32 %r
167 define dso_local i32 @load_atomic_i32_aligned_seq_cst_const(ptr readonly %ptr) {
168 ; CHECK-LABEL: load_atomic_i32_aligned_seq_cst_const:
169 ; CHECK:    ldar w0, [x0]
170     %r = load atomic i32, ptr %ptr seq_cst, align 4
171     ret i32 %r
174 define dso_local i64 @load_atomic_i64_aligned_unordered(ptr %ptr) {
175 ; CHECK-LABEL: load_atomic_i64_aligned_unordered:
176 ; CHECK:    ldr x0, [x0]
177     %r = load atomic i64, ptr %ptr unordered, align 8
178     ret i64 %r
181 define dso_local i64 @load_atomic_i64_aligned_unordered_const(ptr readonly %ptr) {
182 ; CHECK-LABEL: load_atomic_i64_aligned_unordered_const:
183 ; CHECK:    ldr x0, [x0]
184     %r = load atomic i64, ptr %ptr unordered, align 8
185     ret i64 %r
188 define dso_local i64 @load_atomic_i64_aligned_monotonic(ptr %ptr) {
189 ; CHECK-LABEL: load_atomic_i64_aligned_monotonic:
190 ; CHECK:    ldr x0, [x0]
191     %r = load atomic i64, ptr %ptr monotonic, align 8
192     ret i64 %r
195 define dso_local i64 @load_atomic_i64_aligned_monotonic_const(ptr readonly %ptr) {
196 ; CHECK-LABEL: load_atomic_i64_aligned_monotonic_const:
197 ; CHECK:    ldr x0, [x0]
198     %r = load atomic i64, ptr %ptr monotonic, align 8
199     ret i64 %r
202 define dso_local i64 @load_atomic_i64_aligned_acquire(ptr %ptr) {
203 ; CHECK-LABEL: load_atomic_i64_aligned_acquire:
204 ; CHECK:    ldar x0, [x0]
205     %r = load atomic i64, ptr %ptr acquire, align 8
206     ret i64 %r
209 define dso_local i64 @load_atomic_i64_aligned_acquire_const(ptr readonly %ptr) {
210 ; CHECK-LABEL: load_atomic_i64_aligned_acquire_const:
211 ; CHECK:    ldar x0, [x0]
212     %r = load atomic i64, ptr %ptr acquire, align 8
213     ret i64 %r
216 define dso_local i64 @load_atomic_i64_aligned_seq_cst(ptr %ptr) {
217 ; CHECK-LABEL: load_atomic_i64_aligned_seq_cst:
218 ; CHECK:    ldar x0, [x0]
219     %r = load atomic i64, ptr %ptr seq_cst, align 8
220     ret i64 %r
223 define dso_local i64 @load_atomic_i64_aligned_seq_cst_const(ptr readonly %ptr) {
224 ; CHECK-LABEL: load_atomic_i64_aligned_seq_cst_const:
225 ; CHECK:    ldar x0, [x0]
226     %r = load atomic i64, ptr %ptr seq_cst, align 8
227     ret i64 %r
230 define dso_local i128 @load_atomic_i128_aligned_unordered(ptr %ptr) {
231 ; CHECK-LABEL: load_atomic_i128_aligned_unordered:
232 ; CHECK:    casp x2, x3, x2, x3, [x0]
233     %r = load atomic i128, ptr %ptr unordered, align 16
234     ret i128 %r
237 define dso_local i128 @load_atomic_i128_aligned_unordered_const(ptr readonly %ptr) {
238 ; CHECK-LABEL: load_atomic_i128_aligned_unordered_const:
239 ; CHECK:    casp x2, x3, x2, x3, [x0]
240     %r = load atomic i128, ptr %ptr unordered, align 16
241     ret i128 %r
244 define dso_local i128 @load_atomic_i128_aligned_monotonic(ptr %ptr) {
245 ; CHECK-LABEL: load_atomic_i128_aligned_monotonic:
246 ; CHECK:    casp x2, x3, x2, x3, [x0]
247     %r = load atomic i128, ptr %ptr monotonic, align 16
248     ret i128 %r
251 define dso_local i128 @load_atomic_i128_aligned_monotonic_const(ptr readonly %ptr) {
252 ; CHECK-LABEL: load_atomic_i128_aligned_monotonic_const:
253 ; CHECK:    casp x2, x3, x2, x3, [x0]
254     %r = load atomic i128, ptr %ptr monotonic, align 16
255     ret i128 %r
258 define dso_local i128 @load_atomic_i128_aligned_acquire(ptr %ptr) {
259 ; CHECK-LABEL: load_atomic_i128_aligned_acquire:
260 ; CHECK:    caspa x2, x3, x2, x3, [x0]
261     %r = load atomic i128, ptr %ptr acquire, align 16
262     ret i128 %r
265 define dso_local i128 @load_atomic_i128_aligned_acquire_const(ptr readonly %ptr) {
266 ; CHECK-LABEL: load_atomic_i128_aligned_acquire_const:
267 ; CHECK:    caspa x2, x3, x2, x3, [x0]
268     %r = load atomic i128, ptr %ptr acquire, align 16
269     ret i128 %r
272 define dso_local i128 @load_atomic_i128_aligned_seq_cst(ptr %ptr) {
273 ; CHECK-LABEL: load_atomic_i128_aligned_seq_cst:
274 ; CHECK:    caspal x2, x3, x2, x3, [x0]
275     %r = load atomic i128, ptr %ptr seq_cst, align 16
276     ret i128 %r
279 define dso_local i128 @load_atomic_i128_aligned_seq_cst_const(ptr readonly %ptr) {
280 ; CHECK-LABEL: load_atomic_i128_aligned_seq_cst_const:
281 ; CHECK:    caspal x2, x3, x2, x3, [x0]
282     %r = load atomic i128, ptr %ptr seq_cst, align 16
283     ret i128 %r
286 define dso_local i8 @load_atomic_i8_unaligned_unordered(ptr %ptr) {
287 ; CHECK-LABEL: load_atomic_i8_unaligned_unordered:
288 ; CHECK:    ldrb w0, [x0]
289     %r = load atomic i8, ptr %ptr unordered, align 1
290     ret i8 %r
293 define dso_local i8 @load_atomic_i8_unaligned_unordered_const(ptr readonly %ptr) {
294 ; CHECK-LABEL: load_atomic_i8_unaligned_unordered_const:
295 ; CHECK:    ldrb w0, [x0]
296     %r = load atomic i8, ptr %ptr unordered, align 1
297     ret i8 %r
300 define dso_local i8 @load_atomic_i8_unaligned_monotonic(ptr %ptr) {
301 ; CHECK-LABEL: load_atomic_i8_unaligned_monotonic:
302 ; CHECK:    ldrb w0, [x0]
303     %r = load atomic i8, ptr %ptr monotonic, align 1
304     ret i8 %r
307 define dso_local i8 @load_atomic_i8_unaligned_monotonic_const(ptr readonly %ptr) {
308 ; CHECK-LABEL: load_atomic_i8_unaligned_monotonic_const:
309 ; CHECK:    ldrb w0, [x0]
310     %r = load atomic i8, ptr %ptr monotonic, align 1
311     ret i8 %r
314 define dso_local i8 @load_atomic_i8_unaligned_acquire(ptr %ptr) {
315 ; CHECK-LABEL: load_atomic_i8_unaligned_acquire:
316 ; CHECK:    ldarb w0, [x0]
317     %r = load atomic i8, ptr %ptr acquire, align 1
318     ret i8 %r
321 define dso_local i8 @load_atomic_i8_unaligned_acquire_const(ptr readonly %ptr) {
322 ; CHECK-LABEL: load_atomic_i8_unaligned_acquire_const:
323 ; CHECK:    ldarb w0, [x0]
324     %r = load atomic i8, ptr %ptr acquire, align 1
325     ret i8 %r
328 define dso_local i8 @load_atomic_i8_unaligned_seq_cst(ptr %ptr) {
329 ; CHECK-LABEL: load_atomic_i8_unaligned_seq_cst:
330 ; CHECK:    ldarb w0, [x0]
331     %r = load atomic i8, ptr %ptr seq_cst, align 1
332     ret i8 %r
335 define dso_local i8 @load_atomic_i8_unaligned_seq_cst_const(ptr readonly %ptr) {
336 ; CHECK-LABEL: load_atomic_i8_unaligned_seq_cst_const:
337 ; CHECK:    ldarb w0, [x0]
338     %r = load atomic i8, ptr %ptr seq_cst, align 1
339     ret i8 %r
342 define dso_local i16 @load_atomic_i16_unaligned_unordered(ptr %ptr) {
343 ; CHECK-LABEL: load_atomic_i16_unaligned_unordered:
344 ; CHECK:    bl __atomic_load
345     %r = load atomic i16, ptr %ptr unordered, align 1
346     ret i16 %r
349 define dso_local i16 @load_atomic_i16_unaligned_unordered_const(ptr readonly %ptr) {
350 ; CHECK-LABEL: load_atomic_i16_unaligned_unordered_const:
351 ; CHECK:    bl __atomic_load
352     %r = load atomic i16, ptr %ptr unordered, align 1
353     ret i16 %r
356 define dso_local i16 @load_atomic_i16_unaligned_monotonic(ptr %ptr) {
357 ; CHECK-LABEL: load_atomic_i16_unaligned_monotonic:
358 ; CHECK:    bl __atomic_load
359     %r = load atomic i16, ptr %ptr monotonic, align 1
360     ret i16 %r
363 define dso_local i16 @load_atomic_i16_unaligned_monotonic_const(ptr readonly %ptr) {
364 ; CHECK-LABEL: load_atomic_i16_unaligned_monotonic_const:
365 ; CHECK:    bl __atomic_load
366     %r = load atomic i16, ptr %ptr monotonic, align 1
367     ret i16 %r
370 define dso_local i16 @load_atomic_i16_unaligned_acquire(ptr %ptr) {
371 ; CHECK-LABEL: load_atomic_i16_unaligned_acquire:
372 ; CHECK:    bl __atomic_load
373     %r = load atomic i16, ptr %ptr acquire, align 1
374     ret i16 %r
377 define dso_local i16 @load_atomic_i16_unaligned_acquire_const(ptr readonly %ptr) {
378 ; CHECK-LABEL: load_atomic_i16_unaligned_acquire_const:
379 ; CHECK:    bl __atomic_load
380     %r = load atomic i16, ptr %ptr acquire, align 1
381     ret i16 %r
384 define dso_local i16 @load_atomic_i16_unaligned_seq_cst(ptr %ptr) {
385 ; CHECK-LABEL: load_atomic_i16_unaligned_seq_cst:
386 ; CHECK:    bl __atomic_load
387     %r = load atomic i16, ptr %ptr seq_cst, align 1
388     ret i16 %r
391 define dso_local i16 @load_atomic_i16_unaligned_seq_cst_const(ptr readonly %ptr) {
392 ; CHECK-LABEL: load_atomic_i16_unaligned_seq_cst_const:
393 ; CHECK:    bl __atomic_load
394     %r = load atomic i16, ptr %ptr seq_cst, align 1
395     ret i16 %r
398 define dso_local i32 @load_atomic_i32_unaligned_unordered(ptr %ptr) {
399 ; CHECK-LABEL: load_atomic_i32_unaligned_unordered:
400 ; CHECK:    bl __atomic_load
401     %r = load atomic i32, ptr %ptr unordered, align 1
402     ret i32 %r
405 define dso_local i32 @load_atomic_i32_unaligned_unordered_const(ptr readonly %ptr) {
406 ; CHECK-LABEL: load_atomic_i32_unaligned_unordered_const:
407 ; CHECK:    bl __atomic_load
408     %r = load atomic i32, ptr %ptr unordered, align 1
409     ret i32 %r
412 define dso_local i32 @load_atomic_i32_unaligned_monotonic(ptr %ptr) {
413 ; CHECK-LABEL: load_atomic_i32_unaligned_monotonic:
414 ; CHECK:    bl __atomic_load
415     %r = load atomic i32, ptr %ptr monotonic, align 1
416     ret i32 %r
419 define dso_local i32 @load_atomic_i32_unaligned_monotonic_const(ptr readonly %ptr) {
420 ; CHECK-LABEL: load_atomic_i32_unaligned_monotonic_const:
421 ; CHECK:    bl __atomic_load
422     %r = load atomic i32, ptr %ptr monotonic, align 1
423     ret i32 %r
426 define dso_local i32 @load_atomic_i32_unaligned_acquire(ptr %ptr) {
427 ; CHECK-LABEL: load_atomic_i32_unaligned_acquire:
428 ; CHECK:    bl __atomic_load
429     %r = load atomic i32, ptr %ptr acquire, align 1
430     ret i32 %r
433 define dso_local i32 @load_atomic_i32_unaligned_acquire_const(ptr readonly %ptr) {
434 ; CHECK-LABEL: load_atomic_i32_unaligned_acquire_const:
435 ; CHECK:    bl __atomic_load
436     %r = load atomic i32, ptr %ptr acquire, align 1
437     ret i32 %r
440 define dso_local i32 @load_atomic_i32_unaligned_seq_cst(ptr %ptr) {
441 ; CHECK-LABEL: load_atomic_i32_unaligned_seq_cst:
442 ; CHECK:    bl __atomic_load
443     %r = load atomic i32, ptr %ptr seq_cst, align 1
444     ret i32 %r
447 define dso_local i32 @load_atomic_i32_unaligned_seq_cst_const(ptr readonly %ptr) {
448 ; CHECK-LABEL: load_atomic_i32_unaligned_seq_cst_const:
449 ; CHECK:    bl __atomic_load
450     %r = load atomic i32, ptr %ptr seq_cst, align 1
451     ret i32 %r
454 define dso_local i64 @load_atomic_i64_unaligned_unordered(ptr %ptr) {
455 ; CHECK-LABEL: load_atomic_i64_unaligned_unordered:
456 ; CHECK:    bl __atomic_load
457     %r = load atomic i64, ptr %ptr unordered, align 1
458     ret i64 %r
461 define dso_local i64 @load_atomic_i64_unaligned_unordered_const(ptr readonly %ptr) {
462 ; CHECK-LABEL: load_atomic_i64_unaligned_unordered_const:
463 ; CHECK:    bl __atomic_load
464     %r = load atomic i64, ptr %ptr unordered, align 1
465     ret i64 %r
468 define dso_local i64 @load_atomic_i64_unaligned_monotonic(ptr %ptr) {
469 ; CHECK-LABEL: load_atomic_i64_unaligned_monotonic:
470 ; CHECK:    bl __atomic_load
471     %r = load atomic i64, ptr %ptr monotonic, align 1
472     ret i64 %r
475 define dso_local i64 @load_atomic_i64_unaligned_monotonic_const(ptr readonly %ptr) {
476 ; CHECK-LABEL: load_atomic_i64_unaligned_monotonic_const:
477 ; CHECK:    bl __atomic_load
478     %r = load atomic i64, ptr %ptr monotonic, align 1
479     ret i64 %r
482 define dso_local i64 @load_atomic_i64_unaligned_acquire(ptr %ptr) {
483 ; CHECK-LABEL: load_atomic_i64_unaligned_acquire:
484 ; CHECK:    bl __atomic_load
485     %r = load atomic i64, ptr %ptr acquire, align 1
486     ret i64 %r
489 define dso_local i64 @load_atomic_i64_unaligned_acquire_const(ptr readonly %ptr) {
490 ; CHECK-LABEL: load_atomic_i64_unaligned_acquire_const:
491 ; CHECK:    bl __atomic_load
492     %r = load atomic i64, ptr %ptr acquire, align 1
493     ret i64 %r
496 define dso_local i64 @load_atomic_i64_unaligned_seq_cst(ptr %ptr) {
497 ; CHECK-LABEL: load_atomic_i64_unaligned_seq_cst:
498 ; CHECK:    bl __atomic_load
499     %r = load atomic i64, ptr %ptr seq_cst, align 1
500     ret i64 %r
503 define dso_local i64 @load_atomic_i64_unaligned_seq_cst_const(ptr readonly %ptr) {
504 ; CHECK-LABEL: load_atomic_i64_unaligned_seq_cst_const:
505 ; CHECK:    bl __atomic_load
506     %r = load atomic i64, ptr %ptr seq_cst, align 1
507     ret i64 %r
510 define dso_local i128 @load_atomic_i128_unaligned_unordered(ptr %ptr) {
511 ; CHECK-LABEL: load_atomic_i128_unaligned_unordered:
512 ; CHECK:    bl __atomic_load
513     %r = load atomic i128, ptr %ptr unordered, align 1
514     ret i128 %r
517 define dso_local i128 @load_atomic_i128_unaligned_unordered_const(ptr readonly %ptr) {
518 ; CHECK-LABEL: load_atomic_i128_unaligned_unordered_const:
519 ; CHECK:    bl __atomic_load
520     %r = load atomic i128, ptr %ptr unordered, align 1
521     ret i128 %r
524 define dso_local i128 @load_atomic_i128_unaligned_monotonic(ptr %ptr) {
525 ; CHECK-LABEL: load_atomic_i128_unaligned_monotonic:
526 ; CHECK:    bl __atomic_load
527     %r = load atomic i128, ptr %ptr monotonic, align 1
528     ret i128 %r
531 define dso_local i128 @load_atomic_i128_unaligned_monotonic_const(ptr readonly %ptr) {
532 ; CHECK-LABEL: load_atomic_i128_unaligned_monotonic_const:
533 ; CHECK:    bl __atomic_load
534     %r = load atomic i128, ptr %ptr monotonic, align 1
535     ret i128 %r
538 define dso_local i128 @load_atomic_i128_unaligned_acquire(ptr %ptr) {
539 ; CHECK-LABEL: load_atomic_i128_unaligned_acquire:
540 ; CHECK:    bl __atomic_load
541     %r = load atomic i128, ptr %ptr acquire, align 1
542     ret i128 %r
545 define dso_local i128 @load_atomic_i128_unaligned_acquire_const(ptr readonly %ptr) {
546 ; CHECK-LABEL: load_atomic_i128_unaligned_acquire_const:
547 ; CHECK:    bl __atomic_load
548     %r = load atomic i128, ptr %ptr acquire, align 1
549     ret i128 %r
552 define dso_local i128 @load_atomic_i128_unaligned_seq_cst(ptr %ptr) {
553 ; CHECK-LABEL: load_atomic_i128_unaligned_seq_cst:
554 ; CHECK:    bl __atomic_load
555     %r = load atomic i128, ptr %ptr seq_cst, align 1
556     ret i128 %r
559 define dso_local i128 @load_atomic_i128_unaligned_seq_cst_const(ptr readonly %ptr) {
560 ; CHECK-LABEL: load_atomic_i128_unaligned_seq_cst_const:
561 ; CHECK:    bl __atomic_load
562     %r = load atomic i128, ptr %ptr seq_cst, align 1
563     ret i128 %r
565 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
566 ; -O0: {{.*}}
567 ; -O1: {{.*}}