589 lines · plain
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.py3; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+v8.1a -O0 | FileCheck %s --check-prefixes=CHECK,-O04; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+v8.1a -O1 | FileCheck %s --check-prefixes=CHECK,-O15 6define 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 110 ret i8 %r11}12 13define 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 117 ret i8 %r18}19 20define 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 124 ret i8 %r25}26 27define 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 131 ret i8 %r32}33 34define 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 138 ret i8 %r39}40 41define 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 145 ret i8 %r46}47 48define 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 152 ret i8 %r53}54 55define 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 159 ret i8 %r60}61 62define 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 266 ret i16 %r67}68 69define 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 273 ret i16 %r74}75 76define 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 280 ret i16 %r81}82 83define 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 287 ret i16 %r88}89 90define 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 294 ret i16 %r95}96 97define 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 2101 ret i16 %r102}103 104define 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 2108 ret i16 %r109}110 111define 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 2115 ret i16 %r116}117 118define 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 4122 ret i32 %r123}124 125define 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 4129 ret i32 %r130}131 132define 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 4136 ret i32 %r137}138 139define 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 4143 ret i32 %r144}145 146define 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 4150 ret i32 %r151}152 153define 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 4157 ret i32 %r158}159 160define 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 4164 ret i32 %r165}166 167define 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 4171 ret i32 %r172}173 174define 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 8178 ret i64 %r179}180 181define 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 8185 ret i64 %r186}187 188define 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 8192 ret i64 %r193}194 195define 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 8199 ret i64 %r200}201 202define 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 8206 ret i64 %r207}208 209define 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 8213 ret i64 %r214}215 216define 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 8220 ret i64 %r221}222 223define 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 8227 ret i64 %r228}229 230define dso_local i128 @load_atomic_i128_aligned_unordered(ptr %ptr) {231; -O0-LABEL: load_atomic_i128_aligned_unordered:232; -O0: casp x2, x3, x0, x1, [x8]233;234; -O1-LABEL: load_atomic_i128_aligned_unordered:235; -O1: casp x2, x3, x2, x3, [x0]236 %r = load atomic i128, ptr %ptr unordered, align 16237 ret i128 %r238}239 240define dso_local i128 @load_atomic_i128_aligned_unordered_const(ptr readonly %ptr) {241; -O0-LABEL: load_atomic_i128_aligned_unordered_const:242; -O0: casp x2, x3, x0, x1, [x8]243;244; -O1-LABEL: load_atomic_i128_aligned_unordered_const:245; -O1: casp x2, x3, x2, x3, [x0]246 %r = load atomic i128, ptr %ptr unordered, align 16247 ret i128 %r248}249 250define dso_local i128 @load_atomic_i128_aligned_monotonic(ptr %ptr) {251; -O0-LABEL: load_atomic_i128_aligned_monotonic:252; -O0: casp x2, x3, x0, x1, [x8]253;254; -O1-LABEL: load_atomic_i128_aligned_monotonic:255; -O1: casp x2, x3, x2, x3, [x0]256 %r = load atomic i128, ptr %ptr monotonic, align 16257 ret i128 %r258}259 260define dso_local i128 @load_atomic_i128_aligned_monotonic_const(ptr readonly %ptr) {261; -O0-LABEL: load_atomic_i128_aligned_monotonic_const:262; -O0: casp x2, x3, x0, x1, [x8]263;264; -O1-LABEL: load_atomic_i128_aligned_monotonic_const:265; -O1: casp x2, x3, x2, x3, [x0]266 %r = load atomic i128, ptr %ptr monotonic, align 16267 ret i128 %r268}269 270define dso_local i128 @load_atomic_i128_aligned_acquire(ptr %ptr) {271; -O0-LABEL: load_atomic_i128_aligned_acquire:272; -O0: caspa x2, x3, x0, x1, [x8]273;274; -O1-LABEL: load_atomic_i128_aligned_acquire:275; -O1: caspa x2, x3, x2, x3, [x0]276 %r = load atomic i128, ptr %ptr acquire, align 16277 ret i128 %r278}279 280define dso_local i128 @load_atomic_i128_aligned_acquire_const(ptr readonly %ptr) {281; -O0-LABEL: load_atomic_i128_aligned_acquire_const:282; -O0: caspa x2, x3, x0, x1, [x8]283;284; -O1-LABEL: load_atomic_i128_aligned_acquire_const:285; -O1: caspa x2, x3, x2, x3, [x0]286 %r = load atomic i128, ptr %ptr acquire, align 16287 ret i128 %r288}289 290define dso_local i128 @load_atomic_i128_aligned_seq_cst(ptr %ptr) {291; -O0-LABEL: load_atomic_i128_aligned_seq_cst:292; -O0: caspal x2, x3, x0, x1, [x8]293;294; -O1-LABEL: load_atomic_i128_aligned_seq_cst:295; -O1: caspal x2, x3, x2, x3, [x0]296 %r = load atomic i128, ptr %ptr seq_cst, align 16297 ret i128 %r298}299 300define dso_local i128 @load_atomic_i128_aligned_seq_cst_const(ptr readonly %ptr) {301; -O0-LABEL: load_atomic_i128_aligned_seq_cst_const:302; -O0: caspal x2, x3, x0, x1, [x8]303;304; -O1-LABEL: load_atomic_i128_aligned_seq_cst_const:305; -O1: caspal x2, x3, x2, x3, [x0]306 %r = load atomic i128, ptr %ptr seq_cst, align 16307 ret i128 %r308}309 310define dso_local i8 @load_atomic_i8_unaligned_unordered(ptr %ptr) {311; CHECK-LABEL: load_atomic_i8_unaligned_unordered:312; CHECK: ldrb w0, [x0]313 %r = load atomic i8, ptr %ptr unordered, align 1314 ret i8 %r315}316 317define dso_local i8 @load_atomic_i8_unaligned_unordered_const(ptr readonly %ptr) {318; CHECK-LABEL: load_atomic_i8_unaligned_unordered_const:319; CHECK: ldrb w0, [x0]320 %r = load atomic i8, ptr %ptr unordered, align 1321 ret i8 %r322}323 324define dso_local i8 @load_atomic_i8_unaligned_monotonic(ptr %ptr) {325; CHECK-LABEL: load_atomic_i8_unaligned_monotonic:326; CHECK: ldrb w0, [x0]327 %r = load atomic i8, ptr %ptr monotonic, align 1328 ret i8 %r329}330 331define dso_local i8 @load_atomic_i8_unaligned_monotonic_const(ptr readonly %ptr) {332; CHECK-LABEL: load_atomic_i8_unaligned_monotonic_const:333; CHECK: ldrb w0, [x0]334 %r = load atomic i8, ptr %ptr monotonic, align 1335 ret i8 %r336}337 338define dso_local i8 @load_atomic_i8_unaligned_acquire(ptr %ptr) {339; CHECK-LABEL: load_atomic_i8_unaligned_acquire:340; CHECK: ldarb w0, [x0]341 %r = load atomic i8, ptr %ptr acquire, align 1342 ret i8 %r343}344 345define dso_local i8 @load_atomic_i8_unaligned_acquire_const(ptr readonly %ptr) {346; CHECK-LABEL: load_atomic_i8_unaligned_acquire_const:347; CHECK: ldarb w0, [x0]348 %r = load atomic i8, ptr %ptr acquire, align 1349 ret i8 %r350}351 352define dso_local i8 @load_atomic_i8_unaligned_seq_cst(ptr %ptr) {353; CHECK-LABEL: load_atomic_i8_unaligned_seq_cst:354; CHECK: ldarb w0, [x0]355 %r = load atomic i8, ptr %ptr seq_cst, align 1356 ret i8 %r357}358 359define dso_local i8 @load_atomic_i8_unaligned_seq_cst_const(ptr readonly %ptr) {360; CHECK-LABEL: load_atomic_i8_unaligned_seq_cst_const:361; CHECK: ldarb w0, [x0]362 %r = load atomic i8, ptr %ptr seq_cst, align 1363 ret i8 %r364}365 366define dso_local i16 @load_atomic_i16_unaligned_unordered(ptr %ptr) {367; CHECK-LABEL: load_atomic_i16_unaligned_unordered:368; CHECK: bl __atomic_load369 %r = load atomic i16, ptr %ptr unordered, align 1370 ret i16 %r371}372 373define dso_local i16 @load_atomic_i16_unaligned_unordered_const(ptr readonly %ptr) {374; CHECK-LABEL: load_atomic_i16_unaligned_unordered_const:375; CHECK: bl __atomic_load376 %r = load atomic i16, ptr %ptr unordered, align 1377 ret i16 %r378}379 380define dso_local i16 @load_atomic_i16_unaligned_monotonic(ptr %ptr) {381; CHECK-LABEL: load_atomic_i16_unaligned_monotonic:382; CHECK: bl __atomic_load383 %r = load atomic i16, ptr %ptr monotonic, align 1384 ret i16 %r385}386 387define dso_local i16 @load_atomic_i16_unaligned_monotonic_const(ptr readonly %ptr) {388; CHECK-LABEL: load_atomic_i16_unaligned_monotonic_const:389; CHECK: bl __atomic_load390 %r = load atomic i16, ptr %ptr monotonic, align 1391 ret i16 %r392}393 394define dso_local i16 @load_atomic_i16_unaligned_acquire(ptr %ptr) {395; CHECK-LABEL: load_atomic_i16_unaligned_acquire:396; CHECK: bl __atomic_load397 %r = load atomic i16, ptr %ptr acquire, align 1398 ret i16 %r399}400 401define dso_local i16 @load_atomic_i16_unaligned_acquire_const(ptr readonly %ptr) {402; CHECK-LABEL: load_atomic_i16_unaligned_acquire_const:403; CHECK: bl __atomic_load404 %r = load atomic i16, ptr %ptr acquire, align 1405 ret i16 %r406}407 408define dso_local i16 @load_atomic_i16_unaligned_seq_cst(ptr %ptr) {409; CHECK-LABEL: load_atomic_i16_unaligned_seq_cst:410; CHECK: bl __atomic_load411 %r = load atomic i16, ptr %ptr seq_cst, align 1412 ret i16 %r413}414 415define dso_local i16 @load_atomic_i16_unaligned_seq_cst_const(ptr readonly %ptr) {416; CHECK-LABEL: load_atomic_i16_unaligned_seq_cst_const:417; CHECK: bl __atomic_load418 %r = load atomic i16, ptr %ptr seq_cst, align 1419 ret i16 %r420}421 422define dso_local i32 @load_atomic_i32_unaligned_unordered(ptr %ptr) {423; CHECK-LABEL: load_atomic_i32_unaligned_unordered:424; CHECK: bl __atomic_load425 %r = load atomic i32, ptr %ptr unordered, align 1426 ret i32 %r427}428 429define dso_local i32 @load_atomic_i32_unaligned_unordered_const(ptr readonly %ptr) {430; CHECK-LABEL: load_atomic_i32_unaligned_unordered_const:431; CHECK: bl __atomic_load432 %r = load atomic i32, ptr %ptr unordered, align 1433 ret i32 %r434}435 436define dso_local i32 @load_atomic_i32_unaligned_monotonic(ptr %ptr) {437; CHECK-LABEL: load_atomic_i32_unaligned_monotonic:438; CHECK: bl __atomic_load439 %r = load atomic i32, ptr %ptr monotonic, align 1440 ret i32 %r441}442 443define dso_local i32 @load_atomic_i32_unaligned_monotonic_const(ptr readonly %ptr) {444; CHECK-LABEL: load_atomic_i32_unaligned_monotonic_const:445; CHECK: bl __atomic_load446 %r = load atomic i32, ptr %ptr monotonic, align 1447 ret i32 %r448}449 450define dso_local i32 @load_atomic_i32_unaligned_acquire(ptr %ptr) {451; CHECK-LABEL: load_atomic_i32_unaligned_acquire:452; CHECK: bl __atomic_load453 %r = load atomic i32, ptr %ptr acquire, align 1454 ret i32 %r455}456 457define dso_local i32 @load_atomic_i32_unaligned_acquire_const(ptr readonly %ptr) {458; CHECK-LABEL: load_atomic_i32_unaligned_acquire_const:459; CHECK: bl __atomic_load460 %r = load atomic i32, ptr %ptr acquire, align 1461 ret i32 %r462}463 464define dso_local i32 @load_atomic_i32_unaligned_seq_cst(ptr %ptr) {465; CHECK-LABEL: load_atomic_i32_unaligned_seq_cst:466; CHECK: bl __atomic_load467 %r = load atomic i32, ptr %ptr seq_cst, align 1468 ret i32 %r469}470 471define dso_local i32 @load_atomic_i32_unaligned_seq_cst_const(ptr readonly %ptr) {472; CHECK-LABEL: load_atomic_i32_unaligned_seq_cst_const:473; CHECK: bl __atomic_load474 %r = load atomic i32, ptr %ptr seq_cst, align 1475 ret i32 %r476}477 478define dso_local i64 @load_atomic_i64_unaligned_unordered(ptr %ptr) {479; CHECK-LABEL: load_atomic_i64_unaligned_unordered:480; CHECK: bl __atomic_load481 %r = load atomic i64, ptr %ptr unordered, align 1482 ret i64 %r483}484 485define dso_local i64 @load_atomic_i64_unaligned_unordered_const(ptr readonly %ptr) {486; CHECK-LABEL: load_atomic_i64_unaligned_unordered_const:487; CHECK: bl __atomic_load488 %r = load atomic i64, ptr %ptr unordered, align 1489 ret i64 %r490}491 492define dso_local i64 @load_atomic_i64_unaligned_monotonic(ptr %ptr) {493; CHECK-LABEL: load_atomic_i64_unaligned_monotonic:494; CHECK: bl __atomic_load495 %r = load atomic i64, ptr %ptr monotonic, align 1496 ret i64 %r497}498 499define dso_local i64 @load_atomic_i64_unaligned_monotonic_const(ptr readonly %ptr) {500; CHECK-LABEL: load_atomic_i64_unaligned_monotonic_const:501; CHECK: bl __atomic_load502 %r = load atomic i64, ptr %ptr monotonic, align 1503 ret i64 %r504}505 506define dso_local i64 @load_atomic_i64_unaligned_acquire(ptr %ptr) {507; CHECK-LABEL: load_atomic_i64_unaligned_acquire:508; CHECK: bl __atomic_load509 %r = load atomic i64, ptr %ptr acquire, align 1510 ret i64 %r511}512 513define dso_local i64 @load_atomic_i64_unaligned_acquire_const(ptr readonly %ptr) {514; CHECK-LABEL: load_atomic_i64_unaligned_acquire_const:515; CHECK: bl __atomic_load516 %r = load atomic i64, ptr %ptr acquire, align 1517 ret i64 %r518}519 520define dso_local i64 @load_atomic_i64_unaligned_seq_cst(ptr %ptr) {521; CHECK-LABEL: load_atomic_i64_unaligned_seq_cst:522; CHECK: bl __atomic_load523 %r = load atomic i64, ptr %ptr seq_cst, align 1524 ret i64 %r525}526 527define dso_local i64 @load_atomic_i64_unaligned_seq_cst_const(ptr readonly %ptr) {528; CHECK-LABEL: load_atomic_i64_unaligned_seq_cst_const:529; CHECK: bl __atomic_load530 %r = load atomic i64, ptr %ptr seq_cst, align 1531 ret i64 %r532}533 534define dso_local i128 @load_atomic_i128_unaligned_unordered(ptr %ptr) {535; CHECK-LABEL: load_atomic_i128_unaligned_unordered:536; CHECK: bl __atomic_load537 %r = load atomic i128, ptr %ptr unordered, align 1538 ret i128 %r539}540 541define dso_local i128 @load_atomic_i128_unaligned_unordered_const(ptr readonly %ptr) {542; CHECK-LABEL: load_atomic_i128_unaligned_unordered_const:543; CHECK: bl __atomic_load544 %r = load atomic i128, ptr %ptr unordered, align 1545 ret i128 %r546}547 548define dso_local i128 @load_atomic_i128_unaligned_monotonic(ptr %ptr) {549; CHECK-LABEL: load_atomic_i128_unaligned_monotonic:550; CHECK: bl __atomic_load551 %r = load atomic i128, ptr %ptr monotonic, align 1552 ret i128 %r553}554 555define dso_local i128 @load_atomic_i128_unaligned_monotonic_const(ptr readonly %ptr) {556; CHECK-LABEL: load_atomic_i128_unaligned_monotonic_const:557; CHECK: bl __atomic_load558 %r = load atomic i128, ptr %ptr monotonic, align 1559 ret i128 %r560}561 562define dso_local i128 @load_atomic_i128_unaligned_acquire(ptr %ptr) {563; CHECK-LABEL: load_atomic_i128_unaligned_acquire:564; CHECK: bl __atomic_load565 %r = load atomic i128, ptr %ptr acquire, align 1566 ret i128 %r567}568 569define dso_local i128 @load_atomic_i128_unaligned_acquire_const(ptr readonly %ptr) {570; CHECK-LABEL: load_atomic_i128_unaligned_acquire_const:571; CHECK: bl __atomic_load572 %r = load atomic i128, ptr %ptr acquire, align 1573 ret i128 %r574}575 576define dso_local i128 @load_atomic_i128_unaligned_seq_cst(ptr %ptr) {577; CHECK-LABEL: load_atomic_i128_unaligned_seq_cst:578; CHECK: bl __atomic_load579 %r = load atomic i128, ptr %ptr seq_cst, align 1580 ret i128 %r581}582 583define dso_local i128 @load_atomic_i128_unaligned_seq_cst_const(ptr readonly %ptr) {584; CHECK-LABEL: load_atomic_i128_unaligned_seq_cst_const:585; CHECK: bl __atomic_load586 %r = load atomic i128, ptr %ptr seq_cst, align 1587 ret i128 %r588}589