Kyrylo Tkachov <ktkac...@nvidia.com> writes: >> +(define_insn "*aarch64_pred_fcmuo<mode>_acle" >> + [(set (match_operand:VNx16BI 0 "register_operand") > > Looks like a “”=w” constraint is missing here.
Argh! Thanks for catching that. I went through and checked for missing constraints in the other new patterns but it looks like this might be the only one. It seems that I also left a lot of redundant constraints on define_expands though :( I've gone through and removed them. Richard > Ok otherwise. > Thanks, > Kyrill > > >> + (and:VNx16BI >> + (subreg:VNx16BI >> + (unspec:<VPRED> >> + [(match_operand:<VPRED> 1 "aarch64_predicate_operand" "Upl") >> + (match_operand:SI 2 "aarch64_sve_ptrue_flag") >> + (match_operand:SVE_F 3 "register_operand" "w") >> + (match_operand:SVE_F 4 "register_operand" "w")] >> + UNSPEC_COND_FCMUO) >> + 0) >> + (match_operand:<VPRED> 5 "aarch64_ptrue_all_operand")))] >> + "TARGET_SVE" >> + "fcmuo\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>" >> +) >> + >> ;; Floating-point comparisons predicated on a PTRUE, with the results ANDed >> ;; with another predicate P. This does not have the same trapping behavior >> ;; as predicating the comparison itself on P, but it's a legitimate fold, >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_6.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_6.c >> new file mode 100644 >> index 00000000000..9233de90ed6 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_6.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmeq p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpeq (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmeq p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpeq (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmeq p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpeq (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmeq p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpeq (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmeq p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpeq (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmeq p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpeq (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmeq p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpeq (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_9.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_9.c >> new file mode 100644 >> index 00000000000..0d4140e69c8 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_9.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmge p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpge (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmge p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpge (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmge p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpge (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmge p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpge (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmge p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpge (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmge p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpge (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmge p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpge (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_9.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_9.c >> new file mode 100644 >> index 00000000000..dcd84f72990 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_9.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmgt p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpgt (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmgt p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpgt (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmgt p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpgt (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmgt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpgt (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmgt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpgt (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmgt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpgt (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmgt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpgt (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_9.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_9.c >> new file mode 100644 >> index 00000000000..8d008b4f9c5 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_9.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmle p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmple (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmle p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmple (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmle p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmple (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmle p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmple (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmle p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmple (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmle p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmple (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmle p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmple (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_9.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_9.c >> new file mode 100644 >> index 00000000000..4f4b7b41559 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_9.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmlt p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmplt (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmlt p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmplt (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmlt p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmplt (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmlt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmplt (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmlt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmplt (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmlt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmplt (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmlt p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmplt (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_5.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_5.c >> new file mode 100644 >> index 00000000000..94fecd86f0c >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_5.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmne p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpne (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmne p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpne (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmne p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpne (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmne p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpne (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmne p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpne (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmne p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpne (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmne p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpne (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpuo_1.c >> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpuo_1.c >> new file mode 100644 >> index 00000000000..4b124b3a19d >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpuo_1.c >> @@ -0,0 +1,104 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2" } */ >> +/* { dg-final { check-function-bodies "**" "" } } */ >> + >> +#include <arm_sve.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +/* >> +** test1: >> +** fcmuo p0\.h, p0/z, z0\.h, z1\.h >> +** ret >> +*/ >> +svbool_t >> +test1 (svbool_t pg, svfloat16_t x, svfloat16_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpuo (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test2: >> +** fcmuo p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test2 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpuo (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test3: >> +** fcmuo p0\.s, p0/z, z0\.s, z1\.s >> +** ret >> +*/ >> +svbool_t >> +test3 (svbool_t pg, svfloat32_t x, svfloat32_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpuo (pg, x, y), >> + svptrue_b32 ()); >> +} >> + >> +/* >> +** test4: >> +** fcmuo p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test4 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpuo (pg, x, y), >> + svptrue_b16 ()); >> +} >> + >> +/* >> +** test5: >> +** fcmuo p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test5 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpuo (pg, x, y), >> + svptrue_b8 ()); >> +} >> + >> +/* >> +** test6: >> +** fcmuo p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test6 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b8 (), >> + svcmpuo (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +/* >> +** test7: >> +** fcmuo p0\.d, p0/z, z0\.d, z1\.d >> +** ret >> +*/ >> +svbool_t >> +test7 (svbool_t pg, svfloat64_t x, svfloat64_t y) >> +{ >> + return svand_z (svptrue_b32 (), >> + svcmpuo (pg, x, y), >> + svptrue_b64 ()); >> +} >> + >> +#ifdef __cplusplus >> +} >> +#endif >> -- >> 2.43.0 >>