(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
pru/
ashiftdi-1.c
       1  /* Functional test for DI left shift.  */
       2  
       3  /* { dg-do run } */
       4  /* { dg-options "-pedantic-errors" } */
       5  
       6  #include <stddef.h>
       7  #include <stdint.h>
       8  
       9  extern void abort (void);
      10  
      11  uint64_t __attribute__((noinline)) ashift_1 (uint64_t a)
      12  {
      13    return a << 1;
      14  }
      15  
      16  uint64_t __attribute__((noinline)) ashift_10 (uint64_t a)
      17  {
      18    return a << 10;
      19  }
      20  
      21  uint64_t __attribute__((noinline)) ashift_32 (uint64_t a)
      22  {
      23    return a << 32;
      24  }
      25  
      26  uint64_t __attribute__((noinline)) ashift_36 (uint64_t a)
      27  {
      28    return a << 36;
      29  }
      30  
      31  int
      32  main (int argc, char** argv)
      33  {
      34    if (ashift_1 (0xaaaa5555aaaa5555ull) != 0x5554aaab5554aaaaull)
      35      abort();
      36    if (ashift_10 (0xaaaa5555aaaa5555ull) != 0xa95556aaa9555400ull)
      37      abort();
      38    if (ashift_32 (0xaaaa5555aaaa5555ull) != 0xaaaa555500000000ull)
      39      abort();
      40    if (ashift_36 (0xaaaa5555aaaa5555ull) != 0xaaa5555000000000ull)
      41      abort();
      42  
      43    if (ashift_1 (0x1234567822334455ull) != 0x2468acf0446688aaull)
      44      abort();
      45    if (ashift_10 (0x1234567822334455ull) != 0xd159e088cd115400ull)
      46      abort();
      47    if (ashift_32 (0x1234567822334455ull) != 0x2233445500000000ull)
      48      abort();
      49    if (ashift_36 (0x1234567822334455ull) != 0x2334455000000000ull)
      50      abort();
      51  
      52    return 0;
      53  }