# Syntax of gfx906 Instructions

- Introduction
- Notation
- Overvew
- Instructions
  - VOP2
  - VOP3
  - VOP3P

## Introduction

This document describes the syntax of instructions specific to gfx906.

For a description of other gfx906 instructions see Syntax of Core GFX9 Instructions.

## Notation

Notation used in this document is explained here.

## Overvew

An overview of generic syntax and other features of AMDGPU instructions may be found in this document.

## Instructions

### VOP2

    INSTRUCTION                    DST       SRC0      SRC1           MODIFIERS
    —————————————————————————————————————————————————————————————————————————————————————————————————————————
    v_fmac_f32                     vdst,     src0,     vsrc1
    v_fmac_f32_dpp                 vdst,     vsrc0:m,  vsrc1:m        dpp_ctrl row_mask bank_mask bound_ctrl
    v_xnor_b32                     vdst,     src0,     vsrc1
    v_xnor_b32_dpp                 vdst,     vsrc0,    vsrc1          dpp_ctrl row_mask bank_mask bound_ctrl
    v_xnor_b32_sdwa                vdst,     src0:m,   vsrc1:m        dst_sel dst_unused src0_sel src1_sel

### VOP3

    INSTRUCTION                    DST       SRC0      SRC1           MODIFIERS
    —————————————————————————————————————————————————————————————————————————————
    v_fmac_f32_e64                 vdst,     src0:m,   src1:m         clamp omod
    v_xnor_b32_e64                 vdst,     src0,     src1

### VOP3P

    INSTRUCTION                    DST       SRC0        SRC1        SRC2           MODIFIERS
    ———————————————————————————————————————————————————————————————————————————————————————————————————————————
    v_dot2_f32_f16                 vdst,     src0:f16x2, src1:f16x2, src2:f32       neg_lo neg_hi clamp
    v_dot2_i32_i16                 vdst,     src0:i16x2, src1:i16x2, src2:i32       clamp
    v_dot2_u32_u16                 vdst,     src0:u16x2, src1:u16x2, src2:u32       clamp
    v_dot4_i32_i8                  vdst,     src0:i8x2,  src1:i8x2,  src2:i32       clamp
    v_dot4_u32_u8                  vdst,     src0:u8x2,  src1:u8x2,  src2:u32       clamp
    v_dot8_i32_i4                  vdst,     src0:i4x2,  src1:i4x2,  src2:i32       clamp
    v_dot8_u32_u4                  vdst,     src0:u4x2,  src1:u4x2,  src2:u32       clamp
    v_fma_mix_f32                  vdst,     src0:m:fx,  src1:m:fx,  src2:m:fx      m_op_sel m_op_sel_hi clamp
    v_fma_mixhi_f16                vdst,     src0:m:fx,  src1:m:fx,  src2:m:fx      m_op_sel m_op_sel_hi clamp
    v_fma_mixlo_f16                vdst,     src0:m:fx,  src1:m:fx,  src2:m:fx      m_op_sel m_op_sel_hi clamp