'rocdl' Dialect
Operations ¶
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: ¶
Operand | Description |
---|---|
pred | 1-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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 byteSel
th bit of srcA
to fp32.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
byteSel | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
srcA | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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 byteSel
th bit of srcA
to fp32.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
byteSel | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
srcA | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
wordSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
srcA | 32-bit float |
srcB | 32-bit float |
old | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.cvt.pk.f32.bf8
(ROCDL::CvtPkF32Bf8Op) ¶
Convert packed bf8 to packed f32
Syntax:
operation ::= `rocdl.cvt.pk.f32.bf8` attr-dict $src `[` $wordSel `]` `:` type($res)
Convert src
based on $wordSel to packed fp32,
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
wordSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.cvt.pk.f32.fp8
(ROCDL::CvtPkF32Fp8Op) ¶
Convert packed fp8 to packed f32
Syntax:
operation ::= `rocdl.cvt.pk.f32.fp8` attr-dict $src `[` $wordSel `]` `:` type($res)
Convert src
based on $wordSel to packed fp32.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
wordSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
wordSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
srcA | 32-bit float |
srcB | 32-bit float |
old | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
srcA | 32-bit float |
srcB | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.cvt.scalef32.2xpk16.bf6.f32
(ROCDL::CvtScaleF322xPk16Bf6F32Op) ¶
Scale and convert two vector<16xf32> to 32 packed bf6
Syntax:
operation ::= `rocdl.cvt.scalef32.2xpk16.bf6.f32` attr-dict $src0 `,` $src1 `,` $scale `:` type($res)
Convert 32 single-precision float values, packed into two length-16
vectors that will be logically concanenated, to packed bf6, dividing by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src0 | fixed-length vector of 32-bit float values of length 16 |
src1 | fixed-length vector of 32-bit float values of length 16 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.2xpk16.fp6.f32
(ROCDL::CvtScaleF322xPk16Fp6F32Op) ¶
Scale and convert two vector<16xf32> to 32 packed fp6
Syntax:
operation ::= `rocdl.cvt.scalef32.2xpk16.fp6.f32` attr-dict $src0 `,` $src1 `,` $scale `:` type($res)
Convert 32 single-precision float values, packed into two length-16
vectors that will be logically concanenated, to packed fp6, dividing by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src0 | fixed-length vector of 32-bit float values of length 16 |
src1 | fixed-length vector of 32-bit float values of length 16 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.f16.bf8
(ROCDL::CvtScaleF32F16Bf8Op) ¶
Scaled convert bf8 from packed vector to f16, updating tied result
Syntax:
operation ::= `rocdl.cvt.scalef32.f16.bf8` attr-dict $src `[` $srcSelIndex `]` `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert a bf8 byte from src
, selected by
srcSelIndex
, to f16 while multiplying it by the expontent of scale
,
and place it into the dstLoHiSel
th bit
of oldVdst
preserving the other element of that vector in
the return value.
The bytes are stored as an i32
and not a <4 x i8>
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit float values of length 2 |
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 2 |
rocdl.cvt.scalef32.f16.fp8
(ROCDL::CvtScaleF32F16Fp8Op) ¶
Scaled convert fp8 from packed vector to f16, updating tied result
Syntax:
operation ::= `rocdl.cvt.scalef32.f16.fp8` attr-dict $src `[` $srcSelIndex `]` `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert a fp8 byte from src
, selected by
srcSelIndex
, to f16 while multiplying it by the expontent of scale
,
and place it into the dstLoHiSel
th bit
of oldVdst
preserving the other element of that vector in
the return value.
The bytes are stored as an i32
and not a <4 x i8>
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit float values of length 2 |
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 2 |
rocdl.cvt.scalef32.f32.bf8
(ROCDL::CvtScaleF32F32Bf8Op) ¶
Scaled convert bf8 from packed vector to f32
Syntax:
operation ::= `rocdl.cvt.scalef32.f32.bf8` attr-dict $src `[` $srcSelIndex `]` `,` $scale `:` type($res)
Convert a bf8 byte from src
, selected by
srcSelIndex
, to f32, multiplying it by the exponent of scale
.
The bytes are stored in an i32
, not a <4 x i8>
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit float |
rocdl.cvt.scalef32.f32.fp8
(ROCDL::CvtScaleF32F32Fp8Op) ¶
Scaled convert fp8 from packed vector to f32
Syntax:
operation ::= `rocdl.cvt.scalef32.f32.fp8` attr-dict $src `[` $srcSelIndex `]` `,` $scale `:` type($res)
Convert a fp8 byte from src
, selected by
srcSelIndex
, to f32, multiplying it by the exponent of scale
.
The bytes are stored in an i32
, not a <4 x i8>
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit float |
rocdl.cvt.scalef32.pk.bf16.bf8
(ROCDL::CvtScaleF32PkBf16Bf8Op) ¶
Scaled convert two bf8to two bf16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.bf16.bf8` attr-dict $src `[` $srcLoHiSel `]` `,` $scale `:` type($res)
Convert two packed bf8 values in src0
to two bf16 values, multiplying by the exponent in scale
.
The two values to be converted are selected from the low or high half
of src
(a packed vector represented as an i32
)
on the basis of srcLoHiSel
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of bfloat16 type values of length 2 |
rocdl.cvt.scalef32.pk.bf16.fp4
(ROCDL::CvtScaleF32PkBf16Fp4Op) ¶
Scale and convert two packed fp4 to packed bf16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.bf16.fp4` attr-dict $src `[` $srcSelIndex `]` `,` $scale `:` type($res)
Convert two packed fp4 (f4E2M1) values stored as one byte of a 32-bit integer
to packed bf16, multiplying by the exponent part of scale
before doing so.
The byte to convert is chosen by srcSelIndex
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of bfloat16 type values of length 2 |
rocdl.cvt.scalef32.pk.bf16.fp8
(ROCDL::CvtScaleF32PkBf16Fp8Op) ¶
Scaled convert two fp8to two bf16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.bf16.fp8` attr-dict $src `[` $srcLoHiSel `]` `,` $scale `:` type($res)
Convert two packed fp8 values in src0
to two bf16 values, multiplying by the exponent in scale
.
The two values to be converted are selected from the low or high half
of src
(a packed vector represented as an i32
)
on the basis of srcLoHiSel
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of bfloat16 type values of length 2 |
rocdl.cvt.scalef32.pk.bf8.bf16
(ROCDL::CvtScaleF32PkBf8Bf16Op) ¶
Scaled convert two bf16to two bf8, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.bf8.bf16` attr-dict $src0 `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert two bf16 values in src0
to two bf8 bytes, dividing by the exponent in scale
. The bytes are
packed into a 16-bit value which is inserted into oldVdst
at the
dstLoHiSel
position, with the entire updated vector being returned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit signless integer values of length 2 |
src0 | fixed-length vector of bfloat16 type values of length 2 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit signless integer values of length 2 |
rocdl.cvt.scalef32.pk.bf8.f16
(ROCDL::CvtScaleF32PkBf8F16Op) ¶
Scaled convert two f16to two bf8, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.bf8.f16` attr-dict $src0 `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert two f16 values in src0
to two bf8 bytes, dividing by the exponent in scale
. The bytes are
packed into a 16-bit value which is inserted into oldVdst
at the
dstLoHiSel
position, with the entire updated vector being returned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit signless integer values of length 2 |
src0 | fixed-length vector of 16-bit float values of length 2 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit signless integer values of length 2 |
rocdl.cvt.scalef32.pk.bf8.f32
(ROCDL::CvtScaleF32PkBf8F32Op) ¶
Scaled convert two f32 to two bf8, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.bf8.f32` attr-dict $src0 `,` $src1 `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert two f32 values in src0
and src1
to two bf8 bytes,
dividing by the exponent in scale
. The bytes are packed into
a 16-bit value which is inserted into oldVdst
at the dstLoHiSel
position, with the entire updated vector being returned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit signless integer values of length 2 |
src0 | 32-bit float |
src1 | 32-bit float |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit signless integer values of length 2 |
rocdl.cvt.scalef32.pk.f16.bf8
(ROCDL::CvtScaleF32PkF16Bf8Op) ¶
Scaled convert two bf8to two f16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.f16.bf8` attr-dict $src `[` $srcLoHiSel `]` `,` $scale `:` type($res)
Convert two packed bf8 values in src0
to two f16 values, multiplying by the exponent in scale
.
The two values to be converted are selected from the low or high half
of src
(a packed vector represented as an i32
)
on the basis of srcLoHiSel
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 2 |
rocdl.cvt.scalef32.pk.f16.fp4
(ROCDL::CvtScaleF32PkF16Fp4Op) ¶
Scale and convert two packed fp4 to packed f16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.f16.fp4` attr-dict $src `[` $srcSelIndex `]` `,` $scale `:` type($res)
Convert two packed fp4 (f4E2M1) values stored as one byte of a 32-bit integer
to packed f16, multiplying by the exponent part of scale
before doing so.
The byte to convert is chosen by srcSelIndex
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 2 |
rocdl.cvt.scalef32.pk.f16.fp8
(ROCDL::CvtScaleF32PkF16Fp8Op) ¶
Scaled convert two fp8to two f16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.f16.fp8` attr-dict $src `[` $srcLoHiSel `]` `,` $scale `:` type($res)
Convert two packed fp8 values in src0
to two f16 values, multiplying by the exponent in scale
.
The two values to be converted are selected from the low or high half
of src
(a packed vector represented as an i32
)
on the basis of srcLoHiSel
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 2 |
rocdl.cvt.scalef32.pk.f32.bf8
(ROCDL::CvtScaleF32PkF32Bf8Op) ¶
Scaled convert two bf8to two f32
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.f32.bf8` attr-dict $src `[` $srcLoHiSel `]` `,` $scale `:` type($res)
Convert two packed bf8 values in src0
to two f32 values, multiplying by the exponent in scale
.
The two values to be converted are selected from the low or high half
of src
(a packed vector represented as an i32
)
on the basis of srcLoHiSel
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit float values of length 2 |
rocdl.cvt.scalef32.pk.f32.fp4
(ROCDL::CvtScaleF32PkF32Fp4Op) ¶
Scale and convert two packed fp4 to packed f32
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.f32.fp4` attr-dict $src `[` $srcSelIndex `]` `,` $scale `:` type($res)
Convert two packed fp4 (f4E2M1) values stored as one byte of a 32-bit integer
to packed f32, multiplying by the exponent part of scale
before doing so.
The byte to convert is chosen by srcSelIndex
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit float values of length 2 |
rocdl.cvt.scalef32.pk.f32.fp8
(ROCDL::CvtScaleF32PkF32Fp8Op) ¶
Scaled convert two fp8to two f32
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.f32.fp8` attr-dict $src `[` $srcLoHiSel `]` `,` $scale `:` type($res)
Convert two packed fp8 values in src0
to two f32 values, multiplying by the exponent in scale
.
The two values to be converted are selected from the low or high half
of src
(a packed vector represented as an i32
)
on the basis of srcLoHiSel
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
srcLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit float values of length 2 |
rocdl.cvt.scalef32.pk.fp4.bf16
(ROCDL::CvtScaleF32PkFp4Bf16Op) ¶
Scale and convert two bf16 to packed fp4, updating tied vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.fp4.bf16` attr-dict $src `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert two packed bf16 values to packed
fp4, dividing by the exponent part of scale
before doing so.
The two scaled values are packed into a byte.
That byte is used to update the dstSelIndex
th
byte of oldVdst
, which is returned in its entirity.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src | fixed-length vector of bfloat16 type values of length 2 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.pk.fp4.f16
(ROCDL::CvtScaleF32PkFp4F16Op) ¶
Scale and convert two f16 to packed fp4, updating tied vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.fp4.f16` attr-dict $src `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert two packed f16 values to packed
fp4, dividing by the exponent part of scale
before doing so.
The two scaled values are packed into a byte.
That byte is used to update the dstSelIndex
th
byte of oldVdst
, which is returned in its entirity.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src | fixed-length vector of 16-bit float values of length 2 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.pk.fp4.f32
(ROCDL::CvtScaleF32PkFp4F32Op) ¶
Scale and convert two f32 values to two packed fp4, updating tied vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.fp4.f32` attr-dict $src0 `,` $src1 `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert two single-precision float values, passed in src0
and src1
into two fp4 values, dividing them by the expontent part of scale
before doing so.
The two scaled values are packed into a byte.
That byte is used to update the dstSelIndex
th
byte of oldVdst
, which is returned in its entirity.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | 32-bit float |
src1 | 32-bit float |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.pk.fp8.bf16
(ROCDL::CvtScaleF32PkFp8Bf16Op) ¶
Scaled convert two bf16to two fp8, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.fp8.bf16` attr-dict $src0 `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert two bf16 values in src0
to two fp8 bytes, dividing by the exponent in scale
. The bytes are
packed into a 16-bit value which is inserted into oldVdst
at the
dstLoHiSel
position, with the entire updated vector being returned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit signless integer values of length 2 |
src0 | fixed-length vector of bfloat16 type values of length 2 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit signless integer values of length 2 |
rocdl.cvt.scalef32.pk.fp8.f16
(ROCDL::CvtScaleF32PkFp8F16Op) ¶
Scaled convert two f16to two fp8, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.fp8.f16` attr-dict $src0 `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert two f16 values in src0
to two fp8 bytes, dividing by the exponent in scale
. The bytes are
packed into a 16-bit value which is inserted into oldVdst
at the
dstLoHiSel
position, with the entire updated vector being returned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit signless integer values of length 2 |
src0 | fixed-length vector of 16-bit float values of length 2 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit signless integer values of length 2 |
rocdl.cvt.scalef32.pk.fp8.f32
(ROCDL::CvtScaleF32PkFp8F32Op) ¶
Scaled convert two f32 to two fp8, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.pk.fp8.f32` attr-dict $src0 `,` $src1 `,` $scale `->` $oldVdst `[` $dstLoHiSel `]` `:` type($res)
Convert two f32 values in src0
and src1
to two fp8 bytes,
dividing by the exponent in scale
. The bytes are packed into
a 16-bit value which is inserted into oldVdst
at the dstLoHiSel
position, with the entire updated vector being returned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstLoHiSel | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | fixed-length vector of 16-bit signless integer values of length 2 |
src0 | 32-bit float |
src1 | 32-bit float |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit signless integer values of length 2 |
rocdl.cvt.scalef32.pk32.bf16.bf6
(ROCDL::CvtScaleF32Pk32Bf16Bf6Op) ¶
Scale and convert packed bf6 to packed bf16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.bf16.bf6` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed bf6 values to packed bf16, multiplying by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit signless integer values of length 6 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of bfloat16 type values of length 32 |
rocdl.cvt.scalef32.pk32.bf16.fp6
(ROCDL::CvtScaleF32Pk32Bf16Fp6Op) ¶
Scale and convert packed fp6 to packed bf16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.bf16.fp6` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed fp6 values to packed bf16, multiplying by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit signless integer values of length 6 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of bfloat16 type values of length 32 |
rocdl.cvt.scalef32.pk32.bf6.bf16
(ROCDL::CvtScaleF32Pk32Bf6Bf16Op) ¶
Scale and convert packed bf16 to packed bf6
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.bf6.bf16` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed bf16 values to packed bf6, dividing by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of bfloat16 type values of length 32 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.pk32.bf6.f16
(ROCDL::CvtScaleF32Pk32Bf6F16Op) ¶
Scale and convert packed f16 to packed bf6
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.bf6.f16` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed f16 values to packed bf6, dividing by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 16-bit float values of length 32 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.pk32.f16.bf6
(ROCDL::CvtScaleF32Pk32F16Bf6Op) ¶
Scale and convert packed bf6 to packed f16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.f16.bf6` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed bf6 values to packed f16, multiplying by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit signless integer values of length 6 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 32 |
rocdl.cvt.scalef32.pk32.f16.fp6
(ROCDL::CvtScaleF32Pk32F16Fp6Op) ¶
Scale and convert packed fp6 to packed f16
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.f16.fp6` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed fp6 values to packed f16, multiplying by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit signless integer values of length 6 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 16-bit float values of length 32 |
rocdl.cvt.scalef32.pk32.f32.bf6
(ROCDL::CvtScaleF32Pk32F32Bf6Op) ¶
Scale and convert packed bf6 to packed f32
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.f32.bf6` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed bf6 values to packed f32, multiplying by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit signless integer values of length 6 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit float values of length 32 |
rocdl.cvt.scalef32.pk32.f32.fp6
(ROCDL::CvtScaleF32Pk32F32Fp6Op) ¶
Scale and convert packed fp6 to packed f32
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.f32.fp6` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed fp6 values to packed f32, multiplying by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit signless integer values of length 6 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit float values of length 32 |
rocdl.cvt.scalef32.pk32.fp6.bf16
(ROCDL::CvtScaleF32Pk32Fp6Bf16Op) ¶
Scale and convert packed bf16 to packed fp6
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.fp6.bf16` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed bf16 values to packed fp6, dividing by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of bfloat16 type values of length 32 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.pk32.fp6.f16
(ROCDL::CvtScaleF32Pk32Fp6F16Op) ¶
Scale and convert packed f16 to packed fp6
Syntax:
operation ::= `rocdl.cvt.scalef32.pk32.fp6.f16` attr-dict $src `,` $scale `:` type($res)
Convert 32 packed f16 values to packed fp6, dividing by the exponent part of scale
before doing so.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 16-bit float values of length 32 |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.sr.bf8.bf16
(ROCDL::CvtScaleF32SrBf8BF16Op) ¶
Scaled convert bf16to bf8 with stochiastic rounding, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.bf8.bf16` attr-dict $src0 `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert a bf16 value in src0
to a bf8 bytes, dividing by the exponent in scale
and using seed
for stochiastic rounding. Place the resulting byte in the
dstSelIndex
th bit of oldVdst
and return the entire packed vector,
which is stored as an i32
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | bfloat16 type |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.bf8.f16
(ROCDL::CvtScaleF32SrBf8F16Op) ¶
Scaled convert f16to bf8 with stochiastic rounding, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.bf8.f16` attr-dict $src0 `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert a f16 value in src0
to a bf8 bytes, dividing by the exponent in scale
and using seed
for stochiastic rounding. Place the resulting byte in the
dstSelIndex
th bit of oldVdst
and return the entire packed vector,
which is stored as an i32
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | 16-bit float |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.bf8.f32
(ROCDL::CvtScaleF32SrBf8F32Op) ¶
Scaled convert f32to bf8 with stochiastic rounding, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.bf8.f32` attr-dict $src0 `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert a f32 value in src0
to a bf8 bytes, dividing by the exponent in scale
and using seed
for stochiastic rounding. Place the resulting byte in the
dstSelIndex
th bit of oldVdst
and return the entire packed vector,
which is stored as an i32
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | 32-bit float |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.fp8.bf16
(ROCDL::CvtScaleF32SrFp8BF16Op) ¶
Scaled convert bf16to fp8 with stochiastic rounding, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.fp8.bf16` attr-dict $src0 `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert a bf16 value in src0
to a fp8 bytes, dividing by the exponent in scale
and using seed
for stochiastic rounding. Place the resulting byte in the
dstSelIndex
th bit of oldVdst
and return the entire packed vector,
which is stored as an i32
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | bfloat16 type |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.fp8.f16
(ROCDL::CvtScaleF32SrFp8F16Op) ¶
Scaled convert f16to fp8 with stochiastic rounding, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.fp8.f16` attr-dict $src0 `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert a f16 value in src0
to a fp8 bytes, dividing by the exponent in scale
and using seed
for stochiastic rounding. Place the resulting byte in the
dstSelIndex
th bit of oldVdst
and return the entire packed vector,
which is stored as an i32
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | 16-bit float |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.fp8.f32
(ROCDL::CvtScaleF32SrFp8F32Op) ¶
Scaled convert f32to fp8 with stochiastic rounding, updating packed vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.fp8.f32` attr-dict $src0 `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert a f32 value in src0
to a fp8 bytes, dividing by the exponent in scale
and using seed
for stochiastic rounding. Place the resulting byte in the
dstSelIndex
th bit of oldVdst
and return the entire packed vector,
which is stored as an i32
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src0 | 32-bit float |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.pk.fp4.bf16
(ROCDL::CvtScaleF32SrPkFp4Bf16Op) ¶
Scale and convert two bf16 to packed fp4 with stochiastic rounding, updating tied vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk.fp4.bf16` attr-dict $src `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert two packed bf16 values to packed
fp4, dividing by the exponent part of scale
before doing so and using seed
as the random seed for
stochiastic rounding.
The two scaled values are packed (little-endian)
into a byte. That byte is used to update the dstSelIndex
th
byte of oldVdst
, which is returned in its entirity.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src | fixed-length vector of bfloat16 type values of length 2 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.pk.fp4.f16
(ROCDL::CvtScaleF32SrPkFp4F16Op) ¶
Scale and convert two f16 to packed fp4 with stochiastic rounding, updating tied vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk.fp4.f16` attr-dict $src `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert two packed f16 values to packed
fp4, dividing by the exponent part of scale
before doing so and using seed
as the random seed for
stochiastic rounding.
The two scaled values are packed (little-endian)
into a byte. That byte is used to update the dstSelIndex
th
byte of oldVdst
, which is returned in its entirity.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src | fixed-length vector of 16-bit float values of length 2 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.pk.fp4.f32
(ROCDL::CvtScaleF32SrPkFp4F32Op) ¶
Scale and convert two f32 to packed fp4 with stochiastic rounding, updating tied vector
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk.fp4.f32` attr-dict $src `,` $seed `,` $scale `->` $oldVdst `[` $dstSelIndex `]` `:` type($res)
Convert two packed f32 values to packed
fp4, dividing by the exponent part of scale
before doing so and using seed
as the random seed for
stochiastic rounding.
The two scaled values are packed (little-endian)
into a byte. That byte is used to update the dstSelIndex
th
byte of oldVdst
, which is returned in its entirity.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
dstSelIndex | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
oldVdst | 32-bit signless integer |
src | fixed-length vector of 32-bit float values of length 2 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.cvt.scalef32.sr.pk32.bf6.bf16
(ROCDL::CvtScaleF32SrPk32Bf6Bf16Op) ¶
Scale and convert packed bf16 to packed bf6 with stochiastic rounding
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk32.bf6.bf16` attr-dict $src `,` $seed `,` $scale `:` type($res)
Convert 32 packed bf16 values to packed bf6, dividing by the exponent part of scale
before doing so and applying random rounding derived from
seed
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of bfloat16 type values of length 32 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.sr.pk32.bf6.f16
(ROCDL::CvtScaleF32SrPk32Bf6F16Op) ¶
Scale and convert packed f16 to packed bf6 with stochiastic rounding
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk32.bf6.f16` attr-dict $src `,` $seed `,` $scale `:` type($res)
Convert 32 packed f16 values to packed bf6, dividing by the exponent part of scale
before doing so and applying random rounding derived from
seed
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 16-bit float values of length 32 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.sr.pk32.bf6.f32
(ROCDL::CvtScaleF32SrPk32Bf6F32Op) ¶
Scale and convert packed f32 to packed bf6 with stochiastic rounding
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk32.bf6.f32` attr-dict $src `,` $seed `,` $scale `:` type($res)
Convert 32 packed f32 values to packed bf6, dividing by the exponent part of scale
before doing so and applying random rounding derived from
seed
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit float values of length 32 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.sr.pk32.fp6.bf16
(ROCDL::CvtScaleF32SrPk32Fp6Bf16Op) ¶
Scale and convert packed bf16 to packed fp6 with stochiastic rounding
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk32.fp6.bf16` attr-dict $src `,` $seed `,` $scale `:` type($res)
Convert 32 packed bf16 values to packed fp6, dividing by the exponent part of scale
before doing so and applying random rounding derived from
seed
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of bfloat16 type values of length 32 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.sr.pk32.fp6.f16
(ROCDL::CvtScaleF32SrPk32Fp6F16Op) ¶
Scale and convert packed f16 to packed fp6 with stochiastic rounding
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk32.fp6.f16` attr-dict $src `,` $seed `,` $scale `:` type($res)
Convert 32 packed f16 values to packed fp6, dividing by the exponent part of scale
before doing so and applying random rounding derived from
seed
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 16-bit float values of length 32 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
rocdl.cvt.scalef32.sr.pk32.fp6.f32
(ROCDL::CvtScaleF32SrPk32Fp6F32Op) ¶
Scale and convert packed f32 to packed fp6 with stochiastic rounding
Syntax:
operation ::= `rocdl.cvt.scalef32.sr.pk32.fp6.f32` attr-dict $src `,` $seed `,` $scale `:` type($res)
Convert 32 packed f32 values to packed fp6, dividing by the exponent part of scale
before doing so and applying random rounding derived from
seed
.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands: ¶
Operand | Description |
---|---|
src | fixed-length vector of 32-bit float values of length 32 |
seed | 32-bit signless integer |
scale | 32-bit float |
Results: ¶
Result | Description |
---|---|
res | fixed-length vector of 32-bit signless integer values of length 6 |
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 byteSel
th byte of old
, preserving the others.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
byteSel | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
srcA | 32-bit float |
srcB | 32-bit signless integer |
old | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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 byteSel
th byte of old
, preserving the others.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
byteSel | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
srcA | 32-bit float |
srcB | 32-bit signless integer |
old | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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)
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
ptr | LLVM pointer in address space 3 |
Results: ¶
Result | Description |
---|---|
res | LLVM 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)
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
ptr | LLVM pointer in address space 3 |
Results: ¶
Result | Description |
---|---|
res | LLVM 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)
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
ptr | LLVM pointer in address space 3 |
Results: ¶
Result | Description |
---|---|
res | LLVM 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)
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
ptr | LLVM pointer in address space 3 |
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.ds_bpermute
(ROCDL::DsBpermuteOp) ¶
Syntax:
operation ::= `rocdl.ds_bpermute` $index `,` $src attr-dict `:` `(` type($index) `,` type($src) `)` `->` type($res)
Operands: ¶
Operand | Description |
---|---|
index | 32-bit signless integer |
src | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.ds_swizzle
(ROCDL::DsSwizzleOp) ¶
Syntax:
operation ::= `rocdl.ds_swizzle` $src `,` $offset attr-dict `:` `(` type($src) `,` type($offset) `)` `->` type($res)
Operands: ¶
Operand | Description |
---|---|
src | 32-bit signless integer |
offset | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | 32-bit signless integer |
rocdl.global.load.lds
(ROCDL::GlobalLoadLDSOp) ¶
Syntax:
operation ::= `rocdl.global.load.lds` $globalPtr `,` $ldsPtr `,` $size `,` $offset `,` $aux
attr-dict
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
size | ::mlir::IntegerAttr | 32-bit signless integer attribute |
offset | ::mlir::IntegerAttr | 32-bit signless integer attribute |
aux | ::mlir::IntegerAttr | 32-bit signless integer attribute |
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
globalPtr | LLVM pointer in address space 1 |
ldsPtr | LLVM pointer in address space 3 |
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.iglp.opt
(ROCDL::IglpOpt) ¶
Syntax:
operation ::= `rocdl.iglp.opt` $variant attr-dict
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
variant | ::mlir::IntegerAttr | 32-bit signless integer attribute |
rocdl.load.to.lds
(ROCDL::LoadToLDSOp) ¶
Syntax:
operation ::= `rocdl.load.to.lds` $globalPtr `,` $ldsPtr `,` $size `,` $offset `,` $aux
attr-dict `:` type($globalPtr)
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
size | ::mlir::IntegerAttr | 32-bit signless integer attribute |
offset | ::mlir::IntegerAttr | 32-bit signless integer attribute |
aux | ::mlir::IntegerAttr | 32-bit signless integer attribute |
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
globalPtr | LLVM pointer type |
ldsPtr | LLVM pointer in address space 3 |
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 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: ¶
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.bf16
(ROCDL::mfma_f32_16x16x32_bf16) ¶
Syntax:
operation ::= `rocdl.mfma.f32.16x16x32.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.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.f16
(ROCDL::mfma_f32_16x16x32_f16) ¶
Syntax:
operation ::= `rocdl.mfma.f32.16x16x32.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.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.bf16
(ROCDL::mfma_f32_32x32x16_bf16) ¶
Syntax:
operation ::= `rocdl.mfma.f32.32x32x16.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.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.f16
(ROCDL::mfma_f32_32x32x16_f16) ¶
Syntax:
operation ::= `rocdl.mfma.f32.32x32x16.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.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.16x16x64.i8
(ROCDL::mfma_i32_16x16x64_i8) ¶
Syntax:
operation ::= `rocdl.mfma.i32.16x16x64.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.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.32x32x32.i8
(ROCDL::mfma_i32_32x32x32_i8) ¶
Syntax:
operation ::= `rocdl.mfma.i32.32x32x32.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.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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.permlanex16
(ROCDL::PermlaneX16Op) ¶
Syntax:
operation ::= `rocdl.permlanex16` attr-dict $old `,` $src0 `,` $src1 `,` $src2 `,` $fi `,` $boundControl `:` type($src0) `,` type($src1)
Performs a permlanex16
operation with the given operands, applying the
permutation specified by $fi to the provided inputs.
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
fi | ::mlir::IntegerAttr | 1-bit signless integer attribute |
boundControl | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
old | LLVM dialect-compatible type |
src0 | LLVM dialect-compatible type |
src1 | LLVM dialect-compatible type |
src2 | 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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.load.lds
(ROCDL::RawPtrBufferLoadLdsOp) ¶
Syntax:
operation ::= `rocdl.raw.ptr.buffer.load.lds` operands attr-dict
Interfaces: AliasAnalysisOpInterface
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
Operands: ¶
Operand | Description |
---|---|
rsrc | LLVM pointer in address space 8 |
ldsPtr | LLVM pointer in address space 3 |
size | 32-bit signless integer |
voffset | 32-bit signless integer |
soffset | 32-bit signless integer |
offset | 32-bit signless integer |
aux | 32-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: ¶
Attribute | MLIR Type | Description |
---|---|---|
alias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
noalias_scopes | ::mlir::ArrayAttr | LLVM dialect alias scope array |
tbaa | ::mlir::ArrayAttr | LLVM dialect TBAA tag metadata array |
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.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: ¶
Operand | Description |
---|---|
src0 | LLVM dialect-compatible type |
src1 | 32-bit signless integer |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
id | ::mlir::IntegerAttr | 32-bit signless integer attribute |
rocdl.s.barrier.wait
(ROCDL::BarrierWaitOp) ¶
Syntax:
operation ::= `rocdl.s.barrier.wait` $id attr-dict
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
id | ::mlir::IntegerAttr | 16-bit signless integer attribute |
rocdl.s.setprio
(ROCDL::SetPrioOp) ¶
Syntax:
operation ::= `rocdl.s.setprio` $priority attr-dict
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
priority | ::mlir::IntegerAttr | 16-bit signless integer attribute |
rocdl.s.wait.dscnt
(ROCDL::WaitDscntOp) ¶
Syntax:
operation ::= `rocdl.s.wait.dscnt` $id attr-dict
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
id | ::mlir::IntegerAttr | 16-bit signless integer attribute |
rocdl.s.waitcnt
(ROCDL::SWaitcntOp) ¶
Syntax:
operation ::= `rocdl.s.waitcnt` attr-dict $bitfield
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
bitfield | ::mlir::IntegerAttr | 32-bit signless integer attribute |
rocdl.sched.barrier
(ROCDL::SchedBarrier) ¶
Syntax:
operation ::= `rocdl.sched.barrier` $mask attr-dict
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
mask | ::mlir::IntegerAttr | 32-bit signless integer attribute |
rocdl.sched.group.barrier
(ROCDL::SchedGroupBarrier) ¶
Syntax:
operation ::= `rocdl.sched.group.barrier` $mask `,` $size `,` $groupId attr-dict
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
mask | ::mlir::IntegerAttr | 32-bit signless integer attribute |
size | ::mlir::IntegerAttr | 32-bit signless integer attribute |
groupId | ::mlir::IntegerAttr | 32-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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Operand | Description |
---|---|
args | variadic of LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
dppCtrl | ::mlir::IntegerAttr | 32-bit signless integer attribute |
rowMask | ::mlir::IntegerAttr | 32-bit signless integer attribute |
bankMask | ::mlir::IntegerAttr | 32-bit signless integer attribute |
boundCtrl | ::mlir::IntegerAttr | 1-bit signless integer attribute |
Operands: ¶
Operand | Description |
---|---|
old | LLVM dialect-compatible type |
src | LLVM dialect-compatible type |
Results: ¶
Result | Description |
---|---|
res | LLVM dialect-compatible type |
rocdl.wavefrontsize
(ROCDL::WavefrontSizeOp) ¶
Syntax:
operation ::= `rocdl.wavefrontsize` (`range` $range^)? attr-dict `:` type($res)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
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_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.bf8_fp8
(ROCDL::wmma_f32_16x16x16_bf8_fp8) ¶
Syntax:
operation ::= `rocdl.wmma.f32.16x16x16.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.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_bf8
(ROCDL::wmma_f32_16x16x16_fp8_bf8) ¶
Syntax:
operation ::= `rocdl.wmma.f32.16x16x16.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.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: ¶
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.wmma.i32.16x16x32.iu4
(ROCDL::wmma_i32_16x16x32_iu4) ¶
Syntax:
operation ::= `rocdl.wmma.i32.16x16x32.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.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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
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: ¶
Attribute | MLIR Type | Description |
---|---|---|
range | ::mlir::LLVM::ConstantRangeAttr | A range of two integers, corresponding to LLVM's ConstantRange
|
Results: ¶
Result | Description |
---|---|
res | LLVM 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:
- Target with default values.
gpu.module @mymodule [#rocdl.target] attributes {...} {
...
}
- Target with
gfx90a
chip and fast math.
gpu.module @mymodule [#rocdl.target<chip = "gfx90a", flags = {fast, no_wave64}>] {
...
}
Parameters: ¶
Parameter | C++ type | Description |
---|---|---|
O | int | Optimization level to apply. |
triple | ::llvm::StringRef | Target triple. |
chip | ::llvm::StringRef | Target chip. |
features | ::llvm::StringRef | Target chip features. |
abi | ::llvm::StringRef | ABI version. |
flags | DictionaryAttr | Target specific flags. |
link | ArrayAttr | Files to link to the LLVM module. |