(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
20050824-1.c
       1  /* Make sure that the S/390 specific shift_count_operand
       2     predicate work properly.  */
       3  
       4  /* { dg-do compile } */
       5  /* { dg-options "-O3" } */
       6  
       7  unsigned long long
       8  f (unsigned long long a, unsigned long b)
       9  {
      10    asm ("" : : : 
      11  #ifdef __s390x__
      12  		"r13", "r14",
      13  #endif
      14  		"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", 
      15                  "r8", "r9", "r10", "r11", "r12");
      16  
      17    return a << ((b + 3) & 63);
      18  }
      19  
      20  unsigned long long
      21  g (unsigned long long a, char **b , int c, int d, int e, int f)
      22  {
      23    char buffer [4096];
      24  
      25    *b = &buffer[0];
      26  
      27    return a << ((unsigned long)&f & 63);
      28  }
      29  
      30  unsigned long long
      31  h (unsigned long long a, int b, int c, int d, int e, int f)
      32  {
      33    return a << (((unsigned long)&f + 3));
      34  }