'mathExt' Dialect
Extended Math dialect.
Operations
mathExt.ilogb (mathExt::IlogbOp)
An exponent components of a floating-point number
Syntax:
operation ::= `mathExt.ilogb` $operand (`fastmath` `` $fastmath^)?
attr-dict `:` type($result)
ilogb(x) := floor(log2(abs(x)))
The ilogb operation takes one operand of floating point type (i.e.,
scalar, tensor or vector) and returns one result of the same type. It has no
standard attributes.
Traits: AlwaysSpeculatableImplTrait, Elementwise, SameOperandsAndResultType, Scalarizable, Tensorizable, Vectorizable
Interfaces: ArithFastMathInterface, ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface), VectorUnrollOpInterface
Effects: MemoryEffects::Effect{}
Attributes
| Attribute | MLIR Type | Description |
|---|---|---|
fastmath | ::mlir::arith::FastMathFlagsAttr | Floating point fast math flags{{% markdown %}}Enum cases: * none (`none`) * reassoc (`reassoc`) * nnan (`nnan`) * ninf (`ninf`) * nsz (`nsz`) * arcp (`arcp`) * contract (`contract`) * afn (`afn`) * fast (`fast`){{% /markdown %}} |
Operands
| Operand | Description |
|---|---|
operand |
floating-point-like |
Results
| Result | Description |
|---|---|
result |
floating-point-like |
mathExt.ldep (mathExt::LdexpOp)
A fractional components of a floating-point number
Syntax:
operation ::= `mathExt.ldep` $lhs `,` $rhs (`fastmath` `` $fastmath^)?
attr-dict `:` type($result)
ldep(x) = x * (ilogb(x) + 1)^(-1)
The ldexp operation takes two operands of floating point type (i.e.,
scalar, tensor or vector) and returns one result of the same type. Operands
must have the same type.
Traits: AlwaysSpeculatableImplTrait, Elementwise, SameOperandsAndResultType, Scalarizable, Tensorizable, Vectorizable
Interfaces: ArithFastMathInterface, ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface), VectorUnrollOpInterface
Effects: MemoryEffects::Effect{}
Attributes
| Attribute | MLIR Type | Description |
|---|---|---|
fastmath | ::mlir::arith::FastMathFlagsAttr | Floating point fast math flags{{% markdown %}}Enum cases: * none (`none`) * reassoc (`reassoc`) * nnan (`nnan`) * ninf (`ninf`) * nsz (`nsz`) * arcp (`arcp`) * contract (`contract`) * afn (`afn`) * fast (`fast`){{% /markdown %}} |
Operands
| Operand | Description |
|---|---|
lhs |
floating-point-like |
rhs |
floating-point-like |
Results
| Result | Description |
|---|---|
result |
floating-point-like |
Enums
CmpFPredicate
allowed 64-bit signless integer cases: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Cases
| Symbol | Value | String |
|---|---|---|
| AlwaysFalse | 0 |
false |
| OEQ | 1 |
oeq |
| OGT | 2 |
ogt |
| OGE | 3 |
oge |
| OLT | 4 |
olt |
| OLE | 5 |
ole |
| ONE | 6 |
one |
| ORD | 7 |
ord |
| UEQ | 8 |
ueq |
| UGT | 9 |
ugt |
| UGE | 10 |
uge |
| ULT | 11 |
ult |
| ULE | 12 |
ule |
| UNE | 13 |
une |
| UNO | 14 |
uno |
| AlwaysTrue | 15 |
true |
CmpIPredicate
allowed 64-bit signless integer cases: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Cases
| Symbol | Value | String |
|---|---|---|
| eq | 0 |
eq |
| ne | 1 |
ne |
| slt | 2 |
slt |
| sle | 3 |
sle |
| sgt | 4 |
sgt |
| sge | 5 |
sge |
| ult | 6 |
ult |
| ule | 7 |
ule |
| ugt | 8 |
ugt |
| uge | 9 |
uge |
IntegerOverflowFlags
Integer overflow arith flags
Cases
| Symbol | Value | String |
|---|---|---|
| none | 0 |
none |
| nsw | 1 |
nsw |
| nuw | 2 |
nuw |
RoundingMode
Floating point rounding mode
Cases
| Symbol | Value | String |
|---|---|---|
| to_nearest_even | 0 |
to_nearest_even |
| downward | 1 |
downward |
| upward | 2 |
upward |
| toward_zero | 3 |
toward_zero |
| to_nearest_away | 4 |
to_nearest_away |
AtomicRMWKind
allowed 64-bit signless integer cases: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
Cases
| Symbol | Value | String |
|---|---|---|
| addf | 0 |
addf |
| addi | 1 |
addi |
| assign | 2 |
assign |
| maximumf | 3 |
maximumf |
| maxs | 4 |
maxs |
| maxu | 5 |
maxu |
| minimumf | 6 |
minimumf |
| mins | 7 |
mins |
| minu | 8 |
minu |
| mulf | 9 |
mulf |
| muli | 10 |
muli |
| ori | 11 |
ori |
| andi | 12 |
andi |
| maxnumf | 13 |
maxnumf |
| minnumf | 14 |
minnumf |
FastMathFlags
Floating point fast math flags
Cases
| Symbol | Value | String |
|---|---|---|
| none | 0 |
none |
| reassoc | 1 |
reassoc |
| nnan | 2 |
nnan |
| ninf | 4 |
ninf |
| nsz | 8 |
nsz |
| arcp | 16 |
arcp |
| contract | 32 |
contract |
| afn | 64 |
afn |
| fast | 127 |
fast |