PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / usmul.c
blob42b447a27fc3f06072449a945d09f5cf0c19dba6
1 /* { dg-require-effective-target int32plus } */
2 int __attribute__ ((noinline)) foo (short x, unsigned short y)
4 return x * y;
7 int __attribute__ ((noinline)) bar (unsigned short x, short y)
9 return x * y;
12 int main ()
14 if (foo (-2, 0xffff) != -131070)
15 abort ();
16 if (foo (2, 0xffff) != 131070)
17 abort ();
18 if (foo (-32768, 0x8000) != -1073741824)
19 abort ();
20 if (foo (32767, 0x8000) != 1073709056)
21 abort ();
23 if (bar (0xffff, -2) != -131070)
24 abort ();
25 if (bar (0xffff, 2) != 131070)
26 abort ();
27 if (bar (0x8000, -32768) != -1073741824)
28 abort ();
29 if (bar (0x8000, 32767) != 1073709056)
30 abort ();
32 exit (0);