Fix ICE when expanding MSA constant vectors with replicated values
authorMatthew Fortune <matthew.fortune@imgtec.com>
Thu, 30 Mar 2017 22:47:38 +0000 (22:47 +0000)
committerMatthew Fortune <mpf@gcc.gnu.org>
Thu, 30 Mar 2017 22:47:38 +0000 (22:47 +0000)
gcc/
* config/mips/mips.c (mips_expand_vector_init): Create
a const_vector to initialise a vector register instead of
using a const_int.

From-SVN: r246601

gcc/ChangeLog
gcc/config/mips/mips.c

index 18effd7..6eb56f5 100644 (file)
@@ -1,3 +1,9 @@
+2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
+       to initialise a vector register instead
+       of using a const_int.
+
 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
 
        PR translation/80189
index d1deb52..dadfcc4 100644 (file)
@@ -21757,11 +21757,12 @@ mips_expand_vector_init (rtx target, rtx vals)
                case V8HImode:
                case V4SImode:
                case V2DImode:
-                 emit_move_insn (target, same);
+                 temp = gen_rtx_CONST_VECTOR (vmode, XVEC (vals, 0));
+                 emit_move_insn (target, temp);
                  return;
 
                default:
-                 break;
+                 gcc_unreachable ();
                }
            }
          temp = gen_reg_rtx (imode);