1  /* This test requires widening_mul */
       2  /* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */
       3  /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
       4  /* { dg-final { scan-assembler "\tdmult\t" } } */
       5  /* { dg-final { scan-assembler "\tmfhi\t" } } */
       6  /* { dg-final { scan-assembler-not "\tmflo\t" } } */
       7  
       8  typedef int TI __attribute__((mode(TI)));
       9  typedef int DI __attribute__((mode(DI)));
      10  
      11  MIPS16 DI
      12  f (DI x, DI y)
      13  {
      14    return ((TI) x * y) >> 64;
      15  }