AMDGPU 指令符號

簡介

這是有關用於描述 AMDGPU 組合語言指令語法的符號概述。

這個符號看起來很像 組合語言指令的語法,但它不是使用實際的運算元和修飾符,而是使用對它們描述的參考。

指令

符號

這是用於描述 AMDGPU 指令的符號

運算碼

符號

待定

運算元

一個指令可以有零個或多個運算元。它們在描述中以逗號分隔

運算元 的順序是固定的。除非在下面描述的特殊情況下,運算元 不能省略。

符號

運算元使用以下符號描述

<kind><name><tag0><tag1>…

其中

  • kind 是一個可選的前綴,描述運算元 種類

  • name 是一個連結,指向運算元的描述。

  • tags 是可選的。它們用於指示 特殊的運算元屬性

運算元種類

運算元種類指示運算元接受哪些值。

  • 僅接受向量 暫存器的運算元標記為 ‘v’ 前綴。

  • 僅接受純量 暫存器和值的運算元標記為 ‘s’ 前綴。

  • 接受任何暫存器和值的運算元沒有前綴。

範例

vdata          // operand only accepts vector registers
sdst           // operand only accepts scalar registers
src1           // operand accepts vector registers, scalar registers, and scalar values

運算元標籤

運算元標籤指示特殊的運算元屬性。

運算元標籤

意義

:opt

一個可選的運算元。

:m

一個可以與運算元修飾符 absnegsext 一起使用的運算元。

:dst

如果指定了 glc 修飾符,則也用作目的地的輸入運算元。

:fx

這是一個 f32 或 f16 運算元,取決於 m_op_sel_hi 修飾符。

:

運算元類型運算碼名稱 暗示的 類型 不同。此標籤指定實際的運算元類型

範例

src1:m             // src1 operand may be used with operand modifiers
vdata:dst          // vdata operand may be used as both source and destination
vdst:u32           // vdst operand has u32 type

修飾符

一個指令可以有零個或多個可選的修飾符。它們在描述中以空格分隔

修飾符 的順序是固定的。

符號

修飾符 使用以下符號描述

<name>

其中 name 是一個連結,指向修飾符 的描述。