--- Comment #10 from uros at gcc dot gnu dot org 2008-11-14 08:00 ---
Subject: Bug 36438
Author: uros
Date: Fri Nov 14 07:59:33 2008
New Revision: 141849
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141849
Log:
Backport from mainline:
2008-06-06 Uros Bizjak
--- Comment #9 from uros at gcc dot gnu dot org 2008-11-13 22:42 ---
Subject: Bug 36438
Author: uros
Date: Thu Nov 13 22:40:52 2008
New Revision: 141834
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141834
Log:
Backport from mainline:
2008-06-06 Uros Bizjak
--- Comment #7 from uros at gcc dot gnu dot org 2008-06-06 15:06 ---
Subject: Bug 36438
Author: uros
Date: Fri Jun 6 15:04:51 2008
New Revision: 136486
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=136486
Log:
PR rtl-optimization/36438
* cse.c (fold_rtx)
--- Comment #1 from davidxl at gcc dot gnu dot org 2008-06-05 06:41 ---
cse1 (RTL) does some expression simplification on the fly such as
t = x 4
r = t 4
==
r = x 8
However for mmx shift operation, the mode (V1DI) for the const folding is
illegal -- resulting in ICE.
--
--- Comment #2 from ubizjak at gmail dot com 2008-06-05 11:21 ---
Your testcase works for me on i686-pc-linux-gnu with 'GCC: (GNU) 4.4.0 20080605
(experimental) [trunk revision 136389]', with -mmmx and all optimization
levels:
.L5:
movq%mm1, %mm0
psllq $8, %mm0
--- Comment #3 from ubizjak at gmail dot com 2008-06-05 11:53 ---
The bug triggers on x86_64-pc-linux-gnu target. I will look into it.
--
ubizjak at gmail dot com changed:
What|Removed |Added
--- Comment #4 from ubizjak at gmail dot com 2008-06-05 12:50 ---
There is a general problem with vector shifts by scalar operands. The code
assumed that both operands are vector mode operands, so it tries to add both
constant shift operands using V1DImode.
Following patch fixes ICE:
--- Comment #5 from ubizjak at gmail dot com 2008-06-05 17:05 ---
Patch at http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00268.html
--
ubizjak at gmail dot com changed:
What|Removed |Added
--- Comment #6 from davidxl at gcc dot gnu dot org 2008-06-05 17:37 ---
(In reply to comment #5)
Patch at http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00268.html
Thanks -- same as my local workaround.
David
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36438