blob: 092aa386c6054a5ec8b979cb43d5fe4bc665f497 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/* { dg-do run { target { aarch64_sve_hw } } } */
/* { dg-options "-O3 -fno-inline -march=armv8-a+sve" } */
#include "sve_vec_bool_cmp_1.c"
#define N 103
#define TEST_VEC_BOOL(NAME, OP, VARTYPE, INDUCTYPE) \
{ \
INDUCTYPE i; \
VARTYPE src[N]; \
VARTYPE dst[N]; \
for (i = 0; i < N; i++) \
{ \
src[i] = i; \
dst[i] = i * 2; \
asm volatile ("" ::: "memory"); \
} \
vec_bool_##NAME##_##VARTYPE##_##INDUCTYPE (dst, src, 13, \
97, 0xFF); \
for (i = 0; i < 13; i++) \
if (dst[i] != (VARTYPE) (0 OP 1 ? i : i * 2)) \
__builtin_abort (); \
for (i = 13; i < 97; i++) \
if (dst[i] != (VARTYPE) (1 OP (i != 0x3D) ? i : i * 2)) \
__builtin_abort (); \
for (i = 97; i < N; i++) \
if (dst[i] != (i * 2)) \
__builtin_abort (); \
}
int __attribute__ ((optimize (1)))
main ()
{
TEST_ALL (TEST_VEC_BOOL)
return 0;
}
|