https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122647
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
This is a bogus check in vectorizable_conversion, fix:
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index ff58a4e38fa..87d17db8a67 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -5400,7 +5400,7 @@ vectorizable_conversion (vec_info *vinfo,
}
if (VECTOR_BOOLEAN_TYPE_P (vectype_out)
- && !VECTOR_BOOLEAN_TYPE_P (vectype_in))
+ != VECTOR_BOOLEAN_TYPE_P (vectype_in))
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
but then this exposes a missed bool pattern for the int to float conversion.