Examples
xvi
Examples
1–1
Compiler and/or Assembly Optimizer Feedback
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–2
Stage 1 Feedback
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–3
Stage 2 Feedback
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–4
Stage 3 Feedback
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–1
Vector Summation of Two Weighted Vectors
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–2
lesson_c.c
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–3
Feedback From lesson_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–4
lesson_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–5
lesson1_c.c
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–6
lesson1_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–7
lesson1_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–8
lesson2_c.c
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–9
lesson2_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–10
lesson2_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–11
lesson3_c.c
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–12
lesson3_c.asm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–13
Profile Statistics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–14
Using the iircas4 Function in C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–15
Software Pipelining Feedback From the iircas4 C Code
. . . . . . . . . . . . . . . . . . . . . . . . . . .
2–16
Rewriting the iircas4 ( ) Function in Linear Assembly
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–17
Software Pipeline Feedback from Linear Assembly
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–1
Basic Vector Sum
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–2
Use of the Restrict Type Qualifier With Pointers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–3
Use of the Restrict Type Qualifier With Arrays
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–4
Incorrect Use of the restrict Keyword
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–5
Including the clock( ) Function
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–6
Saturated Add Without Intrinsics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–7
Saturated Add With Intrinsics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–8
Vector Sum With restrict Keywords, MUST_ITERATE Pragma, Word Reads
. . . . . . . . .
3–9
Vector Sum With Non–aligned Word Accesses to Memory
. . . . . . . . . . . . . . . . . . . . . . . . .
3–10
Vector Sum With restrict Keywords, MUST_ITERATE pragma,
and Word Reads (Generic Version)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–11
Dot Product Using Intrinsics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–12
FIR Filter— Original Form
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–13
FIR Filter — Optimized Form
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–14
Basic Float Dot Product
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .