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