Lesson 1: Loop Carry Path From Memory Pointers
2-6
Example 2–3. Feedback From lesson_c.asm
;*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 10
;* Unpartitioned Resource Bound : 2
;* Partitioned Resource Bound(*) : 2
;* Resource Partition:
;* A–side B–side
;* .L units 0 0
;* .S units 1 1
;* .D units 2* 1
;* .M units 1 1
;* .X cross paths 1 0
;* .T address paths 2* 1
;* Long read paths 1 0
;* Long write paths 0 0
;* Logical ops (.LS) 1 0 (.L or .S unit)
;* Addition ops (.LSD) 0 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1 1
;* Bound(.L .S .D .LS .LSD) 2* 1
;*
;* Searching for software pipeline schedule at ...
;* ii = 10 Schedule found with 1 iterations in parallel
;* done
;*
;* Collapsed epilog stages : 0
;* Collapsed prolog stages : 0
;*
;* Minimum safe trip count : 1
;*
;*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*
;* SINGLE SCHEDULED ITERATION
;*
;* C17:
;* LDH .D1T1 *A4++,A0 ; ^ |32|
;* || LDH .D2T2 *B4++,B6 ; ^ |32|
;* NOP 2
;* [ B0] SUB .L2 B0,1,B0 ; |33|
;* [ B0] B .S2 C17 ; |33|
;* MPY .M1 A0,A5,A0 ; ^ |32|
;* || MPY .M2 B6,B5,B6 ; ^ |32|
;* NOP 1
;* ADD .L1X B6,A0,A0 ; ^ |32|
;* SHR .S1 A0,15,A0 ; ^ |32|
;* STH .D1T1 A0,*A3++ ; ^ |32|
;*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*