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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`tosa-to-linalg-named` pass crashed: Assertion `name && value && "expected valid attribute name and value"' failed.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Test commit: https://github.com/llvm/llvm-project/commit/da0730b908a43e490430717beda8486598667ab8

Steps to reproduce:
```
mlir-opt test.mlir -pass-pipeline=builtin.module(func.func(tosa-to-linalg-named))
```
Test case:
```

func.func @test_avg_pool2d_q8(%arg0: tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>) -> tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>> {
    %0 = "tosa.avg_pool2d"(%arg0) {kernel = array<i64: 2, 2>, pad = array<i64: 0, 1, 0, 1>, stride = array<i64: 1, 1>} : (tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>) -> tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>
    return %0 : tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>
}
```
Crash trace:
```
mlir-opt: /home/ty/llvm-project/mlir/lib/IR/Attributes.cpp:45: mlir::NamedAttribute::NamedAttribute(mlir::StringAttr, mlir::Attribute): Assertion `name && value && "expected valid attribute name and value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/ty/llvm-project/build/bin/mlir-opt test.mlir -pass-pipeline=builtin.module(func.func(tosa-to-linalg-named))
 #0 0x00005649183d2f2a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ty/llvm-project/build/bin/mlir-opt+0xd63f2a)
 #1 0x00005649183d009c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f40259de980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f402468fe87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f40246917f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x00007f40246813fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
 #6 0x00007f4024681472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #7 0x000056491a382b4d mlir::NamedAttribute::NamedAttribute(mlir::StringAttr, mlir::Attribute) (/home/ty/llvm-project/build/bin/mlir-opt+0x2d13b4d)
 #8 0x00005649185b08aa mlir::arith::ConstantOp::build(mlir::OpBuilder&, mlir::OperationState&, mlir::TypedAttr) (/home/ty/llvm-project/build/bin/mlir-opt+0xf418aa)
 #9 0x00005649185b0c09 mlir::arith::ConstantOp mlir::OpBuilder::create<mlir::arith::ConstantOp, mlir::TypedAttr&>(mlir::Location, mlir::TypedAttr&) (/home/ty/llvm-project/build/bin/mlir-opt+0xf41c09)
#10 0x0000564919d4e9dc applyPad(mlir::Location, mlir::Value, llvm::ArrayRef<long>, mlir::TypedAttr, mlir::OpBuilder&) TosaToLinalgNamed.cpp:0:0
#11 0x0000564919d59881 (anonymous namespace)::AvgPool2dConverter::matchAndRewrite(mlir::tosa::AvgPool2dOp, mlir::PatternRewriter&) const TosaToLinalgNamed.cpp:0:0
#12 0x0000564919d4d9c8 mlir::detail::OpOrInterfaceRewritePatternBase<mlir::tosa::AvgPool2dOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/home/ty/llvm-project/build/bin/mlir-opt+0x26de9c8)
#13 0x000056491ac241e4 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>) (/home/ty/llvm-project/build/bin/mlir-opt+0x35b51e4)
#14 0x000056491a302f67 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#15 0x000056491a303bc8 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) DialectConversion.cpp:0:0
#16 0x000056491a30794f mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c9894f)
#17 0x0000564919d167bb (anonymous namespace)::TosaToLinalgNamed::runOnOperation() TosaToLinalgNamedPass.cpp:0:0
#18 0x000056491a27d3ce mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c0e3ce)
#19 0x000056491a27d70a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c0e70a)
#20 0x000056491a27daf2 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#21 0x000056491a27cb15 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c0db15)
#22 0x000056491a27d312 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c0e312)
#23 0x000056491a27e223 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.510) Pass.cpp:0:0
#24 0x000056491a27e8ad mlir::PassManager::run(mlir::Operation*) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c0f8ad)
#25 0x000056491a2707b0 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#26 0x000056491a270f55 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#27 0x000056491a271111 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#28 0x000056491a351290 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x2ce2290)
#29 0x000056491a26c6f9 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/ty/llvm-project/build/bin/mlir-opt+0x2bfd6f9)
#30 0x000056491a27143a mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/ty/llvm-project/build/bin/mlir-opt+0x2c0243a)
#31 0x00005649183959cd main (/home/ty/llvm-project/build/bin/mlir-opt+0xd269cd)
#32 0x00007f4024672c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#33 0x00005649183a866a _start (/home/ty/llvm-project/build/bin/mlir-opt+0xd3966a)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWk1z46jW_jVkQ8WFQJ-LLBynXW-_1blJJalZzMaFADnclkEDKB3Pr78Fsh1JtifOuLtn5tatSmwjPs55nvPBQRK1Vi6VEFcguQbJzQVt3bM2V9eC1r-K5nltLkrN11dPwjrI9GolHSBT-OxcYwGZAjwHeL6U7rktJ0yvAJ7X9cv267Ix-t-COYDnm6l4zinKCCoLlNOYiLhAMUFZlJWC0zzO06TI0zSjZQ7QDUDT7vPRicZCp6ERjdG8ZcKL7gakaPMXmqtamkvdOOiEdRPfgpcNtfaykY2opRKA3JStrJ1Uk5XmbS0AzqtWsYn_ADh32tJLpy9rqWi9vFR0JTjAhf87JK-jhdqjCnWfOwkQxMirtqAvy0WjdY354rcc4BzghJol8tw6oaw2gMyi1-w1ey1eAY5-a6lyk1bJSpsVIDOZAzKtCAZ4BtEERYB88n-4gJeAfDpjCQiy605nCCEEOEEQkBsIMPbMTN7UBhj31MaFn_hVGCXqMIEaQ9deShp7TEEKDirOYEP5oTHI90VBne5XN9o6I7k4NCHaDctuoL_g7fdXkvdGnBGuNWrL31k27dwouznoXjND7TN0hr4fEh1B82e9EgDP3Xo_Rv1If1WWAM8_PwA8nzpnZNk6YSesaQCZxolfJgwkU0Cm__LxsRt18BrO34Y_OiPV0vd5kG_Xe6MLL2BqrTBOagVBinwMQoBTgFP4Qut21wAYi9dGMCe475Ac0u06MEyiinczgrNmsKKyFnzS8XL_5dP08RO0bbmSDlJYtkufX7RxPtN8OMFJa1thAZ4HqVKxuuUCumcBWbBRSdnXYKfJNqdR9hXydtXsDIcmABX3Ri8NXUFqlu1KKGfft5tPaNx_S7Wx4g9NgRBggiB6RQihJI2LKCccV5jCQEywp13b7se9kcoFqE_BR3H-NsjQbwttnRF0FQw6g1K5kEl8Xvk4YICv0StPSYXpQNdopCtCBYOPcqlo_X9U8VoYgPON6O7y1ttR-N8thDcLZVWMcFJwUeQILhZGWKeNWBi30bwLoNc8XaSxZ7F9vVyqtuto3LMRlE-snqCgcISLHA30JX0xcZpXIs-godJ6x99hX9ayZJezX_7_26_lroknOAN4bgMKgOeTiW-tLReNd81WydfuwkvQRrW-GZaeMECmSTQEHA81KaKsiiAtdUB6miaOd2yEWUFIPhKSjOBGpKJwsaAhBSx8yC5Kejr2bt7uRyeyGIpMxyLjDJ9gO-atlgarERRneGC1rO9llOS4jPmPTZRnxQnmESljPoCQDwIlKVFOaU82NdI9dz9nWllHlbtruvZGUA_AXXPtr_nYSocQ7hphqM_tj456HKPup3XTkXIuwiqOcjrMBMUYIEPFewDhIUyhyYzwAMjsPYqO4UtD1dEj7YtmgZk_mHE-KQz1qllMokEqL3gsCs4gbZp6fU_5Cer90m2ws176n_o67UFUgMxqrZabQu4gotlBfjugT9rSJ_0lbEMhVvbTsgcQDQEkRZ5HniSqtFqvdGtDMWCbsP8UGw1flvehjJ1p9SKM29p0RR17nir-IL4ZOYpJvy-OZo-Ne0-dE0ZtZm9xMO8Kp6LBI3PwguU9CVw4KustX3fms3LCVJSJjcyNBtfhSDJ7T3lfYb4HexevAE9PR3tWbkq5KFg-8FIySK8Mx5GI91WZNk0tGXX6BHN-DFffvX2d5CcuTHDxUusaDpbeLNBR0dGyiYGji7xoyc9epB-qS8lo_SBsW7vT1j0vsZCkTCIRD2wWD7dEhKs0ey8wd1b5Ipa0lr9vA7PeNE80YRfWVmp12ElvJK0Fc2_DDgdjMkJASpafjGCUWljX3HXbQTHcS5lH8H3YgW4kXSptnWQDK58IPR1Bz4q46u-VfoOYt3X9ts6HTfNEzVK4vQpgbvTvQg3z2aNwfYc9L72wIi_iauCq2TDrRmlWlu8Zei-hb441rbpTPfj5wa3sntoDpwyvyqAKozjjhImjG8CTvmv8UlNOm13WM60aRby1e2Y4bqCpovXaSntLFV2KsEf7FOe_WxVuFvLvcVLDDAnS0bnDXoyxZ4h-GPv99pw79Ec_dAfpWE3658kYbiDWflbWmXCC1-bADtMf0EnuOja631MjlPusKr11--n34DtDtM83RmO-aYU_zHfP26d2rdjnVVMDnHc0bWIF4Kymq5JT4A9p-Y8Qcdfc33rCtsnOX9NhljdAqCZ-huBN_XM0vnE04pyVUfKdOT_XT3gZJQM_wXs5Kfq4n_xTclKEB9jJCLvAmPwvJw1y0iS0G6ObSRKFhwHH3T8e05lTPtJii-ug4wxpOdvcVU75wNzJSD-UlQg2wlTarKZsv3Dbv4tp3aYSsM_UCL5onPEH4d2MR90aJm6XBpBPvaKmb4vbL58fZlo58er27HRbS3PXuFsqfYVZyeWgMOr1HuY_HeOrkgQ2RjNh7XVbVeFu6EnwWiV_a8UevFux0ma9Xao3nouKtrVbcFGLcN_kyJzN05hTMffHbWrbB7GU1pn13sntKdx8vQ_BMj2JrmxEVxRFETx2zvozB7OfR-dxoxa7GwGM1nVJ2ddFpQZq93j6G7rHYbOfGDIHC5S_jVVwHu6g_VRi_0Cl9wNmeHwhSYQL1DOFbWrpporfjzLOX4HuHxikfzjirQz4PnWgwLhAg81xdD5LWVoVh-Psvy1LnEdlWfG0Gtx2J-OjVxQTepTKTTXHnmlXt02HjtA9LXoQ1fuAzy6YcEwGZ8jx49UiKRiHKyrVec9xcVqwQWU2fPwapxlmeQYXi1qWbGEdNW6xkXrSc0Jm2-0D0u5n6AzrhGeGJI4HiY2QIU6apymFneDzkJIiTen-C0YX_IrwghT0QlxFaY7jLC-K9OL5ipAsy_KIJSXlUVSmIktwlJWFQJQjzKoLeYURJijGKSJRStJJmZQoxnEcZzEitIpBjMSKynritZxos7wIby9cpZik2UVNS1Hb8D4Yxkp8g6ETYAySmwtzFZCV7dKCGNXSOvu2ipOuDi-S-foVJDcgRQdfJkgRbKi13ZsR4b7ZD37j46I19dWff6Uj8PKfAAAA__-zGPym">