llvm/mlir/utils/tree-sitter-mlir/test/corpus/attribute.txt

================================================================================
func.func with result attribute
================================================================================
func.func @example_fn_result() -> (f64 {dialectName.attrName = 0 : i64})
--------------------------------------------------------------------------------

(toplevel
  (operation
    (custom_operation
      (func_dialect
        (symbol_ref_id)
        (func_arg_list)
        (func_return
          (type_list_attr_parens
            (type
              (builtin_type
                (float_type)))
            (attribute
              (dictionary_attribute
                (attribute_entry
                  (bare_id)
                  (attribute_value
                    (integer_literal)
                    (type
                      (builtin_type
                        (integer_type)))))))))))))

================================================================================
func.func with argument attribute
================================================================================
func.func @example_fn_arg(%x: i32 {swift.self = unit})
--------------------------------------------------------------------------------

(toplevel
  (operation
    (custom_operation
      (func_dialect
        (symbol_ref_id)
        (func_arg_list
          (value_use)
          (type
            (builtin_type
              (integer_type)))
          (attribute
            (dictionary_attribute
              (attribute_entry
                (bare_id)
                (attribute_value
                  (unit_literal))))))))))

================================================================================
strided attribute in memref
================================================================================
func.func @dot_view(%arg0: memref<?xf32, strided<[1], offset: ?>>,
  %arg1: memref<?xf32, strided<[1], offset: ?>>, %arg2: memref<f32>) {
  linalg.dot ins(%arg0, %arg1 : memref<?xf32, strided<[1], offset: ?>>,
                                memref<?xf32, strided<[1], offset: ?>>)
             outs(%arg2:  memref<f32>)
  return
}
--------------------------------------------------------------------------------

(toplevel
  (operation
    (custom_operation
      (func_dialect
        (symbol_ref_id)
        (func_arg_list
          (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))))))
          (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))
                        (attribute_value
                          (builtin_attribute
                            (strided_layout))))))
                  (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))))))))
            (operation
              (custom_operation
                (func_dialect)))))))))

================================================================================
dense attribute in linalg.depthwise_conv_1d_nwc_wcm
================================================================================
func.func @depthwise_conv_1d_nwc_wcm(%input: tensor<1x12x8xf32>, %filter: tensor<3x8x8xf32>)
  -> tensor<1x10x8x8xf32> {
  %zero = arith.constant 0.000000e+00 : f32
  %init = tensor.empty() : tensor<1x10x8x8xf32>
  %fill = linalg.fill ins(%zero : f32) outs(%init : tensor<1x10x8x8xf32>) -> tensor<1x10x8x8xf32>
  %0 = linalg.depthwise_conv_1d_nwc_wcm {dilations = dense<1> : tensor<1xi64>,
    strides = dense<1> : tensor<1xi64>}
    ins(%input, %filter : tensor<1x12x8xf32>, tensor<3x8x8xf32>)
    outs(%fill : tensor<1x10x8x8xf32>) -> tensor<1x10x8x8xf32>
  return %0 : tensor<1x10x8x8xf32>
}
--------------------------------------------------------------------------------

(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
                (arith_dialect
                  (float_literal)
                  (type
                    (builtin_type
                      (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
                (linalg_dialect
                  (value_use)
                  (type
                    (builtin_type
                      (float_type)))
                  (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
                (linalg_dialect
                  (attribute
                    (dictionary_attribute
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (tensor_literal
                            (integer_literal))
                          (type
                            (builtin_type
                              (tensor_type
                                (dim_list
                                  (integer_type)))))))
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (tensor_literal
                            (integer_literal))
                          (type
                            (builtin_type
                              (tensor_type
                                (dim_list
                                  (integer_type)))))))))
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type)))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type)))))
                  (value_use)
                  (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))))))))))))))

================================================================================
fastmath attribute in arith
================================================================================
func.func @fastmath(%arg0: f32, %arg1: f32, %arg2: i32) {
  %0 = arith.addf %arg0, %arg1 fastmath<fast> : f32
  %1 = arith.subf %arg0, %arg1 fastmath<fast> : f32
  %2 = arith.mulf %arg0, %arg1 fastmath<fast> : f32
  %3 = arith.divf %arg0, %arg1 fastmath<fast> : f32
  %4 = arith.remf %arg0, %arg1 fastmath<fast> : f32
  %5 = arith.negf %arg0 fastmath<fast> : f32
  %6 = arith.addf %arg0, %arg1 fastmath<none> : f32
  %7 = arith.addf %arg0, %arg1 fastmath<nnan,ninf> : f32
  %8 = arith.mulf %arg0, %arg1 fastmath<reassoc,nnan,ninf,nsz,arcp,contract,afn> : f32
  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
              (float_type)))
          (value_use)
          (type
            (builtin_type
              (integer_type))))
        (region
          (entry_block
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (arith_dialect
                  (value_use)
                  (value_use)
                  (fastmath_attr)
                  (type
                    (builtin_type
                      (float_type))))))
            (operation
              (custom_operation
                (func_dialect)))))))))

================================================================================
Generic function bracketed attributes
================================================================================
"llvm.func"() ({
}) {sym_name = "qux", function_type = !llvm.func<void (ptr<i64>, i64)>,
    arg_attrs = [{llvm.noalias}, {}], xxx = {yyy = 42}} : () -> ()
--------------------------------------------------------------------------------

(toplevel
  (operation
    (generic_operation
      (string_literal)
      (region)
      (attribute
        (dictionary_attribute
          (attribute_entry
            (bare_id)
            (attribute_value
              (string_literal)))
          (attribute_entry
            (bare_id)
            (attribute_value
              (type
                (dialect_type
                  (pretty_dialect_item
                    (dialect_namespace)
                    (dialect_ident)
                    (pretty_dialect_item_body
                      (pretty_dialect_item_body)))))))
          (attribute_entry
            (bare_id)
            (attribute_value
              (dictionary_attribute
                (attribute_entry
                  (bare_id)))
              (dictionary_attribute)))
          (attribute_entry
            (bare_id)
            (attribute_value
              (dictionary_attribute
                (attribute_entry
                  (bare_id)
                  (attribute_value
                    (integer_literal))))))))
      (function_type))))

================================================================================
linalg.generic with attributes using attribute aliases
================================================================================
#map0 = affine_map<(d0, d1) -> (d0, d1)>
#map1 = affine_map<(d0, d1) -> (d0)>
#map2 = affine_map<(d0) -> (d0)>

func.func @add_broadcast_mul_fusion(%arg0: tensor<?xf32>, %arg1 : tensor<?xf32>,
  %arg2 : tensor<?x?xf32>) -> tensor<?x?xf32>
{
  %c0 = arith.constant 0 : index
  %c1 = arith.constant 1 : index
  %0 = tensor.dim %arg0, %c0 : tensor<?xf32>
  %1 = tensor.empty(%0) : tensor<?xf32>
  %2 = linalg.generic {indexing_maps = [#map2, #map2, #map2], iterator_types = ["parallel"]}
      ins(%arg0, %arg1 : tensor<?xf32>, tensor<?xf32>)
      outs(%1 : tensor<?xf32>) {
    ^bb0(%arg3: f32, %arg4: f32, %arg5: f32):
      %3 = arith.addf %arg3, %arg4 : f32
      linalg.yield %3 : f32
  } -> tensor<?xf32>
  %3 = tensor.dim %arg2, %c1 : tensor<?x?xf32>
  %4 = tensor.empty(%0, %3) : tensor<?x?xf32>
  %5 = linalg.generic {indexing_maps = [#map1, #map0, #map0], iterator_types = ["parallel", "parallel"]}
      ins(%2, %arg2 : tensor<?xf32>, tensor<?x?xf32>)
      outs(%4 : tensor<?x?xf32>){
    ^bb0(%arg5: f32, %arg6: f32, %arg7: f32):
      %6 = arith.mulf %arg5, %arg6 : f32
      linalg.yield %6 : f32
    } -> tensor<?x?xf32>
  return %5 : tensor<?x?xf32>
}
--------------------------------------------------------------------------------

(toplevel
  (attribute_alias_def
    (attribute_value
      (builtin_attribute
        (affine_map
          (bare_id)
          (bare_id)
          (bare_id)
          (bare_id)))))
  (attribute_alias_def
    (attribute_value
      (builtin_attribute
        (affine_map
          (bare_id)
          (bare_id)
          (bare_id)))))
  (attribute_alias_def
    (attribute_value
      (builtin_attribute
        (affine_map
          (bare_id)
          (bare_id)))))
  (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))))))
        (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
                      (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)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type))))))))
            (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
                (linalg_dialect
                  (attribute
                    (dictionary_attribute
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (attribute_alias)
                          (attribute_alias)
                          (attribute_alias)))
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (string_literal)))))
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type)))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_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
                              (float_type)))
                          (value_use)
                          (type
                            (builtin_type
                              (float_type)))
                          (value_use)
                          (type
                            (builtin_type
                              (float_type)))))
                      (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))))))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type))))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (tensor_dialect
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type))))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (tensor_dialect
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type))))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (linalg_dialect
                  (attribute
                    (dictionary_attribute
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (attribute_alias)
                          (attribute_alias)
                          (attribute_alias)))
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (string_literal)
                          (string_literal)))))
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type)))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_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
                              (float_type)))
                          (value_use)
                          (type
                            (builtin_type
                              (float_type)))
                          (value_use)
                          (type
                            (builtin_type
                              (float_type)))))
                      (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))))))))
                  (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))))))))))))))

================================================================================
linalg.generic with attribute alias
================================================================================
#map0 = affine_map<() -> ()>

#attrs = {
  indexing_maps = [#map0, #map0, #map0],
  iterator_types = []
}

func.func @main() -> (tensor<i32>) attributes {} {
  %c0 = arith.constant 0 : i32
  %0 = tensor.from_elements %c0 : tensor<i32>
  %c10 = arith.constant 10 : i32
  %1 = tensor.from_elements %c10 : tensor<i32>
  cf.br ^bb1(%0 : tensor<i32>)

^bb1(%2: tensor<i32>):  // 2 preds: ^bb0, ^bb2
  %3 = tensor.empty() : tensor<i1>
  %4 = linalg.generic #attrs
    ins(%2, %1 : tensor<i32>, tensor<i32>)
    outs(%3 : tensor<i1>) {
    ^bb0(%arg0: i32, %arg1: i32, %arg2: i1):
      %8 = arith.cmpi slt, %arg0, %arg1 : i32
      linalg.yield %8 : i1
  } -> tensor<i1>
  %5 = tensor.extract %4[] : tensor<i1>
  cf.cond_br %5, ^bb2(%2 : tensor<i32>), ^bb3(%2 : tensor<i32>)

^bb2(%6: tensor<i32>):  // pred: ^bb1
  %7 = tensor.empty() : tensor<i32>
  %8 = linalg.generic #attrs
    ins(%6, %6 : tensor<i32>, tensor<i32>)
    outs(%7 : tensor<i32>) {
    ^bb0(%arg0: i32, %arg1: i32, %arg2: i32):
      %9 = arith.addi %arg0, %arg1 : i32
      linalg.yield %9 : i32
  } -> tensor<i32>
  cf.br ^bb3(%8 : tensor<i32>)

^bb3(%10: tensor<i32>):  // pred: ^bb1
  return %10 : tensor<i32>
}
--------------------------------------------------------------------------------

(toplevel
  (attribute_alias_def
    (attribute_value
      (builtin_attribute
        (affine_map))))
  (attribute_alias_def
    (attribute_value
      (dictionary_attribute
        (attribute_entry
          (bare_id)
          (attribute_value
            (attribute_alias)
            (attribute_alias)
            (attribute_alias)))
        (attribute_entry
          (bare_id)
          (attribute_value)))))
  (operation
    (custom_operation
      (func_dialect
        (symbol_ref_id)
        (func_arg_list)
        (func_return
          (type_list_attr_parens
            (type
              (builtin_type
                (tensor_type
                  (dim_list
                    (integer_type)))))))
        (attribute
          (dictionary_attribute))
        (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
                (tensor_dialect
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (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)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))
            (operation
              (custom_operation
                (cf_dialect
                  (successor
                    (caret_id)
                    (value_use)
                    (type
                      (builtin_type
                        (tensor_type
                          (dim_list
                            (integer_type))))))))))
          (block
            (block_label
              (caret_id)
              (block_arg_list
                (value_use)
                (type
                  (builtin_type
                    (tensor_type
                      (dim_list
                        (integer_type)))))))
            (comment)
            (operation
              (op_result
                (value_use))
              (custom_operation
                (tensor_dialect
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (linalg_dialect
                  (attribute
                    (attribute_alias))
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type)))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type)))))
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type)))))
                  (region
                    (block
                      (block_label
                        (caret_id)
                        (block_arg_list
                          (value_use)
                          (type
                            (builtin_type
                              (integer_type)))
                          (value_use)
                          (type
                            (builtin_type
                              (integer_type)))
                          (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
                          (linalg_dialect
                            (value_use)
                            (type
                              (builtin_type
                                (integer_type))))))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (tensor_dialect
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))
            (operation
              (custom_operation
                (cf_dialect
                  (value_use)
                  (successor
                    (caret_id)
                    (value_use)
                    (type
                      (builtin_type
                        (tensor_type
                          (dim_list
                            (integer_type))))))
                  (successor
                    (caret_id)
                    (value_use)
                    (type
                      (builtin_type
                        (tensor_type
                          (dim_list
                            (integer_type))))))))))
          (block
            (block_label
              (caret_id)
              (block_arg_list
                (value_use)
                (type
                  (builtin_type
                    (tensor_type
                      (dim_list
                        (integer_type)))))))
            (comment)
            (operation
              (op_result
                (value_use))
              (custom_operation
                (tensor_dialect
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))
            (operation
              (op_result
                (value_use))
              (custom_operation
                (linalg_dialect
                  (attribute
                    (attribute_alias))
                  (value_use)
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type)))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type)))))
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type)))))
                  (region
                    (block
                      (block_label
                        (caret_id)
                        (block_arg_list
                          (value_use)
                          (type
                            (builtin_type
                              (integer_type)))
                          (value_use)
                          (type
                            (builtin_type
                              (integer_type)))
                          (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
                          (linalg_dialect
                            (value_use)
                            (type
                              (builtin_type
                                (integer_type))))))))
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))
            (operation
              (custom_operation
                (cf_dialect
                  (successor
                    (caret_id)
                    (value_use)
                    (type
                      (builtin_type
                        (tensor_type
                          (dim_list
                            (integer_type))))))))))
          (block
            (block_label
              (caret_id)
              (block_arg_list
                (value_use)
                (type
                  (builtin_type
                    (tensor_type
                      (dim_list
                        (integer_type)))))))
            (comment)
            (operation
              (custom_operation
                (func_dialect
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (integer_type))))))))))))))

================================================================================
linalg.generic with inline attributes
================================================================================
func.func @copy_view(%arg0: memref<?xf32, strided<[1], offset: ?>>,
  %arg1: memref<?xf32, strided<[1], offset: ?>>) {
  linalg.generic {
    iterator_types = ["parallel"],
    indexing_maps = [ affine_map<(i) -> (i)>, affine_map<(i) -> (i)>] }
   ins(%arg0: memref<?xf32, strided<[1], offset: ?>>)
   outs(%arg1: memref<?xf32, strided<[1], offset: ?>>) {
    ^bb0(%a: f32, %b: f32):
      linalg.yield %a : f32
  }
  return
}
--------------------------------------------------------------------------------

(toplevel
  (operation
    (custom_operation
      (func_dialect
        (symbol_ref_id)
        (func_arg_list
          (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)))))))
        (region
          (entry_block
            (operation
              (custom_operation
                (linalg_dialect
                  (attribute
                    (dictionary_attribute
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (string_literal)))
                      (attribute_entry
                        (bare_id)
                        (attribute_value
                          (builtin_attribute
                            (affine_map
                              (bare_id)
                              (bare_id)))
                          (builtin_attribute
                            (affine_map
                              (bare_id)
                              (bare_id)))))))
                  (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))))))
                  (region
                    (block
                      (block_label
                        (caret_id)
                        (block_arg_list
                          (value_use)
                          (type
                            (builtin_type
                              (float_type)))
                          (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.broadcast with inline attributes, without dictionary tokens
================================================================================
func.func @broadcast(%input: tensor<8x32xf32>,
                     %init: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> {
  %bcast = linalg.broadcast
      ins(%input:tensor<8x32xf32>)
      outs(%init:tensor<8x16x32xf32>)
      dimensions = [1]
  func.return %bcast : tensor<8x16x32xf32>
}
--------------------------------------------------------------------------------

(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
                (linalg_dialect
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type)))))
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type)))))
                  (bare_attribute_entry
                    (bare_id)
                    (attribute_value
                      (integer_literal))))))
            (operation
              (custom_operation
                (func_dialect
                  (value_use)
                  (type
                    (builtin_type
                      (tensor_type
                        (dim_list
                          (float_type))))))))))))))