mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-30 15:15:19 +08:00
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:
parent
941bc65971
commit
02484af985
@ -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.
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
12
gcc/testsuite/gcc.dg/ultrasp5.c
Normal file
12
gcc/testsuite/gcc.dg/ultrasp5.c
Normal 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));
|
||||
}
|
Loading…
Reference in New Issue
Block a user