brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 19fe8b5 Raw
96 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -global-isel -relocation-model=pic -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32_PIC3 4declare i32 @f(i32 %a, i32 %b);5 6define internal i32 @f_with_local_linkage(i32 %x, i32 %y) {7; MIPS32_PIC-LABEL: f_with_local_linkage:8; MIPS32_PIC:       # %bb.0: # %entry9; MIPS32_PIC-NEXT:    addu $2, $5, $410; MIPS32_PIC-NEXT:    jr $ra11; MIPS32_PIC-NEXT:    nop12entry:13  %add = add i32 %y, %x14  ret i32 %add15}16 17define i32 @call_global(i32 %a, i32 %b) {18; MIPS32_PIC-LABEL: call_global:19; MIPS32_PIC:       # %bb.0: # %entry20; MIPS32_PIC-NEXT:    lui $2, %hi(_gp_disp)21; MIPS32_PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)22; MIPS32_PIC-NEXT:    addiu $sp, $sp, -2423; MIPS32_PIC-NEXT:    .cfi_def_cfa_offset 2424; MIPS32_PIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill25; MIPS32_PIC-NEXT:    .cfi_offset 31, -426; MIPS32_PIC-NEXT:    addu $gp, $2, $2527; MIPS32_PIC-NEXT:    lw $25, %call16(f)($gp)28; MIPS32_PIC-NEXT:    jalr $2529; MIPS32_PIC-NEXT:    nop30; MIPS32_PIC-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload31; MIPS32_PIC-NEXT:    addiu $sp, $sp, 2432; MIPS32_PIC-NEXT:    jr $ra33; MIPS32_PIC-NEXT:    nop34entry:35  %call = call i32 @f(i32 %a, i32 %b)36  ret i32 %call37}38 39define i32 @call_global_with_local_linkage(i32 %a, i32 %b) {40; MIPS32_PIC-LABEL: call_global_with_local_linkage:41; MIPS32_PIC:       # %bb.0: # %entry42; MIPS32_PIC-NEXT:    lui $2, %hi(_gp_disp)43; MIPS32_PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)44; MIPS32_PIC-NEXT:    addiu $sp, $sp, -2445; MIPS32_PIC-NEXT:    .cfi_def_cfa_offset 2446; MIPS32_PIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill47; MIPS32_PIC-NEXT:    .cfi_offset 31, -448; MIPS32_PIC-NEXT:    addu $gp, $2, $2549; MIPS32_PIC-NEXT:    lw $1, %got(f_with_local_linkage)($gp)50; MIPS32_PIC-NEXT:    addiu $25, $1, %lo(f_with_local_linkage)51; MIPS32_PIC-NEXT:    jalr $2552; MIPS32_PIC-NEXT:    nop53; MIPS32_PIC-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload54; MIPS32_PIC-NEXT:    addiu $sp, $sp, 2455; MIPS32_PIC-NEXT:    jr $ra56; MIPS32_PIC-NEXT:    nop57entry:58  %call = call i32 @f_with_local_linkage(i32 %a, i32 %b)59  ret i32 %call60}61 62 63@val = global i32 064@val_with_local_linkage = internal global i32 165 66define i32 @ret_global_int() {67; MIPS32_PIC-LABEL: ret_global_int:68; MIPS32_PIC:       # %bb.0: # %entry69; MIPS32_PIC-NEXT:    lui $2, %hi(_gp_disp)70; MIPS32_PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)71; MIPS32_PIC-NEXT:    addu $1, $2, $2572; MIPS32_PIC-NEXT:    lw $1, %got(val)($1)73; MIPS32_PIC-NEXT:    lw $2, 0($1)74; MIPS32_PIC-NEXT:    jr $ra75; MIPS32_PIC-NEXT:    nop76entry:77  %0 = load i32, ptr @val78  ret i32 %079}80 81define i32 @ret_global_int_with_local_linkage() {82; MIPS32_PIC-LABEL: ret_global_int_with_local_linkage:83; MIPS32_PIC:       # %bb.0: # %entry84; MIPS32_PIC-NEXT:    lui $2, %hi(_gp_disp)85; MIPS32_PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)86; MIPS32_PIC-NEXT:    addu $1, $2, $2587; MIPS32_PIC-NEXT:    lw $1, %got(val_with_local_linkage)($1)88; MIPS32_PIC-NEXT:    addiu $1, $1, %lo(val_with_local_linkage)89; MIPS32_PIC-NEXT:    lw $2, 0($1)90; MIPS32_PIC-NEXT:    jr $ra91; MIPS32_PIC-NEXT:    nop92entry:93  %0 = load i32, ptr @val_with_local_linkage94  ret i32 %095}96