1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
6 ** cvtx_f32_f64_m_tied1:
7 ** fcvtx z0\.s, p0/m, z4\.d
10 TEST_DUAL_Z (cvtx_f32_f64_m_tied1
, svfloat32_t
, svfloat64_t
,
11 z0
= svcvtx_f32_f64_m (z0
, p0
, z4
),
12 z0
= svcvtx_f32_m (z0
, p0
, z4
))
15 ** cvtx_f32_f64_m_tied2:
16 ** mov (z[0-9]+\.d), z0\.d
18 ** fcvtx z0\.s, p0/m, \1
21 TEST_DUAL_Z_REV (cvtx_f32_f64_m_tied2
, svfloat32_t
, svfloat64_t
,
22 z0_res
= svcvtx_f32_f64_m (z4
, p0
, z0
),
23 z0_res
= svcvtx_f32_m (z4
, p0
, z0
))
26 ** cvtx_f32_f64_m_untied:
28 ** fcvtx z0\.s, p0/m, z4\.d
31 TEST_DUAL_Z (cvtx_f32_f64_m_untied
, svfloat32_t
, svfloat64_t
,
32 z0
= svcvtx_f32_f64_m (z1
, p0
, z4
),
33 z0
= svcvtx_f32_m (z1
, p0
, z4
))
36 ** cvtx_f32_f64_z_tied1:
37 ** mov (z[0-9]+\.d), z0\.d
38 ** movprfx z0\.d, p0/z, \1
39 ** fcvtx z0\.s, p0/m, \1
42 TEST_DUAL_Z_REV (cvtx_f32_f64_z_tied1
, svfloat32_t
, svfloat64_t
,
43 z0_res
= svcvtx_f32_f64_z (p0
, z0
),
44 z0_res
= svcvtx_f32_z (p0
, z0
))
47 ** cvtx_f32_f64_z_untied:
48 ** movprfx z0\.d, p0/z, z4\.d
49 ** fcvtx z0\.s, p0/m, z4\.d
52 TEST_DUAL_Z (cvtx_f32_f64_z_untied
, svfloat32_t
, svfloat64_t
,
53 z0
= svcvtx_f32_f64_z (p0
, z4
),
54 z0
= svcvtx_f32_z (p0
, z4
))
57 ** cvtx_f32_f64_x_tied1:
58 ** fcvtx z0\.s, p0/m, z0\.d
61 TEST_DUAL_Z_REV (cvtx_f32_f64_x_tied1
, svfloat32_t
, svfloat64_t
,
62 z0_res
= svcvtx_f32_f64_x (p0
, z0
),
63 z0_res
= svcvtx_f32_x (p0
, z0
))
66 ** cvtx_f32_f64_x_untied:
67 ** fcvtx z0\.s, p0/m, z4\.d
70 TEST_DUAL_Z (cvtx_f32_f64_x_untied
, svfloat32_t
, svfloat64_t
,
71 z0
= svcvtx_f32_f64_x (p0
, z4
),
72 z0
= svcvtx_f32_x (p0
, z4
))
75 ** ptrue_cvtx_f32_f64_x_tied1:
77 ** ptrue p[0-9]+\.b[^\n]*
81 TEST_DUAL_Z_REV (ptrue_cvtx_f32_f64_x_tied1
, svfloat32_t
, svfloat64_t
,
82 z0_res
= svcvtx_f32_f64_x (svptrue_b64 (), z0
),
83 z0_res
= svcvtx_f32_x (svptrue_b64 (), z0
))
86 ** ptrue_cvtx_f32_f64_x_untied:
88 ** ptrue p[0-9]+\.b[^\n]*
92 TEST_DUAL_Z (ptrue_cvtx_f32_f64_x_untied
, svfloat32_t
, svfloat64_t
,
93 z0
= svcvtx_f32_f64_x (svptrue_b64 (), z4
),
94 z0
= svcvtx_f32_x (svptrue_b64 (), z4
))