braner@TCGOULD.TN.CORNELL.EDU (Moshe Braner) (02/21/90)
It dawned on me all of a sudden that the t800 move2d instruction could be used for vector math scatter/gather. Is that true? How fast is it in that role, and as compared with simple pure C code? Thanks. - Moshe
ccplumb@lion.waterloo.edu (Colin Plumb) (03/07/90)
In article <9002202020.AA25105@tcgould.TN.CORNELL.EDU> braner@TCGOULD.TN.CORNELL.EDU (Moshe Braner) writes: >It dawned on me all of a sudden that the t800 move2d instruction >could be used for vector math scatter/gather. Is that true? >How fast is it in that role, and as compared with simple pure C >code? Thanks. Well, it can be used for scatter/gather. I once had an application for it filling memory from a byte-wide I/O port. Yeah, thought I, just use a line length of 1 byte, a source stride of 0, and a destination stride of 1. Unfortunately, move2d has a per-line overhead of 23 cycles. This was slower than a software loop. Ick. Within the lines, it saturates the bus, just like move. But if your vector length is long or run-time variable and you don't want to do the compile-custom-bitblt-code trick, I'd think it would work well. -- -Colin