1 /* PR optimization/8746 */ 2 /* { dg-do run } */ 3 /* { dg-require-effective-target ia32 } */ 4 /* { dg-options "-O1 -mtune=i586" } */ 5 6 extern void abort (void); 7 8 volatile int j; 9 f0()10void f0() { j=0; } f1()11void f1() { j=1; } 12 foo(int x)13int foo(int x) 14 { 15 if ((short int)(x&0x8000) > (short int)0) 16 { 17 f0(); 18 return 0; 19 } 20 else 21 { 22 f1(); 23 return 1; 24 } 25 } 26 main(void)27int main(void) 28 { 29 if (foo(0x8000) != 1) 30 abort(); 31 32 return 0; 33 } 34