$ mlir-opt 03_errors.mlir --split-input-file -o /dev/null 2>&1 | sed -n '/linalg.matmul. op/,/linalg.yield/p'
what it printed on the machine that wrote this lab
03_errors.mlir:100:8: error: 'linalg.matmul' op inferred input/output operand #1 has shape's dimension #0 to be 8, but found 16
%r = linalg.matmul ins(%a, %b : tensor<4x8xf32>, tensor<16x4xf32>) outs(%c : tensor<4x4xf32>) -> tensor<4x4xf32>
^
03_errors.mlir:100:8: note: see current operation:
%0 = "linalg.matmul"(%arg0, %arg1, %arg2) <{indexing_maps = [affine_map<(d0, d1, d2) -> (d0, d2)>, affine_map<(d0, d1, d2) -> (d2, d1)>, affine_map<(d0, d1, d2) -> (d0, d1)>], operandSegmentSizes = array<i32: 2, 1>}> ({
^bb0(%arg3: f32, %arg4: f32, %arg5: f32):
%1 = "arith.mulf"(%arg3, %arg4) <{fastmath = #arith.fastmath<none>}> : (f32, f32) -> f32
%2 = "arith.addf"(%arg5, %1) <{fastmath = #arith.fastmath<none>}> : (f32, f32) -> f32
"linalg.yield"(%2) : (f32) -> ()