diff options
author | Alan Modra <amodra@bigpond.net.au> | 2005-11-22 13:00:06 +0000 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2005-11-22 23:30:06 +1030 |
commit | e168899134dba8d8895fc9e003193fc16563797b (patch) | |
tree | 2fd6c16cfc1c1ce5c063e13b091c7197793ed842 | |
parent | cddfb1c7ac9cb2f69cc82839a0163af3e771a68d (diff) | |
download | gcc-e168899134dba8d8895fc9e003193fc16563797b.zip gcc-e168899134dba8d8895fc9e003193fc16563797b.tar.gz gcc-e168899134dba8d8895fc9e003193fc16563797b.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa6a35c..5bc604e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-11-22 Alan Modra <amodra@bigpond.net.au> + + 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 <bje@au.ibm.com> * 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 885ac2c..b940261 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); }) |