(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arc/
mulsi3_highpart-1.c
       1  /* { dg-do run } */
       2  /* { dg-options "-save-temps -O2" } */
       3  
       4  #include <stdlib.h>
       5  
       6  /* Hide value propagation from the optimizers.  */
       7  static int
       8  id (int i)
       9  {
      10    asm ("": "+r" (i));
      11    return i;
      12  }
      13  
      14  static int
      15  mulhigh (unsigned a, unsigned b)
      16  {
      17    return (unsigned long long) a * b >> 32;
      18  }
      19  
      20  int
      21  main (void)
      22  {
      23    if (mulhigh (id (0x12345678), id (0x90abcdef)) != 0xa49a83e)
      24      abort ();
      25    return 0;
      26  }
      27  
      28  /* { dg-final { scan-assembler "mpyhu\[ \t\]" { target { arc700 } } } } */
      29  /* { dg-final { scan-assembler "mpy.u\[ \t\]" { target { { ! { arc700 } } && arcmpy } } } } */