1 /* { dg-do compile } */
2 /* { dg-require-effective-target ia32 } */
3 /* { dg-skip-if "" { *-*-* } { "-march=*" } { "-march=i386" } } */
4 /* { dg-options "-O2 -march=i386 -ffast-math -masm=att" } */
5 
6 extern short s;
7 
test_f_s(short x)8 int test_f_s (short x)
9 {
10   return (float)x > s;
11 }
12 
test_d_s(short x)13 int test_d_s (short x)
14 {
15   return (double)x < s;
16 }
17 
test_ld_s(short x)18 int test_ld_s (short x)
19 {
20   return (long double)x == s;
21 }
22 
23 extern int i;
24 
test_f_i(int x)25 int test_f_i (int x)
26 {
27   return (float)i >= x;
28 }
29 
test_d_i(int x)30 int test_d_i (int x)
31 {
32   return (double)i <= x;
33 }
34 
test_ld_i(int x)35 int test_ld_i (int x)
36 {
37   return (long double)i != x;
38 }
39 
40 /* { dg-final { scan-assembler-times "ficomp\[s\t\]" 3 } } */
41 /* { dg-final { scan-assembler-times "ficompl" 3 } } */
42