brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · d327ecf Raw
125 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -global-isel -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32,FP323; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -global-isel -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32,FP644 5define float @float_in_fpr(float %a, float %b) {6; MIPS32-LABEL: float_in_fpr:7; MIPS32:       # %bb.0: # %entry8; MIPS32-NEXT:    mov.s $f0, $f149; MIPS32-NEXT:    jr $ra10; MIPS32-NEXT:    nop11entry:12  ret float %b13}14 15define double @double_in_fpr(double %a, double %b) {16; MIPS32-LABEL: double_in_fpr:17; MIPS32:       # %bb.0: # %entry18; MIPS32-NEXT:    mov.d $f0, $f1419; MIPS32-NEXT:    jr $ra20; MIPS32-NEXT:    nop21entry:22  ret double %b23}24 25define float @float_in_gpr(i32 %a, float %b) {26; MIPS32-LABEL: float_in_gpr:27; MIPS32:       # %bb.0: # %entry28; MIPS32-NEXT:    mtc1 $5, $f029; MIPS32-NEXT:    jr $ra30; MIPS32-NEXT:    nop31entry:32  ret float %b33}34 35define double @double_in_gpr(i32 %a, double %b) {36; FP32-LABEL: double_in_gpr:37; FP32:       # %bb.0: # %entry38; FP32-NEXT:    mtc1 $6, $f039; FP32-NEXT:    mtc1 $7, $f140; FP32-NEXT:    jr $ra41; FP32-NEXT:    nop42;43; FP64-LABEL: double_in_gpr:44; FP64:       # %bb.0: # %entry45; FP64-NEXT:    mtc1 $6, $f046; FP64-NEXT:    mthc1 $7, $f047; FP64-NEXT:    jr $ra48; FP64-NEXT:    nop49entry:50  ret double %b51}52 53define float @call_float_in_fpr(float %a, float %b) {54; MIPS32-LABEL: call_float_in_fpr:55; MIPS32:       # %bb.0: # %entry56; MIPS32-NEXT:    addiu $sp, $sp, -2457; MIPS32-NEXT:    .cfi_def_cfa_offset 2458; MIPS32-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill59; MIPS32-NEXT:    .cfi_offset 31, -460; MIPS32-NEXT:    jal float_in_fpr61; MIPS32-NEXT:    nop62; MIPS32-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload63; MIPS32-NEXT:    addiu $sp, $sp, 2464; MIPS32-NEXT:    jr $ra65; MIPS32-NEXT:    nop66entry:67  %call = call float @float_in_fpr(float %a, float %b)68  ret float %call69}70 71define double @call_double_in_fpr(double %a, double %b) {72; MIPS32-LABEL: call_double_in_fpr:73; MIPS32:       # %bb.0: # %entry74; MIPS32-NEXT:    addiu $sp, $sp, -2475; MIPS32-NEXT:    .cfi_def_cfa_offset 2476; MIPS32-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill77; MIPS32-NEXT:    .cfi_offset 31, -478; MIPS32-NEXT:    jal double_in_fpr79; MIPS32-NEXT:    nop80; MIPS32-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload81; MIPS32-NEXT:    addiu $sp, $sp, 2482; MIPS32-NEXT:    jr $ra83; MIPS32-NEXT:    nop84entry:85  %call = call double @double_in_fpr(double %a, double %b)86  ret double %call87}88 89define float @call_float_in_gpr(i32 %a, float %b) {90; MIPS32-LABEL: call_float_in_gpr:91; MIPS32:       # %bb.0: # %entry92; MIPS32-NEXT:    addiu $sp, $sp, -2493; MIPS32-NEXT:    .cfi_def_cfa_offset 2494; MIPS32-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill95; MIPS32-NEXT:    .cfi_offset 31, -496; MIPS32-NEXT:    jal float_in_gpr97; MIPS32-NEXT:    nop98; MIPS32-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload99; MIPS32-NEXT:    addiu $sp, $sp, 24100; MIPS32-NEXT:    jr $ra101; MIPS32-NEXT:    nop102entry:103  %call = call float @float_in_gpr(i32 %a, float %b)104  ret float %call105}106 107 108define double @call_double_in_gpr(i32 %a, double %b) {109; MIPS32-LABEL: call_double_in_gpr:110; MIPS32:       # %bb.0: # %entry111; MIPS32-NEXT:    addiu $sp, $sp, -24112; MIPS32-NEXT:    .cfi_def_cfa_offset 24113; MIPS32-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill114; MIPS32-NEXT:    .cfi_offset 31, -4115; MIPS32-NEXT:    jal double_in_gpr116; MIPS32-NEXT:    nop117; MIPS32-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload118; MIPS32-NEXT:    addiu $sp, $sp, 24119; MIPS32-NEXT:    jr $ra120; MIPS32-NEXT:    nop121entry:122  %call = call double @double_in_gpr(i32 %a, double %b)123  ret double %call124}125