(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
fcvtz_unsigned_1_run.c
       1  /* { dg-do run { target aarch64_sve_hw } } */
       2  /* { dg-options "-O2 -ftree-vectorize" } */
       3  
       4  #include "fcvtz_unsigned_1.c"
       5  
       6  #define ARRAY_SIZE 75
       7  
       8  #define VAL1 (i * 19)
       9  #define VAL2 (i * 2574.33)
      10  #define VAL3 ((double) (i * 0xff23efef))
      11  
      12  int __attribute__ ((optimize (1)))
      13  main (void)
      14  {
      15    static uint16_t array_dest16[ARRAY_SIZE];
      16    static uint32_t array_dest32[ARRAY_SIZE];
      17    static uint64_t array_dest64[ARRAY_SIZE];
      18  
      19    _Float16 array_source16[ARRAY_SIZE];
      20    float array_source32[ARRAY_SIZE];
      21    double array_source64[ARRAY_SIZE];
      22  
      23    for (int i = 0; i < ARRAY_SIZE; i++)
      24      {
      25        array_source16[i] = VAL1;
      26        array_source32[i] = VAL2;
      27        array_source64[i] = VAL3;
      28        asm volatile ("" ::: "memory");
      29      }
      30  
      31    vfcvtz_16 (array_dest16, array_source16, ARRAY_SIZE);
      32    for (int i = 0; i < ARRAY_SIZE; i++)
      33      if (array_dest16[i] != (uint16_t) VAL1)
      34        __builtin_abort ();
      35  
      36    vfcvtz_32 (array_dest32, array_source32, ARRAY_SIZE);
      37    for (int i = 0; i < ARRAY_SIZE; i++)
      38      if (array_dest32[i] != (uint32_t) VAL2)
      39        __builtin_abort ();
      40  
      41    vfcvtz_64 (array_dest64, array_source64, ARRAY_SIZE);
      42    for (int i = 0; i < ARRAY_SIZE; i++)
      43      if (array_dest64[i] != (uint64_t) VAL3)
      44        __builtin_abort ();
      45  
      46    return 0;
      47  }