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

--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
Like this:

--cut here--
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 62fe06fdbaa..e6091b8bd35 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -20417,14 +20417,12 @@ ix86_widen_mult_cost (const struct processor_costs
*cost,
   int basic_cost = 0;
   switch (mode)
     {
-    case V4HImode:
     case V8HImode:
     case V16HImode:
       if (!uns_p || mode == V16HImode)
        extra_cost = cost->sse_op * 2;
       basic_cost = cost->mulss * 2 + cost->sse_op * 4;
       break;
-    case V2SImode:
     case V4SImode:
     case V8SImode:
       /* pmulhw/pmullw can be used.  */
@@ -20441,7 +20439,8 @@ ix86_widen_mult_cost (const struct processor_costs
*cost,
       basic_cost = cost->mulss * 2 + cost->sse_op * 4;
       break;
     default:
-      gcc_unreachable();
+      /* Not implemented.  */
+      return 1000;
     }
   return ix86_vec_cost (mode, basic_cost + extra_cost);
 }
--cut here--

Reply via email to