(match_operand:SVE_I 3 "aarch64_simd_reg_or_zero")]
UNSPEC_SEL))]
"TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
- {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
- [ &w , Upl , w , 0 ; * ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
- [ ?&w , Upl , w , Dz ; yes ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
- [ ?&w , Upl , w , w ; yes ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
+ {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx, arch ]
+ [ &w , Upl , w , 0 ; * , * ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
+ [ &w , Upl , w , Dz ; * , sve2p2_or_sme2p2 ] <sve_int_op>\t%0.<Vetype>, %1/z, %2.<Vetype>
+ [ ?&w , Upl , w , Dz ; yes , * ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
+ [ ?&w , Upl , w , w ; yes , * ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
}
[(set_attr "sve_type" "sve_int_general")]
)
(match_operand:SVE_I 6 "aarch64_simd_reg_or_zero")]
UNSPEC_SEL))]
"TARGET_SVE && !rtx_equal_p (operands[2], operands[6])"
- {@ [ cons: =0 , 1 , 2 , 6 ; attrs: movprfx ]
- [ &w , Upl , w , 0 ; * ] cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
- [ ?&w , Upl , w , Dz ; yes ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
- [ ?&w , Upl , w , w ; yes ] movprfx\t%0, %6\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
+ {@ [ cons: =0 , 1 , 2 , 6 ; attrs: movprfx, arch ]
+ [ &w , Upl , w , 0 ; * , * ] cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
+ [ &w , Upl , w , Dz ; * , sve2p2_or_sme2p2 ] cnot\t%0.<Vetype>, %1/z, %2.<Vetype>
+ [ ?&w , Upl , w , Dz ; yes , * ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
+ [ ?&w , Upl , w , w ; yes , * ] movprfx\t%0, %6\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
}
"&& !CONSTANT_P (operands[5])"
{
(match_operand:VNx4SI_ONLY 3 "aarch64_simd_reg_or_zero")]
UNSPEC_SEL))]
"TARGET_SVE2"
- {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
- [ w , Upl , w , 0 ; * ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
- [ ?&w , Upl , w , Dz ; yes ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
- [ ?&w , Upl , w , w ; yes ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
+ {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx, arch ]
+ [ w , Upl , w , 0 ; * , * ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
+ [ w , Upl , w , Dz ; * , sve2p2_or_sme2p2 ] <sve_int_op>\t%0.<Vetype>, %1/z, %2.<Vetype>
+ [ ?&w , Upl , w , Dz ; yes , * ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
+ [ ?&w , Upl , w , w ; yes , * ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
}
"&& !CONSTANT_P (operands[4])"
{
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** abs_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** abs z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (abs_s16_z_tied1, svint16_t,
+ z0 = svabs_s16_z (p0, z0),
+ z0 = svabs_z (p0, z0))
+
+/*
+** abs_s16_z_untied:
+** abs z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (abs_s16_z_untied, svint16_t,
+ z0 = svabs_s16_z (p0, z1),
+ z0 = svabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** abs_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** abs z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (abs_s32_z_tied1, svint32_t,
+ z0 = svabs_s32_z (p0, z0),
+ z0 = svabs_z (p0, z0))
+
+/*
+** abs_s32_z_untied:
+** abs z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (abs_s32_z_untied, svint32_t,
+ z0 = svabs_s32_z (p0, z1),
+ z0 = svabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** abs_s64_z_tied1:
+** mov (z[0-9]+\.d), z0\.d
+** abs z0\.d, p0/z, \1
+** ret
+*/
+TEST_UNIFORM_Z (abs_s64_z_tied1, svint64_t,
+ z0 = svabs_s64_z (p0, z0),
+ z0 = svabs_z (p0, z0))
+
+/*
+** abs_s64_z_untied:
+** abs z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (abs_s64_z_untied, svint64_t,
+ z0 = svabs_s64_z (p0, z1),
+ z0 = svabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** abs_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** abs z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (abs_s8_z_tied1, svint8_t,
+ z0 = svabs_s8_z (p0, z0),
+ z0 = svabs_z (p0, z0))
+
+/*
+** abs_s8_z_untied:
+** abs z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (abs_s8_z_untied, svint8_t,
+ z0 = svabs_s8_z (p0, z1),
+ z0 = svabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cls_s16_z:
+** cls z0\.h, p0/z, z4\.h
+** ret
+*/
+TEST_DUAL_Z (cls_s16_z, svuint16_t, svint16_t,
+ z0 = svcls_s16_z (p0, z4),
+ z0 = svcls_z (p0, z4))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cls_s32_z:
+** cls z0\.s, p0/z, z4\.s
+** ret
+*/
+TEST_DUAL_Z (cls_s32_z, svuint32_t, svint32_t,
+ z0 = svcls_s32_z (p0, z4),
+ z0 = svcls_z (p0, z4))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cls_s64_z:
+** cls z0\.d, p0/z, z4\.d
+** ret
+*/
+TEST_DUAL_Z (cls_s64_z, svuint64_t, svint64_t,
+ z0 = svcls_s64_z (p0, z4),
+ z0 = svcls_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cls_s8_z:
+** cls z0\.b, p0/z, z4\.b
+** ret
+*/
+TEST_DUAL_Z (cls_s8_z, svuint8_t, svint8_t,
+ z0 = svcls_s8_z (p0, z4),
+ z0 = svcls_z (p0, z4))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_s16_z:
+** clz z0\.h, p0/z, z4\.h
+** ret
+*/
+TEST_DUAL_Z (clz_s16_z, svuint16_t, svint16_t,
+ z0 = svclz_s16_z (p0, z4),
+ z0 = svclz_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_s32_z:
+** clz z0\.s, p0/z, z4\.s
+** ret
+*/
+TEST_DUAL_Z (clz_s32_z, svuint32_t, svint32_t,
+ z0 = svclz_s32_z (p0, z4),
+ z0 = svclz_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_s64_z:
+** clz z0\.d, p0/z, z4\.d
+** ret
+*/
+TEST_DUAL_Z (clz_s64_z, svuint64_t, svint64_t,
+ z0 = svclz_s64_z (p0, z4),
+ z0 = svclz_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_s8_z:
+** clz z0\.b, p0/z, z4\.b
+** ret
+*/
+TEST_DUAL_Z (clz_s8_z, svuint8_t, svint8_t,
+ z0 = svclz_s8_z (p0, z4),
+ z0 = svclz_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_u16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** clz z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (clz_u16_z_tied1, svuint16_t,
+ z0 = svclz_u16_z (p0, z0),
+ z0 = svclz_z (p0, z0))
+
+/*
+** clz_u16_z_untied:
+** clz z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (clz_u16_z_untied, svuint16_t,
+ z0 = svclz_u16_z (p0, z1),
+ z0 = svclz_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_u32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** clz z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (clz_u32_z_tied1, svuint32_t,
+ z0 = svclz_u32_z (p0, z0),
+ z0 = svclz_z (p0, z0))
+
+/*
+** clz_u32_z_untied:
+** clz z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (clz_u32_z_untied, svuint32_t,
+ z0 = svclz_u32_z (p0, z1),
+ z0 = svclz_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_u64_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** clz z0\.d, p0/z, \1\.d
+** ret
+*/
+TEST_UNIFORM_Z (clz_u64_z_tied1, svuint64_t,
+ z0 = svclz_u64_z (p0, z0),
+ z0 = svclz_z (p0, z0))
+
+/*
+** clz_u64_z_untied:
+** clz z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (clz_u64_z_untied, svuint64_t,
+ z0 = svclz_u64_z (p0, z1),
+ z0 = svclz_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** clz_u8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** clz z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (clz_u8_z_tied1, svuint8_t,
+ z0 = svclz_u8_z (p0, z0),
+ z0 = svclz_z (p0, z0))
+
+/*
+** clz_u8_z_untied:
+** clz z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (clz_u8_z_untied, svuint8_t,
+ z0 = svclz_u8_z (p0, z1),
+ z0 = svclz_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s16_z_tied1, svint16_t,
+ z0 = svcnot_s16_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_s16_z_untied:
+** cnot z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s16_z_untied, svint16_t,
+ z0 = svcnot_s16_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s32_z_tied1, svint32_t,
+ z0 = svcnot_s32_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_s32_z_untied:
+** cnot z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s32_z_untied, svint32_t,
+ z0 = svcnot_s32_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_s64_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.d, p0/z, \1\.d
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s64_z_tied1, svint64_t,
+ z0 = svcnot_s64_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_s64_z_untied:
+** cnot z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s64_z_untied, svint64_t,
+ z0 = svcnot_s64_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s8_z_tied1, svint8_t,
+ z0 = svcnot_s8_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_s8_z_untied:
+** cnot z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (cnot_s8_z_untied, svint8_t,
+ z0 = svcnot_s8_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_u16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u16_z_tied1, svuint16_t,
+ z0 = svcnot_u16_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_u16_z_untied:
+** cnot z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u16_z_untied, svuint16_t,
+ z0 = svcnot_u16_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_u32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u32_z_tied1, svuint32_t,
+ z0 = svcnot_u32_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_u32_z_untied:
+** cnot z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u32_z_untied, svuint32_t,
+ z0 = svcnot_u32_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_u64_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.d, p0/z, \1\.d
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u64_z_tied1, svuint64_t,
+ z0 = svcnot_u64_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_u64_z_untied:
+** cnot z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u64_z_untied, svuint64_t,
+ z0 = svcnot_u64_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnot_u8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnot z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u8_z_tied1, svuint8_t,
+ z0 = svcnot_u8_z (p0, z0),
+ z0 = svcnot_z (p0, z0))
+
+/*
+** cnot_u8_z_untied:
+** cnot z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (cnot_u8_z_untied, svuint8_t,
+ z0 = svcnot_u8_z (p0, z1),
+ z0 = svcnot_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_bf16_z:
+** cnt z0\.h, p0/z, z4\.h
+** ret
+*/
+TEST_DUAL_Z (cnt_bf16_z, svuint16_t, svbfloat16_t,
+ z0 = svcnt_bf16_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_f16_z:
+** cnt z0\.h, p0/z, z4\.h
+** ret
+*/
+TEST_DUAL_Z (cnt_f16_z, svuint16_t, svfloat16_t,
+ z0 = svcnt_f16_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_f32_z:
+** cnt z0\.s, p0/z, z4\.s
+** ret
+*/
+TEST_DUAL_Z (cnt_f32_z, svuint32_t, svfloat32_t,
+ z0 = svcnt_f32_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_f64_z:
+** cnt z0\.d, p0/z, z4\.d
+** ret
+*/
+TEST_DUAL_Z (cnt_f64_z, svuint64_t, svfloat64_t,
+ z0 = svcnt_f64_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_s16_z:
+** cnt z0\.h, p0/z, z4\.h
+** ret
+*/
+TEST_DUAL_Z (cnt_s16_z, svuint16_t, svint16_t,
+ z0 = svcnt_s16_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_s32_z:
+** cnt z0\.s, p0/z, z4\.s
+** ret
+*/
+TEST_DUAL_Z (cnt_s32_z, svuint32_t, svint32_t,
+ z0 = svcnt_s32_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_s64_z:
+** cnt z0\.d, p0/z, z4\.d
+** ret
+*/
+TEST_DUAL_Z (cnt_s64_z, svuint64_t, svint64_t,
+ z0 = svcnt_s64_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_s8_z:
+** cnt z0\.b, p0/z, z4\.b
+** ret
+*/
+TEST_DUAL_Z (cnt_s8_z, svuint8_t, svint8_t,
+ z0 = svcnt_s8_z (p0, z4),
+ z0 = svcnt_z (p0, z4))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_u16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnt z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u16_z_tied1, svuint16_t,
+ z0 = svcnt_u16_z (p0, z0),
+ z0 = svcnt_z (p0, z0))
+
+/*
+** cnt_u16_z_untied:
+** cnt z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u16_z_untied, svuint16_t,
+ z0 = svcnt_u16_z (p0, z1),
+ z0 = svcnt_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_u32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnt z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u32_z_tied1, svuint32_t,
+ z0 = svcnt_u32_z (p0, z0),
+ z0 = svcnt_z (p0, z0))
+
+/*
+** cnt_u32_z_untied:
+** cnt z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u32_z_untied, svuint32_t,
+ z0 = svcnt_u32_z (p0, z1),
+ z0 = svcnt_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_u64_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnt z0\.d, p0/z, \1\.d
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u64_z_tied1, svuint64_t,
+ z0 = svcnt_u64_z (p0, z0),
+ z0 = svcnt_z (p0, z0))
+
+/*
+** cnt_u64_z_untied:
+** cnt z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u64_z_untied, svuint64_t,
+ z0 = svcnt_u64_z (p0, z1),
+ z0 = svcnt_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** cnt_u8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** cnt z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u8_z_tied1, svuint8_t,
+ z0 = svcnt_u8_z (p0, z0),
+ z0 = svcnt_z (p0, z0))
+
+/*
+** cnt_u8_z_untied:
+** cnt z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (cnt_u8_z_untied, svuint8_t,
+ z0 = svcnt_u8_z (p0, z1),
+ z0 = svcnt_z (p0, z1))
+
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** neg_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** neg z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (neg_s16_z_tied1, svint16_t,
+ z0 = svneg_s16_z (p0, z0),
+ z0 = svneg_z (p0, z0))
+
+/*
+** neg_s16_z_untied:
+** neg z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (neg_s16_z_untied, svint16_t,
+ z0 = svneg_s16_z (p0, z1),
+ z0 = svneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** neg_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** neg z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (neg_s32_z_tied1, svint32_t,
+ z0 = svneg_s32_z (p0, z0),
+ z0 = svneg_z (p0, z0))
+
+/*
+** neg_s32_z_untied:
+** neg z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (neg_s32_z_untied, svint32_t,
+ z0 = svneg_s32_z (p0, z1),
+ z0 = svneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** neg_s64_z_tied1:
+** mov (z[0-9]+\.d), z0\.d
+** neg z0\.d, p0/z, \1
+** ret
+*/
+TEST_UNIFORM_Z (neg_s64_z_tied1, svint64_t,
+ z0 = svneg_s64_z (p0, z0),
+ z0 = svneg_z (p0, z0))
+
+/*
+** neg_s64_z_untied:
+** neg z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (neg_s64_z_untied, svint64_t,
+ z0 = svneg_s64_z (p0, z1),
+ z0 = svneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** neg_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** neg z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (neg_s8_z_tied1, svint8_t,
+ z0 = svneg_s8_z (p0, z0),
+ z0 = svneg_z (p0, z0))
+
+/*
+** neg_s8_z_untied:
+** neg z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (neg_s8_z_untied, svint8_t,
+ z0 = svneg_s8_z (p0, z1),
+ z0 = svneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (not_s16_z_tied1, svint16_t,
+ z0 = svnot_s16_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_s16_z_untied:
+** not z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (not_s16_z_untied, svint16_t,
+ z0 = svnot_s16_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (not_s32_z_tied1, svint32_t,
+ z0 = svnot_s32_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_s32_z_untied:
+** not z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (not_s32_z_untied, svint32_t,
+ z0 = svnot_s32_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_s64_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.d, p0/z, \1\.d
+** ret
+*/
+TEST_UNIFORM_Z (not_s64_z_tied1, svint64_t,
+ z0 = svnot_s64_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_s64_z_untied:
+** not z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (not_s64_z_untied, svint64_t,
+ z0 = svnot_s64_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (not_s8_z_tied1, svint8_t,
+ z0 = svnot_s8_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_s8_z_untied:
+** not z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (not_s8_z_untied, svint8_t,
+ z0 = svnot_s8_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_u16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (not_u16_z_tied1, svuint16_t,
+ z0 = svnot_u16_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_u16_z_untied:
+** not z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (not_u16_z_untied, svuint16_t,
+ z0 = svnot_u16_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_u32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (not_u32_z_tied1, svuint32_t,
+ z0 = svnot_u32_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_u32_z_untied:
+** not z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (not_u32_z_untied, svuint32_t,
+ z0 = svnot_u32_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_u64_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.d, p0/z, \1\.d
+** ret
+*/
+TEST_UNIFORM_Z (not_u64_z_tied1, svuint64_t,
+ z0 = svnot_u64_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_u64_z_untied:
+** not z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (not_u64_z_untied, svuint64_t,
+ z0 = svnot_u64_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** not_u8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** not z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (not_u8_z_tied1, svuint8_t,
+ z0 = svnot_u8_z (p0, z0),
+ z0 = svnot_z (p0, z0))
+
+/*
+** not_u8_z_untied:
+** not z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (not_u8_z_untied, svuint8_t,
+ z0 = svnot_u8_z (p0, z1),
+ z0 = svnot_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qabs_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** sqabs z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s16_z_tied1, svint16_t,
+ z0 = svqabs_s16_z (p0, z0),
+ z0 = svqabs_z (p0, z0))
+
+/*
+** qabs_s16_z_untied:
+** sqabs z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s16_z_untied, svint16_t,
+ z0 = svqabs_s16_z (p0, z1),
+ z0 = svqabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qabs_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** sqabs z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s32_z_tied1, svint32_t,
+ z0 = svqabs_s32_z (p0, z0),
+ z0 = svqabs_z (p0, z0))
+
+/*
+** qabs_s32_z_untied:
+** sqabs z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s32_z_untied, svint32_t,
+ z0 = svqabs_s32_z (p0, z1),
+ z0 = svqabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qabs_s64_z_tied1:
+** mov (z[0-9]+\.d), z0\.d
+** sqabs z0\.d, p0/z, \1
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s64_z_tied1, svint64_t,
+ z0 = svqabs_s64_z (p0, z0),
+ z0 = svqabs_z (p0, z0))
+
+/*
+** qabs_s64_z_untied:
+** sqabs z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s64_z_untied, svint64_t,
+ z0 = svqabs_s64_z (p0, z1),
+ z0 = svqabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qabs_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** sqabs z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s8_z_tied1, svint8_t,
+ z0 = svqabs_s8_z (p0, z0),
+ z0 = svqabs_z (p0, z0))
+
+/*
+** qabs_s8_z_untied:
+** sqabs z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (qabs_s8_z_untied, svint8_t,
+ z0 = svqabs_s8_z (p0, z1),
+ z0 = svqabs_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qneg_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** sqneg z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s16_z_tied1, svint16_t,
+ z0 = svqneg_s16_z (p0, z0),
+ z0 = svqneg_z (p0, z0))
+
+/*
+** qneg_s16_z_untied:
+** sqneg z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s16_z_untied, svint16_t,
+ z0 = svqneg_s16_z (p0, z1),
+ z0 = svqneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qneg_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** sqneg z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s32_z_tied1, svint32_t,
+ z0 = svqneg_s32_z (p0, z0),
+ z0 = svqneg_z (p0, z0))
+
+/*
+** qneg_s32_z_untied:
+** sqneg z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s32_z_untied, svint32_t,
+ z0 = svqneg_s32_z (p0, z1),
+ z0 = svqneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qneg_s64_z_tied1:
+** mov (z[0-9]+\.d), z0\.d
+** sqneg z0\.d, p0/z, \1
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s64_z_tied1, svint64_t,
+ z0 = svqneg_s64_z (p0, z0),
+ z0 = svqneg_z (p0, z0))
+
+/*
+** qneg_s64_z_untied:
+** sqneg z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s64_z_untied, svint64_t,
+ z0 = svqneg_s64_z (p0, z1),
+ z0 = svqneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** qneg_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** sqneg z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s8_z_tied1, svint8_t,
+ z0 = svqneg_s8_z (p0, z0),
+ z0 = svqneg_z (p0, z0))
+
+/*
+** qneg_s8_z_untied:
+** sqneg z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (qneg_s8_z_untied, svint8_t,
+ z0 = svqneg_s8_z (p0, z1),
+ z0 = svqneg_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_s16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** rbit z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s16_z_tied1, svint16_t,
+ z0 = svrbit_s16_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_s16_z_untied:
+** rbit z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s16_z_untied, svint16_t,
+ z0 = svrbit_s16_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_s32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** rbit z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s32_z_tied1, svint32_t,
+ z0 = svrbit_s32_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_s32_z_untied:
+** rbit z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s32_z_untied, svint32_t,
+ z0 = svrbit_s32_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_s64_z_tied1:
+** mov (z[0-9]+\.d), z0\.d
+** rbit z0\.d, p0/z, \1
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s64_z_tied1, svint64_t,
+ z0 = svrbit_s64_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_s64_z_untied:
+** rbit z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s64_z_untied, svint64_t,
+ z0 = svrbit_s64_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_s8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** rbit z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s8_z_tied1, svint8_t,
+ z0 = svrbit_s8_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_s8_z_untied:
+** rbit z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (rbit_s8_z_untied, svint8_t,
+ z0 = svrbit_s8_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_u16_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** rbit z0\.h, p0/z, \1\.h
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u16_z_tied1, svuint16_t,
+ z0 = svrbit_u16_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_u16_z_untied:
+** rbit z0\.h, p0/z, z1\.h
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u16_z_untied, svuint16_t,
+ z0 = svrbit_u16_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_u32_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** rbit z0\.s, p0/z, \1\.s
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u32_z_tied1, svuint32_t,
+ z0 = svrbit_u32_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_u32_z_untied:
+** rbit z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u32_z_untied, svuint32_t,
+ z0 = svrbit_u32_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_u64_z_tied1:
+** mov (z[0-9]+\.d), z0\.d
+** rbit z0\.d, p0/z, \1
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u64_z_tied1, svuint64_t,
+ z0 = svrbit_u64_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_u64_z_untied:
+** rbit z0\.d, p0/z, z1\.d
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u64_z_untied, svuint64_t,
+ z0 = svrbit_u64_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rbit_u8_z_tied1:
+** mov (z[0-9]+)\.d, z0\.d
+** rbit z0\.b, p0/z, \1\.b
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u8_z_tied1, svuint8_t,
+ z0 = svrbit_u8_z (p0, z0),
+ z0 = svrbit_z (p0, z0))
+
+/*
+** rbit_u8_z_untied:
+** rbit z0\.b, p0/z, z1\.b
+** ret
+*/
+TEST_UNIFORM_Z (rbit_u8_z_untied, svuint8_t,
+ z0 = svrbit_u8_z (p0, z1),
+ z0 = svrbit_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+#include "test_sve_acle.h"
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** recpe_u32_z_tied1:
+** urecpe z0\.s, p0/z, z0\.s
+** ret
+*/
+TEST_UNIFORM_Z (recpe_u32_z_tied1, svuint32_t,
+ z0 = svrecpe_u32_z (p0, z0),
+ z0 = svrecpe_z (p0, z0))
+
+/*
+** recpe_u32_z_untied:
+** urecpe z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (recpe_u32_z_untied, svuint32_t,
+ z0 = svrecpe_u32_z (p0, z1),
+ z0 = svrecpe_z (p0, z1))
--- /dev/null
+/* { dg-do assemble { target aarch64_asm_sve2p2_ok } } */
+/* { dg-do compile { target { ! aarch64_asm_sve2p2_ok } } } */
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sve_acle.h"
+
+#pragma GCC target "+sve2p2"
+#ifdef STREAMING_COMPATIBLE
+#pragma GCC target "+sme2p2"
+#endif
+
+/*
+** rsqrte_u32_z_tied1:
+** ursqrte z0\.s, p0/z, z0\.s
+** ret
+*/
+TEST_UNIFORM_Z (rsqrte_u32_z_tied1, svuint32_t,
+ z0 = svrsqrte_u32_z (p0, z0),
+ z0 = svrsqrte_z (p0, z0))
+
+/*
+** rsqrte_u32_z_untied:
+** ursqrte z0\.s, p0/z, z1\.s
+** ret
+*/
+TEST_UNIFORM_Z (rsqrte_u32_z_untied, svuint32_t,
+ z0 = svrsqrte_u32_z (p0, z1),
+ z0 = svrsqrte_z (p0, z1))