------- Comment #3 from pinskia at gcc dot gnu dot org  2006-09-28 02:53 -------
Reduced testcase:
static double a[2000000 +0],avgtime[4] = {0},maxtime[4] = {0};
main()
{
 int j, k;
 for (j=0; j<4; j++)
 {
   avgtime[j] = avgtime[j]/(double)(10 -1);
   g(avgtime[j],maxtime[j] );
 }
}
checktick(double asum, int j)
{
 asum += a[j];
 if (asum)
  f();
}

-------------------
The instruction which it is failing on is:
(insn:TI 22 121 138 (set (subreg:DF (reg:DI 9 9) 0)
        (mem/s/c:DF (plus:SI (reg/f:SI 29 29 [130])
                (reg:SI 3 3 [131])) [3 avgtime+0 S8 A64])) 919 {*frob_di_df_2}
(nil)
    (expr_list:REG_DEAD (reg:SI 3 3 [131])
        (nil)))

Which is invalid as you should be splitting the DI part.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   GCC host triplet|x86_64-unknown-linux-gnu    |
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|0000-00-00 00:00:00         |2006-09-28 02:53:34
               date|                            |
            Summary|[4.2.0 regression] ICE on   |[4.2 regression] ICE on
                   |valid code                  |valid code


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29255

Reply via email to