From e168899134dba8d8895fc9e003193fc16563797b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 22 Nov 2005 13:00:06 +0000 Subject: [PATCH] re PR target/24954 (ICE: could not split insn) PR target/24954 * config/rs6000/predicated.md (easy_vector_constant_add_self): Use explicit sign extension, not a (char) cast. From-SVN: r107352 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/predicates.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa6a35cba6f..5bc604e36cb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-11-22 Alan Modra + + PR target/24954 + * config/rs6000/predicated.md (easy_vector_constant_add_self): Use + explicit sign extension, not a (char) cast. + 2005-11-22 Ben Elliston * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 885ac2cf39e..b9402615cd9 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -317,7 +317,7 @@ (match_test "easy_altivec_constant (op, mode)"))) { rtx last = CONST_VECTOR_ELT (op, GET_MODE_NUNITS (mode) - 1); - HOST_WIDE_INT val = (char) (INTVAL (last) & 255); + HOST_WIDE_INT val = ((INTVAL (last) & 0xff) ^ 0x7f) - 0x7f; return EASY_VECTOR_15_ADD_SELF (val); }) -- 2.30.2