1  /* { dg-do run { target aarch64_sve_hw } } */
       2  /* { dg-options "-O2 -ftree-vectorize" } */
       3  
       4  #include "pack_fcvt_unsigned_1.c"
       5  
       6  #define ARRAY_SIZE 157
       7  
       8  #define VAL1 (i * 9584.3432)
       9  
      10  int __attribute__ ((optimize (1)))
      11  main (void)
      12  {
      13    static uint32_t array_dest[ARRAY_SIZE];
      14    double array_source[ARRAY_SIZE];
      15  
      16    for (int i = 0; i < ARRAY_SIZE; i++)
      17      {
      18        array_source[i] = VAL1;
      19        asm volatile ("" ::: "memory");
      20      }
      21  
      22    pack_int_double_plus_7 (array_dest, array_source, ARRAY_SIZE);
      23    for (int i = 0; i < ARRAY_SIZE; i++)
      24      if (array_dest[i] != (uint32_t) VAL1 + 7)
      25        __builtin_abort ();
      26  
      27    return 0;
      28  }