add.d $f8, $f8, $f10 l.d $f10, 16($5) ; iteration with displacement 16 l.d $f12, 16($6) mul.d $f10, $f10, $f12 add.d $f8, $f8, $f10 l.d $f10, 24($5) ; iteration with displacement 24 l.d $f12, 24($6) mul.d $f10, $f10, $f12 add.d $f8, $f8, $f10 addi $5, $5, 32 addi $6, $6, 32 addi $7, $7, -4 test: bgtz $7, loop3 ; Continue loop if $7 > 0 See also Don't repeat yourself Duff's device Instruction level parallelism Just-in-time compilation Loop fusion Loop splitting Parallel computing References Further reading External links Chapter 7, pages 8 to 10, of Michael Abrash's Graphics Programming Black Book is about loop unrolling, with an example in x86 assembly. Generalized Loop Unrolling, gives a concise introduction. Optimizing subroutines in assembly language Agner Fog's optimizations handbook with the loop unrolling technique (2012). Compiler optimizations Articles with example C code Parallel computing