brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · 3990fc3 Raw
150 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \3; RUN:   | FileCheck %s -check-prefix=RV32I4; RUN: llc -mtriple=riscv32 -target-abi ilp32e -verify-machineinstrs < %s \5; RUN:   | FileCheck %s -check-prefix=RV32I-ILP32E6; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \7; RUN:   | FileCheck %s -check-prefix=RV64I8; RUN: llc -mtriple=riscv64 -target-abi lp64e -verify-machineinstrs < %s \9; RUN:   | FileCheck %s -check-prefix=RV64I-LP64E10 11declare void @callee(ptr, ptr)12 13define void @caller(i32 %n) {14; RV32I-LABEL: caller:15; RV32I:       # %bb.0:16; RV32I-NEXT:    addi sp, sp, -6417; RV32I-NEXT:    .cfi_def_cfa_offset 6418; RV32I-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill19; RV32I-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill20; RV32I-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill21; RV32I-NEXT:    .cfi_offset ra, -422; RV32I-NEXT:    .cfi_offset s0, -823; RV32I-NEXT:    .cfi_offset s1, -1224; RV32I-NEXT:    addi s0, sp, 6425; RV32I-NEXT:    .cfi_def_cfa s0, 026; RV32I-NEXT:    andi sp, sp, -6427; RV32I-NEXT:    mv s1, sp28; RV32I-NEXT:    addi a0, a0, 1529; RV32I-NEXT:    andi a0, a0, -1630; RV32I-NEXT:    sub a0, sp, a031; RV32I-NEXT:    mv sp, a032; RV32I-NEXT:    mv a1, s133; RV32I-NEXT:    call callee34; RV32I-NEXT:    addi sp, s0, -6435; RV32I-NEXT:    .cfi_def_cfa sp, 6436; RV32I-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload37; RV32I-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload38; RV32I-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload39; RV32I-NEXT:    .cfi_restore ra40; RV32I-NEXT:    .cfi_restore s041; RV32I-NEXT:    .cfi_restore s142; RV32I-NEXT:    addi sp, sp, 6443; RV32I-NEXT:    .cfi_def_cfa_offset 044; RV32I-NEXT:    ret45;46; RV32I-ILP32E-LABEL: caller:47; RV32I-ILP32E:       # %bb.0:48; RV32I-ILP32E-NEXT:    addi sp, sp, -6449; RV32I-ILP32E-NEXT:    .cfi_def_cfa_offset 6450; RV32I-ILP32E-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill51; RV32I-ILP32E-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill52; RV32I-ILP32E-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill53; RV32I-ILP32E-NEXT:    .cfi_offset ra, -454; RV32I-ILP32E-NEXT:    .cfi_offset s0, -855; RV32I-ILP32E-NEXT:    .cfi_offset s1, -1256; RV32I-ILP32E-NEXT:    addi s0, sp, 6457; RV32I-ILP32E-NEXT:    .cfi_def_cfa s0, 058; RV32I-ILP32E-NEXT:    andi sp, sp, -6459; RV32I-ILP32E-NEXT:    mv s1, sp60; RV32I-ILP32E-NEXT:    addi a0, a0, 361; RV32I-ILP32E-NEXT:    andi a0, a0, -462; RV32I-ILP32E-NEXT:    sub a0, sp, a063; RV32I-ILP32E-NEXT:    mv sp, a064; RV32I-ILP32E-NEXT:    mv a1, s165; RV32I-ILP32E-NEXT:    call callee66; RV32I-ILP32E-NEXT:    addi sp, s0, -6467; RV32I-ILP32E-NEXT:    .cfi_def_cfa sp, 6468; RV32I-ILP32E-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload69; RV32I-ILP32E-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload70; RV32I-ILP32E-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload71; RV32I-ILP32E-NEXT:    .cfi_restore ra72; RV32I-ILP32E-NEXT:    .cfi_restore s073; RV32I-ILP32E-NEXT:    .cfi_restore s174; RV32I-ILP32E-NEXT:    addi sp, sp, 6475; RV32I-ILP32E-NEXT:    .cfi_def_cfa_offset 076; RV32I-ILP32E-NEXT:    ret77;78; RV64I-LABEL: caller:79; RV64I:       # %bb.0:80; RV64I-NEXT:    addi sp, sp, -6481; RV64I-NEXT:    .cfi_def_cfa_offset 6482; RV64I-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill83; RV64I-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill84; RV64I-NEXT:    sd s1, 40(sp) # 8-byte Folded Spill85; RV64I-NEXT:    .cfi_offset ra, -886; RV64I-NEXT:    .cfi_offset s0, -1687; RV64I-NEXT:    .cfi_offset s1, -2488; RV64I-NEXT:    addi s0, sp, 6489; RV64I-NEXT:    .cfi_def_cfa s0, 090; RV64I-NEXT:    andi sp, sp, -6491; RV64I-NEXT:    mv s1, sp92; RV64I-NEXT:    slli a0, a0, 3293; RV64I-NEXT:    srli a0, a0, 3294; RV64I-NEXT:    addi a0, a0, 1595; RV64I-NEXT:    andi a0, a0, -1696; RV64I-NEXT:    sub a0, sp, a097; RV64I-NEXT:    mv sp, a098; RV64I-NEXT:    mv a1, s199; RV64I-NEXT:    call callee100; RV64I-NEXT:    addi sp, s0, -64101; RV64I-NEXT:    .cfi_def_cfa sp, 64102; RV64I-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload103; RV64I-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload104; RV64I-NEXT:    ld s1, 40(sp) # 8-byte Folded Reload105; RV64I-NEXT:    .cfi_restore ra106; RV64I-NEXT:    .cfi_restore s0107; RV64I-NEXT:    .cfi_restore s1108; RV64I-NEXT:    addi sp, sp, 64109; RV64I-NEXT:    .cfi_def_cfa_offset 0110; RV64I-NEXT:    ret111;112; RV64I-LP64E-LABEL: caller:113; RV64I-LP64E:       # %bb.0:114; RV64I-LP64E-NEXT:    addi sp, sp, -64115; RV64I-LP64E-NEXT:    .cfi_def_cfa_offset 64116; RV64I-LP64E-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill117; RV64I-LP64E-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill118; RV64I-LP64E-NEXT:    sd s1, 40(sp) # 8-byte Folded Spill119; RV64I-LP64E-NEXT:    .cfi_offset ra, -8120; RV64I-LP64E-NEXT:    .cfi_offset s0, -16121; RV64I-LP64E-NEXT:    .cfi_offset s1, -24122; RV64I-LP64E-NEXT:    addi s0, sp, 64123; RV64I-LP64E-NEXT:    .cfi_def_cfa s0, 0124; RV64I-LP64E-NEXT:    andi sp, sp, -64125; RV64I-LP64E-NEXT:    mv s1, sp126; RV64I-LP64E-NEXT:    slli a0, a0, 32127; RV64I-LP64E-NEXT:    srli a0, a0, 32128; RV64I-LP64E-NEXT:    addi a0, a0, 7129; RV64I-LP64E-NEXT:    andi a0, a0, -8130; RV64I-LP64E-NEXT:    sub a0, sp, a0131; RV64I-LP64E-NEXT:    mv sp, a0132; RV64I-LP64E-NEXT:    mv a1, s1133; RV64I-LP64E-NEXT:    call callee134; RV64I-LP64E-NEXT:    addi sp, s0, -64135; RV64I-LP64E-NEXT:    .cfi_def_cfa sp, 64136; RV64I-LP64E-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload137; RV64I-LP64E-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload138; RV64I-LP64E-NEXT:    ld s1, 40(sp) # 8-byte Folded Reload139; RV64I-LP64E-NEXT:    .cfi_restore ra140; RV64I-LP64E-NEXT:    .cfi_restore s0141; RV64I-LP64E-NEXT:    .cfi_restore s1142; RV64I-LP64E-NEXT:    addi sp, sp, 64143; RV64I-LP64E-NEXT:    .cfi_def_cfa_offset 0144; RV64I-LP64E-NEXT:    ret145  %1 = alloca i8, i32 %n146  %2 = alloca i32, align 64147  call void @callee(ptr %1, ptr %2)148  ret void149}150