diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2008-06-06 17:04:51 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-06-06 17:04:51 +0200 |
commit | 88057dc868335e8f59eb0798d605c29de154de6d (patch) | |
tree | 213585bbf8dfd4c6d9d250a5e3d911115c057f6d /gcc/cse.c | |
parent | 8b34d6c2bfcf7e70d3ab0909cb73ba347f47160e (diff) | |
download | gcc-88057dc868335e8f59eb0798d605c29de154de6d.zip gcc-88057dc868335e8f59eb0798d605c29de154de6d.tar.gz gcc-88057dc868335e8f59eb0798d605c29de154de6d.tar.bz2 |
re PR rtl-optimization/36438 (gcc ICE compiling code with mmx builtin)
PR rtl-optimization/36438
* cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
for vector shifts with constant scalar shift operands.
From-SVN: r136486
Diffstat (limited to 'gcc/cse.c')
-rw-r--r-- | gcc/cse.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -3489,6 +3489,11 @@ fold_rtx (rtx x, rtx insn) && exact_log2 (- INTVAL (const_arg1)) >= 0))) break; + /* ??? Vector mode shifts by scalar + shift operand are not supported yet. */ + if (is_shift && VECTOR_MODE_P (mode)) + break; + if (is_shift && (INTVAL (inner_const) >= GET_MODE_BITSIZE (mode) || INTVAL (inner_const) < 0)) |