brintos

brintos / llvm-project-archived public Read only

0
0
Text · 20.0 KiB · 06caa68 Raw
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