brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 6db3151 Raw
143 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=arm64-eabi -mcpu=cyclone | FileCheck %s3 4%struct.x = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }5 6@src = external dso_local global %struct.x7@dst = external dso_local global %struct.x8 9@.str1 = private unnamed_addr constant [31 x i8] c"DHRYSTONE PROGRAM, SOME STRING\00", align 110@.str2 = private unnamed_addr constant [36 x i8] c"DHRYSTONE PROGRAM, SOME STRING BLAH\00", align 111@.str3 = private unnamed_addr constant [24 x i8] c"DHRYSTONE PROGRAM, SOME\00", align 112@.str4 = private unnamed_addr constant [18 x i8] c"DHRYSTONE PROGR  \00", align 113@.str5 = private unnamed_addr constant [7 x i8] c"DHRYST\00", align 114@.str6 = private unnamed_addr constant [14 x i8] c"/tmp/rmXXXXXX\00", align 115@spool.splbuf = internal global [512 x i8] zeroinitializer, align 1616 17define i32 @t0() {18; CHECK-LABEL: t0:19; CHECK:       // %bb.0: // %entry20; CHECK-NEXT:    adrp x8, src21; CHECK-NEXT:    add x8, x8, :lo12:src22; CHECK-NEXT:    ldr x9, [x8]23; CHECK-NEXT:    adrp x10, dst24; CHECK-NEXT:    add x10, x10, :lo12:dst25; CHECK-NEXT:    str x9, [x10]26; CHECK-NEXT:    ldur w8, [x8, #7]27; CHECK-NEXT:    stur w8, [x10, #7]28; CHECK-NEXT:    mov w0, #0 // =0x029; CHECK-NEXT:    ret30entry:31  call void @llvm.memcpy.p0.p0.i32(ptr align 8 @dst, ptr align 8 @src, i32 11, i1 false)32  ret i32 033}34 35define void @t1(ptr nocapture %C) nounwind {36; CHECK-LABEL: t1:37; CHECK:       // %bb.0: // %entry38; CHECK-NEXT:    adrp x8, .L.str139; CHECK-NEXT:    add x8, x8, :lo12:.L.str140; CHECK-NEXT:    ldr q0, [x8]41; CHECK-NEXT:    str q0, [x0]42; CHECK-NEXT:    ldur q0, [x8, #15]43; CHECK-NEXT:    stur q0, [x0, #15]44; CHECK-NEXT:    ret45entry:46  tail call void @llvm.memcpy.p0.p0.i64(ptr %C, ptr @.str1, i64 31, i1 false)47  ret void48}49 50define void @t2(ptr nocapture %C) nounwind {51; CHECK-LABEL: t2:52; CHECK:       // %bb.0: // %entry53; CHECK-NEXT:    mov w8, #16716 // =0x414c54; CHECK-NEXT:    movk w8, #72, lsl #1655; CHECK-NEXT:    str w8, [x0, #32]56; CHECK-NEXT:    adrp x8, .L.str257; CHECK-NEXT:    add x8, x8, :lo12:.L.str258; CHECK-NEXT:    ldp q0, q1, [x8]59; CHECK-NEXT:    stp q0, q1, [x0]60; CHECK-NEXT:    ret61entry:62  tail call void @llvm.memcpy.p0.p0.i64(ptr %C, ptr @.str2, i64 36, i1 false)63  ret void64}65 66define void @t3(ptr nocapture %C) nounwind {67; CHECK-LABEL: t3:68; CHECK:       // %bb.0: // %entry69; CHECK-NEXT:    adrp x8, .L.str370; CHECK-NEXT:    add x8, x8, :lo12:.L.str371; CHECK-NEXT:    ldr q0, [x8]72; CHECK-NEXT:    str q0, [x0]73; CHECK-NEXT:    ldr x8, [x8, #16]74; CHECK-NEXT:    str x8, [x0, #16]75; CHECK-NEXT:    ret76entry:77  tail call void @llvm.memcpy.p0.p0.i64(ptr %C, ptr @.str3, i64 24, i1 false)78  ret void79}80 81define void @t4(ptr nocapture %C) nounwind {82; CHECK-LABEL: t4:83; CHECK:       // %bb.0: // %entry84; CHECK-NEXT:    mov w8, #32 // =0x2085; CHECK-NEXT:    strh w8, [x0, #16]86; CHECK-NEXT:    adrp x8, .L.str487; CHECK-NEXT:    add x8, x8, :lo12:.L.str488; CHECK-NEXT:    ldr q0, [x8]89; CHECK-NEXT:    str q0, [x0]90; CHECK-NEXT:    ret91entry:92  tail call void @llvm.memcpy.p0.p0.i64(ptr %C, ptr @.str4, i64 18, i1 false)93  ret void94}95 96define void @t5(ptr nocapture %C) nounwind {97; CHECK-LABEL: t5:98; CHECK:       // %bb.0: // %entry99; CHECK-NEXT:    mov w8, #21337 // =0x5359100; CHECK-NEXT:    movk w8, #84, lsl #16101; CHECK-NEXT:    stur w8, [x0, #3]102; CHECK-NEXT:    mov w8, #18500 // =0x4844103; CHECK-NEXT:    movk w8, #22866, lsl #16104; CHECK-NEXT:    str w8, [x0]105; CHECK-NEXT:    ret106entry:107  tail call void @llvm.memcpy.p0.p0.i64(ptr %C, ptr @.str5, i64 7, i1 false)108  ret void109}110 111define void @t6() nounwind {112; CHECK-LABEL: t6:113; CHECK:       // %bb.0: // %entry114; CHECK-NEXT:    adrp x8, .L.str6115; CHECK-NEXT:    add x8, x8, :lo12:.L.str6116; CHECK-NEXT:    ldr x9, [x8]117; CHECK-NEXT:    adrp x10, spool.splbuf118; CHECK-NEXT:    add x10, x10, :lo12:spool.splbuf119; CHECK-NEXT:    str x9, [x10]120; CHECK-NEXT:    ldur x8, [x8, #6]121; CHECK-NEXT:    stur x8, [x10, #6]122; CHECK-NEXT:    ret123entry:124  call void @llvm.memcpy.p0.p0.i64(ptr @spool.splbuf, ptr @.str6, i64 14, i1 false)125  ret void126}127 128%struct.Foo = type { i32, i32, i32, i32 }129 130define void @t7(ptr nocapture %a, ptr nocapture %b) nounwind {131; CHECK-LABEL: t7:132; CHECK:       // %bb.0: // %entry133; CHECK-NEXT:    ldr q0, [x1]134; CHECK-NEXT:    str q0, [x0]135; CHECK-NEXT:    ret136entry:137  tail call void @llvm.memcpy.p0.p0.i32(ptr align 4 %a, ptr align 4 %b, i32 16, i1 false)138  ret void139}140 141declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind142declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind143