<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108156>108156</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir][arith] -convert-arith-to-llvm crashes in BuiltinAttributes.cpp:1349: static DenseElementsAttr mlir::DenseIntOrFPElementsAttr::getRaw(ShapedType, ArrayRef<char>): Assertion `type.hasStaticShape() && "type must have static shape"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
axeabc
</td>
</tr>
</table>
<pre>
git version: 761bf333e378b52614c
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -convert-arith-to-llvm a.mlir`
a.mlir:
```
func.func @test_subi(%A : tensor<?x32xi32>, %B : tensor<?x32xi32>, %C : tensor<?x?xi32>) {
%0 = arith.subi %A, %B : tensor<?x32xi32>
%1 = arith.subi %C, %C : tensor<?x?xi32>
return
}
```
stack trace:
```
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/mlir/lib/IR/BuiltinAttributes.cpp:1349: static DenseElementsAttr mlir::DenseIntOrFPElementsAttr::getRaw(ShapedType, ArrayRef<char>): Assertion `type.hasStaticShape() && "type must have static shape"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt -convert-arith-to-llvm a.mlir
#0 0x00005603dd277128 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d7128)
#1 0x00005603dd274c3e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d4c3e)
#2 0x00005603dd277abd SignalHandler(int) Signals.cpp:0:0
#3 0x00007fc82ad2e420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007fc82a36b00b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007fc82a34a859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007fc82a34a729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007fc82a34a729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007fc82a35bfd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x00005603e045baba mlir::DenseIntOrFPElementsAttr::getRaw(mlir::ShapedType, llvm::ArrayRef<char>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42bbaba)
#10 0x00005603e045a8d5 mlir::DenseElementsAttr::get(mlir::ShapedType, llvm::ArrayRef<mlir::Attribute>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42ba8d5)
#11 0x00005603e044dc31 mlir::Builder::getZeroAttr(mlir::Type) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42adc31)
#12 0x00005603dd451078 mlir::arith::SubIOp::fold(mlir::arith::SubIOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x12b1078)
#13 0x00005603dd533bde llvm::LogicalResult mlir::Op<mlir::arith::SubIOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::Type>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::NOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::BytecodeOpInterface::Trait, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::InferIntRangeInterface::Trait, mlir::arith::ArithIntegerOverflowFlagsInterface::Trait, mlir::OpTrait::SameOperandsAndResultType, mlir::VectorUnrollOpInterface::Trait, mlir::OpTrait::Elementwise, mlir::OpTrait::Scalarizable, mlir::OpTrait::Vectorizable, mlir::OpTrait::Tensorizable, mlir::InferTypeOpInterface::Trait>::foldSingleResultHook<mlir::arith::SubIOp>(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1393bde)
#14 0x00005603dd532010 mlir::RegisteredOperationName::Model<mlir::arith::SubIOp>::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1392010)
#15 0x00005603e050c4fd mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x436c4fd)
#16 0x00005603e050c8a3 mlir::Operation::fold(llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x436c8a3)
#17 0x00005603e044e9ca mlir::OpBuilder::tryFold(mlir::Operation*, llvm::SmallVectorImpl<mlir::Value>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42ae9ca)
#18 0x00005603e03c87dc (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#19 0x00005603e03c7bb7 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4227bb7)
#20 0x00005603e03c8d7f mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4228d7f)
#21 0x00005603e03d096b mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x423096b)
#22 0x00005603df9d01de (anonymous namespace)::ArithToLLVMConversionPass::runOnOperation() ArithToLLVM.cpp:0:0
#23 0x00005603e03692d6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c92d6)
#24 0x00005603e0369c40 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c9c40)
#25 0x00005603e036c282 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41cc282)
#26 0x00005603e0364ab1 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#27 0x00005603e036470b llvm::LogicalResult llvm::function_ref<llvm::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&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#28 0x00005603e04113a5 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42713a5)
#29 0x00005603e035fb35 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41bfb35)
#30 0x00005603e035fddf mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41bfddf)
#31 0x00005603e036010e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c010e)
#32 0x00005603dd257d67 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10b7d67)
#33 0x00007fc82a34c083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#34 0x00005603dd2578ee _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10b78ee)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWk1T6zgW_TVmoyIlS_7KgkUIL9NUQUMB3YvZpGRJdjRPkT2SDOT9-inJTmKbEKCn0z3dU_XIi-Mr3XPOvbr6sIkxolScXwTxZRBfnZHGrip9QV45yelZXrHNRSkseObaiEoFeAbSJMwLjDHHaZbHKAkjGsCrAM7aT7Mxlq-dYZDAX_JG2QaE2QRGkwTcPD0GCexba17rijWUgxdhV12rtRT6vKotOKeVeubanhMt7OrcVudSPq8BmTiLUU_dj7i7dHf9P9BeF42iE_cBgghabuzSNLkIUBageAacY8uVqXSA5wFevGL0KjAK8LcAzUGA4suPTeZvTdzf1mYKgvSyxQKcOQQBvgKe2MRBcb_NPuNt30V4oIv5p9C0fWhuG606vdKrw8IZS-h3YDWhfC_uQctt2HwU0YIRSwK0MD82AVrc3lw_BGjhwneuueTE8O1lrat_cWoDtPABRAsp8gAtvP1lI6QVamatFnljuZnQug7wLMTR1LkxllhBwRVXhn-TfM2VNc4YbHMBz_y9a2Xv9OK-b9LeLbl9IC8Byh5XpObsaVNzJ-BMa7J54EWA53RFdBtA53BmDNdWVMrlqd3UfLIi5tGj8D34hJqCACUBSkCAkLMB68ZYsCLPfAvYtLYoQCkoiJCcTVoN72--zR6_AdPka2EBAXlTAs3rSltgK7CytjYOOFoEaFEKu2ryCa3WnZRvFRXGNNwEaAGIYkAoKhvGgV1xQDUxK5AT-t2HtnP_6IPNmnW9izWcBHB6r6tSkzUgumy8gr85xnkjJHP_C9VF_BMjvU3XAGEI4CuEEMYJxIyhNA1RBjx1H02zMe2Xey2U9WSefOKibG-kycuyMlZzsvZhmgOhbBu07HekFKBL-BpC5iC65NlxCEccIor5IQ4PjXoUpSLyJ6KY5NrscusUMB2KAUw0lprkDAwABSjrlGt_3g5O6P92HeGuo7SgGSIM8QhBsFxqbmyl-VLbjlE77F-zZJlE51Ko5vW8VE17o7YrzQmbmGoCW8RRhOAAbzRwg5McwhxoIgwHPfKlFDk9v6HXCL7uLtEEh05LzyJAi8nEXW0M47UbO40Sr-0Pzx6Natyl73pCAzyLQ1eR9kjiIZKIZPEUkLzyTD-HxLJWDd_KO8mck3TvJBk7SdEUlNwuW9xLw0s3UJfPRDafVkAo6_jLirC1KSlpXcfQlb5s7zs95Hup5NI1XLJqTYT671xOU5dEONr7zIY-47xgyScSh7qUSXzKYFywZJAy016KcxjFOcnJ12eOfYPhHLIf0gdnk1OM4wjljsOOpKs2cESSZCwekzzI7qvU9sa76fqkTB2RAdNwyDRiFIc9pm4twfie3z-5rjzhPs-W4YkgE4doAHlYZKM4hGnWg-wnwy4ATX59V7ffi8r5yI7Y_YMrrgWdMVJbv_77SsROFrQQ5Y7gQAE8UCDGOGf92fCmKgUl8oGbRtqeMk6K-TGh0Hxg_aSJsO2Fi_sDL0WlzBGrO8Vbp8dtXL6wzrAPyOeR09JdXK9r-QGgx4ZSbkylj2H6-a7mmihmAjxHzWe7v6uv1TPRgrhl28DscmM5rRh3Fpbrolvi41nbemA7rxQTbuFLpNw81pw2kliSy_dbDEDM5AvZmH47h_pAq1u-rvTmW1Fwaj-D61oVXF8r-0BUyT827yXKzH11LUqu7565LmT1spCkNB_3MqD2SNZ8G5iZ6pJhWyn3bX7l1Fb6F6UrKT9DbOCjK9AvwvBjSCiRRIsfPizvm7VIPjR78nvHQ2Zec8fwHR7bxHR16lGoUnZD6aeq-v7BsHW1J-sD4pq4rAvQ7MsTT9_8cU2kbIn74dJvdVcvKrkbxN_8puA09Q9PXXkb1L9oVP8QDGFPaleojOWas50UP5N1p_Ztxbj8WNBdLLz-f2t5nXoDeePBmiCGNCoYOCRAf2L9a8sQ4cSxHMiQjGXICP6CDP8zvDKCB7zS0ZKPTykZ8Bos-qzeLMZLp_eHwDHSv7pd1WnZIuLIDNhmA7aYZimjzjdRldqsq8YARdbc1P7EYzrid8NLIsWPrRayuzwqxmD6746A74m1XKsH_qKF5bpT4EoQyandm709C3AMpiMGaZ6nh_Kw7cduwXaHQwOsxxHND2a3Y3WiaCFHpR8tBMfRYmnxea672-bjgjQgeMItF3IUBhyHWy7M4DTJ-6utupabe6KtIHIfry-n3BPRJbeAVsrYN9Fd6OoH3wa_S4XHd633nc4rVYjyZFphJ8VAq8Fer5gyGDL-0ej1a9Sn6ubm19t-vpvuiFA36k71FPTng702BwchwsOgJVPEkp5EjFsi5G5BWN3VzuFuK9n5HQTRIxrH7_3IzhSRGyPMLVGkdAN2DvKq8nuYRvnHUeyEZ7JRSB3jQWyisSQ0gl-W5F7UXAo1LqnOdMf0aGn6TRr1GzlX18pY7Q_pK_2m16FBb8rfYr8nmit7rYpqO4BOVjJD6lQehCEehYGiDI3Qb_U4mId_RKUPqUM1gJ2MYEckD0HNdVHp9Yy-LeJvn0AYy9pbZkU0Z8vaDg9tHqtGU35b6gB_e6eyOWLzSln-at-E_VYKfVfbWyK6stfrYwp6dw8XjHTML4X5u2c0-9-LRnnyS-3nq_caBCjb0W-U-HfD39BvDwUum6JoR8LOnvGCNNIuGZfcrcffa9OdavWXd-MgTHdbJUqkzAn9vizUYJrt6fTZcJ6cT-8gt12BtRtGvXmbH8dyoDUJULSE7RZcVqr8Y5kciczHGTpcGUdhiEn_kNvUUtiZYve6otyYLdw_Je_-gqPiqMVgy2S1UKVbnr7384lWW6kL-KAmj3YacZHj-PBo-LuN5dPMerkTsK8whmOFGSveVbhbqvjHX252Gu-1P0ycj-Q5GW3GBlsePNryJDCE_Heh_afwow7-gN_ouX-csiQF3RPdE7x4kLv-BwDw6OkyhRkGy6UUOV0aS7RdfuX5MjXN9ol--9Xf9P34J804Qu5z7z4a8884B63jUymQ8V4Idi9VnbELzKZ4Ss74RZiiBEYQJ-nZ6iINQximPE9QDHk8TRALpywmOKaYxiniZ-ICQRTBaRjCFE9ROikQJDFKeIwgjinBQQT5mgg5cTgnlS7P_ItCFyHMwjg5kyTn0vg3AhFqX8pCQXx1pi88r7wpTRBBKYw1-x6ssNK_RegbxFdBfNmeRsdX773d499B4gYIBf6PXvQ6a7S8-O1vcnUxer5A_wkAAP__ztPZ_Q">