Polyhedron tests on Intel Darwin8/9

Paul Thomas paulthomas2@wanadoo.fr
Wed Nov 21 14:12:00 GMT 2007


Dominique,
>
> I have also a optimized vaerion of induct which almost three time faster:
>
> induct_v3     11.72      164228     34.40       5  0.0189
>
> (the dotproducts have been replaced by mul/adds taking into account the 
> zero values and I moved some invariant blocks.)
>
>   
Encouraged by what you described, I modified (see patch) the intrinsic 
dot_product to give the following:

              {
                integer(kind=4) D.2133;
                integer(kind=4) D.2132;
                real(kind=8) tmp2.220;
                real(kind=8) z2.219;
                real(kind=8) tmp1.218;
                real(kind=8) z1.217;
                real(kind=8) val.216;

                val.216 = 0.0;
                z1.217 = 0.0;
                z2.219 = 0.0;
                D.2132 = offset.126;
                D.2133 = ubound.124;
                {
                  integer(kind=4) D.2136;
                  integer(kind=4) D.2135;
                  integer(kind=4) S.221;

                  D.2135 = D.2132 + NON_LVALUE_EXPR <stride.123>;
                  D.2136 = stride.125;
                  S.221 = 1;
                  while (1)
                    {
                      if (S.221 > 3) goto L.52;
                      tmp1.218 = (*rotate_coil.0)[S.221 * D.2136 + D.2135];
                      tmp2.220 = coil_tmp_vector[S.221 + -1];
                      if (tmp1.218 == z1.217 || tmp2.220 == z2.219)
                        {
                          (void) 0;
                        }
                      else
                        {
                          val.216 = val.216 + tmp1.218 * tmp2.220;
                        }
                      S.221 = S.221 + 1;
                    }
                  L.52:;
                }
                coil_current_vec[0] = val.216;
              }

Unfortunately, it takes twice as long to execute....

What did you implement?

Cheers

Paul

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dot.diff
Type: text/x-patch
Size: 4353 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20071121/e59acd9b/attachment.bin>


More information about the Fortran mailing list