fr450-builtins-9.c   [plain text]


/* Test a situation in which an M6 instruction (mdcutssi) and M4 instruction
   (mqmulhu) can be issued together.  */
/* { dg-options "-O2 -mcpu=fr450" } */
/* { dg-do compile } */
/* { dg-final { scan-assembler "mqmulhu.p\[^\t\]*\t*mdcutssi" } } */
extern void abort (void);
extern void exit (int);

int
main ()
{
  __MQMULHU (0, 0x0001001101111111ULL, 0x0001000200030004ULL);
  __MQMULHU (8, 0x0002002202222222ULL, 0x0004000400040004ULL);
  if (__MDCUTSSI (0, 8)
      + __MDCUTSSI (2, 8)
      + __MDCUTSSI (8, 8)
      + __MDCUTSSI (10, 8)
      != (0x0000000100000022ULL + 0x0000033300004444ULL
	  + 0x0000000800000088ULL + 0x0000088800008888ULL))
    abort ();

  exit (0);
}