(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
mve/
pr108177-main.x
#include <arm_mve.h>
extern void abort (void);

__attribute__ ((noipa)) void
write_expected (uint32x4_t v, void *a)
{
  TYPE _v = (TYPE) v;
  INTRINSIC (a, _v);
}

void test (uint32x4_t, void *, mve_pred16_t, mve_pred16_t);

int main(void)
{
  uint32x4_t v = {0, 1, 2, 3};
  uint32_t actual[] = {0, 0, 0, 0};
  uint32_t expected[] = {0, 0, 0, 0};

  write_expected (v, &(expected[0]));

  mve_pred16_t p1 = 0xff00;
  mve_pred16_t p2 = 0x00ff;

  test (v, (void *)&actual[0], p1, p2);

  if (__builtin_memcmp (&actual[0], &expected[0], 16) != 0)
    abort ();

  return 0;
}