xref: /llvm-project/llvm/test/CodeGen/RISCV/replace-with-veclib-sleef-scalable.ll (revision 93caee17add0c7bc6770365b1d3cae93f258d866)
1*93caee17SMark Goncharov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 4
2*93caee17SMark Goncharov; RUN: opt -mtriple=riscv64-unknown-linux-gnu -mattr=+v -vector-library=sleefgnuabi -replace-with-veclib -S < %s | FileCheck %s
3*93caee17SMark Goncharov
4*93caee17SMark Goncharov;.
5*93caee17SMark Goncharov; CHECK: @llvm.compiler.used = appending global [21 x ptr] [ptr @Sleef_cosdx_u10rvvm2, ptr @Sleef_cosfx_u10rvvm2, ptr @Sleef_expfx_u10rvvm2, ptr @Sleef_exp10dx_u10rvvm2, ptr @Sleef_exp10fx_u10rvvm2, ptr @Sleef_exp2dx_u10rvvm2, ptr @Sleef_exp2fx_u10rvvm2, ptr @Sleef_fmadx_rvvm2, ptr @Sleef_fmafx_rvvm2, ptr @Sleef_logdx_u10rvvm2, ptr @Sleef_logfx_u10rvvm2, ptr @Sleef_log10dx_u10rvvm2, ptr @Sleef_log10fx_u10rvvm2, ptr @Sleef_log2dx_u10rvvm2, ptr @Sleef_log2fx_u10rvvm2, ptr @Sleef_powdx_u10rvvm2, ptr @Sleef_powfx_u10rvvm2, ptr @Sleef_sindx_u10rvvm2, ptr @Sleef_sinfx_u10rvvm2, ptr @Sleef_sqrtdx_u05rvvm2, ptr @Sleef_sqrtfx_u05rvvm2], section "llvm.metadata"
6*93caee17SMark Goncharov;.
7*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_ceil_vscale_f64(<vscale x 2 x double> %in) {
8*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_ceil_vscale_f64(
9*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0:[0-9]+]] {
10*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double> [[IN]])
11*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
12*93caee17SMark Goncharov;
13*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double> %in)
14*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
15*93caee17SMark Goncharov}
16*93caee17SMark Goncharov
17*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_ceil_vscale_f32(<vscale x 4 x float> %in) {
18*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_ceil_vscale_f32(
19*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
20*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float> [[IN]])
21*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
22*93caee17SMark Goncharov;
23*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float> %in)
24*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
25*93caee17SMark Goncharov}
26*93caee17SMark Goncharov
27*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_copysign_vscale_f64(<vscale x 2 x double> %mag, <vscale x 2 x double> %sgn) {
28*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_copysign_vscale_f64(
29*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[MAG:%.*]], <vscale x 2 x double> [[SGN:%.*]]) #[[ATTR0]] {
30*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.copysign.nxv2f64(<vscale x 2 x double> [[MAG]], <vscale x 2 x double> [[SGN]])
31*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
32*93caee17SMark Goncharov;
33*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.copysign.nxv2f64(<vscale x 2 x double> %mag, <vscale x 2 x double> %sgn)
34*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
35*93caee17SMark Goncharov}
36*93caee17SMark Goncharov
37*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_copysign_vscale_f32(<vscale x 4 x float> %mag, <vscale x 4 x float> %sgn) {
38*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_copysign_vscale_f32(
39*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[MAG:%.*]], <vscale x 4 x float> [[SGN:%.*]]) #[[ATTR0]] {
40*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.copysign.nxv4f32(<vscale x 4 x float> [[MAG]], <vscale x 4 x float> [[SGN]])
41*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
42*93caee17SMark Goncharov;
43*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.copysign.nxv4f32(<vscale x 4 x float> %mag, <vscale x 4 x float> %sgn)
44*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
45*93caee17SMark Goncharov}
46*93caee17SMark Goncharov
47*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_cos_vscale_f64(<vscale x 2 x double> %in) {
48*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_cos_vscale_f64(
49*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
50*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_cosdx_u10rvvm2(<vscale x 2 x double> [[IN]])
51*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
52*93caee17SMark Goncharov;
53*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.cos.nxv2f64(<vscale x 2 x double> %in)
54*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
55*93caee17SMark Goncharov}
56*93caee17SMark Goncharov
57*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_cos_vscale_f32(<vscale x 4 x float> %in) {
58*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_cos_vscale_f32(
59*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
60*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_cosfx_u10rvvm2(<vscale x 4 x float> [[IN]])
61*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
62*93caee17SMark Goncharov;
63*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.cos.nxv4f32(<vscale x 4 x float> %in)
64*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
65*93caee17SMark Goncharov}
66*93caee17SMark Goncharov
67*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_exp_vscale_f64(<vscale x 2 x double> %in) {
68*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_exp_vscale_f64(
69*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
70*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.exp.nxv2f64(<vscale x 2 x double> [[IN]])
71*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
72*93caee17SMark Goncharov;
73*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.exp.nxv2f64(<vscale x 2 x double> %in)
74*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
75*93caee17SMark Goncharov}
76*93caee17SMark Goncharov
77*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_exp_vscale_f32(<vscale x 4 x float> %in) {
78*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_exp_vscale_f32(
79*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
80*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_expfx_u10rvvm2(<vscale x 4 x float> [[IN]])
81*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
82*93caee17SMark Goncharov;
83*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.exp.nxv4f32(<vscale x 4 x float> %in)
84*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
85*93caee17SMark Goncharov}
86*93caee17SMark Goncharov
87*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_exp10_vscale_f64(<vscale x 2 x double> %in) {
88*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_exp10_vscale_f64(
89*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
90*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_exp10dx_u10rvvm2(<vscale x 2 x double> [[IN]])
91*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
92*93caee17SMark Goncharov;
93*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.exp10.nxv2f64(<vscale x 2 x double> %in)
94*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
95*93caee17SMark Goncharov}
96*93caee17SMark Goncharov
97*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_exp10_vscale_f32(<vscale x 4 x float> %in) {
98*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_exp10_vscale_f32(
99*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
100*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_exp10fx_u10rvvm2(<vscale x 4 x float> [[IN]])
101*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
102*93caee17SMark Goncharov;
103*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.exp10.nxv4f32(<vscale x 4 x float> %in)
104*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
105*93caee17SMark Goncharov}
106*93caee17SMark Goncharov
107*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_exp2_vscale_f64(<vscale x 2 x double> %in) {
108*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_exp2_vscale_f64(
109*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
110*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_exp2dx_u10rvvm2(<vscale x 2 x double> [[IN]])
111*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
112*93caee17SMark Goncharov;
113*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.exp2.nxv2f64(<vscale x 2 x double> %in)
114*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
115*93caee17SMark Goncharov}
116*93caee17SMark Goncharov
117*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_exp2_vscale_f32(<vscale x 4 x float> %in) {
118*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_exp2_vscale_f32(
119*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
120*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_exp2fx_u10rvvm2(<vscale x 4 x float> [[IN]])
121*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
122*93caee17SMark Goncharov;
123*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.exp2.nxv4f32(<vscale x 4 x float> %in)
124*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
125*93caee17SMark Goncharov}
126*93caee17SMark Goncharov
127*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_fabs_vscale_f64(<vscale x 2 x double> %in) {
128*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_fabs_vscale_f64(
129*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
130*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.fabs.nxv2f64(<vscale x 2 x double> [[IN]])
131*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
132*93caee17SMark Goncharov;
133*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.fabs.nxv2f64(<vscale x 2 x double> %in)
134*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
135*93caee17SMark Goncharov}
136*93caee17SMark Goncharov
137*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_fabs_vscale_f32(<vscale x 4 x float> %in) {
138*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_fabs_vscale_f32(
139*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
140*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float> [[IN]])
141*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
142*93caee17SMark Goncharov;
143*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float> %in)
144*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
145*93caee17SMark Goncharov}
146*93caee17SMark Goncharov
147*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_floor_vscale_f64(<vscale x 2 x double> %in) {
148*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_floor_vscale_f64(
149*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
150*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double> [[IN]])
151*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
152*93caee17SMark Goncharov;
153*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double> %in)
154*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
155*93caee17SMark Goncharov}
156*93caee17SMark Goncharov
157*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_floor_vscale_f32(<vscale x 4 x float> %in) {
158*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_floor_vscale_f32(
159*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
160*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float> [[IN]])
161*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
162*93caee17SMark Goncharov;
163*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float> %in)
164*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
165*93caee17SMark Goncharov}
166*93caee17SMark Goncharov
167*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_fma_vscale_f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b, <vscale x 2 x double> %c ) {
168*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_fma_vscale_f64(
169*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[A:%.*]], <vscale x 2 x double> [[B:%.*]], <vscale x 2 x double> [[C:%.*]]) #[[ATTR0]] {
170*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_fmadx_rvvm2(<vscale x 2 x double> [[A]], <vscale x 2 x double> [[B]], <vscale x 2 x double> [[C]])
171*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
172*93caee17SMark Goncharov;
173*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.fma.nxv2f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b, <vscale x 2 x double> %c)
174*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
175*93caee17SMark Goncharov}
176*93caee17SMark Goncharov
177*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_fma_vscale_f32(<vscale x 4 x float> %a, <vscale x 4 x float> %b, <vscale x 4 x float> %c) {
178*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_fma_vscale_f32(
179*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[A:%.*]], <vscale x 4 x float> [[B:%.*]], <vscale x 4 x float> [[C:%.*]]) #[[ATTR0]] {
180*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_fmafx_rvvm2(<vscale x 4 x float> [[A]], <vscale x 4 x float> [[B]], <vscale x 4 x float> [[C]])
181*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
182*93caee17SMark Goncharov;
183*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.fma.nxv4f32(<vscale x 4 x float> %a, <vscale x 4 x float> %b, <vscale x 4 x float> %c)
184*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
185*93caee17SMark Goncharov}
186*93caee17SMark Goncharov
187*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_log_vscale_f64(<vscale x 2 x double> %in) {
188*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_log_vscale_f64(
189*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
190*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_logdx_u10rvvm2(<vscale x 2 x double> [[IN]])
191*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
192*93caee17SMark Goncharov;
193*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.log.nxv2f64(<vscale x 2 x double> %in)
194*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
195*93caee17SMark Goncharov}
196*93caee17SMark Goncharov
197*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_log_vscale_f32(<vscale x 4 x float> %in) {
198*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_log_vscale_f32(
199*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
200*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_logfx_u10rvvm2(<vscale x 4 x float> [[IN]])
201*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
202*93caee17SMark Goncharov;
203*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.log.nxv4f32(<vscale x 4 x float> %in)
204*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
205*93caee17SMark Goncharov}
206*93caee17SMark Goncharov
207*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_log10_vscale_f64(<vscale x 2 x double> %in) {
208*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_log10_vscale_f64(
209*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
210*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_log10dx_u10rvvm2(<vscale x 2 x double> [[IN]])
211*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
212*93caee17SMark Goncharov;
213*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.log10.nxv2f64(<vscale x 2 x double> %in)
214*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
215*93caee17SMark Goncharov}
216*93caee17SMark Goncharov
217*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_log10_vscale_f32(<vscale x 4 x float> %in) {
218*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_log10_vscale_f32(
219*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
220*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_log10fx_u10rvvm2(<vscale x 4 x float> [[IN]])
221*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
222*93caee17SMark Goncharov;
223*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.log10.nxv4f32(<vscale x 4 x float> %in)
224*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
225*93caee17SMark Goncharov}
226*93caee17SMark Goncharov
227*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_log2_vscale_f64(<vscale x 2 x double> %in) {
228*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_log2_vscale_f64(
229*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
230*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_log2dx_u10rvvm2(<vscale x 2 x double> [[IN]])
231*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
232*93caee17SMark Goncharov;
233*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.log2.nxv2f64(<vscale x 2 x double> %in)
234*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
235*93caee17SMark Goncharov}
236*93caee17SMark Goncharov
237*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_log2_vscale_f32(<vscale x 4 x float> %in) {
238*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_log2_vscale_f32(
239*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
240*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_log2fx_u10rvvm2(<vscale x 4 x float> [[IN]])
241*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
242*93caee17SMark Goncharov;
243*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.log2.nxv4f32(<vscale x 4 x float> %in)
244*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
245*93caee17SMark Goncharov}
246*93caee17SMark Goncharov
247*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_maxnum_vscale_f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1) {
248*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_maxnum_vscale_f64(
249*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN0:%.*]], <vscale x 2 x double> [[IN1:%.*]]) #[[ATTR0]] {
250*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double> [[IN0]], <vscale x 2 x double> [[IN1]])
251*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
252*93caee17SMark Goncharov;
253*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1)
254*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
255*93caee17SMark Goncharov}
256*93caee17SMark Goncharov
257*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_maxnum_vscale_f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1) {
258*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_maxnum_vscale_f32(
259*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN0:%.*]], <vscale x 4 x float> [[IN1:%.*]]) #[[ATTR0]] {
260*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float> [[IN0]], <vscale x 4 x float> [[IN1]])
261*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
262*93caee17SMark Goncharov;
263*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1)
264*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
265*93caee17SMark Goncharov}
266*93caee17SMark Goncharov
267*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_minnum_vscale_f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1) {
268*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_minnum_vscale_f64(
269*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN0:%.*]], <vscale x 2 x double> [[IN1:%.*]]) #[[ATTR0]] {
270*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.minnum.nxv2f64(<vscale x 2 x double> [[IN0]], <vscale x 2 x double> [[IN1]])
271*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
272*93caee17SMark Goncharov;
273*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.minnum.nxv2f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1)
274*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
275*93caee17SMark Goncharov}
276*93caee17SMark Goncharov
277*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_minnum_vscale_f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1) {
278*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_minnum_vscale_f32(
279*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN0:%.*]], <vscale x 4 x float> [[IN1:%.*]]) #[[ATTR0]] {
280*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.minnum.nxv4f32(<vscale x 4 x float> [[IN0]], <vscale x 4 x float> [[IN1]])
281*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
282*93caee17SMark Goncharov;
283*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.minnum.nxv4f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1)
284*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
285*93caee17SMark Goncharov}
286*93caee17SMark Goncharov
287*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_nearbyint_vscale_f64(<vscale x 2 x double> %in) {
288*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_nearbyint_vscale_f64(
289*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
290*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double> [[IN]])
291*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
292*93caee17SMark Goncharov;
293*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double> %in)
294*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
295*93caee17SMark Goncharov}
296*93caee17SMark Goncharov
297*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_nearbyint_vscale_f32(<vscale x 4 x float> %in) {
298*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_nearbyint_vscale_f32(
299*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
300*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float> [[IN]])
301*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
302*93caee17SMark Goncharov;
303*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float> %in)
304*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
305*93caee17SMark Goncharov}
306*93caee17SMark Goncharov
307*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_pow_vscale_f64(<vscale x 2 x double> %in, <vscale x 2 x double> %pow) {
308*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_pow_vscale_f64(
309*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]], <vscale x 2 x double> [[POW:%.*]]) #[[ATTR0]] {
310*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_powdx_u10rvvm2(<vscale x 2 x double> [[IN]], <vscale x 2 x double> [[POW]])
311*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
312*93caee17SMark Goncharov;
313*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.pow.nxv2f64(<vscale x 2 x double> %in, <vscale x 2 x double> %pow)
314*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
315*93caee17SMark Goncharov}
316*93caee17SMark Goncharov
317*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_pow_vscale_f32(<vscale x 4 x float> %in, <vscale x 4 x float> %pow) {
318*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_pow_vscale_f32(
319*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]], <vscale x 4 x float> [[POW:%.*]]) #[[ATTR0]] {
320*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_powfx_u10rvvm2(<vscale x 4 x float> [[IN]], <vscale x 4 x float> [[POW]])
321*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
322*93caee17SMark Goncharov;
323*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.pow.nxv4f32(<vscale x 4 x float> %in, <vscale x 4 x float> %pow)
324*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
325*93caee17SMark Goncharov}
326*93caee17SMark Goncharov
327*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_rint_vscale_f64(<vscale x 2 x double> %in) {
328*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_rint_vscale_f64(
329*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
330*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double> [[IN]])
331*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
332*93caee17SMark Goncharov;
333*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double> %in)
334*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
335*93caee17SMark Goncharov}
336*93caee17SMark Goncharov
337*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_rint_vscale_f32(<vscale x 4 x float> %in) {
338*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_rint_vscale_f32(
339*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
340*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float> [[IN]])
341*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
342*93caee17SMark Goncharov;
343*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float> %in)
344*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
345*93caee17SMark Goncharov}
346*93caee17SMark Goncharov
347*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_round_vscale_f64(<vscale x 2 x double> %in) {
348*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_round_vscale_f64(
349*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
350*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double> [[IN]])
351*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
352*93caee17SMark Goncharov;
353*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double> %in)
354*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
355*93caee17SMark Goncharov}
356*93caee17SMark Goncharov
357*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_round_vscale_f32(<vscale x 4 x float> %in) {
358*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_round_vscale_f32(
359*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
360*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float> [[IN]])
361*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
362*93caee17SMark Goncharov;
363*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float> %in)
364*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
365*93caee17SMark Goncharov}
366*93caee17SMark Goncharov
367*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_sin_vscale_f64(<vscale x 2 x double> %in) {
368*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_sin_vscale_f64(
369*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
370*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_sindx_u10rvvm2(<vscale x 2 x double> [[IN]])
371*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
372*93caee17SMark Goncharov;
373*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.sin.nxv2f64(<vscale x 2 x double> %in)
374*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
375*93caee17SMark Goncharov}
376*93caee17SMark Goncharov
377*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_sin_vscale_f32(<vscale x 4 x float> %in) {
378*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_sin_vscale_f32(
379*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
380*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_sinfx_u10rvvm2(<vscale x 4 x float> [[IN]])
381*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
382*93caee17SMark Goncharov;
383*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.sin.nxv4f32(<vscale x 4 x float> %in)
384*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
385*93caee17SMark Goncharov}
386*93caee17SMark Goncharov
387*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_sqrt_vscale_f64(<vscale x 2 x double> %in) {
388*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_sqrt_vscale_f64(
389*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
390*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_sqrtdx_u05rvvm2(<vscale x 2 x double> [[IN]])
391*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
392*93caee17SMark Goncharov;
393*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.sqrt.nxv2f64(<vscale x 2 x double> %in)
394*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
395*93caee17SMark Goncharov}
396*93caee17SMark Goncharov
397*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_sqrt_vscale_f32(<vscale x 4 x float> %in) {
398*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_sqrt_vscale_f32(
399*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
400*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_sqrtfx_u05rvvm2(<vscale x 4 x float> [[IN]])
401*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
402*93caee17SMark Goncharov;
403*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.sqrt.nxv4f32(<vscale x 4 x float> %in)
404*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
405*93caee17SMark Goncharov}
406*93caee17SMark Goncharov
407*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_trunc_vscale_f64(<vscale x 2 x double> %in) {
408*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_trunc_vscale_f64(
409*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
410*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double> [[IN]])
411*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
412*93caee17SMark Goncharov;
413*93caee17SMark Goncharov  %1 = call fast <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double> %in)
414*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
415*93caee17SMark Goncharov}
416*93caee17SMark Goncharov
417*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_trunc_vscale_f32(<vscale x 4 x float> %in) {
418*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_trunc_vscale_f32(
419*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
420*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float> [[IN]])
421*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
422*93caee17SMark Goncharov;
423*93caee17SMark Goncharov  %1 = call fast <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float> %in)
424*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
425*93caee17SMark Goncharov}
426*93caee17SMark Goncharov
427*93caee17SMark Goncharovdefine <vscale x 2 x double> @frem_f64(<vscale x 2 x double> %in) {
428*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @frem_f64(
429*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] {
430*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = frem <vscale x 2 x double> [[IN]], [[IN]]
431*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
432*93caee17SMark Goncharov;
433*93caee17SMark Goncharov  %1= frem <vscale x 2 x double> %in, %in
434*93caee17SMark Goncharov  ret <vscale x 2 x double> %1
435*93caee17SMark Goncharov}
436*93caee17SMark Goncharov
437*93caee17SMark Goncharovdefine <vscale x 4 x float> @frem_f32(<vscale x 4 x float> %in) {
438*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @frem_f32(
439*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] {
440*93caee17SMark Goncharov; CHECK-NEXT:    [[TMP1:%.*]] = frem <vscale x 4 x float> [[IN]], [[IN]]
441*93caee17SMark Goncharov; CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
442*93caee17SMark Goncharov;
443*93caee17SMark Goncharov  %1= frem <vscale x 4 x float> %in, %in
444*93caee17SMark Goncharov  ret <vscale x 4 x float> %1
445*93caee17SMark Goncharov}
446*93caee17SMark Goncharov
447*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double>)
448*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float>)
449*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.copysign.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>)
450*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.copysign.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>)
451*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.cos.nxv2f64(<vscale x 2 x double>)
452*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.cos.nxv4f32(<vscale x 4 x float>)
453*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.exp.nxv2f64(<vscale x 2 x double>)
454*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.exp.nxv4f32(<vscale x 4 x float>)
455*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.exp2.nxv2f64(<vscale x 2 x double>)
456*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.exp2.nxv4f32(<vscale x 4 x float>)
457*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.exp10.nxv2f64(<vscale x 2 x double>)
458*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.exp10.nxv4f32(<vscale x 4 x float>)
459*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.fabs.nxv2f64(<vscale x 2 x double>)
460*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float>)
461*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double>)
462*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float>)
463*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.fma.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>)
464*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.fma.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>)
465*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.log.nxv2f64(<vscale x 2 x double>)
466*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.log.nxv4f32(<vscale x 4 x float>)
467*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.log10.nxv2f64(<vscale x 2 x double>)
468*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.log10.nxv4f32(<vscale x 4 x float>)
469*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.log2.nxv2f64(<vscale x 2 x double>)
470*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.log2.nxv4f32(<vscale x 4 x float>)
471*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>)
472*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>)
473*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.minnum.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>)
474*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.minnum.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>)
475*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double>)
476*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float>)
477*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.pow.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>)
478*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.pow.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>)
479*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double>)
480*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float>)
481*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double>)
482*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float>)
483*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.sin.nxv2f64(<vscale x 2 x double>)
484*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.sin.nxv4f32(<vscale x 4 x float>)
485*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.sqrt.nxv2f64(<vscale x 2 x double>)
486*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.sqrt.nxv4f32(<vscale x 4 x float>)
487*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double>)
488*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float>)
489*93caee17SMark Goncharov;.
490*93caee17SMark Goncharov; CHECK: attributes #[[ATTR0]] = { "target-features"="+v" }
491*93caee17SMark Goncharov; CHECK: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind speculatable willreturn memory(none) "target-features"="+v" }
492*93caee17SMark Goncharov;.
493