[gcc(refs/users/meissner/heads/work041)] Fix segfault with VEC_DUPLICATE of const_double.
Michael Meissner
meissner@gcc.gnu.org
Wed Mar 17 21:55:54 GMT 2021
https://gcc.gnu.org/g:cbdda0c7f8f197a3516a6a27897407f4d3022785
commit cbdda0c7f8f197a3516a6a27897407f4d3022785
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Wed Mar 17 17:55:38 2021 -0400
Fix segfault with VEC_DUPLICATE of const_double.
gcc/
2021-03-17 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Don't form
vector constants with VEC_DUPLICATE.
Diff:
---
gcc/config/rs6000/rs6000.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8ac4bc8cbdc..e00454fae44 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6651,17 +6651,6 @@ rs6000_expand_vector_init (rtx target, rtx vals)
if (n_var == 0)
{
- /* Generate XXSPLTIW/XXSPLTIDP if we can. */
- if (TARGET_POWER10 && all_same
- && (mode == V4SImode || mode == V4SFmode
- || (mode == V2DFmode
- && xxspltidp_operand (XVECEXP (vals, 0, 0), inner_mode))))
- {
- rtx dup = gen_rtx_VEC_DUPLICATE (mode, XVECEXP (vals, 0, 0));
- emit_insn (gen_rtx_SET (target, dup));
- return;
- }
-
rtx const_vec = gen_rtx_CONST_VECTOR (mode, XVEC (vals, 0));
bool int_vector_p = (GET_MODE_CLASS (mode) == MODE_VECTOR_INT);
if ((int_vector_p || TARGET_VSX) && all_const_zero)
More information about the Gcc-cvs
mailing list