Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
retc (sm4 - asm)
Collapse the table of content
Expand the table of content

retc (sm4 - asm)

Conditional return.

retc{_z|_nz} src0.select_component




[in] The register to test the condition against.



If within a subroutine, this instruction conditionally returns to the instruction after the call. If not inside a subroutine, this instruction terminates program execution.

The following example shows how to use this instruction.

           call l3
           label l3
               retc_nz r0.x  // If any bit in r0.x is nonzero, then return
               retc_z  r1.x  // If all bits in r0.x are zero, then return.


  • retc can appear anywhere in a program, any number of times.
  • The last instruction in a main program or subroutine cannot be a retc_z or retc_nz. Instead, the unconditional ret can be used.
  • The 32-bit register supplied by src0 is tested at a bit level. If any bit is nonzero, ret_nz will return. If all bits are zero, retc_z will return.

This instruction applies to the following shader stages:

Vertex ShaderGeometry ShaderPixel Shader


Minimum Shader Model

This function is supported in the following shader models.

Shader ModelSupported
Shader Model 5 yes
Shader Model 4.1 yes
Shader Model 4 yes
Shader Model 3 (DirectX HLSL) no
Shader Model 2 (DirectX HLSL) no
Shader Model 1 (DirectX HLSL) no




Community Additions

© 2015 Microsoft