David C. Plummer (DCP@QUABBIN.SCRC.Symbolics.COM)
Tue, 6 Oct 87 09:35 EDT
Date: Mon, 5 Oct 1987 11:24:26 EDT
From: Mark Bodenstein <MAB%CORNELLC.BITNET@wiscvm.wisc.edu>
Could you provide more detail on how you unrolled this loop?
(The complication being that the length of the loop is determined by
the length of the data. Some alternatives I can think of would be:
There is a fourth way that we (Symbolics) have done which you did not
(a) Pick a compile-time unrolling factor, usually a power of 2, say 16 = 2^4.
(b) Divide the data length by the unrolling factor, obtaining a quotient
and remainder. When the unrolling factor is a power of two, the
quotient is a shift and the remainder is a logical AND.
(c) Write a unrolled loop whose length is the unrolling factor. Execute
this loop <quotient> times.
(d) Write an un-unrolled loop (whose length is therefore 1). Execute
this loop <remainder> times.
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:39:34 GMT