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