mov ar.lc = r14 .L4: // Loop is unrolled, but the address givs are not splitted. // Register r17, r19 is used to calculate all the addresses // of the array elements. .mmb ldfd f7 = [r17] ldfd f6 = [r19] nop 0 .mmi add r17 = r15, r33 add r19 = r15, r34 shladd r15 = r18, 3, r0 ;; .mmf nop 0 nop 0 fma.d f8 = f7, f6, f9 .mmi ldfd f7 = [r17] ldfd f6 = [r19] add r17 = r15, r33 .mfi add r19 = r15, r34 nop 0 shladd r15 = r16, 3, r0 ;; .mmf nop 0 nop 0 fma.d f8 = f7, f6, f8 .mmi ldfd f7 = [r17] ldfd f6 = [r19] add r17 = r15, r33 .mmb nop 0 add r19 = r15, r34 nop 0 ;; .mmf nop 0 nop 0 fma.d f8 = f7, f6, f8 .mmb ldfd f7 = [r17] ldfd f6 = [r19] nop 0 ;; .mmf nop 0 nop 0 fma.d f8 = f7, f6, f8 ;; .mfb nop 0 mov f9 = f8 br.cloop.sptk.few .L4 ... .endp dot_product__# .ident "GCC: (GNU) 4.1.0 20050302 (experimental)"