commit 50cf6e1 changed g421e to do 9!:19[0

On ppc64, it caused the test to fail with -O1 to gcc 4.4.7.

   + test2 *"0 'biIdxqz'
|assertion failure: RUN1
|   xx    (u//.@(v/)-:u/"_/.@(v/"_))yy
   xx
24.2186 475.758 _105.497 336.422 _413.12 72.2156 _160.262 33.4909 _85.4288 
_19.932 _350.381 _20.6579 110.159 232.242 56.6778 _436.011 370.545
   yy
87.8893 343.818 _488.396 234.015 386.031 _205.93 416.216 11.2203 213.67 292.035 
46.3149 _153.041 _262.872 99.3587 _207.526 _80.8204 _112.822 _165.617 _351.292 
_86.3578 _209.097 32.4487 139.001
   xx(+//.@(*/) - +/"_/.@(*/"_))yy
0 0 0 _2.91038e_11 0 0 _2.91038e_11 2.91038e_11 0 0 0 6.59384e_12 0 0 
2.91038e_11 0 7.27596e_11 0 _5.82077e_11 0 0 0 0 0 2.91038e_11 _4.36557e_11 0 0 
2.91038e_11 0 0 1.45519e_11 0 _7.27596e_12 0 0 0 0 0
   xx(([:+//.*/) - [:+/"_/.*/"_)yy
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Only compiling with -O0 passes the test.  It doesn't seems to be wrong, so I 
guess gcc optimized the special code for @ with a different execution order and 
introduced some floating point precision loss.

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to