Comparison Instructions
315 AMDGPU instructions in this category - showing 100 per page, page 1 of 4 - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| s_bitcmp0_b32 | s_bitcmp0_b32 | SOPC | Extract a bit from the first scalar input based on an index in the second scalar input, and set SCC to 1 iff the extracted bit is equal to 0. |
| s_bitcmp0_b64 | s_bitcmp0_b64 | SOPC | Extract a bit from the first scalar input based on an index in the second scalar input, and set SCC to 1 iff the extracted bit is equal to 0. |
| s_bitcmp1_b32 | s_bitcmp1_b32 | SOPC | Extract a bit from the first scalar input based on an index in the second scalar input, and set SCC to 1 iff the extracted bit is equal to 1. |
| s_bitcmp1_b64 | s_bitcmp1_b64 | SOPC | Extract a bit from the first scalar input based on an index in the second scalar input, and set SCC to 1 iff the extracted bit is equal to 1. |
| s_cmp_eq_f16 | s_cmp_eq_f16 | SOPC | Set SCC to 1 iff the first scalar input is equal to the second scalar input. |
| s_cmp_eq_f32 | s_cmp_eq_f32 | SOPC | Set SCC to 1 iff the first scalar input is equal to the second scalar input. |
| s_cmp_eq_i32 | s_cmp_eq_i32 S0, S1 | SOPC | Scalar signed-32-bit equality compare, result written to SCC. |
| s_cmp_eq_u32 | s_cmp_eq_u32 | SOPC | Set SCC to 1 iff the first scalar input is equal to the second scalar input. |
| s_cmp_eq_u64 | s_cmp_eq_u64 | SOPC | Set SCC to 1 iff the first scalar input is equal to the second scalar input. |
| s_cmp_ge_f16 | s_cmp_ge_f16 | SOPC | Set SCC to 1 iff the first scalar input is greater than or equal to the second scalar input. |
| s_cmp_ge_f32 | s_cmp_ge_f32 | SOPC | Set SCC to 1 iff the first scalar input is greater than or equal to the second scalar input. |
| s_cmp_ge_i32 | s_cmp_ge_i32 | SOPC | Set SCC to 1 iff the first scalar input is greater than or equal to the second scalar input. |
| s_cmp_ge_u32 | s_cmp_ge_u32 | SOPC | Set SCC to 1 iff the first scalar input is greater than or equal to the second scalar input. |
| s_cmp_gt_f16 | s_cmp_gt_f16 | SOPC | Set SCC to 1 iff the first scalar input is greater than the second scalar input. |
| s_cmp_gt_f32 | s_cmp_gt_f32 | SOPC | Set SCC to 1 iff the first scalar input is greater than the second scalar input. |
| s_cmp_gt_i32 | s_cmp_gt_i32 | SOPC | Set SCC to 1 iff the first scalar input is greater than the second scalar input. |
| s_cmp_gt_u32 | s_cmp_gt_u32 | SOPC | Set SCC to 1 iff the first scalar input is greater than the second scalar input. |
| s_cmp_le_f16 | s_cmp_le_f16 | SOPC | Set SCC to 1 iff the first scalar input is less than or equal to the second scalar input. |
| s_cmp_le_f32 | s_cmp_le_f32 | SOPC | Set SCC to 1 iff the first scalar input is less than or equal to the second scalar input. |
| s_cmp_le_i32 | s_cmp_le_i32 | SOPC | Set SCC to 1 iff the first scalar input is less than or equal to the second scalar input. |
| s_cmp_le_u32 | s_cmp_le_u32 | SOPC | Set SCC to 1 iff the first scalar input is less than or equal to the second scalar input. |
| s_cmp_lg_f16 | s_cmp_lg_f16 | SOPC | Set SCC to 1 iff the first scalar input is less than or greater than the second scalar input. |
| s_cmp_lg_f32 | s_cmp_lg_f32 | SOPC | Set SCC to 1 iff the first scalar input is less than or greater than the second scalar input. |
| s_cmp_lg_i32 | s_cmp_lg_i32 | SOPC | Set SCC to 1 iff the first scalar input is less than or greater than the second scalar input. |
| s_cmp_lg_u32 | s_cmp_lg_u32 | SOPC | Set SCC to 1 iff the first scalar input is less than or greater than the second scalar input. |
| s_cmp_lg_u64 | s_cmp_lg_u64 | SOPC | Set SCC to 1 iff the first scalar input is less than or greater than the second scalar input. |
| s_cmp_lt_f16 | s_cmp_lt_f16 | SOPC | Set SCC to 1 iff the first scalar input is less than the second scalar input. |
| s_cmp_lt_f32 | s_cmp_lt_f32 | SOPC | Set SCC to 1 iff the first scalar input is less than the second scalar input. |
| s_cmp_lt_i32 | s_cmp_lt_i32 | SOPC | Set SCC to 1 iff the first scalar input is less than the second scalar input. |
| s_cmp_lt_u32 | s_cmp_lt_u32 | SOPC | Set SCC to 1 iff the first scalar input is less than the second scalar input. |
| s_cmp_neq_f16 | s_cmp_neq_f16 | SOPC | Set SCC to 1 iff the first scalar input is not equal to the second scalar input. |
| s_cmp_neq_f32 | s_cmp_neq_f32 | SOPC | Set SCC to 1 iff the first scalar input is not equal to the second scalar input. |
| s_cmp_nge_f16 | s_cmp_nge_f16 | SOPC | Set SCC to 1 iff the first scalar input is not greater than or equal to the second scalar input. |
| s_cmp_nge_f32 | s_cmp_nge_f32 | SOPC | Set SCC to 1 iff the first scalar input is not greater than or equal to the second scalar input. |
| s_cmp_ngt_f16 | s_cmp_ngt_f16 | SOPC | Set SCC to 1 iff the first scalar input is not greater than the second scalar input. |
| s_cmp_ngt_f32 | s_cmp_ngt_f32 | SOPC | Set SCC to 1 iff the first scalar input is not greater than the second scalar input. |
| s_cmp_nle_f16 | s_cmp_nle_f16 | SOPC | Set SCC to 1 iff the first scalar input is not less than or equal to the second scalar input. |
| s_cmp_nle_f32 | s_cmp_nle_f32 | SOPC | Set SCC to 1 iff the first scalar input is not less than or equal to the second scalar input. |
| s_cmp_nlg_f16 | s_cmp_nlg_f16 | SOPC | Set SCC to 1 iff the first scalar input is not less than or greater than the second scalar input. |
| s_cmp_nlg_f32 | s_cmp_nlg_f32 | SOPC | Set SCC to 1 iff the first scalar input is not less than or greater than the second scalar input. |
| s_cmp_nlt_f16 | s_cmp_nlt_f16 | SOPC | Set SCC to 1 iff the first scalar input is not less than the second scalar input. |
| s_cmp_nlt_f32 | s_cmp_nlt_f32 | SOPC | Set SCC to 1 iff the first scalar input is not less than the second scalar input. |
| s_cmp_o_f16 | s_cmp_o_f16 | SOPC | Set SCC to 1 iff the first scalar input is orderable to the second scalar input. |
| s_cmp_o_f32 | s_cmp_o_f32 | SOPC | Set SCC to 1 iff the first scalar input is orderable to the second scalar input. |
| s_cmp_u_f16 | s_cmp_u_f16 | SOPC | Set SCC to 1 iff the first scalar input is not orderable to the second scalar input. |
| s_cmp_u_f32 | s_cmp_u_f32 | SOPC | Set SCC to 1 iff the first scalar input is not orderable to the second scalar input. |
| s_setvskip | s_setvskip | SOPC | Enables or disables VSKIP mode. |
| v_cmp_class_f16 | v_cmp_class_f16 | VOPC | Evaluate the IEEE numeric class function specified as a 10 bit mask in the second input on the first input, a half-precision float, and set the… |
| v_cmp_class_f32 | v_cmp_class_f32 | VOPC | Evaluate the IEEE numeric class function specified as a 10 bit mask in the second input on the first input, a single-precision float, and set the… |
| v_cmp_class_f64 | v_cmp_class_f64 | VOPC | Evaluate the IEEE numeric class function specified as a 10 bit mask in the second input on the first input, a double-precision float, and set the… |
| v_cmp_eq_f16 | v_cmp_eq_f16 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_f32 | v_cmp_eq_f32 VCC, S0, S1 | VOPC | Per-lane single-precision equality compare, result written as an execution-mask-width bitmask. |
| v_cmp_eq_f64 | v_cmp_eq_f64 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_i16 | v_cmp_eq_i16 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_i32 | v_cmp_eq_i32 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_i64 | v_cmp_eq_i64 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_u16 | v_cmp_eq_u16 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_u32 | v_cmp_eq_u32 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_eq_u64 | v_cmp_eq_u64 | VOPC | Set the per-lane condition code to 1 iff the first input is equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_f_f16 | v_cmp_f_f16 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_f32 | v_cmp_f_f32 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_f64 | v_cmp_f_f64 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_i16 | v_cmp_f_i16 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_i32 | v_cmp_f_i32 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_i64 | v_cmp_f_i64 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_u16 | v_cmp_f_u16 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_u32 | v_cmp_f_u32 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_f_u64 | v_cmp_f_u64 | VOPC | Set the per-lane condition code to 0. Store the result into VCC or a scalar register. |
| v_cmp_ge_f16 | v_cmp_ge_f16 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_f32 | v_cmp_ge_f32 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_f64 | v_cmp_ge_f64 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_i16 | v_cmp_ge_i16 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_i32 | v_cmp_ge_i32 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_i64 | v_cmp_ge_i64 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_u16 | v_cmp_ge_u16 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_u32 | v_cmp_ge_u32 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_ge_u64 | v_cmp_ge_u64 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_f16 | v_cmp_gt_f16 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_f32 | v_cmp_gt_f32 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_f64 | v_cmp_gt_f64 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_i16 | v_cmp_gt_i16 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_i32 | v_cmp_gt_i32 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_i64 | v_cmp_gt_i64 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_u16 | v_cmp_gt_u16 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_u32 | v_cmp_gt_u32 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_gt_u64 | v_cmp_gt_u64 | VOPC | Set the per-lane condition code to 1 iff the first input is greater than the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_f16 | v_cmp_le_f16 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_f32 | v_cmp_le_f32 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_f64 | v_cmp_le_f64 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_i16 | v_cmp_le_i16 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_i32 | v_cmp_le_i32 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_i64 | v_cmp_le_i64 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_u16 | v_cmp_le_u16 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_u32 | v_cmp_le_u32 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_le_u64 | v_cmp_le_u64 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or equal to the second input. Store the result into VCC or a scalar register. |
| v_cmp_lg_f16 | v_cmp_lg_f16 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or greater than the second input. |
| v_cmp_lg_f32 | v_cmp_lg_f32 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or greater than the second input. |
| v_cmp_lg_f64 | v_cmp_lg_f64 | VOPC | Set the per-lane condition code to 1 iff the first input is less than or greater than the second input. |
| v_cmp_lt_f16 | v_cmp_lt_f16 | VOPC | Set the per-lane condition code to 1 iff the first input is less than the second input. Store the result into VCC or a scalar register. |
| v_cmp_lt_f32 | v_cmp_lt_f32 | VOPC | Set the per-lane condition code to 1 iff the first input is less than the second input. Store the result into VCC or a scalar register. |