The following makes -ffast-math explicit.
* gcc.dg/vect/vect.exp: Remove special-casing of tests
named fast-math-*
* gcc.dg/vect/fast-math-bb-slp-call-1.c: Add dg-additional-options
-ffast-math.
* gcc.dg/vect/fast-math-bb-slp-call-2.c: Likewise.
* gcc.dg/vect/fast-math-bb-slp-call-3.c: Likewise.
* gcc.dg/vect/fast-math-ifcvt-1.c: Likewise.
* gcc.dg/vect/fast-math-pr35982.c: Likewise.
* gcc.dg/vect/fast-math-pr43074.c: Likewise.
* gcc.dg/vect/fast-math-pr44152.c: Likewise.
* gcc.dg/vect/fast-math-pr55281.c: Likewise.
* gcc.dg/vect/fast-math-slp-27.c: Likewise.
* gcc.dg/vect/fast-math-slp-38.c: Likewise.
* gcc.dg/vect/fast-math-vect-call-1.c: Likewise.
* gcc.dg/vect/fast-math-vect-call-2.c: Likewise.
* gcc.dg/vect/fast-math-vect-complex-3.c: Likewise.
* gcc.dg/vect/fast-math-vect-outer-7.c: Likewise.
* gcc.dg/vect/fast-math-vect-pow-1.c: Likewise.
* gcc.dg/vect/fast-math-vect-pow-2.c: Likewise.
* gcc.dg/vect/fast-math-vect-pr25911.c: Likewise.
* gcc.dg/vect/fast-math-vect-pr29925.c: Likewise.
* gcc.dg/vect/fast-math-vect-reduc-5.c: Likewise.
* gcc.dg/vect/fast-math-vect-reduc-7.c: Likewise.
* gcc.dg/vect/fast-math-vect-reduc-8.c: Likewise.
* gcc.dg/vect/fast-math-vect-reduc-9.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c:
Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-complex-add-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-add-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c:
Likewise.
* gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:
Likewise.
* gcc.dg/vect/complex/fast-math-complex-mla-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mla-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mls-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mls-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mul-double.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mul-float.c: Likewise.
* gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Likewise.
/* { dg-do compile } */
/* { dg-require-effective-target vect_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
#define UNROLL
/* { dg-do compile } */
/* { dg-require-effective-target vect_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
#define UNROLL
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
#define TYPE _Float16
/* { dg-do compile } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
/* { dg-require-effective-target vect_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
/* { dg-require-effective-target vect_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
#define UNROLL
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
#define UNROLL
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
#define TYPE double
#define N 16
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_float } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
#define TYPE float
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
#define TYPE _Float16
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
#define TYPE double
#define N 16
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_float } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
/* { dg-add-options arm_v8_3a_complex_neon } */
#define TYPE float
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
#define TYPE _Float16
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
#define TYPE double
#define N 16
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_float } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
/* { dg-add-options arm_v8_3a_complex_neon } */
#define TYPE float
/* { dg-do compile } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
#define TYPE _Float16
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_double } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_float } */
/* { dg-add-options arm_v8_3a_complex_neon } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_complex_add_half } */
/* { dg-require-effective-target float16 } */
/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+/* { dg-additional-options "-ffast-math" } */
+
#include "tree-vect.h"
extern float copysignf (float, float);
/* { dg-require-effective-target vect_double } */
+/* { dg-additional-options "-ffast-math" } */
#include "tree-vect.h"
+/* { dg-additional-options "-ffast-math" } */
+
#include "tree-vect.h"
extern double sqrt (double);
/* PR 47892 */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
/* { dg-require-effective-target vect_condition } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_intfloat_cvt } */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
float
pvslockprocess(float *fout, float *fin, int framesize)
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
#include <stdarg.h>
/* PR tree-optimization/55281 */
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
static inline float
bar (float k, float j)
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
float x[2*256+1];
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_double } */
double self[1024];
+/* { dg-additional-options "-ffast-math" } */
/* Disabling epilogues until we find a better way to deal with scans. */
/* { dg-additional-options "--param vect-epilogues-nomask=0" } */
#include "tree-vect.h"
/* { dg-require-effective-target vect_double } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-additional-options "--param vect-epilogues-nomask=0" } */
#include "tree-vect.h"
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
#include <stdarg.h>
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
float dvec[256];
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
float x[256];
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
typedef double d_type;
struct
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
float bessel_Kn_scaled_small_x(int n)
{
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
#include <stdlib.h>
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
/* need -funsafe-math-optimizations to vectorize the summation.
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_double } */
/* need -funsafe-math-optimizations to vectorize the summation.
/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
#include "tree-vect.h"
+/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */
#include "tree-vect.h"
et-dg-runtest dg-runtest [lsort \
[glob -nocomplain $srcdir/$subdir/no-vfa-*.\[cS\]]] \
$flags $DEFAULT_VECTCFLAGS
+ et-dg-runtest dg-runtest [lsort \
+ [glob -nocomplain $srcdir/$subdir/fast-math-\[ipsvc\]*.\[cS\]]] \
+ $flags $DEFAULT_VECTCFLAGS
et-dg-runtest dg-runtest [lsort \
[glob -nocomplain $srcdir/$subdir/bb-slp*.\[cS\]]] \
$flags $VECT_SLP_CFLAGS
set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS
set SAVED_VECT_SLP_CFLAGS $VECT_SLP_CFLAGS
-# -ffast-math tests
-set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
-lappend DEFAULT_VECTCFLAGS "-ffast-math"
-et-dg-runtest dg-runtest [lsort \
- [glob -nocomplain $srcdir/$subdir/fast-math-\[ipsvc\]*.\[cS\]]] \
- "" $DEFAULT_VECTCFLAGS
-
# -ffast-math SLP tests
set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
lappend VECT_SLP_CFLAGS "-ffast-math"