1  /* { dg-do compile } */
       2  /* { dg-skip-if "" { *-*-* } { "-mcpu=msp430x" "-mlarge" } { "" } } */
       3  /* { dg-options "-mcpu=msp430" } */
       4  /* { dg-final { scan-assembler-not "__mspabi_slli_4" } } */
       5  /* { dg-final { scan-assembler-not "__mspabi_sral_2" } } */
       6  /* { dg-final { scan-assembler "__mspabi_slli_5" } } */
       7  /* { dg-final { scan-assembler "__mspabi_sral_3" } } */
       8  
       9  /* Test the default value of 4 for -mmax-inline-shift has been observed.  */
      10  
      11  volatile int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15;
      12  volatile long l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15;
      13  
      14  void
      15  ashift (void)
      16  {
      17    a1 <<= 1;
      18    a2 <<= 2;
      19    a3 <<= 3;
      20    a4 <<= 4;
      21    a5 <<= 5;
      22    a6 <<= 6;
      23    a7 <<= 7;
      24    a8 <<= 8;
      25    a9 <<= 9;
      26    a10 <<= 10;
      27    a11 <<= 11;
      28    a12 <<= 12;
      29    a13 <<= 13;
      30    a14 <<= 14;
      31    a15 <<= 15;
      32  }
      33  
      34  void
      35  ashiftrt (void)
      36  {
      37    l1  >>= 1;
      38    l2  >>= 2;
      39    l3  >>= 3;
      40    l4  >>= 4;
      41    l5  >>= 5;
      42    l6  >>= 6;
      43    l7  >>= 7;
      44    l8  >>= 8;
      45    l9  >>= 9;
      46    l10 >>= 10;
      47    l11 >>= 11;
      48    l12 >>= 12;
      49    l13 >>= 13;
      50    l14 >>= 14;
      51    l15 >>= 15;
      52  }