===================================================================
@@ -2322,6 +2322,7 @@
#define RECIP_MASK_VEC_SQRT 0x08
#define RECIP_MASK_ALL (RECIP_MASK_DIV | RECIP_MASK_SQRT \
| RECIP_MASK_VEC_DIV | RECIP_MASK_VEC_SQRT)
+#define RECIP_MASK_DEFAULT (RECIP_MASK_VEC_DIV | RECIP_MASK_VEC_SQRT)
#define TARGET_RECIP_DIV ((recip_mask & RECIP_MASK_DIV) != 0)
#define TARGET_RECIP_SQRT ((recip_mask & RECIP_MASK_SQRT) != 0)
===================================================================
@@ -32,7 +32,7 @@
HOST_WIDE_INT ix86_isa_flags_explicit
TargetVariable
-int recip_mask
+int recip_mask = RECIP_MASK_DEFAULT
Variable
int recip_mask_explicit
===================================================================
@@ -12922,7 +12922,12 @@
of the non-reciprocal instruction, the precision of the sequence can be
decreased by up to 2 ulp (i.e. the inverse of 1.0 equals 0.99999994).
-Note that GCC implements 1.0f/sqrtf(x) in terms of RSQRTSS (or RSQRTPS)
+Note that GCC implements @code{1.0f/sqrtf(@var{x})} in terms of RSQRTSS
+(or RSQRTPS) already with @option{-ffast-math} (or the above option
+combination), and doesn't need @option{-mrecip}.
+
+Also note that GCC emits the above sequence with additional Newton-Raphson step
+for vectorized single float division and vectorized @code{sqrtf(@var{x})}
already with @option{-ffast-math} (or the above option combination), and
doesn't need @option{-mrecip}.