89 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52 3; RUN: llc -mtriple=riscv32 -mattr=+zfa -global-isel < %s \4; RUN: | FileCheck %s5; RUN: llc -mtriple=riscv64 -mattr=+zfa -global-isel < %s \6; RUN: | FileCheck %s7 8 9define float @fceil(float %a) {10; CHECK-LABEL: fceil:11; CHECK: # %bb.0:12; CHECK-NEXT: fround.s fa0, fa0, rup13; CHECK-NEXT: ret14 %b = call float @llvm.ceil.f32(float %a)15 ret float %b16}17 18define float @ffloor(float %a) {19; CHECK-LABEL: ffloor:20; CHECK: # %bb.0:21; CHECK-NEXT: fround.s fa0, fa0, rdn22; CHECK-NEXT: ret23 %b = call float @llvm.floor.f32(float %a)24 ret float %b25}26 27define float @frint(float %a) {28; CHECK-LABEL: frint:29; CHECK: # %bb.0:30; CHECK-NEXT: froundnx.s fa0, fa031; CHECK-NEXT: ret32 %b = call float @llvm.rint.f32(float %a)33 ret float %b34}35 36define float @fnearbyint(float %a) {37; CHECK-LABEL: fnearbyint:38; CHECK: # %bb.0:39; CHECK-NEXT: fround.s fa0, fa040; CHECK-NEXT: ret41 %b = call float @llvm.nearbyint.f32(float %a)42 ret float %b43}44 45define float @fround(float %a) {46; CHECK-LABEL: fround:47; CHECK: # %bb.0:48; CHECK-NEXT: fround.s fa0, fa0, rmm49; CHECK-NEXT: ret50 %b = call float @llvm.round.f32(float %a)51 ret float %b52}53 54define float @froundeven(float %a) {55; CHECK-LABEL: froundeven:56; CHECK: # %bb.0:57; CHECK-NEXT: fround.s fa0, fa0, rne58; CHECK-NEXT: ret59 %b = call float @llvm.roundeven.f32(float %a)60 ret float %b61}62 63define float @ftrunc(float %a) {64; CHECK-LABEL: ftrunc:65; CHECK: # %bb.0:66; CHECK-NEXT: fround.s fa0, fa0, rtz67; CHECK-NEXT: ret68 %b = call float @llvm.trunc.f32(float %a)69 ret float %b70}71 72define float @fmaximum(float %a, float %b) {73; CHECK-LABEL: fmaximum:74; CHECK: # %bb.0:75; CHECK-NEXT: fmaxm.s fa0, fa0, fa176; CHECK-NEXT: ret77 %c = call float @llvm.maximum.f32(float %a, float %b)78 ret float %c79}80 81define float @fminimum(float %a, float %b) {82; CHECK-LABEL: fminimum:83; CHECK: # %bb.0:84; CHECK-NEXT: fminm.s fa0, fa0, fa185; CHECK-NEXT: ret86 %c = call float @llvm.minimum.f32(float %a, float %b)87 ret float %c88}89