https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101956

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
          Component|target                      |tree-optimization
   Last reconfirmed|                            |2021-08-18
             Blocks|                            |53947
             Status|UNCONFIRMED                 |NEW

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
vectorizable_conversion only checks

    case NONE:
      if (code != FIX_TRUNC_EXPR
          && code != FLOAT_EXPR
          && !CONVERT_EXPR_CODE_P (code))
        return false;
      if (supportable_convert_operation (code, vectype_out, vectype_in,
&code1))
        break;
      /* FALLTHRU */
    unsupported:
      if (dump_enabled_p ())
        dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
                         "conversion not supported by target.\n");
      return false;

compared to WIDEN/NARROW which supoort multi-step conversions.  It shouldn't be
too difficult to teach the NONE case to do this (are there any conversion
instructions that do more than 2x widen/narrow?)

IMHO this should be addressed at the vectorizer level.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947
[Bug 53947] [meta-bug] vectorizer missed-optimizations

Reply via email to