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.scalef32.f16.bf8 (ROCDL::CvtScaleF16Bf8) 

Scale and convert fp8 to f16

Syntax:

operation ::= `rocdl.cvt.scalef32.f16.bf8` attr-dict $src `[` $wordSel `]` `,` $scale `->` $old `[` $byteSel `]` `:` type($res)

Scale src based on $wordSel by the exponent in scale then convert to f16 store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
oldfixed-length vector of 16-bit float values of length 2
src32-bit signless integer
scale32-bit float
byteSel32-bit signless integer
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.f16.fp8 (ROCDL::CvtScaleF16Fp8) 

Scale and convert fp8 to f16

Syntax:

operation ::= `rocdl.cvt.scalef32.f16.fp8` attr-dict $src `[` $wordSel `]` `,` $scale `->` $old `[` $byteSel `]` `:` type($res)

Scale src based on $wordSel by the exponent in scale then convert to f16 store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
oldfixed-length vector of 16-bit float values of length 2
src32-bit signless integer
scale32-bit float
byteSel32-bit signless integer
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.f32.bf8 (ROCDL::CvtScaleF32Bf8Op) 

Scale and convert bf8 to f32

Syntax:

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

Scale src by the exponent in scale then convert 8-bit bf8 value from the byteSelth bit of src to fp32.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
src32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.f32.fp8 (ROCDL::CvtScaleF32Fp8Op) 

Scale and convert fp8 to f32

Syntax:

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

Scale src by the exponent in scale then convert 8-bit fp8 value from the byteSelth bit of src to fp32.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
src32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.bf8.bf16 (ROCDL::CvtScaleF32PkBf8Bf16) 

Scale and convert bf16 to packed bf8

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.bf8.bf16` attr-dict $src `,` $scale `->` $old `[` $wordSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed bf8. Store the result in low/high word based on $wordSel, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
oldfixed-length vector of 16-bit signless integer values of length 2
srcfixed-length vector of bfloat16 type values of length 2
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.bf8.f16 (ROCDL::CvtScaleF32PkBf8F16) 

Scale and convert f16 to packed bf8

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.bf8.f16` attr-dict $src `,` $scale `->` $old `[` $wordSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed bf8. Store the result in low/high word based on $wordSel, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
oldfixed-length vector of 16-bit signless integer values of length 2
srcfixed-length vector of 16-bit float values of length 2
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.bf8.f32 (ROCDL::CvtScaleF32PkBf8F32) 

Scale and convert two f32’s to packed bf8

Syntax:

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

Scale srcA and srcB by the exponent in scale then convert to packed 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
oldfixed-length vector of 16-bit signless integer values of length 2
srcA32-bit float
srcB32-bit float
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.f16.bf8 (ROCDL::CvtScaleF32PkF16Bf8) 

Scale and convert bf8 to packed f16

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.f16.bf8` attr-dict $src `[` $wordSel `]` `,` $scale `:` type($res)

Scale src based on $wordSel by the exponent in scale then convert to packed f16.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
src32-bit signless integer
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.f16.fp8 (ROCDL::CvtScaleF32PkF16Fp8) 

Scale and convert fp8 to packed f16

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.f16.fp8` attr-dict $src `[` $wordSel `]` `,` $scale `:` type($res)

Scale src based on $wordSel by the exponent in scale then convert to packed f16.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
src32-bit signless integer
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.f32.bf8 (ROCDL::CvtScale32PkF32Bf8) 

Scale and convert packed bf8 to packed f32

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.f32.bf8` attr-dict $src `[` $wordSel `]` `,` $scale `:` type($res)

Scale src by the exponent in scale then convert to packed fp32. Store the result in low/high word based on $wordSel, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
src32-bit signless integer
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.f32.fp8 (ROCDL::CvtScale32PkF32Fp8) 

Scale and convert packed fp8 to packed f32

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.f32.fp8` attr-dict $src `[` $wordSel `]` `,` $scale `:` type($res)

Scale src by the exponent in scale then convert to packed fp32. Store the result in low/high word based on $wordSel, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
src32-bit signless integer
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.fp8.bf16 (ROCDL::CvtScaleF32PkFp8Bf16) 

Scale and convert packed bf16 to packed fp8

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.fp8.bf16` attr-dict $src `,` $scale `->` $old `[` $wordSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed fp8. Store the result in low/high word based on $wordSel, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
oldfixed-length vector of 16-bit signless integer values of length 2
srcfixed-length vector of bfloat16 type values of length 2
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.fp8.f16 (ROCDL::CvtScaleF32PkFp8F16) 

Scale and convert f16 to packed fp8

Syntax:

operation ::= `rocdl.cvt.scalef32.pk.fp8.f16` attr-dict $src `,` $scale `->` $old `[` $wordSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed fp8. Store the result in low/high word based on $wordSel, preserving the other word.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
oldfixed-length vector of 16-bit signless integer values of length 2
srcfixed-length vector of 16-bit float values of length 2
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.pk.fp8.f32 (ROCDL::CvtScaleF32PkFp8F32) 

Scale and convert two f32’s to packed fp8

Syntax:

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

Scale srcA and srcB by the exponent in scale then convert to packed 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
oldfixed-length vector of 16-bit signless integer values of length 2
srcA32-bit float
srcB32-bit float
scale32-bit float
wordSel1-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.sr.bf8.bf16 (ROCDL::CvtScaleF32SrBf8Bf16) 

Scale and convert bf16 to packed fp8 using stochastic rounding

Syntax:

operation ::= `rocdl.cvt.scalef32.sr.bf8.bf16` attr-dict $src `,` $seed `,` $scale `->` $old `[` $byteSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed p8 with stochastic rounding using seed data in seed. store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
old32-bit signless integer
srcbfloat16 type
seed32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.sr.bf8.f16 (ROCDL::CvtScaleF32SrBf8F16) 

Scale and convert f16 to packed bf8 using stochastic rounding

Syntax:

operation ::= `rocdl.cvt.scalef32.sr.bf8.f16` attr-dict $src `,` $seed `,` $scale `->` $old `[` $byteSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed bf8 with stochastic rounding using seed data in seed. store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
old32-bit signless integer
src16-bit float
seed32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.sr.bf8.f32 (ROCDL::CvtScaleF32SrBf8F32) 

Scale and convert f32 to bf8 using stochastic rounding

Syntax:

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

Scale src by the exponent in scale then convert to bf8 with stochastic rounding using seed data in seed. store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
old32-bit signless integer
src32-bit float
seed32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.sr.fp8.bf16 (ROCDL::CvtScaleF32SrFp8Bf16) 

Scale and convert packed bf16 to packed fp8 using stochastic rounding

Syntax:

operation ::= `rocdl.cvt.scalef32.sr.fp8.bf16` attr-dict $src `,` $seed `,` $scale `->` $old `[` $byteSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed fp8 with stochastic rounding using seed data in seed. store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
old32-bit signless integer
srcbfloat16 type
seed32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.sr.fp8.f16 (ROCDL::CvtScaleF32SrFp8F16) 

Scale and convert f16 to packed fp8 using stochastic rounding

Syntax:

operation ::= `rocdl.cvt.scalef32.sr.fp8.f16` attr-dict $src `,` $seed `,` $scale `->` $old `[` $byteSel `]` `:` type($res)

Scale src by the exponent in scale then convert to packed p8 with stochastic rounding using seed data in seed. store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
old32-bit signless integer
src16-bit float
seed32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.cvt.scalef32.sr.fp8.f32 (ROCDL::CvtScaleF32SrFp8F32) 

Scale and convert f32 to fp8 using stochastic rounding

Syntax:

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

Scale src by the exponent in scale then convert to fp8 with stochastic rounding using seed data in seed. store into the byteSelth byte of old, preserving the others.

Traits: AlwaysSpeculatableImplTrait

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

Effects: MemoryEffects::Effect{}

Operands: 

OperandDescription
old32-bit signless integer
src32-bit float
seed32-bit signless integer
scale32-bit float
byteSel32-bit signless integer

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.read.tr16.b64 (ROCDL::ds_read_tr16_b64) 

Syntax:

operation ::= `rocdl.ds.read.tr16.b64` $ptr attr-dict `:` type($ptr) `->` type($res)

Operands: 

OperandDescription
ptrLLVM pointer in address space 3

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.ds.read.tr4.b64 (ROCDL::ds_read_tr4_b64) 

Syntax:

operation ::= `rocdl.ds.read.tr4.b64` $ptr attr-dict `:` type($ptr) `->` type($res)

Operands: 

OperandDescription
ptrLLVM pointer in address space 3

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.ds.read.tr6.b96 (ROCDL::ds_read_tr6_b96) 

Syntax:

operation ::= `rocdl.ds.read.tr6.b96` $ptr attr-dict `:` type($ptr) `->` type($res)

Operands: 

OperandDescription
ptrLLVM pointer in address space 3

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.ds.read.tr8.b64 (ROCDL::ds_read_tr8_b64) 

Syntax:

operation ::= `rocdl.ds.read.tr8.b64` $ptr attr-dict `:` type($ptr) `->` type($res)

Operands: 

OperandDescription
ptrLLVM pointer in address space 3

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.global.load.lds (ROCDL::GlobalLoadLDSOp) 

Syntax:

operation ::= `rocdl.global.load.lds` operands attr-dict

Operands: 

OperandDescription
globalPtrLLVM pointer in address space 1
ldsPtrLLVM pointer in address space 3
size32-bit signless integer
offset32-bit signless integer
aux32-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;`

Results: 

ResultDescription
resLLVM 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: 

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;`

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;`

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.iglp.opt (ROCDL::IglpOpt) 

Syntax:

operation ::= `rocdl.iglp.opt` $variant attr-dict

Attributes: 

AttributeMLIR TypeDescription
variant::mlir::IntegerAttr32-bit signless integer attribute

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: 

OperandDescription
baseLLVM pointer type
stride16-bit signless integer
numRecords32-bit signless integer
flags32-bit signless integer

Results: 

ResultDescription
resLLVM pointer type

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: 

OperandDescription
in032-bit signless integer
in132-bit signless integer

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
in032-bit signless integer
in132-bit signless integer

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.f32.16x16x32.bf16 (ROCDL::mfma_f32_16x16x32_bf16) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.f32.16x16x32.f16 (ROCDL::mfma_f32_16x16x32_f16) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.f32.32x32x16.bf16 (ROCDL::mfma_f32_32x32x16_bf16) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.f32.32x32x16.f16 (ROCDL::mfma_f32_32x32x16_f16) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.i32.16x16x64.i8 (ROCDL::mfma_i32_16x16x64_i8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.i32.32x32x32.i8 (ROCDL::mfma_i32_32x32x32_i8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.scale.f32.16x16x128.f8f6f4 (ROCDL::mfma_scale_f32_16x16x128_f8f6f4) 

Syntax:

operation ::= `rocdl.mfma.scale.f32.16x16x128.f8f6f4` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.mfma.scale.f32.32x32x64.f8f6f4 (ROCDL::mfma_scale_f32_32x32x64_f8f6f4) 

Syntax:

operation ::= `rocdl.mfma.scale.f32.32x32x64.f8f6f4` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
srcLLVM dialect-compatible type
cmpLLVM dialect-compatible type
rsrcLLVM dialect-compatible type
offset32-bit signless integer
soffset32-bit signless integer
aux32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

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

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM dialect-compatible type
offsetLLVM dialect-compatible type
soffsetLLVM dialect-compatible type
auxLLVM dialect-compatible type

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

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM dialect-compatible type
offsetLLVM dialect-compatible type
soffsetLLVM dialect-compatible type
auxLLVM dialect-compatible type

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

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM dialect-compatible type
offsetLLVM dialect-compatible type
soffsetLLVM dialect-compatible type
auxLLVM dialect-compatible type

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

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM dialect-compatible type
offsetLLVM dialect-compatible type
soffsetLLVM dialect-compatible type
auxLLVM dialect-compatible type

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

Operands: 

OperandDescription
rsrcLLVM dialect-compatible type
offsetLLVM dialect-compatible type
soffsetLLVM dialect-compatible type
auxLLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

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

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM dialect-compatible type
offsetLLVM dialect-compatible type
soffsetLLVM dialect-compatible type
auxLLVM 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: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
srcLLVM dialect-compatible type
cmpLLVM dialect-compatible type
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-bit signless integer

Results: 

ResultDescription
resLLVM 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: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-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: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-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: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-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: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-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: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.raw.ptr.buffer.load.lds (ROCDL::RawPtrBufferLoadLdsOp) 

Syntax:

operation ::= `rocdl.raw.ptr.buffer.load.lds` operands attr-dict

Interfaces: AliasAnalysisOpInterface

Attributes: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
rsrcLLVM pointer in address space 8
ldsPtrLLVM pointer in address space 3
size32-bit signless integer
voffset32-bit signless integer
soffset32-bit signless integer
offset32-bit signless integer
aux32-bit signless integer

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

Syntax:

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

Interfaces: AliasAnalysisOpInterface

Attributes: 

AttributeMLIR TypeDescription
alias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
noalias_scopes::mlir::ArrayAttrLLVM dialect alias scope array
tbaa::mlir::ArrayAttrLLVM dialect TBAA tag metadata array

Operands: 

OperandDescription
vdataLLVM dialect-compatible type
rsrcLLVM pointer in address space 8
offset32-bit signless integer
soffset32-bit signless integer
aux32-bit signless integer

rocdl.readlane (ROCDL::ReadlaneOp) 

Get the value in the specific lane.

Syntax:

operation ::= `rocdl.readlane` $src0 `,` $src1  attr-dict `:` `(` type($src0) `,` type($src1) `)` `->` type($res)

Get the value in lane src1 from input src0.

Operands: 

OperandDescription
src0LLVM dialect-compatible type
src132-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.s.barrier (ROCDL::SBarrierOp) 

Syntax:

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

rocdl.s.barrier.signal (ROCDL::BarrierSignalOp) 

Syntax:

operation ::= `rocdl.s.barrier.signal` $id attr-dict

Attributes: 

AttributeMLIR TypeDescription
id::mlir::IntegerAttr32-bit signless integer attribute

rocdl.s.barrier.wait (ROCDL::BarrierWaitOp) 

Syntax:

operation ::= `rocdl.s.barrier.wait` $id attr-dict

Attributes: 

AttributeMLIR TypeDescription
id::mlir::IntegerAttr16-bit signless integer attribute

rocdl.s.setprio (ROCDL::SetPrioOp) 

Syntax:

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

Attributes: 

AttributeMLIR TypeDescription
priority::mlir::IntegerAttr16-bit signless integer attribute

rocdl.s.wait.dscnt (ROCDL::WaitDscntOp) 

Syntax:

operation ::= `rocdl.s.wait.dscnt` $id attr-dict

Attributes: 

AttributeMLIR TypeDescription
id::mlir::IntegerAttr16-bit signless integer attribute

rocdl.s.waitcnt (ROCDL::SWaitcntOp) 

Syntax:

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

Attributes: 

AttributeMLIR TypeDescription
bitfield::mlir::IntegerAttr32-bit signless integer attribute

rocdl.sched.barrier (ROCDL::SchedBarrier) 

Syntax:

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

Attributes: 

AttributeMLIR TypeDescription
mask::mlir::IntegerAttr32-bit signless integer attribute

rocdl.sched.group.barrier (ROCDL::SchedGroupBarrier) 

Syntax:

operation ::= `rocdl.sched.group.barrier` $mask `,` $size `,` $groupId attr-dict

Attributes: 

AttributeMLIR TypeDescription
mask::mlir::IntegerAttr32-bit signless integer attribute
size::mlir::IntegerAttr32-bit signless integer attribute
groupId::mlir::IntegerAttr32-bit signless integer attribute

rocdl.smfmac.f32.16x16x32.bf16 (ROCDL::smfmac_f32_16x16x32_bf16) 

Syntax:

operation ::= `rocdl.smfmac.f32.16x16x32.bf16` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.16x16x32.f16 (ROCDL::smfmac_f32_16x16x32_f16) 

Syntax:

operation ::= `rocdl.smfmac.f32.16x16x32.f16` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.16x16x64.bf8.bf8 (ROCDL::smfmac_f32_16x16x64_bf8_bf8) 

Syntax:

operation ::= `rocdl.smfmac.f32.16x16x64.bf8.bf8` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.16x16x64.bf8.fp8 (ROCDL::smfmac_f32_16x16x64_bf8_fp8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.16x16x64.fp8.bf8 (ROCDL::smfmac_f32_16x16x64_fp8_bf8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.16x16x64.fp8.fp8 (ROCDL::smfmac_f32_16x16x64_fp8_fp8) 

Syntax:

operation ::= `rocdl.smfmac.f32.16x16x64.fp8.fp8` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.32x32x16.bf16 (ROCDL::smfmac_f32_32x32x16_bf16) 

Syntax:

operation ::= `rocdl.smfmac.f32.32x32x16.bf16` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.32x32x16.f16 (ROCDL::smfmac_f32_32x32x16_f16) 

Syntax:

operation ::= `rocdl.smfmac.f32.32x32x16.f16` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.32x32x32.bf8.bf8 (ROCDL::smfmac_f32_32x32x32_bf8_bf8) 

Syntax:

operation ::= `rocdl.smfmac.f32.32x32x32.bf8.bf8` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.32x32x32.bf8.fp8 (ROCDL::smfmac_f32_32x32x32_bf8_fp8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.32x32x32.fp8.bf8 (ROCDL::smfmac_f32_32x32x32_fp8_bf8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.f32.32x32x32.fp8.fp8 (ROCDL::smfmac_f32_32x32x32_fp8_fp8) 

Syntax:

operation ::= `rocdl.smfmac.f32.32x32x32.fp8.fp8` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.i32.16x16x64.i8 (ROCDL::smfmac_i32_16x16x64_i8) 

Syntax:

operation ::= `rocdl.smfmac.i32.16x16x64.i8` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.smfmac.i32.32x32x32.i8 (ROCDL::smfmac_i32_32x32x32_i8) 

Syntax:

operation ::= `rocdl.smfmac.i32.32x32x32.i8` $args attr-dict `:` functional-type($args, $res)

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.update.dpp (ROCDL::DPPUpdateOp) 

Syntax:

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

Attributes: 

AttributeMLIR TypeDescription
dppCtrl::mlir::IntegerAttr32-bit signless integer attribute
rowMask::mlir::IntegerAttr32-bit signless integer attribute
bankMask::mlir::IntegerAttr32-bit signless integer attribute
boundCtrl::mlir::IntegerAttr1-bit signless integer attribute

Operands: 

OperandDescription
oldLLVM dialect-compatible type
srcLLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.wmma.f32.16x16x16.bf8_bf8 (ROCDL::wmma_f32_16x16x16_bf8_bf8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.wmma.f32.16x16x16.bf8_fp8 (ROCDL::wmma_f32_16x16x16_bf8_fp8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.wmma.f32.16x16x16.fp8_bf8 (ROCDL::wmma_f32_16x16x16_fp8_bf8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.wmma.f32.16x16x16.fp8_fp8 (ROCDL::wmma_f32_16x16x16_fp8_fp8) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM dialect-compatible type

rocdl.wmma.i32.16x16x32.iu4 (ROCDL::wmma_i32_16x16x32_iu4) 

Syntax:

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

Operands: 

OperandDescription
argsvariadic of LLVM dialect-compatible type

Results: 

ResultDescription
resLLVM 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: 

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;`

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;`

Results: 

ResultDescription
resLLVM 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: 

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;`

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;`

Results: 

ResultDescription
resLLVM 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: 

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;`

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;`

Results: 

ResultDescription
resLLVM 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: 

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;`

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;`

Results: 

ResultDescription
resLLVM 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: 

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;`

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.