1 /* { dg-require-effective-target int32plus } */
foo(short x,unsigned short y)2 int __attribute__ ((noinline)) foo (short x, unsigned short y)
3 {
4   return x * y;
5 }
6 
bar(unsigned short x,short y)7 int __attribute__ ((noinline)) bar (unsigned short x, short y)
8 {
9   return x * y;
10 }
11 
main()12 int main ()
13 {
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 ();
22 
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 ();
31 
32   exit (0);
33 }
34 
35