# 'mathExt' Dialect Extended Math dialect. ## Operations ### `mathExt.ilogb` (mathExt::IlogbOp) _An exponent components of a floating-point number_ Syntax: ```mlir 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
AttributeMLIR TypeDescription
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: ```mlir 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
AttributeMLIR TypeDescription
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 |