selp GPU Virtual ISA NVIDIA
Select with Predicate Comparison and Selection Instructions
selp.type d, a, b, p;
Select between two operands based on a predicate, without branching.
Encoding
PTX is a virtual instruction set. It has no single, stable native
binary encoding - the compiler lowers this instruction to different native machine
code depending on the selected NVIDIA target architecture (compute capability).
This page intentionally shows no bit-diagram; see the target/version requirements
below for what governs how this instruction compiles.
Syntax Forms
One mnemonic covers many type / state-space / scope / modifier combinations - each row below is an independently valid form.
| Syntax | Data Types | State Space(s) | Modifiers | Min. Target | Description |
|---|---|---|---|---|---|
| selp.type d, a, b, p; | b16, b32, b64, s16, s32, s64, u16, u32, u64, f32, f64 | sm_10 | Branchless select. |
Operands
-
d
Destination register -
a
Value if p is true -
b
Value if p is false -
p
Predicate register
At a Glance
Related AMDGPU Concepts
Related
Reference
NVIDIA PTX ISA
Description
Conditional selection. If c is True, a is stored in d, b otherwise. Operands d, a, and b must be of the same type. Operand c is a predicate.
Semantics
d = p ? a : b.
Examples
selp.s32 r0,r,g,p;
@q selp.f32 f0,t,x,xp;Reproduced from NVIDIA's official PTX ISA documentation for technical accuracy.
Sources
-
Parallel Thread Execution ISA ↗
- NVIDIA Corporation, Chapter 9 - Instruction Set
Deep-linked directly to this instruction's section.