brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 6ea520d Raw
80 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s --global-isel=0 -mtriple=aarch64-linux-gnu -mattr=+fp-armv8 | FileCheck %s3; RUN: llc < %s --global-isel=1 -mtriple=aarch64-linux-gnu -mattr=+fp-armv8 | FileCheck %s --check-prefix=GISEL4 5%struct.__va_list = type { ptr, ptr, ptr, i32, i32 }6 7define void @va(i32 %count, half %f, ...) nounwind {8; CHECK-LABEL: va:9; CHECK:       // %bb.0: // %entry10; CHECK-NEXT:    ret11;12; GISEL-LABEL: va:13; GISEL:       // %bb.0: // %entry14; GISEL-NEXT:    sub sp, sp, #17615; GISEL-NEXT:    stp x1, x2, [sp, #120]16; GISEL-NEXT:    stp x3, x4, [sp, #136]17; GISEL-NEXT:    stp x5, x6, [sp, #152]18; GISEL-NEXT:    str x7, [sp, #168]19; GISEL-NEXT:    stp q1, q2, [sp]20; GISEL-NEXT:    stp q3, q4, [sp, #32]21; GISEL-NEXT:    stp q5, q6, [sp, #64]22; GISEL-NEXT:    str q7, [sp, #96]23; GISEL-NEXT:    add sp, sp, #17624; GISEL-NEXT:    ret25entry:26  ret void27}28 29define void @va_used(i32 %count, half %f, ...) nounwind {30; CHECK-LABEL: va_used:31; CHECK:       // %bb.0:32; CHECK-NEXT:    sub sp, sp, #20833; CHECK-NEXT:    mov x8, #-56 // =0xffffffffffffffc834; CHECK-NEXT:    mov x9, sp35; CHECK-NEXT:    add x10, sp, #12036; CHECK-NEXT:    movk x8, #65424, lsl #3237; CHECK-NEXT:    add x9, x9, #11238; CHECK-NEXT:    stp x2, x3, [sp, #128]39; CHECK-NEXT:    stp x9, x8, [sp, #192]40; CHECK-NEXT:    add x8, x10, #5641; CHECK-NEXT:    add x9, sp, #20842; CHECK-NEXT:    str x1, [sp, #120]43; CHECK-NEXT:    stp x4, x5, [sp, #144]44; CHECK-NEXT:    stp x6, x7, [sp, #160]45; CHECK-NEXT:    stp q1, q2, [sp]46; CHECK-NEXT:    stp q3, q4, [sp, #32]47; CHECK-NEXT:    stp q5, q6, [sp, #64]48; CHECK-NEXT:    str q7, [sp, #96]49; CHECK-NEXT:    stp x9, x8, [sp, #176]50; CHECK-NEXT:    add sp, sp, #20851; CHECK-NEXT:    ret52;53; GISEL-LABEL: va_used:54; GISEL:       // %bb.0:55; GISEL-NEXT:    sub sp, sp, #20856; GISEL-NEXT:    mov x8, sp57; GISEL-NEXT:    add x9, sp, #20858; GISEL-NEXT:    add x10, sp, #20859; GISEL-NEXT:    stp x9, x10, [x8]60; GISEL-NEXT:    add x9, sp, #14461; GISEL-NEXT:    mov w10, #-112 // =0xffffff9062; GISEL-NEXT:    str x9, [x8, #16]63; GISEL-NEXT:    mov w9, #-56 // =0xffffffc864; GISEL-NEXT:    stp x1, x2, [sp, #152]65; GISEL-NEXT:    stp x3, x4, [sp, #168]66; GISEL-NEXT:    stp x5, x6, [sp, #184]67; GISEL-NEXT:    str x7, [sp, #200]68; GISEL-NEXT:    stp q1, q2, [sp, #32]69; GISEL-NEXT:    stp q3, q4, [sp, #64]70; GISEL-NEXT:    stp q5, q6, [sp, #96]71; GISEL-NEXT:    str q7, [sp, #128]72; GISEL-NEXT:    stp w9, w10, [x8, #24]73; GISEL-NEXT:    add sp, sp, #20874; GISEL-NEXT:    ret75  %valist = alloca %struct.__va_list76  call void @llvm.va_start(ptr %valist)77  call void @llvm.va_end(ptr %valist)78  ret void79}80