1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2 
3 #include "test_sve_acle.h"
4 
5 /*
6 ** qrdmulh_s64_tied1:
7 **	sqrdmulh	z0\.d, z0\.d, z1\.d
8 **	ret
9 */
10 TEST_UNIFORM_Z (qrdmulh_s64_tied1, svint64_t,
11 		z0 = svqrdmulh_s64 (z0, z1),
12 		z0 = svqrdmulh (z0, z1))
13 
14 /*
15 ** qrdmulh_s64_tied2:
16 **	sqrdmulh	z0\.d, z1\.d, z0\.d
17 **	ret
18 */
19 TEST_UNIFORM_Z (qrdmulh_s64_tied2, svint64_t,
20 		z0 = svqrdmulh_s64 (z1, z0),
21 		z0 = svqrdmulh (z1, z0))
22 
23 /*
24 ** qrdmulh_s64_untied:
25 **	sqrdmulh	z0\.d, z1\.d, z2\.d
26 **	ret
27 */
28 TEST_UNIFORM_Z (qrdmulh_s64_untied, svint64_t,
29 		z0 = svqrdmulh_s64 (z1, z2),
30 		z0 = svqrdmulh (z1, z2))
31 
32 /*
33 ** qrdmulh_x0_s64_tied1:
34 **	mov	(z[0-9]+\.d), x0
35 **	sqrdmulh	z0\.d, z0\.d, \1
36 **	ret
37 */
38 TEST_UNIFORM_ZX (qrdmulh_x0_s64_tied1, svint64_t, int64_t,
39 		 z0 = svqrdmulh_n_s64 (z0, x0),
40 		 z0 = svqrdmulh (z0, x0))
41 
42 /*
43 ** qrdmulh_x0_s64_untied:
44 **	mov	(z[0-9]+\.d), x0
45 **	sqrdmulh	z0\.d, z1\.d, \1
46 **	ret
47 */
48 TEST_UNIFORM_ZX (qrdmulh_x0_s64_untied, svint64_t, int64_t,
49 		 z0 = svqrdmulh_n_s64 (z1, x0),
50 		 z0 = svqrdmulh (z1, x0))
51 
52 /*
53 ** qrdmulh_11_s64_tied1:
54 **	mov	(z[0-9]+\.d), #11
55 **	sqrdmulh	z0\.d, z0\.d, \1
56 **	ret
57 */
58 TEST_UNIFORM_Z (qrdmulh_11_s64_tied1, svint64_t,
59 		z0 = svqrdmulh_n_s64 (z0, 11),
60 		z0 = svqrdmulh (z0, 11))
61 
62 /*
63 ** qrdmulh_11_s64_untied:
64 **	mov	(z[0-9]+\.d), #11
65 **	sqrdmulh	z0\.d, z1\.d, \1
66 **	ret
67 */
68 TEST_UNIFORM_Z (qrdmulh_11_s64_untied, svint64_t,
69 		z0 = svqrdmulh_n_s64 (z1, 11),
70 		z0 = svqrdmulh (z1, 11))
71