IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
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

coalesce

def coalesce[LayoutType: TensorLayout, //](layout: LayoutType) -> Layout[TypeList[#kgen.param_list.tabulate(len(#kgen.param_list.tabulate((Int(len(#kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value])))) // Int(2)), [idx: __mlir_type.index] ComptimeInt[Int(0)])), [idx: __mlir_type.index] #kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]))[(mul idx, 2)])](), TypeList[#kgen.param_list.tabulate(len(#kgen.param_list.tabulate((Int(len(#kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value])))) // Int(2)), [idx: __mlir_type.index] ComptimeInt[Int(0)])), [idx: __mlir_type.index] #kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]))[(add (mul idx, 2), 1)])]()]

Simplifies a layout by merging contiguous dimensions.

Iterates over the flattened (shape, stride) pairs and:

  1. Skips shape-1 dimensions.
  2. Merges a dimension into the previous one when prev_shape * prev_stride == current_stride (contiguous).
  3. Otherwise starts a new dimension.

The result is the simplest layout that maps coordinates to the same linear offsets as the original.

Example:

from layout.tile_layout import Layout, coalesce, row_major, Idx

# A row-major 2x4 layout has contiguous strides -> coalesces to 1D
var layout = row_major[2, 4]()
var coalesced = coalesce(layout)  # shape (8,), stride (1,)

Parameters:

  • ​LayoutType (TensorLayout): The type of the input layout.

Args:

  • ​layout (LayoutType): The layout to coalesce.

Returns:

Layout[TypeList[#kgen.param_list.tabulate(len(#kgen.param_list.tabulate((Int(len(#kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value])))) // Int(2)), [idx: __mlir_type.index] ComptimeInt[Int(0)])), [idx: __mlir_type.index] #kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]))[(mul idx, 2)])](), TypeList[#kgen.param_list.tabulate(len(#kgen.param_list.tabulate((Int(len(#kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value])))) // Int(2)), [idx: __mlir_type.index] ComptimeInt[Int(0)])), [idx: __mlir_type.index] #kgen.param_list.reduce(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__shape_types), [idx: __mlir_type.index] LayoutType.__shape_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType)), base=ComptimeInt[Int(1)], ComptimeInt[Int(0)], reducer=[PrevV: KGENParamList[CoordLike], VA: KGENParamList[CoordLike], idx: __mlir_type.index] PrevV if identical(VA[idx].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]) if identical(PrevV[(add len(PrevV), -2)].static_value, 1) else #kgen.param_list.concat(#kgen.param_list.tabulate(max(Int((add len(PrevV), -2)), Int(0)), [idx: __mlir_type.index] PrevV[idx]), ComptimeInt[Int((mul PrevV[(add len(PrevV), -2)].static_value, VA[idx].static_value))], PrevV[(add len(PrevV), -1)]) if identical((mul PrevV[(add len(PrevV), -2)].static_value, PrevV[(add len(PrevV), -1)].static_value), #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value) else #kgen.param_list.concat(PrevV, ComptimeInt[VA[idx].static_value], ComptimeInt[#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(#kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))), [idx: __mlir_type.index] #kgen.param_list.concat(#kgen.param_list.tabulate(len(LayoutType.__stride_types), [idx: __mlir_type.index] LayoutType.__stride_types[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx]._ParamListType))[idx].static_value]))[(add (mul idx, 2), 1)])]()]: A new layout with contiguous dimensions merged.

Was this page helpful?