MLIR

Multi-Level IR Compiler Framework

'rocdl' Dialect

Operations 

source

rocdl.ballot (ROCDL::BallotOp) 

Vote across thread group

Syntax:

operation ::= `rocdl.ballot` $pred attr-dict `:` type($res)

Ballot provides a bit mask containing the 1-bit predicate value from each lane. The nth bit of the result contains the 1 bit contributed by the nth warp lane.

Operands: 

OperandDescription
pred1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.barrier (ROCDL::BarrierOp) 

Syntax:

operation ::= `rocdl.barrier` attr-dict

rocdl.cvt.f32.bf8 (ROCDL::CvtF32Bf8Op) 

Convert bf8 to f32

Syntax:

operation ::= `rocdl.cvt.f32.bf8` attr-dict $srcA `[` $byteSel `]` `:` type($res)

Convert 8-bit bf8 value from the byteSelth bit of srcA to fp32.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit signless integer
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.f32.fp8 (ROCDL::CvtF32Fp8Op) 

Convert fp8 to f32

Syntax:

operation ::= `rocdl.cvt.f32.fp8` attr-dict $srcA `[` $byteSel `]` `:` type($res)

Convert 8-bit fp8 value from the byteSelth bit of srcA to fp32.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit signless integer
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.pk.bf8.f32 (ROCDL::CvtPkBf8F32Op) 

Convert two f32’s to bf8

Syntax:

operation ::= `rocdl.cvt.pk.bf8.f32` attr-dict $srcA `,` $srcB `->` $old `[` $wordSel `]` `:` type($res)

Convert srcA and srcB to bf8 and store into the low/high word of old, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit float
srcB32-bit float
old32-bit signless integer
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.pk.fp8.f32 (ROCDL::CvtPkFp8F32Op) 

Convert two f32’s to fp8

Syntax:

operation ::= `rocdl.cvt.pk.fp8.f32` attr-dict $srcA `,` $srcB `->` $old `[` $wordSel `]` `:` type($res)

Convert srcA and srcB to fp8 and store into the low/high word of old, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit float
srcB32-bit float
old32-bit signless integer
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.pkrtz (ROCDL::CvtPkRtz) 

Convert two f32 input into a vector<2xf16>

Syntax:

operation ::= `rocdl.cvt.pkrtz` attr-dict $srcA `,` $srcB `:` type($res)

Convert two f32 values into a packed vector<2xf16>.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit float
srcB32-bit float

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.sr.bf8.f32 (ROCDL::CvtSrBf8F32Op) 

Convert f32 to bf8, stochiastic rounding

Syntax:

operation ::= `rocdl.cvt.sr.bf8.f32` attr-dict $srcA `,` $srcB `->` $old `[` $byteSel `]` `:` type($res)

Convert srcA to bf8, adding the rounding factor from srcB, and store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit float
srcB32-bit signless integer
old32-bit signless integer
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.sr.fp8.f32 (ROCDL::CvtSrFp8F32Op) 

Convert f32 to fp8, stochiastic rounding

Syntax:

operation ::= `rocdl.cvt.sr.fp8.f32` attr-dict $srcA `,` $srcB `->` $old `[` $byteSel `]` `:` type($res)

Convert srcA to fp8, adding the rounding factor from srcB, and store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
srcA32-bit float
srcB32-bit signless integer
old32-bit signless integer
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.ds_bpermute (ROCDL::DsBpermuteOp) 

Syntax:

operation ::= `rocdl.ds_bpermute` $index `,` $src  attr-dict `:` `(` type($index) `,` type($src) `)` `->` type($res)

Operands: 

OperandDescription
index32-bit signless integer
src32-bit signless integer

Results: 

ResultDescription
res32-bit signless integer

rocdl.ds_swizzle (ROCDL::DsSwizzleOp) 

Syntax:

operation ::= `rocdl.ds_swizzle` $src `,` $offset  attr-dict `:` `(` type($src) `,` type($offset) `)` `->` type($res)

Operands: 

OperandDescription
src32-bit signless integer
offset32-bit signless integer

Results: 

ResultDescription
res32-bit signless integer

rocdl.grid.dim.x (ROCDL::GridDimXOp) 

Syntax:

operation ::= `rocdl.grid.dim.x` (`range` $range^)? attr-dict `:` type($res)

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Attributes: 

AttributeMLIR TypeDescription
range::mlir::LLVM::ConstantRangeAttr
A range of two integers, corresponding to LLVM's ConstantRange
A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned depending on context.

lower and upper must have the same width.

Syntax:

`&lt;` `i`(width($lower)) $lower `,` $upper `&gt;`
</code></pre>

</details></td></tr>
</table>

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.grid.dim.y` (ROCDL::GridDimYOp)

Syntax:

operation ::= rocdl.grid.dim.y (range $range^)? attr-dict : type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>range</code></td><td>::mlir::LLVM::ConstantRangeAttr</td><td><details><summary>A range of two integers, corresponding to LLVM's ConstantRange</summary><pre><code>A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned
depending on context.

`lower` and `upper` must have the same width.

Syntax:

&lt; i(width($lower)) $lower , $upper &gt;

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.grid.dim.z (ROCDL::GridDimZOp) 

Syntax:

operation ::= `rocdl.grid.dim.z` (`range` $range^)? attr-dict `:` type($res)

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Attributes: 

AttributeMLIR TypeDescription
range::mlir::LLVM::ConstantRangeAttr
A range of two integers, corresponding to LLVM's ConstantRange
A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned depending on context.

lower and upper must have the same width.

Syntax:

`&lt;` `i`(width($lower)) $lower `,` $upper `&gt;`
</code></pre>

</details></td></tr>
</table>

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.make.buffer.rsrc` (ROCDL::MakeBufferRsrcOp)

Syntax:

operation ::= rocdl.make.buffer.rsrc operands attr-dict : type($base) to type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `base` | LLVM pointer type
| `stride` | 16-bit signless integer
| `numRecords` | 32-bit signless integer
| `flags` | 32-bit signless integer

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM pointer in address space 8


### `rocdl.mbcnt.hi` (ROCDL::MbcntHiOp)

Syntax:

operation ::= rocdl.mbcnt.hi $in0 , $in1 attr-dict : ( type($in0) , type($in1) ) -> type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `in0` | 32-bit signless integer
| `in1` | 32-bit signless integer

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mbcnt.lo` (ROCDL::MbcntLoOp)

Syntax:

operation ::= rocdl.mbcnt.lo $in0 , $in1 attr-dict : ( type($in0) , type($in1) ) -> type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `in0` | 32-bit signless integer
| `in1` | 32-bit signless integer

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x16bf16.1k` (ROCDL::mfma_f32_16x16x16bf16_1k)

Syntax:

operation ::= rocdl.mfma.f32.16x16x16bf16.1k $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x16f16` (ROCDL::mfma_f32_16x16x16f16)

Syntax:

operation ::= rocdl.mfma.f32.16x16x16f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x1f32` (ROCDL::mfma_f32_16x16x1f32)

Syntax:

operation ::= rocdl.mfma.f32.16x16x1f32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x2bf16` (ROCDL::mfma_f32_16x16x2bf16)

Syntax:

operation ::= rocdl.mfma.f32.16x16x2bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x32.bf8.bf8` (ROCDL::mfma_f32_16x16x32_bf8_bf8)

Syntax:

operation ::= rocdl.mfma.f32.16x16x32.bf8.bf8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x32.bf8.fp8` (ROCDL::mfma_f32_16x16x32_bf8_fp8)

Syntax:

operation ::= rocdl.mfma.f32.16x16x32.bf8.fp8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x32.fp8.bf8` (ROCDL::mfma_f32_16x16x32_fp8_bf8)

Syntax:

operation ::= rocdl.mfma.f32.16x16x32.fp8.bf8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x32.fp8.fp8` (ROCDL::mfma_f32_16x16x32_fp8_fp8)

Syntax:

operation ::= rocdl.mfma.f32.16x16x32.fp8.fp8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x4bf16.1k` (ROCDL::mfma_f32_16x16x4bf16_1k)

Syntax:

operation ::= rocdl.mfma.f32.16x16x4bf16.1k $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x4f16` (ROCDL::mfma_f32_16x16x4f16)

Syntax:

operation ::= rocdl.mfma.f32.16x16x4f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x4f32` (ROCDL::mfma_f32_16x16x4f32)

Syntax:

operation ::= rocdl.mfma.f32.16x16x4f32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x8.xf32` (ROCDL::mfma_f32_16x16x8_xf32)

Syntax:

operation ::= rocdl.mfma.f32.16x16x8.xf32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.16x16x8bf16` (ROCDL::mfma_f32_16x16x8bf16)

Syntax:

operation ::= rocdl.mfma.f32.16x16x8bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x16.bf8.bf8` (ROCDL::mfma_f32_32x32x16_bf8_bf8)

Syntax:

operation ::= rocdl.mfma.f32.32x32x16.bf8.bf8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x16.bf8.fp8` (ROCDL::mfma_f32_32x32x16_bf8_fp8)

Syntax:

operation ::= rocdl.mfma.f32.32x32x16.bf8.fp8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x16.fp8.bf8` (ROCDL::mfma_f32_32x32x16_fp8_bf8)

Syntax:

operation ::= rocdl.mfma.f32.32x32x16.fp8.bf8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x16.fp8.fp8` (ROCDL::mfma_f32_32x32x16_fp8_fp8)

Syntax:

operation ::= rocdl.mfma.f32.32x32x16.fp8.fp8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x1f32` (ROCDL::mfma_f32_32x32x1f32)

Syntax:

operation ::= rocdl.mfma.f32.32x32x1f32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x2bf16` (ROCDL::mfma_f32_32x32x2bf16)

Syntax:

operation ::= rocdl.mfma.f32.32x32x2bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x2f32` (ROCDL::mfma_f32_32x32x2f32)

Syntax:

operation ::= rocdl.mfma.f32.32x32x2f32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x4.xf32` (ROCDL::mfma_f32_32x32x4_xf32)

Syntax:

operation ::= rocdl.mfma.f32.32x32x4.xf32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x4bf16` (ROCDL::mfma_f32_32x32x4bf16)

Syntax:

operation ::= rocdl.mfma.f32.32x32x4bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x4bf16.1k` (ROCDL::mfma_f32_32x32x4bf16_1k)

Syntax:

operation ::= rocdl.mfma.f32.32x32x4bf16.1k $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x4f16` (ROCDL::mfma_f32_32x32x4f16)

Syntax:

operation ::= rocdl.mfma.f32.32x32x4f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x8bf16.1k` (ROCDL::mfma_f32_32x32x8bf16_1k)

Syntax:

operation ::= rocdl.mfma.f32.32x32x8bf16.1k $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.32x32x8f16` (ROCDL::mfma_f32_32x32x8f16)

Syntax:

operation ::= rocdl.mfma.f32.32x32x8f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.4x4x1f32` (ROCDL::mfma_f32_4x4x1f32)

Syntax:

operation ::= rocdl.mfma.f32.4x4x1f32 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.4x4x2bf16` (ROCDL::mfma_f32_4x4x2bf16)

Syntax:

operation ::= rocdl.mfma.f32.4x4x2bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.4x4x4bf16.1k` (ROCDL::mfma_f32_4x4x4bf16_1k)

Syntax:

operation ::= rocdl.mfma.f32.4x4x4bf16.1k $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f32.4x4x4f16` (ROCDL::mfma_f32_4x4x4f16)

Syntax:

operation ::= rocdl.mfma.f32.4x4x4f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f64.16x16x4f64` (ROCDL::mfma_f64_16x16x4f64)

Syntax:

operation ::= rocdl.mfma.f64.16x16x4f64 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.f64.4x4x4f64` (ROCDL::mfma_f64_4x4x4f64)

Syntax:

operation ::= rocdl.mfma.f64.4x4x4f64 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.16x16x16i8` (ROCDL::mfma_i32_16x16x16i8)

Syntax:

operation ::= rocdl.mfma.i32.16x16x16i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.16x16x32.i8` (ROCDL::mfma_i32_16x16x32_i8)

Syntax:

operation ::= rocdl.mfma.i32.16x16x32.i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.16x16x4i8` (ROCDL::mfma_i32_16x16x4i8)

Syntax:

operation ::= rocdl.mfma.i32.16x16x4i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.32x32x16.i8` (ROCDL::mfma_i32_32x32x16_i8)

Syntax:

operation ::= rocdl.mfma.i32.32x32x16.i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.32x32x4i8` (ROCDL::mfma_i32_32x32x4i8)

Syntax:

operation ::= rocdl.mfma.i32.32x32x4i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.32x32x8i8` (ROCDL::mfma_i32_32x32x8i8)

Syntax:

operation ::= rocdl.mfma.i32.32x32x8i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.mfma.i32.4x4x4i8` (ROCDL::mfma_i32_4x4x4i8)

Syntax:

operation ::= rocdl.mfma.i32.4x4x4i8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.raw.buffer.atomic.cmpswap` (ROCDL::RawBufferAtomicCmpSwap)

Syntax:

operation ::= rocdl.raw.buffer.atomic.cmpswap attr-dict ( operands ) : type($res) , type($rsrc)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `src` | LLVM dialect-compatible type
| `cmp` | LLVM dialect-compatible type
| `rsrc` | LLVM dialect-compatible type
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.raw.buffer.atomic.fadd` (ROCDL::RawBufferAtomicFAddOp)

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM dialect-compatible type
| `offset` | LLVM dialect-compatible type
| `soffset` | LLVM dialect-compatible type
| `aux` | LLVM dialect-compatible type


### `rocdl.raw.buffer.atomic.fmax` (ROCDL::RawBufferAtomicFMaxOp)

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM dialect-compatible type
| `offset` | LLVM dialect-compatible type
| `soffset` | LLVM dialect-compatible type
| `aux` | LLVM dialect-compatible type


### `rocdl.raw.buffer.atomic.smax` (ROCDL::RawBufferAtomicSMaxOp)

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM dialect-compatible type
| `offset` | LLVM dialect-compatible type
| `soffset` | LLVM dialect-compatible type
| `aux` | LLVM dialect-compatible type


### `rocdl.raw.buffer.atomic.umin` (ROCDL::RawBufferAtomicUMinOp)

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM dialect-compatible type
| `offset` | LLVM dialect-compatible type
| `soffset` | LLVM dialect-compatible type
| `aux` | LLVM dialect-compatible type


### `rocdl.raw.buffer.load` (ROCDL::RawBufferLoadOp)

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `rsrc` | LLVM dialect-compatible type
| `offset` | LLVM dialect-compatible type
| `soffset` | LLVM dialect-compatible type
| `aux` | LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.raw.buffer.store` (ROCDL::RawBufferStoreOp)

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM dialect-compatible type
| `offset` | LLVM dialect-compatible type
| `soffset` | LLVM dialect-compatible type
| `aux` | LLVM dialect-compatible type


### `rocdl.raw.ptr.buffer.atomic.cmpswap` (ROCDL::RawPtrBufferAtomicCmpSwap)

Syntax:

operation ::= rocdl.raw.ptr.buffer.atomic.cmpswap operands attr-dict : type($res)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `src` | LLVM dialect-compatible type
| `cmp` | LLVM dialect-compatible type
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.raw.ptr.buffer.atomic.fadd` (ROCDL::RawPtrBufferAtomicFaddOp)

Syntax:

operation ::= rocdl.raw.ptr.buffer.atomic.fadd operands attr-dict : type($vdata)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer


### `rocdl.raw.ptr.buffer.atomic.fmax` (ROCDL::RawPtrBufferAtomicFmaxOp)

Syntax:

operation ::= rocdl.raw.ptr.buffer.atomic.fmax operands attr-dict : type($vdata)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer


### `rocdl.raw.ptr.buffer.atomic.smax` (ROCDL::RawPtrBufferAtomicSmaxOp)

Syntax:

operation ::= rocdl.raw.ptr.buffer.atomic.smax operands attr-dict : type($vdata)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer


### `rocdl.raw.ptr.buffer.atomic.umin` (ROCDL::RawPtrBufferAtomicUminOp)

Syntax:

operation ::= rocdl.raw.ptr.buffer.atomic.umin operands attr-dict : type($vdata)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer


### `rocdl.raw.ptr.buffer.load` (ROCDL::RawPtrBufferLoadOp)

Syntax:

operation ::= rocdl.raw.ptr.buffer.load operands attr-dict : type($res)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.raw.ptr.buffer.store` (ROCDL::RawPtrBufferStoreOp)

Syntax:

operation ::= rocdl.raw.ptr.buffer.store operands attr-dict : type($vdata)



Interfaces: `AliasAnalysisOpInterface`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>alias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>noalias_scopes</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect alias scope array</td></tr>
<tr><td><code>tbaa</code></td><td>::mlir::ArrayAttr</td><td>LLVM dialect TBAA tag metadata array</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `vdata` | LLVM dialect-compatible type
| `rsrc` | LLVM pointer in address space 8
| `offset` | 32-bit signless integer
| `soffset` | 32-bit signless integer
| `aux` | 32-bit signless integer


### `rocdl.s.barrier` (ROCDL::SBarrierOp)

Syntax:

operation ::= rocdl.s.barrier attr-dict




### `rocdl.s.setprio` (ROCDL::SetPrioOp)

Syntax:

operation ::= rocdl.s.setprio $priority attr-dict



#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>priority</code></td><td>::mlir::IntegerAttr</td><td>16-bit signless integer attribute</td></tr>
</table>


### `rocdl.sched.barrier` (ROCDL::SchedBarrier)

Syntax:

operation ::= rocdl.sched.barrier $mask attr-dict



#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>mask</code></td><td>::mlir::IntegerAttr</td><td>32-bit signless integer attribute</td></tr>
</table>


### `rocdl.update.dpp` (ROCDL::DPPUpdateOp)

Syntax:

operation ::= rocdl.update.dpp attr-dict $old , $src with $dppCtrl , $rowMask , $bankMask , $boundCtrl : type($src)



#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>dppCtrl</code></td><td>::mlir::IntegerAttr</td><td>32-bit signless integer attribute</td></tr>
<tr><td><code>rowMask</code></td><td>::mlir::IntegerAttr</td><td>32-bit signless integer attribute</td></tr>
<tr><td><code>bankMask</code></td><td>::mlir::IntegerAttr</td><td>32-bit signless integer attribute</td></tr>
<tr><td><code>boundCtrl</code></td><td>::mlir::IntegerAttr</td><td>1-bit signless integer attribute</td></tr>
</table>

#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `old` | LLVM dialect-compatible type
| `src` | LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.waitcnt` (ROCDL::WaitcntOp)

Syntax:

operation ::= rocdl.waitcnt attr-dict $bitfield



#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>bitfield</code></td><td>::mlir::IntegerAttr</td><td>32-bit signless integer attribute</td></tr>
</table>


### `rocdl.wmma.bf16.16x16x16.bf16` (ROCDL::wmma_bf16_16x16x16_bf16)

Syntax:

operation ::= rocdl.wmma.bf16.16x16x16.bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.f16.16x16x16.f16` (ROCDL::wmma_f16_16x16x16_f16)

Syntax:

operation ::= rocdl.wmma.f16.16x16x16.f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.f32.16x16x16.bf16` (ROCDL::wmma_f32_16x16x16_bf16)

Syntax:

operation ::= rocdl.wmma.f32.16x16x16.bf16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.f32.16x16x16.bf8_bf8` (ROCDL::wmma_f32_16x16x16_bf8)

Syntax:

operation ::= rocdl.wmma.f32.16x16x16.bf8_bf8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.f32.16x16x16.f16` (ROCDL::wmma_f32_16x16x16_f16)

Syntax:

operation ::= rocdl.wmma.f32.16x16x16.f16 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.f32.16x16x16.fp8_fp8` (ROCDL::wmma_f32_16x16x16_fp8)

Syntax:

operation ::= rocdl.wmma.f32.16x16x16.fp8_fp8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.i32.16x16x16.iu4` (ROCDL::wmma_i32_16x16x16_iu4)

Syntax:

operation ::= rocdl.wmma.i32.16x16x16.iu4 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.wmma.i32.16x16x16.iu8` (ROCDL::wmma_i32_16x16x16_iu8)

Syntax:

operation ::= rocdl.wmma.i32.16x16x16.iu8 $args attr-dict : functional-type($args, $res)



#### Operands:

| Operand | Description |
| :-----: | ----------- |
| `args` | variadic of LLVM dialect-compatible type

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.workgroup.dim.x` (ROCDL::BlockDimXOp)

Syntax:

operation ::= rocdl.workgroup.dim.x (range $range^)? attr-dict : type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>range</code></td><td>::mlir::LLVM::ConstantRangeAttr</td><td><details><summary>A range of two integers, corresponding to LLVM's ConstantRange</summary><pre><code>A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned
depending on context.

`lower` and `upper` must have the same width.

Syntax:

&lt; i(width($lower)) $lower , $upper &gt;

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.workgroup.dim.y (ROCDL::BlockDimYOp) 

Syntax:

operation ::= `rocdl.workgroup.dim.y` (`range` $range^)? attr-dict `:` type($res)

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Attributes: 

AttributeMLIR TypeDescription
range::mlir::LLVM::ConstantRangeAttr
A range of two integers, corresponding to LLVM's ConstantRange
A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned depending on context.

lower and upper must have the same width.

Syntax:

`&lt;` `i`(width($lower)) $lower `,` $upper `&gt;`
</code></pre>

</details></td></tr>
</table>

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.workgroup.dim.z` (ROCDL::BlockDimZOp)

Syntax:

operation ::= rocdl.workgroup.dim.z (range $range^)? attr-dict : type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>range</code></td><td>::mlir::LLVM::ConstantRangeAttr</td><td><details><summary>A range of two integers, corresponding to LLVM's ConstantRange</summary><pre><code>A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned
depending on context.

`lower` and `upper` must have the same width.

Syntax:

&lt; i(width($lower)) $lower , $upper &gt;

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.workgroup.id.x (ROCDL::BlockIdXOp) 

Syntax:

operation ::= `rocdl.workgroup.id.x` (`range` $range^)? attr-dict `:` type($res)

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Attributes: 

AttributeMLIR TypeDescription
range::mlir::LLVM::ConstantRangeAttr
A range of two integers, corresponding to LLVM's ConstantRange
A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned depending on context.

lower and upper must have the same width.

Syntax:

`&lt;` `i`(width($lower)) $lower `,` $upper `&gt;`
</code></pre>

</details></td></tr>
</table>

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.workgroup.id.y` (ROCDL::BlockIdYOp)

Syntax:

operation ::= rocdl.workgroup.id.y (range $range^)? attr-dict : type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>range</code></td><td>::mlir::LLVM::ConstantRangeAttr</td><td><details><summary>A range of two integers, corresponding to LLVM's ConstantRange</summary><pre><code>A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned
depending on context.

`lower` and `upper` must have the same width.

Syntax:

&lt; i(width($lower)) $lower , $upper &gt;

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.workgroup.id.z (ROCDL::BlockIdZOp) 

Syntax:

operation ::= `rocdl.workgroup.id.z` (`range` $range^)? attr-dict `:` type($res)

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Attributes: 

AttributeMLIR TypeDescription
range::mlir::LLVM::ConstantRangeAttr
A range of two integers, corresponding to LLVM's ConstantRange
A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned depending on context.

lower and upper must have the same width.

Syntax:

`&lt;` `i`(width($lower)) $lower `,` $upper `&gt;`
</code></pre>

</details></td></tr>
</table>

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.workitem.id.x` (ROCDL::ThreadIdXOp)

Syntax:

operation ::= rocdl.workitem.id.x (range $range^)? attr-dict : type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>range</code></td><td>::mlir::LLVM::ConstantRangeAttr</td><td><details><summary>A range of two integers, corresponding to LLVM's ConstantRange</summary><pre><code>A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned
depending on context.

`lower` and `upper` must have the same width.

Syntax:

&lt; i(width($lower)) $lower , $upper &gt;

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.workitem.id.y (ROCDL::ThreadIdYOp) 

Syntax:

operation ::= `rocdl.workitem.id.y` (`range` $range^)? attr-dict `:` type($res)

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Attributes: 

AttributeMLIR TypeDescription
range::mlir::LLVM::ConstantRangeAttr
A range of two integers, corresponding to LLVM's ConstantRange
A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned depending on context.

lower and upper must have the same width.

Syntax:

`&lt;` `i`(width($lower)) $lower `,` $upper `&gt;`
</code></pre>

</details></td></tr>
</table>

#### Results:

| Result | Description |
| :----: | ----------- |
| `res` | LLVM dialect-compatible type


### `rocdl.workitem.id.z` (ROCDL::ThreadIdZOp)

Syntax:

operation ::= rocdl.workitem.id.z (range $range^)? attr-dict : type($res)



Traits: `AlwaysSpeculatableImplTrait`

Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`

Effects: `MemoryEffects::Effect{}`

#### Attributes:

<table>
<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>
<tr><td><code>range</code></td><td>::mlir::LLVM::ConstantRangeAttr</td><td><details><summary>A range of two integers, corresponding to LLVM's ConstantRange</summary><pre><code>A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
which is allowed to wrap or be empty.

The range represented is [Lower, Upper), and is either signed or unsigned
depending on context.

`lower` and `upper` must have the same width.

Syntax:

&lt; i(width($lower)) $lower , $upper &gt;

Results: 

ResultDescription
resLLVM dialect-compatible type

Attributes 

ROCDLTargetAttr 

Syntax:

#rocdl.target<
  int,   # O
  ::llvm::StringRef,   # triple
  ::llvm::StringRef,   # chip
  ::llvm::StringRef,   # features
  ::llvm::StringRef,   # abi
  DictionaryAttr,   # flags
  ArrayAttr   # link
>

ROCDL target attribute for controlling compilation of AMDGPU targets. All parameters decay into default values if not present.

Examples:

  1. Target with default values.
  gpu.module @mymodule [#rocdl.target] attributes {...} {
    ...
  }
  1. Target with gfx90a chip and fast math.
  gpu.module @mymodule [#rocdl.target<chip = "gfx90a", flags = {fast, no_wave64}>] {
    ...
  }

Parameters: 

ParameterC++ typeDescription
OintOptimization level to apply.
triple::llvm::StringRefTarget triple.
chip::llvm::StringRefTarget chip.
features::llvm::StringRefTarget chip features.
abi::llvm::StringRefABI version.
flagsDictionaryAttrTarget specific flags.
linkArrayAttrFiles to link to the LLVM module.