1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv64gc_zba -mabi=lp64 -O2" } */
       3  
       4  unsigned long
       5  f1 (unsigned long i)
       6  {
       7    return i * 200;
       8  }
       9  
      10  unsigned long
      11  f2 (unsigned long i)
      12  {
      13    return i * 783;
      14  }
      15  
      16  unsigned long
      17  f3 (unsigned long i)
      18  {
      19    return i * 784;
      20  }
      21  
      22  unsigned long
      23  f4 (unsigned long i)
      24  {
      25    return i * 1574;
      26  }
      27  
      28  /* { dg-final { scan-assembler-times "sh2add" 2 } } */
      29  /* { dg-final { scan-assembler-times "sh1add" 1 } } */
      30  /* { dg-final { scan-assembler-times "slli" 3 } } */
      31  /* { dg-final { scan-assembler-times "mul" 2 } } */