1  /* PR tree-optimization/45903 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  
       5  unsigned long long a, b;
       6  unsigned char c;
       7  
       8  void
       9  f1 (void)
      10  {
      11    c = (a >> 8) + (b >> 8);
      12  }
      13  
      14  void
      15  f2 (void)
      16  {
      17    c = (a >> 8) | (b >> 8);
      18  }
      19  
      20  void
      21  f3 (void)
      22  {
      23    c = (a >> 16) ^ (b >> 56);
      24  }
      25  
      26  unsigned char
      27  f4 (void)
      28  {
      29    return (a >> 48) + (b >> 40);
      30  }
      31  
      32  unsigned char
      33  f5 (void)
      34  {
      35    return (a >> 32) | (b >> 16);
      36  }
      37  
      38  unsigned char
      39  f6 (void)
      40  {
      41    return (a >> 24) ^ (b >> 32);
      42  }
      43  
      44  /* { dg-final { scan-assembler-not "shr\[qdl\]" } } */