[MLIR] Prevent invalid IR from being passed outside of RemoveDeadValues (#121079)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / half-zfa.ll
blob2ccb3c63e3f2148b92bcd75f974397b0f8dfcb7b
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
3 ; RUN: llc -mtriple=riscv32 -mattr=+zfa,+zfh -global-isel < %s \
4 ; RUN: | FileCheck %s
5 ; RUN: llc -mtriple=riscv64 -mattr=+zfa,+zfh -global-isel < %s \
6 ; RUN: | FileCheck %s
9 define half @fceil(half %a) {
10 ; CHECK-LABEL: fceil:
11 ; CHECK:       # %bb.0:
12 ; CHECK-NEXT:    fround.h fa0, fa0, rup
13 ; CHECK-NEXT:    ret
14   %b = call half @llvm.ceil.f16(half %a)
15   ret half %b
18 define half @ffloor(half %a) {
19 ; CHECK-LABEL: ffloor:
20 ; CHECK:       # %bb.0:
21 ; CHECK-NEXT:    fround.h fa0, fa0, rdn
22 ; CHECK-NEXT:    ret
23   %b = call half @llvm.floor.f16(half %a)
24   ret half %b
27 define half @frint(half %a) {
28 ; CHECK-LABEL: frint:
29 ; CHECK:       # %bb.0:
30 ; CHECK-NEXT:    froundnx.h fa0, fa0
31 ; CHECK-NEXT:    ret
32   %b = call half @llvm.rint.f16(half %a)
33   ret half %b
36 define half @fnearbyint(half %a) {
37 ; CHECK-LABEL: fnearbyint:
38 ; CHECK:       # %bb.0:
39 ; CHECK-NEXT:    fround.h fa0, fa0
40 ; CHECK-NEXT:    ret
41   %b = call half @llvm.nearbyint.f16(half %a)
42   ret half %b
45 define half @fround(half %a) {
46 ; CHECK-LABEL: fround:
47 ; CHECK:       # %bb.0:
48 ; CHECK-NEXT:    fround.h fa0, fa0, rmm
49 ; CHECK-NEXT:    ret
50   %b = call half @llvm.round.f16(half %a)
51   ret half %b
54 define half @froundeven(half %a) {
55 ; CHECK-LABEL: froundeven:
56 ; CHECK:       # %bb.0:
57 ; CHECK-NEXT:    fround.h fa0, fa0, rne
58 ; CHECK-NEXT:    ret
59   %b = call half @llvm.roundeven.f16(half %a)
60   ret half %b
63 define half @ftrunc(half %a) {
64 ; CHECK-LABEL: ftrunc:
65 ; CHECK:       # %bb.0:
66 ; CHECK-NEXT:    fround.h fa0, fa0, rtz
67 ; CHECK-NEXT:    ret
68   %b = call half @llvm.trunc.f16(half %a)
69   ret half %b
72 define half @fmaximum(half %a, half %b) {
73 ; CHECK-LABEL: fmaximum:
74 ; CHECK:       # %bb.0:
75 ; CHECK-NEXT:    fmaxm.h fa0, fa0, fa1
76 ; CHECK-NEXT:    ret
77   %c = call half @llvm.maximum.f16(half %a, half %b)
78   ret half %c
81 define half @fminimum(half %a, half %b) {
82 ; CHECK-LABEL: fminimum:
83 ; CHECK:       # %bb.0:
84 ; CHECK-NEXT:    fminm.h fa0, fa0, fa1
85 ; CHECK-NEXT:    ret
86   %c = call half @llvm.minimum.f16(half %a, half %b)
87   ret half %c