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