Advanced Computer Architecture, Imperial
College 2001
Instructions for predication
•Idea #1: conditional move instruction
–
if (fluid[i][j]==0) {
U[i][j] =
U[i-1,j]+U[i,j-1];
} else {
U[I,j] =
0.0;
}
..R1
is address of fluid[i,j]
..R2
is address of U[i,j]
..R3
is address of U[i-1,j]
..F4
is 0.0
LW
R4, (R1)
LD
F1, (R3)
LD
F2, -1(R2)
ADDD
F3, F1, F2
CMOVE
F5, F3, F4, R4
SD
(R2), F5
CMOVE F5, F3, F4, R4
If R4=0, move F3 to F5, else move F4 to F5