blob: 3190448e0936b9d5265f538304f9d20f13927339 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O3 -march=armv8.2-a" } */
#include "vect-shr-reg.c"
int
main(void)
{
int64_t a[16];
int64_t b[16];
int64_t c[17];
uint64_t ua[16];
uint64_t ub[16];
uint64_t uc[17];
int64_t res_a[16];
uint64_t res_ua[16];
int i;
/* Set up inputs. */
for (i = 0; i < 16; i++)
{
b[i] = -2;
c[i] = 34;
ub[i] = 0xffffffffffffffff;
uc[i] = 52;
}
/* Set up reference values. */
for (i = 0; i < 16; i++)
{
res_a[i] = -1LL;
res_ua[i] = 0x0fffLL;
}
/* Do the shifts. */
f (ua, ub, uc);
g (a, b, c);
/* Compare outputs against reference values. */
for (i = 0; i < 16; i++)
{
if (a[i] != res_a[i])
__builtin_abort ();
if (ua[i] != res_ua[i])
__builtin_abort ();
}
return 0;
}