<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/60210>60210</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Test-transform-dialect-interpreter Pass crashed with Assertion failure "expected valid attribute name and value"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Colloportus0
      </td>
    </tr>
</table>

<pre>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/a0dab4950
Reproduced with: 
`mlir-opt --test-transform-dialect-interpreter temp.mlir`

temp.mlir:
``` milr 
#map = affine_map<(d0, d1) -> (d0, d1)>
#map1 = affine_map<(d0, d1) -> (d0)>
module {
  func.func @func(%arg0: tensor<?x?xf32>, %arg1: tensor<?xf32>) -> tensor<?xf32> {
 %0 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "reduction"]} ins(%arg0 : tensor<?x?xf32>) outs(%arg1 : tensor<?xf32>) {
    ^bb0(%in: f32, %out: f32):
      %1 = llvm.fmul %in, %in  : f32
      %2 = llvm.fadd %1, %out  : f32
      linalg.yield %2 : f32
    } -> tensor<?xf32>
    return %0 : tensor<?xf32>
 }
  transform.sequence failures(propagate) {
  ^bb0(%arg0: !pdl.operation):
    %0 = transform.structured.match ops{["linalg.generic"]} in %arg0
    %for_op, %fill_op, %split_linalg_op, %combining_linalg_op = transform.structured.tile_reduction_using_scf %0 by tile_sizes = [0, 5]
 }
}


```
 
trace:
```console  
Assertion failed: (name && value && "expected valid attribute name and value"), function NamedAttribute, file Attributes.cpp, line 28.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: mlir-opt --test-transform-dialect-interpreter temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt 0x0000000104f386b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x0000000104f37720 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x0000000104f38d50 SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001aad414c4 _sigtramp + 56
4  libsystem_pthread.dylib 0x00000001aad29ee0 pthread_kill + 288
5  libsystem_c.dylib 0x00000001aac64340 abort + 168
6  libsystem_c.dylib 0x00000001aac63754 err + 0
7  mlir-opt                 0x0000000106cfc888 mlir::NamedAttribute::NamedAttribute(mlir::StringAttr, mlir::Attribute) (.cold.2) + 0
8  mlir-opt                 0x0000000106643598 mlir::NamedAttribute::NamedAttribute(mlir::StringAttr, mlir::Attribute) + 72
9  mlir-opt                 0x0000000105027058 mlir::arith::ConstantOp::build(mlir::OpBuilder&, mlir::OperationState&, mlir::TypedAttr) + 172
10 mlir-opt                 0x000000010509bd64 mlir::arith::ConstantOp mlir::OpBuilder::create<mlir::arith::ConstantOp, mlir::Attribute&>(mlir::Location, mlir::Attribute&) + 140
11 mlir-opt 0x00000001055a00f0 mlir::detail::PartialReductionOpInterfaceInterfaceTraits::FallbackModel<(anonymous namespace)::LinalgOpPartialReductionInterface<mlir::linalg::GenericOp>>::generateInitialTensorForPartialReduction(mlir::detail::PartialReductionOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::OpBuilder&, mlir::Location, llvm::ArrayRef<mlir::OpFoldResult>, llvm::ArrayRef<int>) + 1228
12 mlir-opt                 0x0000000105a7d444 mlir::scf::tileReductionUsingScf(mlir::PatternRewriter&, mlir::PartialReductionOpInterface, llvm::ArrayRef<mlir::OpFoldResult>) + 900
13 mlir-opt                 0x00000001054c1300 mlir::transform::TileReductionUsingScfOp::applyToOne(mlir::linalg::LinalgOp, mlir::transform::ApplyToEachResultList&, mlir::transform::TransformState&) + 236
14 mlir-opt                 0x0000000105503aac mlir::DiagnosedSilenceableFailure mlir::transform::detail::applyTransformToEach<mlir::transform::TileReductionUsingScfOp>(mlir::transform::TileReductionUsingScfOp, llvm::ArrayRef<mlir::Operation*>, llvm::SmallVectorImpl<mlir::transform::ApplyToEachResultList>&, mlir::transform::TransformState&) + 272
15 mlir-opt 0x000000010550365c mlir::transform::TransformEachOpTrait<mlir::transform::TileReductionUsingScfOp>::apply(mlir::transform::TransformResults&, mlir::transform::TransformState&) + 224
16 mlir-opt 0x000000010550330c mlir::transform::detail::TransformOpInterfaceInterfaceTraits::Model<mlir::transform::TileReductionUsingScfOp>::apply(mlir::transform::detail::TransformOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::transform::TransformResults&, mlir::transform::TransformState&) + 72
17 mlir-opt 0x0000000105f121f4 mlir::transform::TransformState::applyTransform(mlir::transform::TransformOpInterface) + 1232
18 mlir-opt                 0x0000000105f25640 mlir::transform::SequenceOp::apply(mlir::transform::TransformResults&, mlir::transform::TransformState&) + 356
19 mlir-opt 0x0000000105f0bf40 mlir::transform::detail::TransformOpInterfaceInterfaceTraits::Model<mlir::transform::SequenceOp>::apply(mlir::transform::detail::TransformOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::transform::TransformResults&, mlir::transform::TransformState&) + 72
20 mlir-opt 0x0000000105f121f4 mlir::transform::TransformState::applyTransform(mlir::transform::TransformOpInterface) + 1232
21 mlir-opt                 0x0000000105f14ef0 mlir::transform::applyTransforms(mlir::Operation*, mlir::transform::TransformOpInterface, mlir::transform::TransformOptions const&) + 148
22 mlir-opt                 0x0000000106579d60 (anonymous namespace)::TestTransformDialectInterpreterPass::runOnOperation() + 256
23 mlir-opt                 0x00000001065b4428 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
24 mlir-opt 0x00000001065b4958 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
25 mlir-opt                 0x00000001065b62d4 mlir::PassManager::run(mlir::Operation*) + 1148
26 mlir-opt 0x00000001065af698 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 504
27 mlir-opt                 0x00000001065af268 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 704
28 mlir-opt                 0x0000000106619f5c mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) + 656
29 mlir-opt 0x00000001065ad690 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) + 216
30 mlir-opt                 0x00000001065adb84 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
31 mlir-opt 0x0000000104ddaae4 main + 108
32 dyld 0x000000010a01d088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltv67gR_jXKCxGDoi6WHvLg3LoBkiZI0gXaF4MSKZtditSS1DnH--sLkpIsOXaik-4pDtoaia3LzHAuH4czlLDWbCMovQiSyyC5PsOt2Up1cSU5l41UptXwrJBkd_Fwf_cMipZxA7ABpaxrZsDWmEYH0SpAtwG63TCzbYtFKesA3XL-pf85b5T8Jy1NgG49X4BuMSS4iPMEBvA6gKtn2ihJ2pIS8JWZbRCtgL8RpLDmTJ3LxoDzc0O1OTcKC11JVZ8ThjktzTkThqpGUUMVMLRuFpYlSDvZ_nt_PVoNov0fqBlX_XgoqnEDguga4Kpigq5r3ATRVYAyAgN0BUgYoBycB9ENmF4LopuxiPC7ZOy5a0laTkGwvPTnAFStKBf2CwQxtL8BygKUYLWB1k-GCi2VFR_dfrP_VYSsNHQFPFX4hqqn6HQ4cm80foAS6GzhTGC-WWyooIqVloIJQr8xsbH2aUdjUeTM98M7RwTJtT1jhipspFqbXUNH1KjBCnNOeYCQ50KKkrY0TAp7KbkOlteACb03G7xrdw5ka_bU4VvqPeXIzQAEyU1RQM_IhOWyhN6PsjXDhXyAEHCfACU-2hbsi6puOfASPCsTAPS8Uy404sKEOEH78Y5ydUHYMcpJL-KAyLrrVFz3VIqaVok-uscd1AFged2zDVNvoenvLRUlBRVmvFXU-rtRssEbbOiBZ8d-7VEboLAhfCEbCwoX6alXB9SNhjSqLU2rKFnU2JRbIBttR3EgmoJzjBvQjzqWXUm1lh1Ik4pxvj_TDWdm7eXtr5ayLpiwWB_unFbPME7XA4jXrbZ8uqy8VcUOOALN_tjPA5cXEqv0gdP3B-PvPnX11D7FKVzSt-mtlEJLTkFHtdKaKquXCx0lPhqZwDUFAUoDlIIvmLfDSYAQ_dbQ0lBibzACsDGKFa2hwDFhQTyHm8C5NcRmKTfEX3FNyaqnd7cYp2C4ohdl41zMmaAAZQuv49P9zerlBui2sKsMBkW7AYra9QgY-f2rDtO6tQi9dboyUfKWUGC2FJQK6y0ocPmbc143_IvB5W-AtHUzeBMuApg_KblRuAZYbdqaCmOVAJ9dng5GcuuenfV6VxeSO9dqGxgqdKso2MkWbPEX6tLFuSdif1BlEb6TrQJPq9dfgFRAU-NMo-ILU1JYPcEXrECQwvv7Xx_WL39_uHy8v_vHzfPastj1z0jQSCacc-3qvJ-KEOztg9-g_4QwrqIsLTKni6WNVnqn_cGTYsI4s14dHFG2J1L461pqoyiuHbiuABPGJQt0CZLUDxmOhjz8TFVYLhE8psJzK17YRmD-CxaEU-XXAj9KGHaZEp22jCQQTAQEKBspGsWxFxHZdFzonTa0XjccG5cHyI6zYiQSYxKHcRmDtWYbo3DdTMyNJ0LMVlFMjslAOaUQdATr3xjnTgzKMi8nGcspj0go0ziKIcCFnUXOFWnHmn7MGi2TGFClHGOXdZbzApWWVZllGehrr2h1kBSOXUPZnvzFKCY29p5FzP76iNoGJluUkpMF6sPUaZnN1DKNoyT_8VpegmUHwHyeYglES5iMFcPKV8hBtLqSQhsszGPjz219TiZqPTaX9prFcDpV7LFfel-MW7IPbr_uGm_qMHN6xUM4U_G8IGn8keLgmK7utFTUKhZdfWT6KX-nrsgbOeNell2xcZKjNzbu4BOGR9NEkmAIKziSQqjBjHc5ECvDMH_uK4DH5s4uARUu6XDwqjAzXcK6xZzbNehBEsp9o4CFFLtattovBI1LpXlnhqtAHpvDYQbZE5_5esUf_8WXRxYuN-7PXnQ1Ezb0TjAr7tUVgrdSHYqfuPLfMfdKipI2tokU2gRodQKXR-6cwvI4sPsFYaUU3j3TauKOx-ZWcvJMdctN1yYd5bAJv-sRLB4Q6pJliOahHy9JHI_Rr8vKH9jib_DV32xt-FJWE-c-YWOoEs_0q7Jd0xtz33H4ZzzgTcxhD_lonoVxGUZwPAWGyqfLIMfs7DMVbhq-e5WPYppFx2DtYT61_WCQlZdzg8utt-ieWUyl7zK99qf71Od9gKK-CInn-SCBEcblaKRrhjdCakpeGLf9ES44vfUt0ml9xpPJO6a_7y2bhG-ul6epbybXHPSMpufh_HmpMee_0tJIdVc3_D29jwfOCvxs7Ib1KTmRsmGUJuUMyVanx8ZlrE96fh_Jd4PQn3oH6M-bjrqKNExPmh7Bd0wfA3AY5aM03q9WP85Bn1Lrs6vLjwrOAMvl8dhUIQqreLbgI0liFsYma0S_qPXbRmE2L91VKEnjd1L-S7crNMny_5EpEA3tY37CzbCo3lP9x0yBsUP-J1GP4M-LehTORH0Y0-od6Ez10gf91_d6_qCYm8Ng5es-9KMepitZ0bySNU2WOUkh-KD7eKXaDGNf-y2uu_0O1xPWHSRVKx7FyP5hDwb1cxXNqzTTpIhjlJ1oth6bV2l7Ia1XBDdGqmH0g5pa6--YFyuB-U4z_YAF3lDX0xdScvvbCvfIjIw3r-K-PUDxUbxbE_Lk-014Yg3l7KBI9qSDZqf6-s_bNO01tL4T2ii34ynVG6lTAj-yv9Hp_oQVFeZOVHKUnbqsjbqeAyVzkZAiEh-M3ttzNO5Td_SbgMPUOF4wpQmu0jwDDVUW5StXwegP9jJ7X_a_2hBPul6HXQu4xYqSdWNUEF2NqmbZqpI-bFQQ3Yxm8djJD_d3z1dSGPqtT-579n6zfa0OSvV7uWGlbRNtKgdvZsMYQHlXyk9t6DZmYVddouXMIOEKpRk4pchnNH_ry1aw31v6xpcPtJZqd9lWlQf4W0ZCK9xysyaUU7e9dILZ75BMPH0Y83xY1MtuB2ddiYkhD5ypx8Y8YCY-QM_PYeGfiaVJU2xXiWe6Ydqo3Yn5Mu-3W4UCFK-hb3K5FJufx4NvMOLLoWEOzau00zTMq0mz6h5LrgR5UrKkWvfa_yQz479iJr9LcTw3pkMpc7ztSBNM0nxcO_4_I_zpGcEXlWEXiWje4wkbmSKLT0amK4TKLfYlz8Gi6x_3PNNqvl19-wG72iM6_mghJgRjGoMau3cXLkE4MCBAdpyMiTEMCcwyoA3unuolvR8O3gI4IxcRyaMcn9GLMF3GMUxhgs62FzAJiyrLixxFYUbgEuc0RhkOEcXLOK6WZ-wCQRTBEKEwjZcRWqCY5EtUoDyKsqpI0yCGtMaML9ybLFJtztwD94sUohCecVxQrvv3y9SFe35dtBsdxJAzbfSezTDD3ZtozqHJNXj9-IG6xZp_jN-9OwamLzi0in7fKwxnreIXn3_FwBn9rwAAAP__C_f2_w">