# 'memref_ext' Dialect extended memref dialect ## Operations ### `memref_ext.alloc_workspace` (::bishengir::memref_ext::AllocWorkspaceOp) _Workspace memory allocation operation._ Syntax: ```mlir operation ::= `memref_ext.alloc_workspace` `(`$dynamicSize`)` (`from` $workspaceArg^)? ( `offset` `=` `[`$offset^`]`)? attr-dict `:` (`from` type($workspaceArg)^ `to`)? type($memref) ``` The `alloc_workspace` operation allocates a region of workspace memory. Example: ```mlir memref_ext.alloc_workspace() : memref<100xi8> memref_ext.alloc_workspace(%dynamic) : memref<2x?xi32> memref_ext.alloc_workspace(%dynamic) from %arg offset = [%offset] : from memref to memref<2x?xi32> ``` Traits: `AttrSizedOperandSegments` #### Operands | Operand | Description | | :-----: | ----------- | | `workspaceArg` | memref of any type values | `dynamicSize` | variadic of index | `offset` | variadic of index #### Results | Result | Description | | :----: | ----------- | | `memref` | memref of any type values ## 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 |