================================================================================ linalg.map without ins ================================================================================ func.func @map_no_inputs(%init: tensor<64xf32>) -> tensor<64xf32> { %add = linalg.map outs(%init:tensor<64xf32>) () { %0 = arith.constant 0.0: f32 linalg.yield %0: f32 } func.return %add : tensor<64xf32> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (linalg_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (block_arg_list) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (float_literal) (type (builtin_type (float_type)))))) (operation (custom_operation (linalg_dialect (value_use) (type (builtin_type (float_type))))))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ linalg.map with ins and outs ================================================================================ func.func @map_binary_memref(%lhs: memref<64xf32>, %rhs: memref<64xf32>, %init: memref<64xf32>) { linalg.map ins(%lhs, %rhs: memref<64xf32>, memref<64xf32>) outs(%init:memref<64xf32>) (%lhs_elem: f32, %rhs_elem: f32) { %0 = arith.addf %lhs_elem, %rhs_elem: f32 linalg.yield %0: f32 } func.return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type)))))) (region (entry_block (operation (custom_operation (linalg_dialect (value_use) (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (block_arg_list (value_use) (type (builtin_type (float_type))) (value_use) (type (builtin_type (float_type)))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (value_use) (type (builtin_type (float_type)))))) (operation (custom_operation (linalg_dialect (value_use) (type (builtin_type (float_type))))))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ linalg.generic with attribute dictionary ================================================================================ func.func @gather_like( %arg0 : tensor {bufferization.writable = false}, %arg1 : tensor {bufferization.writable = false}, %arg2 : tensor {bufferization.writable = true}) -> tensor { %0 = linalg.generic { indexing_maps = [affine_map<(d0, d1) -> (d0)>, affine_map<(d0, d1) -> (d0, d1)>], iterator_types = ["parallel", "parallel"]} ins(%arg1 : tensor) outs(%arg2 : tensor) { ^bb0(%arg3: i32, %arg4 : f32): %iv1 = linalg.index 1 : index %1 = arith.index_cast %arg3: i32 to index %2 = tensor.extract %arg0[%1, %iv1] : tensor linalg.yield %2 : f32 } -> tensor return %0 : tensor } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal))))) (value_use) (type (builtin_type (tensor_type (dim_list (integer_type))))) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal)))))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (linalg_dialect (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id))) (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id) (bare_id))))) (attribute_entry (bare_id) (attribute_value (string_literal) (string_literal))))) (value_use) (type (builtin_type (tensor_type (dim_list (integer_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (region (block (block_label (caret_id) (block_arg_list (value_use) (type (builtin_type (integer_type))) (value_use) (type (builtin_type (float_type))))) (operation (op_result (value_use)) (custom_operation (linalg_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (type (builtin_type (integer_type))) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (linalg_dialect (value_use) (type (builtin_type (float_type)))))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ tensor.collapse_shape and tensor.expand_shape without reassocation ================================================================================ func.func @tensor_reshape_zero_dim(%arg0 : tensor<1x1xf32>, %arg1 : tensor) -> (tensor, tensor<1x1xf32>) { %0 = tensor.collapse_shape %arg0 [] : tensor<1x1xf32> into tensor %1 = tensor.expand_shape %0 [] : tensor into tensor<1x1xf32> return %0, %1 : tensor, tensor<1x1xf32> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (nested_idx_list) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (nested_idx_list) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ tensor.collapse_shape with reassocation ================================================================================ func.func @legal_collapsing_reshape_dynamic_tensor (%arg0: tensor) -> tensor { %0 = tensor.collapse_shape %arg0 [[0], [1], [2, 3, 4]] : tensor into tensor return %0 : tensor } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal)) (nested_idx_list (integer_literal)) (nested_idx_list (integer_literal) (integer_literal) (integer_literal))) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ tensor.gather and tensor.scatter ================================================================================ func.func @gather_scatter(%dest : tensor<4x5x6xf32>, %indices: tensor<1x3x2xindex>, %indices_i32: tensor<1x3x2xi32>) { %gathered = tensor.gather %dest[%indices_i32] gather_dims([1, 2]) unique: (tensor<4x5x6xf32>, tensor<1x3x2xi32>) -> tensor<1x3x4x1x1xf32> %rank_reduced_gathered = tensor.gather %dest[%indices] gather_dims([1, 2]) unique: (tensor<4x5x6xf32>, tensor<1x3x2xindex>) -> tensor<1x3x4xf32> %scattered = tensor.scatter %gathered into %dest[%indices] scatter_dims([1, 2]) unique: (tensor<1x3x4x1x1xf32>, tensor<4x5x6xf32>, tensor<1x3x2xindex>) -> tensor<4x5x6xf32> %rank_reduced_scattered = tensor.scatter %rank_reduced_gathered into %dest[%indices_i32] scatter_dims([1, 2]) unique: (tensor<1x3x4xf32>, tensor<4x5x6xf32>, tensor<1x3x2xi32>) -> tensor<4x5x6xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (index_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (integer_type)))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (gather_dims_attr (integer_literal) (integer_literal)) (unique_attr) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (integer_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (gather_dims_attr (integer_literal) (integer_literal)) (unique_attr) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (index_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (scatter_dims_attr (integer_literal) (integer_literal)) (unique_attr) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (index_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (scatter_dims_attr (integer_literal) (integer_literal)) (unique_attr) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (integer_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ tensor.extract_slice ================================================================================ func.func @slice(%t: tensor<8x16x4xf32>, %idx : index) { %c0 = arith.constant 0 : index %c1 = arith.constant 1 : index %1 = tensor.extract_slice %t[%c0, %c0, %c0][%idx, %idx, %idx][%c1, %c1, %c1] : tensor<8x16x4xf32> to tensor %2 = tensor.extract_slice %t[0, 2, 0][4, 4, 4][1, 1, 1] : tensor<8x16x4xf32> to tensor<4x4x4xf32> %3 = tensor.extract_slice %t[0, 2, 0][4, 1, 4][1, 1, 1] : tensor<8x16x4xf32> to tensor<4x4xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (index_type)))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ tensor.insert_slice ================================================================================ func.func @insert_slice( %t: tensor<8x16x4xf32>, %td: tensor<8x?x4xf32>, %t2: tensor<16x32x8xf32>, %t3: tensor<4x4xf32>, %idx : index, %sz : index) { %c0 = arith.constant 0 : index %c1 = arith.constant 1 : index %1 = tensor.insert_slice %t into %t2[%c0, %c0, %c0][8, 16, 4][%c1, %c1, %c1] : tensor<8x16x4xf32> into tensor<16x32x8xf32> %2 = tensor.insert_slice %t into %t2[%c0, %idx, %c0][8, 16, 4][%c1, 1, %c1] : tensor<8x16x4xf32> into tensor<16x32x8xf32> %3 = tensor.insert_slice %t3 into %t[0, 2, 0][4, 1, 4][1, 1, 1] : tensor<4x4xf32> into tensor<8x16x4xf32> %4 = tensor.insert_slice %td into %t[0, %idx, 0][8, %sz, 4][1, 1, 1] : tensor<8x?x4xf32> into tensor<8x16x4xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (index_type)))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (integer_literal) (integer_literal) (integer_literal) (value_use) (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (integer_literal) (integer_literal) (integer_literal) (value_use) (integer_literal) (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (integer_literal) (value_use) (integer_literal) (integer_literal) (value_use) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ tensor.rank, tensor.generate, tensor.yield, tensor.extract ================================================================================ func.func @extract_from_tensor.generate(%idx: index, %tensor: tensor<*xf32>) -> index { %size = tensor.rank %tensor : tensor<*xf32> %0 = tensor.generate %size { ^bb0(%arg0: index): %1 = tensor.dim %tensor, %arg0 : tensor<*xf32> tensor.yield %1 : index } : tensor %1 = tensor.extract %0[%idx] : tensor return %1 : index } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (index_type))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (region (block (block_label (caret_id) (block_arg_list (value_use) (type (builtin_type (index_type))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (tensor_dialect (value_use) (type (builtin_type (index_type)))))))) (type (builtin_type (tensor_type (dim_list (index_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (index_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (index_type)))))))))))) ================================================================================ tensor.insert ================================================================================ func.func @insert(%arg0: f32, %arg1: index, %arg2: tensor) { %0 = tensor.insert %arg0 into %arg2[%arg1, %arg1, %arg1] : tensor return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (float_type))) (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ tensor.from_elements and tensor.reshape ================================================================================ func.func @tensor.reshape(%t1: tensor) -> tensor<2x2x5xf32> { %two = arith.constant 2 : i64 %five = arith.constant 5 : i64 %shape = tensor.from_elements %two, %two, %five : tensor<3xi64> %reshaped = tensor.reshape %t1(%shape) : (tensor, tensor<3xi64>) -> tensor<2x2x5xf32> return %reshaped : tensor<2x2x5xf32> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (integer_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (integer_type)))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (integer_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (integer_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ tensor.pad ================================================================================ func.func @pad_dynamic(%arg0: tensor<1x2x2x?xf32>, %low: index, %high: index, %pad_value: f32) -> tensor<6x?x?x?xf32> { %0 = tensor.pad %arg0 low[2, %low, 3, 3] high[3, 3, %high, 2] { ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): tensor.yield %pad_value : f32 } : tensor<1x2x2x?xf32> to tensor<6x?x?x?xf32> return %0 : tensor<6x?x?x?xf32> } func.func @pad_nofold_same_static_shape(%arg0: tensor<5x6xf32>, %a: index) -> tensor<5x6xf32> { %cst = arith.constant 0.000000e+00 : f32 %0 = tensor.pad %arg0 nofold low[%a, 0] high[0, %a] { ^bb0(%arg1: index, %arg2: index): tensor.yield %cst : f32 } : tensor<5x6xf32> to tensor<5x6xf32> return %0 : tensor<5x6xf32> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (float_type)))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (integer_literal) (value_use) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (value_use) (integer_literal) (region (block (block_label (caret_id) (block_arg_list (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (index_type))))) (operation (custom_operation (tensor_dialect (value_use) (type (builtin_type (float_type)))))))) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))))))))))) (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (index_type)))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (float_literal) (type (builtin_type (float_type)))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (nofold_attr) (value_use) (integer_literal) (integer_literal) (value_use) (region (block (block_label (caret_id) (block_arg_list (value_use) (type (builtin_type (index_type))) (value_use) (type (builtin_type (index_type))))) (operation (custom_operation (tensor_dialect (value_use) (type (builtin_type (float_type)))))))) (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ tensor.splat ================================================================================ func.func @test_splat_op(%s : f32) { %v = tensor.splat %s : tensor<8xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (float_type)))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ tensor.reshape ================================================================================ func.func @tensor_reshape(%unranked: tensor<*xf32>, %shape: tensor<1xi32>) { %dyn_vec = tensor.reshape %unranked(%shape) : (tensor<*xf32>, tensor<1xi32>) -> tensor return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (integer_type)))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (value_use) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (integer_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ tensor.pack and tensor.unpack ================================================================================ func.func @pack_nc_to_ncnc(%source: tensor<128x256xf32>, %dest: tensor<4x16x32x16xf32>) -> tensor<128x256xf32> { %0 = tensor.pack %source inner_dims_pos = [0, 1] inner_tiles = [32, 16] into %dest : tensor<128x256xf32> -> tensor<4x16x32x16xf32> %1 = tensor.empty() : tensor<128x256xf32> %2 = tensor.unpack %0 inner_dims_pos = [0, 1] inner_tiles = [32, 16] into %1 : tensor<4x16x32x16xf32> -> tensor<128x256xf32> return %2 : tensor<128x256xf32> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (inner_dims_pos_attr (integer_literal) (integer_literal)) (inner_tiles_attr (integer_literal) (integer_literal)) (value_use) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (tensor_dialect (value_use) (inner_dims_pos_attr (integer_literal) (integer_literal)) (inner_tiles_attr (integer_literal) (integer_literal)) (value_use) (function_type (type (builtin_type (tensor_type (dim_list (float_type))))) (type (builtin_type (tensor_type (dim_list (float_type))))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ memref.alloc, memref.cast, and memref.copy ================================================================================ func.func @memref_copy() { %0 = memref.alloc() : memref<2xf32> %1 = memref.cast %0 : memref<2xf32> to memref<*xf32> %2 = memref.alloc() : memref<2xf32> %3 = memref.cast %0 : memref<2xf32> to memref<*xf32> memref.copy %1, %3 : memref<*xf32> to memref<*xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list) (region (entry_block (operation (op_result (value_use)) (custom_operation (memref_dialect (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (memref_dialect (value_use) (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ memref.expand_shape and memref.collapse_shape ================================================================================ func.func @expand_collapse_shape_dynamic(%arg0: memref, %arg1: memref>, %arg2: memref>, %arg3: memref>) { %0 = memref.collapse_shape %arg0 [[0, 1], [2]] : memref into memref %r0 = memref.expand_shape %0 [[0, 1], [2]] : memref into memref %1 = memref.collapse_shape %arg1 [[0, 1], [2]] : memref> into memref> %r1 = memref.expand_shape %1 [[0, 1], [2]] : memref> into memref> %2 = memref.collapse_shape %arg2 [[0, 1], [2]] : memref> into memref> %r2 = memref.expand_shape %2 [[0, 1], [2]] : memref> into memref> %3 = memref.collapse_shape %arg3 [[0, 1]] : memref> into memref> %r3 = memref.expand_shape %3 [[0, 1]] : memref> into memref return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal))))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout)))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal)))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal)) (nested_idx_list (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal)) (nested_idx_list (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal)) (nested_idx_list (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal))))))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal)))))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal)) (nested_idx_list (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal))))))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal)))))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal)) (nested_idx_list (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout)))))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout))))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal)) (nested_idx_list (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout)))))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout))))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout (integer_literal))))))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout))))))))) (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (nested_idx_list (nested_idx_list (integer_literal) (integer_literal))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout)))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ memref.realloc ================================================================================ func.func @memref_realloc_sd(%src : memref<2xf32>, %d : index) -> memref{ %0 = memref.realloc %src(%d) : memref<2xf32> to memref return %0 : memref } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (value_use) (type (builtin_type (index_type)))) (func_return (type_list_attr_parens (type (builtin_type (memref_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (memref_type (dim_list (float_type)))))))))))))) ================================================================================ memref.prefetch ================================================================================ func.func @prefetch_locality_hint(%i : index) { %0 = memref.alloc() : memref<10xf32> memref.prefetch %0[%i], read, locality<3>, data : memref<10xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (index_type)))) (region (entry_block (operation (op_result (value_use)) (custom_operation (memref_dialect (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (memref_dialect (value_use) (value_use) (isWrite_attr) (localityHint_attr (integer_literal)) (isDataCache_attr) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ memref.rank ================================================================================ func.func @rank(%t : memref<4x4x?xf32>) { %0 = memref.rank %t : memref<4x4x?xf32> return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (float_type)))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect))))))))) ================================================================================ memref.store ================================================================================ func.func @truncation_spillover(%arg0 : memref) -> index { %c0 = arith.constant 0 : index %c1 = arith.constant 1 : index %c2 = arith.constant 2 : index %c49 = arith.constant 49 : index %0 = scf.for %arg1 = %c0 to %c2 step %c1 iter_args(%arg2 = %c0) -> index { %1 = arith.divsi %arg2, %c49 : index %2 = arith.index_cast %1 : index to i32 memref.store %2, %arg0[%c0] : memref %3 = arith.addi %arg2, %arg1 : index scf.yield %3 : index } func.return %0 : index } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (integer_type)))))) (func_return (type_list_attr_parens (type (builtin_type (index_type))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (scf_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (type (builtin_type (index_type))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (value_use) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (type (builtin_type (index_type))) (type (builtin_type (integer_type)))))) (operation (custom_operation (memref_dialect (value_use) (value_use) (value_use) (type (builtin_type (memref_type (dim_list (integer_type)))))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (value_use) (type (builtin_type (index_type)))))) (operation (custom_operation (scf_dialect (value_use) (type (builtin_type (index_type))))))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (index_type)))))))))))) ================================================================================ memref.reinterpret_cast ================================================================================ func.func @memref_reinterpret_cast_static_to_dynamic_sizes(%in: memref) -> memref<10x?xf32, strided<[?, 1], offset: ?>> { %out = memref.reinterpret_cast %in to offset: [1], sizes: [10, 10], strides: [1, 1] : memref to memref<10x?xf32, strided<[?, 1], offset: ?>> return %out : memref<10x?xf32, strided<[?, 1], offset: ?>> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (float_type)))))) (func_return (type_list_attr_parens (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout)))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (memref_dialect (value_use) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout))))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (memref_type (dim_list (float_type)) (attribute_value (builtin_attribute (strided_layout))))))))))))))) ================================================================================ cf.assert ================================================================================ func.func @assert(%arg : i1) { cf.assert %arg, "Some message in case this assertion fails." return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (integer_type)))) (region (entry_block (operation (custom_operation (cf_dialect (value_use) (string_literal)))) (operation (custom_operation (func_dialect))))))))) ================================================================================ vector.splat ================================================================================ func.func @signExtendConstantSplat() -> vector<4xi16> { %c-2 = arith.constant -2 : i8 %splat = vector.splat %c-2 : vector<4xi8> %ext = arith.extsi %splat : vector<4xi8> to vector<4xi16> return %ext : vector<4xi16> } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list) (func_return (type_list_attr_parens (type (builtin_type (vector_type (vector_dim_list) (integer_type)))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (integer_type)))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type)))) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))))))))) ================================================================================ arith.cmpi with string parameter ================================================================================ func.func @notCmpEQ(%arg0: i8, %arg1: i8) -> i1 { %true = arith.constant true %cmp = arith.cmpi "eq", %arg0, %arg1 : i8 %ncmp = arith.xori %cmp, %true : i1 return %ncmp : i1 } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (integer_type))) (value_use) (type (builtin_type (integer_type)))) (func_return (type_list_attr_parens (type (builtin_type (integer_type))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (bool_literal)))) (operation (op_result (value_use)) (custom_operation (arith_dialect (string_literal) (value_use) (value_use) (type (builtin_type (integer_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (value_use) (value_use) (type (builtin_type (integer_type)))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (integer_type)))))))))))) ================================================================================ bufferization.alloc_tensor ================================================================================ func.func @test_alloc_tensor_op(%t: tensor, %sz: index) -> tensor { %0 = bufferization.alloc_tensor(%sz) : tensor %1 = bufferization.alloc_tensor() copy(%t) : tensor %2 = bufferization.alloc_tensor() : tensor<5x6xf32> %3 = bufferization.alloc_tensor(%sz, %sz) : tensor %4 = bufferization.alloc_tensor() copy(%t) {escape = true} : tensor %5 = bufferization.alloc_tensor() copy(%t) {escape = false} : tensor %c100 = arith.constant 100 : index %6 = bufferization.alloc_tensor() size_hint=%c100 : tensor<100x100xf64, #CSR> %7 = bufferization.alloc_tensor(%sz) {memory_space = "foo"} : tensor return %1 : tensor } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (tensor_type (dim_list (float_type))))) (value_use) (type (builtin_type (index_type)))) (func_return (type_list_attr_parens (type (builtin_type (tensor_type (dim_list (float_type))))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)) (tensor_encoding (attribute_value (attribute_alias))))))))) (operation (op_result (value_use)) (custom_operation (bufferization_dialect (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (string_literal))))) (type (builtin_type (tensor_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect (value_use) (type (builtin_type (tensor_type (dim_list (float_type)))))))))))))) ================================================================================ vector.transfer_read and vector.transfer_write ================================================================================ func.func @vector_transfer_ops(%arg0: memref, %arg1 : memref>, %arg2 : memref>, %arg3 : memref>, %arg4 : memref) { %c3 = arith.constant 3 : index %cst = arith.constant 3.0 : f32 %f0 = arith.constant 0.0 : f32 %c0 = arith.constant 0 : i32 %i0 = arith.constant 0 : index %i1 = arith.constant 1 : i1 %vf0 = vector.splat %f0 : vector<4x3xf32> %v0 = vector.splat %c0 : vector<4x3xi32> %vi0 = vector.splat %i0 : vector<4x3xindex> %m = arith.constant dense<[0, 0, 1, 0, 1]> : vector<5xi1> %m2 = vector.splat %i1 : vector<4x5xi1> %0 = vector.transfer_read %arg0[%c3, %c3], %f0 {permutation_map = affine_map<(d0, d1)->(d0)>} : memref, vector<128xf32> %1 = vector.transfer_read %arg0[%c3, %c3], %f0 {permutation_map = affine_map<(d0, d1)->(d1, d0)>} : memref, vector<3x7xf32> %2 = vector.transfer_read %arg0[%c3, %c3], %cst {permutation_map = affine_map<(d0, d1)->(d0)>} : memref, vector<128xf32> %3 = vector.transfer_read %arg0[%c3, %c3], %cst {permutation_map = affine_map<(d0, d1)->(d1)>} : memref, vector<128xf32> %4 = vector.transfer_read %arg1[%c3, %c3], %vf0 {permutation_map = affine_map<(d0, d1)->(d0, d1)>} : memref>, vector<1x1x4x3xf32> %5 = vector.transfer_read %arg1[%c3, %c3], %vf0 {in_bounds = [false, true]} : memref>, vector<1x1x4x3xf32> %6 = vector.transfer_read %arg2[%c3, %c3], %v0 : memref>, vector<5x24xi8> %7 = vector.transfer_read %arg3[%c3, %c3], %vi0 : memref>, vector<5x48xi8> %8 = vector.transfer_read %arg0[%c3, %c3], %f0, %m : memref, vector<5xf32> %9 = vector.transfer_read %arg4[%c3, %c3, %c3], %f0, %m2 {permutation_map = affine_map<(d0, d1, d2)->(d1, d0, 0)>} : memref, vector<5x4x8xf32> vector.transfer_write %0, %arg0[%c3, %c3] {permutation_map = affine_map<(d0, d1)->(d0)>} : vector<128xf32>, memref vector.transfer_write %1, %arg0[%c3, %c3] {permutation_map = affine_map<(d0, d1)->(d1, d0)>} : vector<3x7xf32>, memref vector.transfer_write %4, %arg1[%c3, %c3] {permutation_map = affine_map<(d0, d1)->(d0, d1)>} : vector<1x1x4x3xf32>, memref> vector.transfer_write %5, %arg1[%c3, %c3] {in_bounds = [false, false]} : vector<1x1x4x3xf32>, memref> vector.transfer_write %6, %arg2[%c3, %c3] : vector<5x24xi8>, memref> vector.transfer_write %7, %arg3[%c3, %c3] : vector<5x48xi8>, memref> vector.transfer_write %8, %arg0[%c3, %c3], %m : vector<5xf32>, memref return } -------------------------------------------------------------------------------- (toplevel (operation (custom_operation (func_dialect (symbol_ref_id) (func_arg_list (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (value_use) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (float_type)))))) (value_use) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (integer_type)))))) (value_use) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (index_type)))))) (value_use) (type (builtin_type (memref_type (dim_list (float_type)))))) (region (entry_block (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (float_literal) (type (builtin_type (float_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (float_literal) (type (builtin_type (float_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (integer_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (index_type)))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (integer_literal) (type (builtin_type (integer_type)))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (index_type))))))) (operation (op_result (value_use)) (custom_operation (arith_dialect (tensor_literal (nested_idx_list (integer_literal) (integer_literal) (integer_literal) (integer_literal) (integer_literal))) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (float_type)))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal) (bool_literal))))) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (float_type)))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (integer_type)))))) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (index_type)))))) (type (builtin_type (vector_type (vector_dim_list) (integer_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (op_result (value_use)) (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id) (bare_id) (bare_id) (integer_literal))))))) (type (builtin_type (memref_type (dim_list (float_type))))) (type (builtin_type (vector_type (vector_dim_list) (float_type))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (vector_type (vector_dim_list) (float_type)))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (vector_type (vector_dim_list) (float_type)))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (builtin_attribute (affine_map (bare_id) (bare_id) (bare_id) (bare_id))))))) (type (builtin_type (vector_type (vector_dim_list) (float_type)))) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (float_type))))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (attribute (dictionary_attribute (attribute_entry (bare_id) (attribute_value (bool_literal) (bool_literal))))) (type (builtin_type (vector_type (vector_dim_list) (float_type)))) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (float_type))))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type)))) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (integer_type))))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (type (builtin_type (vector_type (vector_dim_list) (integer_type)))) (type (builtin_type (memref_type (dim_list (vector_type (vector_dim_list) (index_type))))))))) (operation (custom_operation (vector_dialect (value_use) (value_use) (value_use) (value_use) (value_use) (type (builtin_type (vector_type (vector_dim_list) (float_type)))) (type (builtin_type (memref_type (dim_list (float_type)))))))) (operation (custom_operation (func_dialect)))))))))