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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Or would you prefer:
--- gcc/config/i386/i386.c.jj   2019-04-16 10:40:15.077091789 +0200
+++ gcc/config/i386/i386.c      2019-04-23 11:55:59.397227347 +0200
@@ -23712,7 +23712,10 @@ ix86_expand_sse_fp_minmax (rtx dest, enu
   else
     {
       code = is_min ? SMIN : SMAX;
-      tmp = gen_rtx_fmt_ee (code, mode, if_true, if_false);
+      rtx operands[3] = { dest, if_true, if_false };
+      ix86_fixup_binary_operands_no_copy (code, mode, operands);
+      tmp = gen_rtx_fmt_ee (code, mode, operands[1], operands[2]);
+      dest = operands[0];
     }

   emit_insn (gen_rtx_SET (dest, tmp));
instead?  I think a switch on mode to handle all the possible modes in there
and assign the different gen_{smin,smax}* in those cases would be too large.

Reply via email to