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.

Reply via email to