]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f64.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / maxnmp_f64.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** maxnmp_f64_m_tied1:
7 ** fmaxnmp z0\.d, p0/m, z0\.d, z1\.d
8 ** ret
9 */
10 TEST_UNIFORM_Z (maxnmp_f64_m_tied1, svfloat64_t,
11 z0 = svmaxnmp_f64_m (p0, z0, z1),
12 z0 = svmaxnmp_m (p0, z0, z1))
13
14 /*
15 ** maxnmp_f64_m_tied2:
16 ** mov (z[0-9]+\.d), z0\.d
17 ** movprfx z0, z1
18 ** fmaxnmp z0\.d, p0/m, z0\.d, \1
19 ** ret
20 */
21 TEST_UNIFORM_Z (maxnmp_f64_m_tied2, svfloat64_t,
22 z0 = svmaxnmp_f64_m (p0, z1, z0),
23 z0 = svmaxnmp_m (p0, z1, z0))
24
25 /*
26 ** maxnmp_f64_m_untied:
27 ** movprfx z0, z1
28 ** fmaxnmp z0\.d, p0/m, z0\.d, z2\.d
29 ** ret
30 */
31 TEST_UNIFORM_Z (maxnmp_f64_m_untied, svfloat64_t,
32 z0 = svmaxnmp_f64_m (p0, z1, z2),
33 z0 = svmaxnmp_m (p0, z1, z2))
34
35 /*
36 ** maxnmp_f64_x_tied1:
37 ** fmaxnmp z0\.d, p0/m, z0\.d, z1\.d
38 ** ret
39 */
40 TEST_UNIFORM_Z (maxnmp_f64_x_tied1, svfloat64_t,
41 z0 = svmaxnmp_f64_x (p0, z0, z1),
42 z0 = svmaxnmp_x (p0, z0, z1))
43
44 /*
45 ** maxnmp_f64_x_tied2:
46 ** mov (z[0-9]+\.d), z0\.d
47 ** movprfx z0, z1
48 ** fmaxnmp z0\.d, p0/m, z0\.d, \1
49 ** ret
50 */
51 TEST_UNIFORM_Z (maxnmp_f64_x_tied2, svfloat64_t,
52 z0 = svmaxnmp_f64_x (p0, z1, z0),
53 z0 = svmaxnmp_x (p0, z1, z0))
54
55 /*
56 ** maxnmp_f64_x_untied:
57 ** movprfx z0, z1
58 ** fmaxnmp z0\.d, p0/m, z0\.d, z2\.d
59 ** ret
60 */
61 TEST_UNIFORM_Z (maxnmp_f64_x_untied, svfloat64_t,
62 z0 = svmaxnmp_f64_x (p0, z1, z2),
63 z0 = svmaxnmp_x (p0, z1, z2))
64
65 /*
66 ** ptrue_maxnmp_f64_x_tied1:
67 ** ...
68 ** ptrue p[0-9]+\.b[^\n]*
69 ** ...
70 ** ret
71 */
72 TEST_UNIFORM_Z (ptrue_maxnmp_f64_x_tied1, svfloat64_t,
73 z0 = svmaxnmp_f64_x (svptrue_b64 (), z0, z1),
74 z0 = svmaxnmp_x (svptrue_b64 (), z0, z1))
75
76 /*
77 ** ptrue_maxnmp_f64_x_tied2:
78 ** ...
79 ** ptrue p[0-9]+\.b[^\n]*
80 ** ...
81 ** ret
82 */
83 TEST_UNIFORM_Z (ptrue_maxnmp_f64_x_tied2, svfloat64_t,
84 z0 = svmaxnmp_f64_x (svptrue_b64 (), z1, z0),
85 z0 = svmaxnmp_x (svptrue_b64 (), z1, z0))
86
87 /*
88 ** ptrue_maxnmp_f64_x_untied:
89 ** ...
90 ** ptrue p[0-9]+\.b[^\n]*
91 ** ...
92 ** ret
93 */
94 TEST_UNIFORM_Z (ptrue_maxnmp_f64_x_untied, svfloat64_t,
95 z0 = svmaxnmp_f64_x (svptrue_b64 (), z1, z2),
96 z0 = svmaxnmp_x (svptrue_b64 (), z1, z2))