aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMatthew Fortune <matthew.fortune@imgtec.com>2017-03-30 22:47:38 +0000
committerMatthew Fortune <mpf@gcc.gnu.org>2017-03-30 22:47:38 +0000
commit6c18efd4e20b8af2e625334c6d58e12decebf62b (patch)
treef18e5b038b84c241e157d6f01e7684fc760d1bdd /gcc
parentc8e0f43f7469600ab63ef67d4d24316614717e87 (diff)
downloadgcc-6c18efd4e20b8af2e625334c6d58e12decebf62b.zip
gcc-6c18efd4e20b8af2e625334c6d58e12decebf62b.tar.gz
gcc-6c18efd4e20b8af2e625334c6d58e12decebf62b.tar.bz2
Fix ICE when expanding MSA constant vectors with replicated values
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mips/mips.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 18effd7..6eb56f5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index d1deb52..dadfcc4 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -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);