| /* { dg-do run { target aarch64_sve_hw } } */ |
| /* { dg-options "-O0 -fstack-clash-protection -g" } */ |
| |
| #include <arm_sve.h> |
| #include <stdarg.h> |
| |
| void __attribute__((noipa)) |
| callee (int foo, ...) |
| { |
| va_list va; |
| svbool_t pg, p; |
| svint8_t s8; |
| svuint16x4_t u16; |
| svfloat32x3_t f32; |
| svint64x2_t s64; |
| |
| va_start (va, foo); |
| p = va_arg (va, svbool_t); |
| s8 = va_arg (va, svint8_t); |
| u16 = va_arg (va, svuint16x4_t); |
| f32 = va_arg (va, svfloat32x3_t); |
| s64 = va_arg (va, svint64x2_t); |
| |
| pg = svptrue_b8 (); |
| |
| if (svptest_any (pg, sveor_z (pg, p, svptrue_pat_b8 (SV_VL7)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, s8, svindex_s8 (1, 2)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget4 (u16, 0), svindex_u16 (2, 3)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget4 (u16, 1), svindex_u16 (3, 4)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget4 (u16, 2), svindex_u16 (4, 5)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget4 (u16, 3), svindex_u16 (5, 6)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget3 (f32, 0), svdup_f32 (1.0)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget3 (f32, 1), svdup_f32 (2.0)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget3 (f32, 2), svdup_f32 (3.0)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget2 (s64, 0), svindex_s64 (6, 7)))) |
| __builtin_abort (); |
| |
| if (svptest_any (pg, svcmpne (pg, svget2 (s64, 1), svindex_s64 (7, 8)))) |
| __builtin_abort (); |
| } |
| |
| int __attribute__((noipa)) |
| main (void) |
| { |
| callee (100, |
| svptrue_pat_b8 (SV_VL7), |
| svindex_s8 (1, 2), |
| svcreate4 (svindex_u16 (2, 3), |
| svindex_u16 (3, 4), |
| svindex_u16 (4, 5), |
| svindex_u16 (5, 6)), |
| svcreate3 (svdup_f32 (1.0), |
| svdup_f32 (2.0), |
| svdup_f32 (3.0)), |
| svcreate2 (svindex_s64 (6, 7), |
| svindex_s64 (7, 8))); |
| } |