2018-11-28 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / builtins-44.c
blob8a06b5969957ee7937fbf2e0c9466fe1c01fe732
1 /* { dg-do compile } */
2 /* { dg-require-effective-target inf } */
3 /* { dg-options "-O1 -fno-trapping-math -fno-finite-math-only -fdump-tree-optimized" } */
5 extern void f(int);
6 extern void link_error ();
8 extern float x;
9 extern double y;
10 extern long double z;
12 int
13 main ()
15 double pinf = __builtin_inf ();
16 #ifndef __SPU__
17 /* The SPU single-precision floating point format does not support Inf. */
18 float pinff = __builtin_inff ();
19 #endif
20 long double pinfl = __builtin_infl ();
22 if (__builtin_isinf (pinf) != 1)
23 link_error ();
24 #ifndef __SPU__
25 if (__builtin_isinf (pinff) != 1)
26 link_error ();
27 if (__builtin_isinff (pinff) != 1)
28 link_error ();
29 #endif
30 if (__builtin_isinf (pinfl) != 1)
31 link_error ();
32 if (__builtin_isinfl (pinfl) != 1)
33 link_error ();
35 if (__builtin_isinf_sign (-pinf) != -1)
36 link_error ();
37 #ifndef __SPU__
38 if (__builtin_isinf_sign (-pinff) != -1)
39 link_error ();
40 #endif
41 if (__builtin_isinf_sign (-pinfl) != -1)
42 link_error ();
44 if (__builtin_isinf (4.0))
45 link_error ();
46 if (__builtin_isinf (4.0))
47 link_error ();
48 if (__builtin_isinff (4.0))
49 link_error ();
50 if (__builtin_isinf (4.0))
51 link_error ();
52 if (__builtin_isinfl (4.0))
53 link_error ();
57 /* Check that all instances of link_error were subject to DCE. */
58 /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */