re PR target/10072 ([Sparc] internal compiler error: in trunc_int_for_mode, at explow.c:54)

PR target/10072
	* combine.c (simplify_if_then_else): Check that the mode
	has MODE_INT class before applying the (OP Z (mult COND C2))
	transformation.

From-SVN: r64785
This commit is contained in:
Eric Botcazou 2003-03-24 12:29:11 +01:00 committed by Eric Botcazou
parent 941bc65971
commit 02484af985
4 changed files with 27 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2003-03-23 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/10072
* combine.c (simplify_if_then_else): Check that the mode
has MODE_INT class before applying the (OP Z (mult COND C2))
transformation.
2003-03-23 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/9414
@ -9040,3 +9047,4 @@
* doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
See ChangeLog.8 for earlier changes.

View File

@ -4969,7 +4969,9 @@ simplify_if_then_else (x)
neither 1 or -1, but it isn't worth checking for. */
if ((STORE_FLAG_VALUE == 1 || STORE_FLAG_VALUE == -1)
&& comparison_p && mode != VOIDmode && ! side_effects_p (x))
&& comparison_p
&& GET_MODE_CLASS (mode) == MODE_INT
&& ! side_effects_p (x))
{
rtx t = make_compound_operation (true_rtx, SET);
rtx f = make_compound_operation (false_rtx, SET);

View File

@ -1,3 +1,7 @@
2003-03-23 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.dg/ultrasp5.c: New test.
2003-03-23 Arpad Beszedes <beszedes@cc.u-szeged.hu>
PR middle-end/9967

View File

@ -0,0 +1,12 @@
/* PR target/10072 */
/* Originator: Peter van Hoof <p.van-hoof@qub.ac.uk>
/* { dg-do compile } */
/* { dg-options "-O1 -mcpu=ultrasparc -ffast-math" { target sparc-*-* } } */
void p(int v)
{
int i=v,j;
float a,b,c,x[i];
x[i] = (a/(((b)>(c)) ? (b) : (c)) - (((i) == (j)) ? 1.f : 0.f));
}