|
2 | 2 | ; RUN: llc --mtriple=riscv64-linux-gnu --mattr=+v,+zvfh < %s | FileCheck %s --check-prefix=ZVFH |
3 | 3 | ; RUN: llc --mtriple=riscv64-linux-gnu --mattr=+v,+zvfhmin,+zfh < %s | FileCheck %s --check-prefix=ZVFHMIN |
4 | 4 |
|
5 | | -;;;;;;;;;;;;;;;; max_f64 |
6 | | -define double @max_f64(double %a, double %b) { |
7 | | -; ZVFH-LABEL: max_f64: |
8 | | -; ZVFH: # %bb.0: # %entry |
9 | | -; ZVFH-NEXT: fmax.d fa0, fa0, fa1 |
10 | | -; ZVFH-NEXT: ret |
11 | | -; |
12 | | -; ZVFHMIN-LABEL: max_f64: |
13 | | -; ZVFHMIN: # %bb.0: # %entry |
14 | | -; ZVFHMIN-NEXT: fmax.d fa0, fa0, fa1 |
15 | | -; ZVFHMIN-NEXT: ret |
16 | | -entry: |
17 | | - %c = call double @llvm.maximumnum.f64(double %a, double %b) |
18 | | - ret double %c |
19 | | -} |
20 | | - |
21 | 5 | define <2 x double> @max_v2f64(<2 x double> %a, <2 x double> %b) { |
22 | 6 | ; ZVFH-LABEL: max_v2f64: |
23 | 7 | ; ZVFH: # %bb.0: # %entry |
@@ -69,22 +53,6 @@ entry: |
69 | 53 | ret <4 x double> %c |
70 | 54 | } |
71 | 55 |
|
72 | | -;;;;;;;;;;;;;;;;;; max_f32 |
73 | | -define float @max_f32(float %a, float %b) { |
74 | | -; ZVFH-LABEL: max_f32: |
75 | | -; ZVFH: # %bb.0: # %entry |
76 | | -; ZVFH-NEXT: fmax.s fa0, fa0, fa1 |
77 | | -; ZVFH-NEXT: ret |
78 | | -; |
79 | | -; ZVFHMIN-LABEL: max_f32: |
80 | | -; ZVFHMIN: # %bb.0: # %entry |
81 | | -; ZVFHMIN-NEXT: fmax.s fa0, fa0, fa1 |
82 | | -; ZVFHMIN-NEXT: ret |
83 | | -entry: |
84 | | - %c = call float @llvm.maximumnum.f32(float %a, float %b) |
85 | | - ret float %c |
86 | | -} |
87 | | - |
88 | 56 | define <2 x float> @max_v2f32(<2 x float> %a, <2 x float> %b) { |
89 | 57 | ; ZVFH-LABEL: max_v2f32: |
90 | 58 | ; ZVFH: # %bb.0: # %entry |
@@ -170,25 +138,6 @@ entry: |
170 | 138 | ret <8 x float> %c |
171 | 139 | } |
172 | 140 |
|
173 | | -;;;;;;;;;;;;;;;;;; max_f16 |
174 | | -define half @max_f16(half %a, half %b) { |
175 | | -; ZVFH-LABEL: max_f16: |
176 | | -; ZVFH: # %bb.0: # %entry |
177 | | -; ZVFH-NEXT: fcvt.s.h fa5, fa1 |
178 | | -; ZVFH-NEXT: fcvt.s.h fa4, fa0 |
179 | | -; ZVFH-NEXT: fmax.s fa5, fa4, fa5 |
180 | | -; ZVFH-NEXT: fcvt.h.s fa0, fa5 |
181 | | -; ZVFH-NEXT: ret |
182 | | -; |
183 | | -; ZVFHMIN-LABEL: max_f16: |
184 | | -; ZVFHMIN: # %bb.0: # %entry |
185 | | -; ZVFHMIN-NEXT: fmax.h fa0, fa0, fa1 |
186 | | -; ZVFHMIN-NEXT: ret |
187 | | -entry: |
188 | | - %c = call half @llvm.maximumnum.f16(half %a, half %b) |
189 | | - ret half %c |
190 | | -} |
191 | | - |
192 | 141 | define <2 x half> @max_v2f16(<2 x half> %a, <2 x half> %b) { |
193 | 142 | ; ZVFH-LABEL: max_v2f16: |
194 | 143 | ; ZVFH: # %bb.0: # %entry |
@@ -299,22 +248,6 @@ entry: |
299 | 248 | ret <16 x half> %c |
300 | 249 | } |
301 | 250 |
|
302 | | -;;;;;;;;;;;;;;;; min_f64 |
303 | | -define double @min_f64(double %a, double %b) { |
304 | | -; ZVFH-LABEL: min_f64: |
305 | | -; ZVFH: # %bb.0: # %entry |
306 | | -; ZVFH-NEXT: fmin.d fa0, fa0, fa1 |
307 | | -; ZVFH-NEXT: ret |
308 | | -; |
309 | | -; ZVFHMIN-LABEL: min_f64: |
310 | | -; ZVFHMIN: # %bb.0: # %entry |
311 | | -; ZVFHMIN-NEXT: fmin.d fa0, fa0, fa1 |
312 | | -; ZVFHMIN-NEXT: ret |
313 | | -entry: |
314 | | - %c = call double @llvm.minimumnum.f64(double %a, double %b) |
315 | | - ret double %c |
316 | | -} |
317 | | - |
318 | 251 | define <2 x double> @min_v2f64(<2 x double> %a, <2 x double> %b) { |
319 | 252 | ; ZVFH-LABEL: min_v2f64: |
320 | 253 | ; ZVFH: # %bb.0: # %entry |
@@ -366,22 +299,6 @@ entry: |
366 | 299 | ret <4 x double> %c |
367 | 300 | } |
368 | 301 |
|
369 | | -;;;;;;;;;;;;;;;;;; min_f32 |
370 | | -define float @min_f32(float %a, float %b) { |
371 | | -; ZVFH-LABEL: min_f32: |
372 | | -; ZVFH: # %bb.0: # %entry |
373 | | -; ZVFH-NEXT: fmin.s fa0, fa0, fa1 |
374 | | -; ZVFH-NEXT: ret |
375 | | -; |
376 | | -; ZVFHMIN-LABEL: min_f32: |
377 | | -; ZVFHMIN: # %bb.0: # %entry |
378 | | -; ZVFHMIN-NEXT: fmin.s fa0, fa0, fa1 |
379 | | -; ZVFHMIN-NEXT: ret |
380 | | -entry: |
381 | | - %c = call float @llvm.minimumnum.f32(float %a, float %b) |
382 | | - ret float %c |
383 | | -} |
384 | | - |
385 | 302 | define <2 x float> @min_v2f32(<2 x float> %a, <2 x float> %b) { |
386 | 303 | ; ZVFH-LABEL: min_v2f32: |
387 | 304 | ; ZVFH: # %bb.0: # %entry |
@@ -467,25 +384,6 @@ entry: |
467 | 384 | ret <8 x float> %c |
468 | 385 | } |
469 | 386 |
|
470 | | -;;;;;;;;;;;;;;;;;; min_f16 |
471 | | -define half @min_f16(half %a, half %b) { |
472 | | -; ZVFH-LABEL: min_f16: |
473 | | -; ZVFH: # %bb.0: # %entry |
474 | | -; ZVFH-NEXT: fcvt.s.h fa5, fa1 |
475 | | -; ZVFH-NEXT: fcvt.s.h fa4, fa0 |
476 | | -; ZVFH-NEXT: fmin.s fa5, fa4, fa5 |
477 | | -; ZVFH-NEXT: fcvt.h.s fa0, fa5 |
478 | | -; ZVFH-NEXT: ret |
479 | | -; |
480 | | -; ZVFHMIN-LABEL: min_f16: |
481 | | -; ZVFHMIN: # %bb.0: # %entry |
482 | | -; ZVFHMIN-NEXT: fmin.h fa0, fa0, fa1 |
483 | | -; ZVFHMIN-NEXT: ret |
484 | | -entry: |
485 | | - %c = call half @llvm.minimumnum.f16(half %a, half %b) |
486 | | - ret half %c |
487 | | -} |
488 | | - |
489 | 387 | define <2 x half> @min_v2f16(<2 x half> %a, <2 x half> %b) { |
490 | 388 | ; ZVFH-LABEL: min_v2f16: |
491 | 389 | ; ZVFH: # %bb.0: # %entry |
|
0 commit comments