brintos

brintos / llvm-project-archived public Read only

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