[Bug target/71549] ICE on valid code at -O2 and -O3 with -g enabled in 64-bit mode on x86_64-linux-gnu: in simplify_subreg, at simplify-rtx.c:5952

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jun 16 08:21:00 GMT 2016


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

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
Patch in testing:

--cut here--
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index c5e5e12..3a6e63a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3802,14 +3802,8 @@ timode_scalar_chain::convert_insn (rtx_insn *insn)
   switch (GET_CODE (dst))
     {
     case REG:
-      {
-       rtx tmp = find_reg_equal_equiv_note (insn);
-       if (tmp)
-         PUT_MODE (XEXP (tmp, 0), V1TImode);
-      }
-      /* FALLTHRU */
     case MEM:
-      PUT_MODE (dst, V1TImode);
+      dst = gen_rtx_SUBREG (V1TImode, copy_rtx_if_shared (dst), 0);
       break;

     default:
@@ -3820,7 +3814,7 @@ timode_scalar_chain::convert_insn (rtx_insn *insn)
     {
     case REG:
     case MEM:
-      PUT_MODE (src, V1TImode);
+      src = gen_rtx_SUBREG (V1TImode, copy_rtx_if_shared (src), 0);
       break;

     case CONST_INT:
--cut here--


More information about the Gcc-bugs mailing list