629 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_be -mattr=+v8a -O0 | FileCheck %s --check-prefixes=CHECK,-O04; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64_be -mattr=+v8a -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: ldxp x1, x0, [x9]233; -O0: cmp x1, x10234; -O0: cmp x0, x10235; -O0: stxp w8, x10, x10, [x9]236; -O0: stxp w8, x1, x0, [x9]237;238; -O1-LABEL: load_atomic_i128_aligned_unordered:239; -O1: ldxp x1, x0, [x8]240; -O1: stxp w9, x1, x0, [x8]241 %r = load atomic i128, ptr %ptr unordered, align 16242 ret i128 %r243}244 245define dso_local i128 @load_atomic_i128_aligned_unordered_const(ptr readonly %ptr) {246; -O0-LABEL: load_atomic_i128_aligned_unordered_const:247; -O0: ldxp x1, x0, [x9]248; -O0: cmp x1, x10249; -O0: cmp x0, x10250; -O0: stxp w8, x10, x10, [x9]251; -O0: stxp w8, x1, x0, [x9]252;253; -O1-LABEL: load_atomic_i128_aligned_unordered_const:254; -O1: ldxp x1, x0, [x8]255; -O1: stxp w9, x1, x0, [x8]256 %r = load atomic i128, ptr %ptr unordered, align 16257 ret i128 %r258}259 260define dso_local i128 @load_atomic_i128_aligned_monotonic(ptr %ptr) {261; -O0-LABEL: load_atomic_i128_aligned_monotonic:262; -O0: ldxp x1, x0, [x9]263; -O0: cmp x1, x10264; -O0: cmp x0, x10265; -O0: stxp w8, x10, x10, [x9]266; -O0: stxp w8, x1, x0, [x9]267;268; -O1-LABEL: load_atomic_i128_aligned_monotonic:269; -O1: ldxp x1, x0, [x8]270; -O1: stxp w9, x1, x0, [x8]271 %r = load atomic i128, ptr %ptr monotonic, align 16272 ret i128 %r273}274 275define dso_local i128 @load_atomic_i128_aligned_monotonic_const(ptr readonly %ptr) {276; -O0-LABEL: load_atomic_i128_aligned_monotonic_const:277; -O0: ldxp x1, x0, [x9]278; -O0: cmp x1, x10279; -O0: cmp x0, x10280; -O0: stxp w8, x10, x10, [x9]281; -O0: stxp w8, x1, x0, [x9]282;283; -O1-LABEL: load_atomic_i128_aligned_monotonic_const:284; -O1: ldxp x1, x0, [x8]285; -O1: stxp w9, x1, x0, [x8]286 %r = load atomic i128, ptr %ptr monotonic, align 16287 ret i128 %r288}289 290define dso_local i128 @load_atomic_i128_aligned_acquire(ptr %ptr) {291; -O0-LABEL: load_atomic_i128_aligned_acquire:292; -O0: ldaxp x1, x0, [x9]293; -O0: cmp x1, x10294; -O0: cmp x0, x10295; -O0: stxp w8, x10, x10, [x9]296; -O0: stxp w8, x1, x0, [x9]297;298; -O1-LABEL: load_atomic_i128_aligned_acquire:299; -O1: ldaxp x1, x0, [x8]300; -O1: stxp w9, x1, x0, [x8]301 %r = load atomic i128, ptr %ptr acquire, align 16302 ret i128 %r303}304 305define dso_local i128 @load_atomic_i128_aligned_acquire_const(ptr readonly %ptr) {306; -O0-LABEL: load_atomic_i128_aligned_acquire_const:307; -O0: ldaxp x1, x0, [x9]308; -O0: cmp x1, x10309; -O0: cmp x0, x10310; -O0: stxp w8, x10, x10, [x9]311; -O0: stxp w8, x1, x0, [x9]312;313; -O1-LABEL: load_atomic_i128_aligned_acquire_const:314; -O1: ldaxp x1, x0, [x8]315; -O1: stxp w9, x1, x0, [x8]316 %r = load atomic i128, ptr %ptr acquire, align 16317 ret i128 %r318}319 320define dso_local i128 @load_atomic_i128_aligned_seq_cst(ptr %ptr) {321; -O0-LABEL: load_atomic_i128_aligned_seq_cst:322; -O0: ldaxp x1, x0, [x9]323; -O0: cmp x1, x10324; -O0: cmp x0, x10325; -O0: stlxp w8, x10, x10, [x9]326; -O0: stlxp w8, x1, x0, [x9]327;328; -O1-LABEL: load_atomic_i128_aligned_seq_cst:329; -O1: ldaxp x1, x0, [x8]330; -O1: stlxp w9, x1, x0, [x8]331 %r = load atomic i128, ptr %ptr seq_cst, align 16332 ret i128 %r333}334 335define dso_local i128 @load_atomic_i128_aligned_seq_cst_const(ptr readonly %ptr) {336; -O0-LABEL: load_atomic_i128_aligned_seq_cst_const:337; -O0: ldaxp x1, x0, [x9]338; -O0: cmp x1, x10339; -O0: cmp x0, x10340; -O0: stlxp w8, x10, x10, [x9]341; -O0: stlxp w8, x1, x0, [x9]342;343; -O1-LABEL: load_atomic_i128_aligned_seq_cst_const:344; -O1: ldaxp x1, x0, [x8]345; -O1: stlxp w9, x1, x0, [x8]346 %r = load atomic i128, ptr %ptr seq_cst, align 16347 ret i128 %r348}349 350define dso_local i8 @load_atomic_i8_unaligned_unordered(ptr %ptr) {351; CHECK-LABEL: load_atomic_i8_unaligned_unordered:352; CHECK: ldrb w0, [x0]353 %r = load atomic i8, ptr %ptr unordered, align 1354 ret i8 %r355}356 357define dso_local i8 @load_atomic_i8_unaligned_unordered_const(ptr readonly %ptr) {358; CHECK-LABEL: load_atomic_i8_unaligned_unordered_const:359; CHECK: ldrb w0, [x0]360 %r = load atomic i8, ptr %ptr unordered, align 1361 ret i8 %r362}363 364define dso_local i8 @load_atomic_i8_unaligned_monotonic(ptr %ptr) {365; CHECK-LABEL: load_atomic_i8_unaligned_monotonic:366; CHECK: ldrb w0, [x0]367 %r = load atomic i8, ptr %ptr monotonic, align 1368 ret i8 %r369}370 371define dso_local i8 @load_atomic_i8_unaligned_monotonic_const(ptr readonly %ptr) {372; CHECK-LABEL: load_atomic_i8_unaligned_monotonic_const:373; CHECK: ldrb w0, [x0]374 %r = load atomic i8, ptr %ptr monotonic, align 1375 ret i8 %r376}377 378define dso_local i8 @load_atomic_i8_unaligned_acquire(ptr %ptr) {379; CHECK-LABEL: load_atomic_i8_unaligned_acquire:380; CHECK: ldarb w0, [x0]381 %r = load atomic i8, ptr %ptr acquire, align 1382 ret i8 %r383}384 385define dso_local i8 @load_atomic_i8_unaligned_acquire_const(ptr readonly %ptr) {386; CHECK-LABEL: load_atomic_i8_unaligned_acquire_const:387; CHECK: ldarb w0, [x0]388 %r = load atomic i8, ptr %ptr acquire, align 1389 ret i8 %r390}391 392define dso_local i8 @load_atomic_i8_unaligned_seq_cst(ptr %ptr) {393; CHECK-LABEL: load_atomic_i8_unaligned_seq_cst:394; CHECK: ldarb w0, [x0]395 %r = load atomic i8, ptr %ptr seq_cst, align 1396 ret i8 %r397}398 399define dso_local i8 @load_atomic_i8_unaligned_seq_cst_const(ptr readonly %ptr) {400; CHECK-LABEL: load_atomic_i8_unaligned_seq_cst_const:401; CHECK: ldarb w0, [x0]402 %r = load atomic i8, ptr %ptr seq_cst, align 1403 ret i8 %r404}405 406define dso_local i16 @load_atomic_i16_unaligned_unordered(ptr %ptr) {407; CHECK-LABEL: load_atomic_i16_unaligned_unordered:408; CHECK: bl __atomic_load409 %r = load atomic i16, ptr %ptr unordered, align 1410 ret i16 %r411}412 413define dso_local i16 @load_atomic_i16_unaligned_unordered_const(ptr readonly %ptr) {414; CHECK-LABEL: load_atomic_i16_unaligned_unordered_const:415; CHECK: bl __atomic_load416 %r = load atomic i16, ptr %ptr unordered, align 1417 ret i16 %r418}419 420define dso_local i16 @load_atomic_i16_unaligned_monotonic(ptr %ptr) {421; CHECK-LABEL: load_atomic_i16_unaligned_monotonic:422; CHECK: bl __atomic_load423 %r = load atomic i16, ptr %ptr monotonic, align 1424 ret i16 %r425}426 427define dso_local i16 @load_atomic_i16_unaligned_monotonic_const(ptr readonly %ptr) {428; CHECK-LABEL: load_atomic_i16_unaligned_monotonic_const:429; CHECK: bl __atomic_load430 %r = load atomic i16, ptr %ptr monotonic, align 1431 ret i16 %r432}433 434define dso_local i16 @load_atomic_i16_unaligned_acquire(ptr %ptr) {435; CHECK-LABEL: load_atomic_i16_unaligned_acquire:436; CHECK: bl __atomic_load437 %r = load atomic i16, ptr %ptr acquire, align 1438 ret i16 %r439}440 441define dso_local i16 @load_atomic_i16_unaligned_acquire_const(ptr readonly %ptr) {442; CHECK-LABEL: load_atomic_i16_unaligned_acquire_const:443; CHECK: bl __atomic_load444 %r = load atomic i16, ptr %ptr acquire, align 1445 ret i16 %r446}447 448define dso_local i16 @load_atomic_i16_unaligned_seq_cst(ptr %ptr) {449; CHECK-LABEL: load_atomic_i16_unaligned_seq_cst:450; CHECK: bl __atomic_load451 %r = load atomic i16, ptr %ptr seq_cst, align 1452 ret i16 %r453}454 455define dso_local i16 @load_atomic_i16_unaligned_seq_cst_const(ptr readonly %ptr) {456; CHECK-LABEL: load_atomic_i16_unaligned_seq_cst_const:457; CHECK: bl __atomic_load458 %r = load atomic i16, ptr %ptr seq_cst, align 1459 ret i16 %r460}461 462define dso_local i32 @load_atomic_i32_unaligned_unordered(ptr %ptr) {463; CHECK-LABEL: load_atomic_i32_unaligned_unordered:464; CHECK: bl __atomic_load465 %r = load atomic i32, ptr %ptr unordered, align 1466 ret i32 %r467}468 469define dso_local i32 @load_atomic_i32_unaligned_unordered_const(ptr readonly %ptr) {470; CHECK-LABEL: load_atomic_i32_unaligned_unordered_const:471; CHECK: bl __atomic_load472 %r = load atomic i32, ptr %ptr unordered, align 1473 ret i32 %r474}475 476define dso_local i32 @load_atomic_i32_unaligned_monotonic(ptr %ptr) {477; CHECK-LABEL: load_atomic_i32_unaligned_monotonic:478; CHECK: bl __atomic_load479 %r = load atomic i32, ptr %ptr monotonic, align 1480 ret i32 %r481}482 483define dso_local i32 @load_atomic_i32_unaligned_monotonic_const(ptr readonly %ptr) {484; CHECK-LABEL: load_atomic_i32_unaligned_monotonic_const:485; CHECK: bl __atomic_load486 %r = load atomic i32, ptr %ptr monotonic, align 1487 ret i32 %r488}489 490define dso_local i32 @load_atomic_i32_unaligned_acquire(ptr %ptr) {491; CHECK-LABEL: load_atomic_i32_unaligned_acquire:492; CHECK: bl __atomic_load493 %r = load atomic i32, ptr %ptr acquire, align 1494 ret i32 %r495}496 497define dso_local i32 @load_atomic_i32_unaligned_acquire_const(ptr readonly %ptr) {498; CHECK-LABEL: load_atomic_i32_unaligned_acquire_const:499; CHECK: bl __atomic_load500 %r = load atomic i32, ptr %ptr acquire, align 1501 ret i32 %r502}503 504define dso_local i32 @load_atomic_i32_unaligned_seq_cst(ptr %ptr) {505; CHECK-LABEL: load_atomic_i32_unaligned_seq_cst:506; CHECK: bl __atomic_load507 %r = load atomic i32, ptr %ptr seq_cst, align 1508 ret i32 %r509}510 511define dso_local i32 @load_atomic_i32_unaligned_seq_cst_const(ptr readonly %ptr) {512; CHECK-LABEL: load_atomic_i32_unaligned_seq_cst_const:513; CHECK: bl __atomic_load514 %r = load atomic i32, ptr %ptr seq_cst, align 1515 ret i32 %r516}517 518define dso_local i64 @load_atomic_i64_unaligned_unordered(ptr %ptr) {519; CHECK-LABEL: load_atomic_i64_unaligned_unordered:520; CHECK: bl __atomic_load521 %r = load atomic i64, ptr %ptr unordered, align 1522 ret i64 %r523}524 525define dso_local i64 @load_atomic_i64_unaligned_unordered_const(ptr readonly %ptr) {526; CHECK-LABEL: load_atomic_i64_unaligned_unordered_const:527; CHECK: bl __atomic_load528 %r = load atomic i64, ptr %ptr unordered, align 1529 ret i64 %r530}531 532define dso_local i64 @load_atomic_i64_unaligned_monotonic(ptr %ptr) {533; CHECK-LABEL: load_atomic_i64_unaligned_monotonic:534; CHECK: bl __atomic_load535 %r = load atomic i64, ptr %ptr monotonic, align 1536 ret i64 %r537}538 539define dso_local i64 @load_atomic_i64_unaligned_monotonic_const(ptr readonly %ptr) {540; CHECK-LABEL: load_atomic_i64_unaligned_monotonic_const:541; CHECK: bl __atomic_load542 %r = load atomic i64, ptr %ptr monotonic, align 1543 ret i64 %r544}545 546define dso_local i64 @load_atomic_i64_unaligned_acquire(ptr %ptr) {547; CHECK-LABEL: load_atomic_i64_unaligned_acquire:548; CHECK: bl __atomic_load549 %r = load atomic i64, ptr %ptr acquire, align 1550 ret i64 %r551}552 553define dso_local i64 @load_atomic_i64_unaligned_acquire_const(ptr readonly %ptr) {554; CHECK-LABEL: load_atomic_i64_unaligned_acquire_const:555; CHECK: bl __atomic_load556 %r = load atomic i64, ptr %ptr acquire, align 1557 ret i64 %r558}559 560define dso_local i64 @load_atomic_i64_unaligned_seq_cst(ptr %ptr) {561; CHECK-LABEL: load_atomic_i64_unaligned_seq_cst:562; CHECK: bl __atomic_load563 %r = load atomic i64, ptr %ptr seq_cst, align 1564 ret i64 %r565}566 567define dso_local i64 @load_atomic_i64_unaligned_seq_cst_const(ptr readonly %ptr) {568; CHECK-LABEL: load_atomic_i64_unaligned_seq_cst_const:569; CHECK: bl __atomic_load570 %r = load atomic i64, ptr %ptr seq_cst, align 1571 ret i64 %r572}573 574define dso_local i128 @load_atomic_i128_unaligned_unordered(ptr %ptr) {575; CHECK-LABEL: load_atomic_i128_unaligned_unordered:576; CHECK: bl __atomic_load577 %r = load atomic i128, ptr %ptr unordered, align 1578 ret i128 %r579}580 581define dso_local i128 @load_atomic_i128_unaligned_unordered_const(ptr readonly %ptr) {582; CHECK-LABEL: load_atomic_i128_unaligned_unordered_const:583; CHECK: bl __atomic_load584 %r = load atomic i128, ptr %ptr unordered, align 1585 ret i128 %r586}587 588define dso_local i128 @load_atomic_i128_unaligned_monotonic(ptr %ptr) {589; CHECK-LABEL: load_atomic_i128_unaligned_monotonic:590; CHECK: bl __atomic_load591 %r = load atomic i128, ptr %ptr monotonic, align 1592 ret i128 %r593}594 595define dso_local i128 @load_atomic_i128_unaligned_monotonic_const(ptr readonly %ptr) {596; CHECK-LABEL: load_atomic_i128_unaligned_monotonic_const:597; CHECK: bl __atomic_load598 %r = load atomic i128, ptr %ptr monotonic, align 1599 ret i128 %r600}601 602define dso_local i128 @load_atomic_i128_unaligned_acquire(ptr %ptr) {603; CHECK-LABEL: load_atomic_i128_unaligned_acquire:604; CHECK: bl __atomic_load605 %r = load atomic i128, ptr %ptr acquire, align 1606 ret i128 %r607}608 609define dso_local i128 @load_atomic_i128_unaligned_acquire_const(ptr readonly %ptr) {610; CHECK-LABEL: load_atomic_i128_unaligned_acquire_const:611; CHECK: bl __atomic_load612 %r = load atomic i128, ptr %ptr acquire, align 1613 ret i128 %r614}615 616define dso_local i128 @load_atomic_i128_unaligned_seq_cst(ptr %ptr) {617; CHECK-LABEL: load_atomic_i128_unaligned_seq_cst:618; CHECK: bl __atomic_load619 %r = load atomic i128, ptr %ptr seq_cst, align 1620 ret i128 %r621}622 623define dso_local i128 @load_atomic_i128_unaligned_seq_cst_const(ptr readonly %ptr) {624; CHECK-LABEL: load_atomic_i128_unaligned_seq_cst_const:625; CHECK: bl __atomic_load626 %r = load atomic i128, ptr %ptr seq_cst, align 1627 ret i128 %r628}629