1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel \ 3; RUN: -verify-machineinstrs %s -o -| FileCheck %s 4; RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -global-isel \ 5; RUN: -verify-machineinstrs %s -o -| FileCheck %s 6 7declare float @llvm.ceil.f32(float) 8define float @ceil_f32(float %a) { 9; CHECK-LABEL: ceil_f32: 10; CHECK: # %bb.0: # %entry 11; CHECK-NEXT: addiu $sp, $sp, -24 12; CHECK-NEXT: .cfi_def_cfa_offset 24 13; CHECK-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill 14; CHECK-NEXT: .cfi_offset 31, -4 15; CHECK-NEXT: jal ceilf 16; CHECK-NEXT: nop 17; CHECK-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload 18; CHECK-NEXT: addiu $sp, $sp, 24 19; CHECK-NEXT: jr $ra 20; CHECK-NEXT: nop 21entry: 22 %0 = call float @llvm.ceil.f32(float %a) 23 ret float %0 24} 25 26declare double @llvm.ceil.f64(double) 27define double @ceil_f64(double %a) { 28; CHECK-LABEL: ceil_f64: 29; CHECK: # %bb.0: # %entry 30; CHECK-NEXT: addiu $sp, $sp, -24 31; CHECK-NEXT: .cfi_def_cfa_offset 24 32; CHECK-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill 33; CHECK-NEXT: .cfi_offset 31, -4 34; CHECK-NEXT: jal ceil 35; CHECK-NEXT: nop 36; CHECK-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload 37; CHECK-NEXT: addiu $sp, $sp, 24 38; CHECK-NEXT: jr $ra 39; CHECK-NEXT: nop 40entry: 41 %0 = call double @llvm.ceil.f64(double %a) 42 ret double %0 43} 44 45declare float @llvm.floor.f32(float) 46define float @floor_f32(float %a) { 47; CHECK-LABEL: floor_f32: 48; CHECK: # %bb.0: # %entry 49; CHECK-NEXT: addiu $sp, $sp, -24 50; CHECK-NEXT: .cfi_def_cfa_offset 24 51; CHECK-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill 52; CHECK-NEXT: .cfi_offset 31, -4 53; CHECK-NEXT: jal floorf 54; CHECK-NEXT: nop 55; CHECK-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload 56; CHECK-NEXT: addiu $sp, $sp, 24 57; CHECK-NEXT: jr $ra 58; CHECK-NEXT: nop 59entry: 60 %0 = call float @llvm.floor.f32(float %a) 61 ret float %0 62} 63 64declare double @llvm.floor.f64(double) 65define double @floor_f64(double %a) { 66; CHECK-LABEL: floor_f64: 67; CHECK: # %bb.0: # %entry 68; CHECK-NEXT: addiu $sp, $sp, -24 69; CHECK-NEXT: .cfi_def_cfa_offset 24 70; CHECK-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill 71; CHECK-NEXT: .cfi_offset 31, -4 72; CHECK-NEXT: jal floor 73; CHECK-NEXT: nop 74; CHECK-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload 75; CHECK-NEXT: addiu $sp, $sp, 24 76; CHECK-NEXT: jr $ra 77; CHECK-NEXT: nop 78entry: 79 %0 = call double @llvm.floor.f64(double %a) 80 ret double %0 81} 82