brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 341e05d Raw
90 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc < %s -mtriple=sparc   | FileCheck %s --check-prefix=SPARC323; RUN: llc < %s -mtriple=sparcv9 | FileCheck %s --check-prefix=SPARC644 5define fp128 @f128_direct(fp128 %num) nounwind {6; SPARC32-LABEL: f128_direct:7; SPARC32:       ! %bb.0:8; SPARC32-NEXT:    save %sp, -144, %sp9; SPARC32-NEXT:    ldd [%i0], %f010; SPARC32-NEXT:    ldd [%i0+8], %f411; SPARC32-NEXT:    ld [%fp+64], %i012; SPARC32-NEXT:    add %fp, -16, %i113; SPARC32-NEXT:    st %i1, [%sp+64]14; SPARC32-NEXT:    std %f4, [%fp+-40]15; SPARC32-NEXT:    std %f0, [%fp+-48]16; SPARC32-NEXT:    std %f4, [%fp+-24]17; SPARC32-NEXT:    add %fp, -32, %o018; SPARC32-NEXT:    add %fp, -48, %o119; SPARC32-NEXT:    call f128_callee20; SPARC32-NEXT:    std %f0, [%fp+-32]21; SPARC32-NEXT:    unimp 1622; SPARC32-NEXT:    ldd [%fp+-8], %f023; SPARC32-NEXT:    ldd [%fp+-16], %f424; SPARC32-NEXT:    std %f0, [%i0+8]25; SPARC32-NEXT:    std %f4, [%i0]26; SPARC32-NEXT:    ret27; SPARC32-NEXT:    restore28;29; SPARC64-LABEL: f128_direct:30; SPARC64:       ! %bb.0:31; SPARC64-NEXT:    save %sp, -176, %sp32; SPARC64-NEXT:    fmovd %f0, %f433; SPARC64-NEXT:    fmovd %f2, %f634; SPARC64-NEXT:    call f128_callee35; SPARC64-NEXT:    nop36; SPARC64-NEXT:    ret37; SPARC64-NEXT:    restore38    %ret = call fp128 @f128_callee(fp128 %num, fp128 %num)39    ret fp128 %ret40}41declare fp128 @f128_callee(fp128 %a, fp128 %b)42 43define fp128 @f128_direct_spill(i32 %o0, i32 %o1, i32 %o2, i32 %o3, i32 %o4, i32 %o5, i32 %ss0, fp128 %num) nounwind {44; SPARC32-LABEL: f128_direct_spill:45; SPARC32:       ! %bb.0:46; SPARC32-NEXT:    save %sp, -136, %sp47; SPARC32-NEXT:    ld [%fp+96], %g248; SPARC32-NEXT:    ldd [%g2], %f049; SPARC32-NEXT:    ldd [%g2+8], %f450; SPARC32-NEXT:    ld [%fp+64], %l051; SPARC32-NEXT:    mov %i5, %o552; SPARC32-NEXT:    mov %i4, %o453; SPARC32-NEXT:    mov %i3, %o354; SPARC32-NEXT:    mov %i2, %o255; SPARC32-NEXT:    mov %i1, %o156; SPARC32-NEXT:    mov %i0, %o057; SPARC32-NEXT:    add %fp, -32, %i058; SPARC32-NEXT:    st %i0, [%sp+92]59; SPARC32-NEXT:    add %fp, -16, %i060; SPARC32-NEXT:    st %i0, [%sp+64]61; SPARC32-NEXT:    std %f4, [%fp+-24]62; SPARC32-NEXT:    call f128_callee_spill63; SPARC32-NEXT:    std %f0, [%fp+-32]64; SPARC32-NEXT:    unimp 1665; SPARC32-NEXT:    ldd [%fp+-8], %f066; SPARC32-NEXT:    ldd [%fp+-16], %f467; SPARC32-NEXT:    std %f0, [%l0+8]68; SPARC32-NEXT:    std %f4, [%l0]69; SPARC32-NEXT:    ret70; SPARC32-NEXT:    restore71;72; SPARC64-LABEL: f128_direct_spill:73; SPARC64:       ! %bb.0:74; SPARC64-NEXT:    save %sp, -192, %sp75; SPARC64-NEXT:    fmovd %f16, %f1276; SPARC64-NEXT:    fmovd %f18, %f1477; SPARC64-NEXT:    mov %i5, %o578; SPARC64-NEXT:    mov %i4, %o479; SPARC64-NEXT:    mov %i3, %o380; SPARC64-NEXT:    mov %i2, %o281; SPARC64-NEXT:    mov %i1, %o182; SPARC64-NEXT:    call f128_callee_spill83; SPARC64-NEXT:    mov %i0, %o084; SPARC64-NEXT:    ret85; SPARC64-NEXT:    restore86    %ret = call fp128 @f128_callee_spill(i32 %o0, i32 %o1, i32 %o2, i32 %o3, i32 %o4, i32 %o5, fp128 %num)87    ret fp128 %ret88}89declare fp128 @f128_callee_spill(i32 %o0, i32 %o1, i32 %o2, i32 %o3, i32 %o4, i32 %o5, fp128 %a)90