(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
pr69307.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -fselective-scheduling -mtune=arm1136j-s" } */
       3  
       4  typedef unsigned char uint8_t;
       5  typedef unsigned short int uint16_t;
       6  typedef unsigned int uint32_t;
       7  typedef unsigned long long int uint64_t;
       8  typedef uint8_t u8;
       9  typedef uint16_t u16;
      10  typedef uint32_t u32;
      11  typedef uint64_t u64;
      12  u64 __attribute__((noinline, noclone))
      13  foo(u8 u8_0, u16 u16_0, u32 u32_0, u64 u64_0, u8 u8_1, u16 u16_1, u32 u32_1, u64 u64_1, u8 u8_2, u16 u16_2, u32 u32_2, u64 u64_2, u8 u8_3, u16 u16_3, u32 u32_3, u64 u64_3)
      14  {
      15    u8 *p8_2 = &u8_2;
      16    u16 *p16_2 = &u16_2;
      17    u8 *p8_3 = &u8_3;
      18    u64 *p64_3 = &u64_3;
      19    p8_2 = &u8_3;
      20    *p8_3 -= *p64_3;
      21    *p8_2 = (u64)*p8_2 % ((u64)*p8_2 | 3);
      22    u8_2 = (u64)u8_2 / ((u64)*p16_2 | 1);
      23    u16_0 = (u64)u16_0 % ((u64)*p8_2 | 3);
      24    return u8_0 + u16_0 + u32_0 + u64_0 + u8_1 + u16_1 + u32_1 + u64_1 + u8_2 + u16_2 + u32_2 + u64_2 + u8_3 + u16_3 + u32_3 + u64_3;
      25  }
      26  int main()
      27  {
      28    u64 x = 0;
      29    x += foo(3llu, 6llu, 15llu, 28llu, 5llu, 11llu, 20llu, 44llu, 7llu, 10llu, 20llu, 55llu, 0llu, 9llu, 17llu, 48llu);
      30    __builtin_printf("%02x%02x%02x%02x%02x%02x%02x%02x\n", (unsigned)((x >> 0) & 0xff), (unsigned)((x >> 8) & 0xff), (unsigned)((x >> 16) & 0xff), (unsigned)((x >> 24) & 0xff), (unsigned)((x >> 32) & 0xff), (unsigned)((x >> 40) & 0xff), (unsigned)((x >> 48) & 0xff), (unsigned)((x >> 56) & 0xff));
      31    if (x != 0x1f3)
      32      __builtin_abort();
      33    return 0;
      34  }