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