For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /get-started.md).
Mojo function
row_major
def row_major(var shape: Coord) -> Layout[shape.element_types, TypeList[#kgen.param_list.reduce(#kgen.param_list.tabulate(len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), [idx: __mlir_type.index] shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values[SIMDLength((Int((add len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), -1)) - Int(idx)))]), base=, reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] #kgen.param_list.concat(ComptimeInt[Int(1)] if (Int(idx) == Int(0)) else Scalar[#kgen.param_list.tabulate(len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), [idx: __mlir_type.index] shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values[SIMDLength((Int((add len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].DTYPE if not #kgen.param_list.tabulate(len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), [idx: __mlir_type.index] shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values[SIMDLength((Int((add len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() else PrevV[0].DTYPE] if not #kgen.param_list.tabulate(len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), [idx: __mlir_type.index] shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values[SIMDLength((Int((add len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() if not #kgen.param_list.tabulate(len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), [idx: __mlir_type.index] shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values[SIMDLength((Int((add len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() else not PrevV[0].is_static_value.__bool__() else ComptimeInt[(#kgen.param_list.tabulate(len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), [idx: __mlir_type.index] shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values[SIMDLength((Int((add len(shape.element_types.values[0]._ParamListType if shape.element_types.values[0].is_tuple if (Int(len(shape.element_types.values)) == Int(1)) else (Int(len(shape.element_types.values)) == Int(1)) else shape.element_types.values), -1)) - Int(idx)))])[(add idx, -1)].static_value * PrevV[0].static_value)], PrevV))]()]
Creates a row-major layout from a shape Coord.
Row-major means the rightmost dimension has stride 1, and each preceding dimension has stride equal to the product of all following dimensions.
For shape (M, N, K):
- row_major strides: (N*K, K, 1)
- col_major strides: (1, M, M*N)
Args:
- βshape (
Coord): The shape as a Coord.
Returns:
def row_major[*element_types: CoordLike](var *elements: *element_types.values) -> Layout[element_types, TypeList[#kgen.param_list.reduce(#kgen.param_list.tabulate(len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), [idx: __mlir_type.index] element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values[SIMDLength((Int((add len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), -1)) - Int(idx)))]), base=, reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] #kgen.param_list.concat(ComptimeInt[Int(1)] if (Int(idx) == Int(0)) else Scalar[#kgen.param_list.tabulate(len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), [idx: __mlir_type.index] element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values[SIMDLength((Int((add len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].DTYPE if not #kgen.param_list.tabulate(len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), [idx: __mlir_type.index] element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values[SIMDLength((Int((add len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() else PrevV[0].DTYPE] if not #kgen.param_list.tabulate(len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), [idx: __mlir_type.index] element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values[SIMDLength((Int((add len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() if not #kgen.param_list.tabulate(len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), [idx: __mlir_type.index] element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values[SIMDLength((Int((add len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() else not PrevV[0].is_static_value.__bool__() else ComptimeInt[(#kgen.param_list.tabulate(len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), [idx: __mlir_type.index] element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values[SIMDLength((Int((add len(element_types.values[0]._ParamListType if element_types.values[0].is_tuple if (Int(len(element_types.values)) == Int(1)) else (Int(len(element_types.values)) == Int(1)) else element_types.values), -1)) - Int(idx)))])[(add idx, -1)].static_value * PrevV[0].static_value)], PrevV))]()]
Creates a row-major layout from a shape Coord.
Row-major means the rightmost dimension has stride 1, and each preceding dimension has stride equal to the product of all following dimensions.
Parameters:
- β*element_types (
CoordLike): The variadic pack of element types that implementCoordLike.
Args:
- β*elements (
*element_types.values): The shape as a Coord.
Returns:
def row_major[*idxs: Int]() -> Layout[TypeList[#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])](), TypeList[#kgen.param_list.reduce(#kgen.param_list.tabulate(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), [idx: __mlir_type.index] #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[SIMDLength((Int((add len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), -1)) - Int(idx)))]), base=, reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] #kgen.param_list.concat(ComptimeInt[Int(1)] if (Int(idx) == Int(0)) else Scalar[#kgen.param_list.tabulate(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), [idx: __mlir_type.index] #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[SIMDLength((Int((add len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].DTYPE if not #kgen.param_list.tabulate(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), [idx: __mlir_type.index] #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[SIMDLength((Int((add len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() else PrevV[0].DTYPE] if not #kgen.param_list.tabulate(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), [idx: __mlir_type.index] #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[SIMDLength((Int((add len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() if not #kgen.param_list.tabulate(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), [idx: __mlir_type.index] #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[SIMDLength((Int((add len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), -1)) - Int(idx)))])[SIMDLength((Int(idx) - Int(1)))].is_static_value.__bool__() else not PrevV[0].is_static_value.__bool__() else ComptimeInt[(#kgen.param_list.tabulate(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), [idx: __mlir_type.index] #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[SIMDLength((Int((add len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0]._ParamListType if #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])[0].is_tuple if (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else (Int(len(#kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]]))) == Int(1)) else #kgen.param_list.tabulate(len(idxs.values), [idx: __mlir_type.index] ComptimeInt[idxs.values[SIMDLength(Int(idx))]])), -1)) - Int(idx)))])[(add idx, -1)].static_value * PrevV[0].static_value)], PrevV))]()]
Creates a row-major layout from compile-time shape dimensions.
Parameters:
- β*idxs (
Int): The shape dimensions as compile-time integers.
Returns: