summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c
blob: 5f32ba2818fbaeb4355f488fb1a55e6071dfe5c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* 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);
}