Counting Flow Control Instructions 
Flow control instructions have special restrictions for how they count against instruction limits.
Vertex Shader 2_0
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| call |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Vertex Shader 2_x
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Vertex Shader 2_sw
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Vertex Shader 3_0
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Vertex Shader 3_sw
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Pixel Shader 2_0
No flow control instructions in ps_2_0.
Pixel Shader 2_x
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Pixel Shader 2_sw
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Pixel Shader 3_0
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  | 
Pixel Shader 3_sw
|  | static depth | dynamic depth | call depth | loop/rep depth | 
|---|
| if |  |  |  |  | 
| if_comp |  |  |  |  | 
| if pred |  |  |  |  | 
| call |  |  |  |  | 
| callnz |  |  |  |  | 
| callnz pred |  |  |  |  | 
| break |  |  |  |  | 
| break_comp |  |  |  |  | 
| break pred |  |  |  |  | 
| loop, endloop |  |  |  |  | 
| rep, endrep |  |  |  |  |