(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
pr63424.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3" } */
       3  
       4  #include <stdint.h>
       5  
       6  uint32_t
       7  truncate_int (const unsigned long long value)
       8  {
       9    if ( value < 0 )
      10      {
      11        return 0;
      12      }
      13    else if ( value > UINT32_MAX )
      14      {
      15        return UINT32_MAX;
      16      }
      17    else
      18      return (uint32_t)value;
      19  }
      20  
      21  uint32_t
      22  mul (const unsigned long long x, const unsigned long long y)
      23  {
      24    uint32_t value = truncate_int (x * y);
      25    return value;
      26  }
      27  
      28  uint32_t *
      29  test(unsigned size, uint32_t *a, uint32_t s)
      30  {
      31    unsigned i;
      32  
      33    for (i = 0; i < size; i++)
      34      {
      35        a[i] = mul (a[i], s);
      36      }
      37  
      38    return a;
      39  }