This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
patch that caused 3.1/3.2 branch regression PR opt/8555
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: gcc at gcc dot gnu dot org, jakub at redhat dot com
- Date: Mon, 23 Dec 2002 09:49:17 -0800
- Subject: patch that caused 3.1/3.2 branch regression PR opt/8555
The regression reported in PR optimization/8555 showed up starting
with this patch to the 3.1 branch; it currently affects only the
3.2 branch.
2002-05-23 Jakub Jelinek <jakub@redhat.com>
PR target/6753
* config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
of x in constraints for clarity.
(sse_mov?fcc split): abort if op2 == op3.
(sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
sse_movsfcc_const0_4): Add earlyclobber.
(sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode.
Use Y instead of x in constraints.
Here's a small test case that causes the compiler to ICE when compiled
on i686-linux with the 3.2 branch compiler.
-------------------
// ICE when compiled with -march=pentium3 -O -ffast-math -funroll-loops
float foo (float *a)
{
int i, j;
float x=a[j=i-1], y;
for ( j=i; --j>=0; )
if( (y=a[j]) > x )
x = y;
return x;
}
-------------------
Output from the 3.2 branch compiler:
8555.c: In function `foo':
8555.c:13: Internal compiler error in gen_split_1233, at insn-emit.c:16727
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
I've added this information to the PR.
Janis