+2018-11-05 Paul Koning <ni1d@arrl.net>
+
+ * lib/target-supports.exp: Add check for "inf" effective target
+ keyword.
+ * gcc.dg/builtins-44.c: Skip if no infinite support.
+ * gcc.dg/builtins-45.c: Ditto.
+ * gcc.dg/torture/builtin-complex-1.c: Ditto.
+ * gcc.dg/torture/builtin-cproj-1.c: Ditto.
+ * gcc.dg/torture/builtin-frexp-1.c: Ditto.
+ * gcc.dg/torture/builtin-ldexp-1.c: Ditto.
+ * gcc.dg/torture/builtin-logb-1.c: Ditto.
+ * gcc.dg/torture/builtin-math-2.c: Ditto.
+ * gcc.dg/torture/builtin-math-5.c: Ditto.
+ * gcc.dg/torture/builtin-math-7.c: Ditto.
+ * gcc.dg/torture/builtin-modf-1.c: Ditto.
+ * gcc.dg/torture/type-generic-1.c: Ditto.
+
2018-11-05 Ilya Leoshkevich <iii@linux.ibm.com>
* gcc.target/s390/md/andc-splitter-1.c: Add colon to
/* { dg-do compile } */
+/* { dg-require-effective-target inf } */
/* { dg-options "-O1 -fno-trapping-math -fno-finite-math-only -fdump-tree-optimized" } */
extern void f(int);
/* { dg-do compile } */
+/* { dg-require-effective-target inf } */
/* { dg-options "-O1 -fno-trapping-math -fno-finite-math-only -fdump-tree-optimized" } */
extern void f(int);
/* Test __builtin_complex semantics. */
/* { dg-do run } */
/* { dg-options "-std=c11 -pedantic-errors" } */
+/* { dg-require-effective-target inf } */
/* { dg-add-options ieee } */
extern void exit (int);
/* { dg-do link } */
/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+/* { dg-require-effective-target inf } */
/* { dg-add-options ieee } */
/* All references to link_error should go away at compile-time. The
/* { dg-options "-fno-finite-math-only" { target sh*-*-* } } */
/* In order to fold algebraic exprs below, targets with "composite"
floating point formats need -funsafe-math-optimizations. */
+/* { dg-require-effective-target inf } */
/* { dg-options "-funsafe-math-optimizations" { target powerpc*-*-* } } */
extern void link_error(int);
/* { dg-do link } */
/* { dg-options "-fno-finite-math-only" { target sh*-*-* } } */
+/* { dg-require-effective-target inf } */
/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
extern void link_error(int);
/* { dg-options "-fno-finite-math-only" { target sh*-*-* } } */
/* In order to fold algebraic exprs below, targets with "composite"
floating point formats need -funsafe-math-optimizations. */
+/* { dg-require-effective-target inf } */
/* { dg-options "-funsafe-math-optimizations" { target powerpc*-*-* } } */
extern void link_error(int);
Origin: Kaveh R. Ghazi, October 22, 2006. */
/* { dg-do compile } */
+/* { dg-require-effective-target inf } */
/* { dg-options "-fdump-tree-original" } */
extern void foof (float);
Origin: Kaveh R. Ghazi, January 28, 2009. */
/* { dg-do compile } */
+/* { dg-require-effective-target inf } */
/* { dg-options "-fdump-tree-original" } */
extern void foof (_Complex float);
/* { dg-do run } */
/* C6X fails due to -freciprocal-math default. */
/* { dg-skip-if "" { tic6x-*-* } } */
+/* { dg-require-effective-target inf } */
/* { dg-add-options ieee } */
/* { dg-require-effective-target large_double } */
Origin: Kaveh R. Ghazi, February 23, 2007. */
/* { dg-do link } */
+/* { dg-require-effective-target inf } */
/* { dg-options "-fno-finite-math-only" { target sh*-*-* } } */
/* { dg-options "-funsafe-math-optimizations -fsigned-zeros -fno-associative-math" { target powerpc-*-darwin* powerpc*-*-linux* } } */
without any fast-math flags. */
/* { dg-do run } */
+/* { dg-require-effective-target inf } */
/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
/* { dg-skip-if "No subnormal support" { csky-*-* } { "-mhard-float" } } */
/* { dg-options "-DUNSAFE" { target tic6x*-*-* visium-*-* nvptx-*-* } } */
}
} "-O2" ]
}
+
+# Return 1 if target supports floating point "infinite"
+proc check_effective_target_inf { } {
+ return [check_no_compiler_messages supports_inf assembly {
+ const double pinf = __builtin_inf ();
+ }]
+}