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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] -convert-to-spirv crashes
        </td>
    </tr>

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

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

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

<pre>
    git version: d09707070c7460d0887eae8f7022e816510d5eb1

system: `Ubuntu 18.04.6 LTS`

reproduce with: `mlir-opt  -convert-to-spirv  a.mlir`


a.mlir: 
``` 
func.func @signExtiConstantVector() -> vector<4xi48> {
  %vector = arith.constant dense<[1, 3, 5, 7]> : vector<4xi8>
  %ext = arith.extsi %vector : vector<4xi8> to vector<4xi48>
  return %ext : vector<4xi48>
}
``` 
stack trace:

``` 
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-to-spirv /data/szy/MLIR/seed/seed0/tmp.IpbOKrOrO4.mlir
 #0 0x000055b16a3e0048 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1188048)
 #1 0x000055b16a3ddb5e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1185b5e)
 #2 0x000055b16a3e09dd SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fdd0b638420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x000055b16d9e08f3 mlir::Type::getContext() const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x47888f3)
 #5 0x000055b16d94a023 mlir::VectorType::get(llvm::ArrayRef<long>, mlir::Type, llvm::ArrayRef<bool>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46f2023)
 #6 0x000055b16f252158 (anonymous namespace)::convertVectorType(mlir::spirv::TargetEnv const&, mlir::SPIRVConversionOptions const&, mlir::VectorType, std::optional<mlir::spirv::StorageClass>) SPIRVConversion.cpp:0:0
 #7 0x000055b16f251c70 std::_Function_handler<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&), std::enable_if<std::is_invocable_v<mlir::SPIRVTypeConverter::SPIRVTypeConverter(mlir::spirv::TargetEnvAttr, mlir::SPIRVConversionOptions const&)::$_5, mlir::VectorType, llvm::SmallVectorImpl<mlir::Type>&>, std::function<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>>::type mlir::TypeConverter::wrapCallback<mlir::VectorType, std::enable_if<std::is_invocable_v<mlir::SPIRVTypeConverter::SPIRVTypeConverter(mlir::spirv::TargetEnvAttr, mlir::SPIRVConversionOptions const&)::$_5, mlir::VectorType>, std::function<std::optional<llvm::LogicalResult> (mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>>::type mlir::TypeConverter::wrapCallback<mlir::VectorType, mlir::SPIRVTypeConverter::SPIRVTypeConverter(mlir::spirv::TargetEnvAttr, mlir::SPIRVConversionOptions const&)::$_5>(mlir::SPIRVTypeConverter::SPIRVTypeConverter(mlir::spirv::TargetEnvAttr, mlir::SPIRVConversionOptions const&)::$_5&&) const::'lambda'(mlir::VectorType, llvm::SmallVectorImpl<mlir::Type>&)>(mlir::SPIRVTypeConverter::SPIRVTypeConverter(mlir::spirv::TargetEnvAttr, mlir::SPIRVConversionOptions const&)::$_5&&) const::'lambda'(mlir::Type, llvm::SmallVectorImpl<mlir::Type>&)>::_M_invoke(std::_Any_data const&, mlir::Type&&, llvm::SmallVectorImpl<mlir::Type>&) SPIRVConversion.cpp:0:0
 #8 0x000055b16d875b8d mlir::TypeConverter::convertType(mlir::Type, llvm::SmallVectorImpl<mlir::Type>&) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x461db8d)
 #9 0x000055b16d877c47 mlir::TypeConverter::convertType(mlir::Type) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x461fc47)
#10 0x000055b16f254f33 (anonymous namespace)::FuncOpConversion::matchAndRewrite(mlir::func::FuncOp, mlir::func::FuncOpAdaptor, mlir::ConversionPatternRewriter&) const SPIRVConversion.cpp:0:0
#11 0x000055b16ce56781 mlir::OpConversionPattern<mlir::func::FuncOp>::matchAndRewrite(mlir::func::FuncOp, mlir::func::FuncOpGenericAdaptor<llvm::ArrayRef<mlir::ValueRange>>, mlir::ConversionPatternRewriter&) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3bfe781)
#12 0x000055b16ce560ba mlir::OpConversionPattern<mlir::func::FuncOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::ValueRange>, mlir::ConversionPatternRewriter&) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3bfe0ba)
#13 0x000055b16d87b704 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4623704)
#14 0x000055b170340851 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0>(long) PatternApplicator.cpp:0:0
#15 0x000055b17033d51b mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x70e551b)
#16 0x000055b16d87c7d3 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#17 0x000055b16d87b827 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4623827)
#18 0x000055b16d87c9ff mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46249ff)
#19 0x000055b16d882bbb mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x462abbb)
#20 0x000055b16ce53c8a (anonymous namespace)::ConvertToSPIRVPass::runOnOperation() ConvertToSPIRVPass.cpp:0:0
#21 0x000055b16d81c7a6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c47a6)
#22 0x000055b16d81d0d0 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+0x45c50d0)
#23 0x000055b16d81f6a2 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c76a2)
#24 0x000055b16d817f4a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#25 0x000055b16d817b9d 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
#26 0x000055b16d8c3d75 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+0x466bd75)
#27 0x000055b16d811b85 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+0x45b9b85)
#28 0x000055b16d811e2f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b9e2f)
#29 0x000055b16d81215e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45ba15e)
#30 0x000055b16a3c0b37 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1168b37)
#31 0x00007fdd0ac56083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#32 0x000055b16a3c06ae _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11686ae)
``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl1z2ywW_jXkhokHgb58kQvViXczm0wySfe99SBANlsZaQElcX_9jpBsfdhOmqZuu91939SJAR3O85wPDghqjFwqIS5A8AkEl2e0sqtCXzw_b0Jv6p2lBd9cLKWFT0IbWShAEsjRNEL1_yzyQ8RRHEeCijiLEMYi9sLAQzwQqQdQAlBiNsaKdf0cCNE_00rZCnrxBPmTEN58fgQhasZpUeqCV0zAZ2lX7fh1LvV5UVoIz1mhnoS257Y4N6XUTxDSSd29EwBQ0rbUz6Kk7nA_9ZesUmxSf0Dgoxrx1YuVs0IZS5X9SzBbaIBjgKfwHJAr-NS0kJn_Iv24bgHRJ4ASCAEOmk4IyCWkWtrVhLVyIBfKCEBmIPjkATyDpP4I6o8IBJdODEkGwmvZW7nixfaEihdr5GC6_SehLfZVdeK0sJVWndTk4DgQXY6JMpayL9BqygQgLa2DAfc3V8njFTRVupYWUphWS6hFWWhba7OytjT1g3gO8Hwp7apKJ6xYAzzP86ftr_NSF_8SzAI8l8ZUwgA8h1RxKBXLKy6gXQnINDUrmFL2xWkzASh5dMrxal02uqEJdP_d62Kp6RpSvazWQlnjXADPObUU4Ln5ugF4fntz_bCdX4tcUCP21UkrmfP6t1QAz3fut-99R6QbIXj7CwE8t-tycl2md__Qd_rOb7wT1aoRBNELQggFQeqFlAiE_Bg6ikgCSB01zR_3WirrcH92NsFxN0jT50VhrBZ0DXBYu5lUtvZh58o_DD3An9CL58Ux8usIaQF4QwCcp4E4BOChUo9yqWj-d6p4LrRp4-w0OgZpIDod8ZjkKedwoA3AcctZ02wmrKydC7l_jRTSSokyzlEaktjHCC4WWhhbaLHQtsWSyxTg-UscLkL_PJeqejlfqqrpKO1KC8onppigRlffx6jT1O9ryqcCxRmBbTIDJPm8KUXz11LYWaGseLEtjy75nIJNP4rjOCOdjsFQR58i3NexyaIDTQfemmhNNw8iA2SWF2pZZyA8G2PEM3jwibQocvfESRzHDzOMcA9q2Iea4QB7QVxPTFWhNuuiMlDRtTCli8hpo22bIno04LhD57JGC5TqpbBX6qmxXRu63dDH--uHv2ZOWr3k3pVWFsocGdyfbgaN5U1z4R6iOSCzgzo82kLTpZjl1JiW19G0BwIhGrHisQh1Uy7mlWL1rItVG1tkdkifzr43xVIymj8IU-XWrY59xvb94XFN87wBfL0uh9gav7ty_EwHVAhF01wsZNbXR5qFVE8Fc11PA0mOh1pcw4UVx9vfMnBirX6nbVtnAthfBK9Z-t2sNOG2IyBrjfULjUSu3E_dYTelGKWCEfvPmpYzmud1PTCQeSQA_kCr_29Y8Lc0SY04_i01qxvCXR2w7Ylyuk45BTgaKPDBFNJY_E8g4qNO79a7W5dMvtTrfLcIJmqzqGuTI8t1M3HYtn_H9N-wTMeDOi2OgjTmr4dmW7rsFS0foOmEdWno8TTmXbE2HeGNmB99BO9pdc-YHzW615soNCqp_IyQtwrNus66KzsXaFrX1LJVoviDeNbSDnHVS0X_2aFPjnsTTkt3HtIf1E13T60VWrXz6IG5X3fOGvBg28hEEEax15umj6udaOBje0i20fjj4P9NKKEl27LQX0l7G5JeUqV5JR6oWop2PfwO3k7gaiTNRBR7navhMfMopadm_q4UmroiBSdH93bHqPx9eEQp7Xgko3STRsh_TdH3s9T1_GSsfohJhPwOa_9YIkLER3HgwadC8p4lt3XoQjtrut7mbGLnIqwt-xbZ0KdaeElZ5pJRF20_lqvZcT3TosiHlXArYFhgXL0qZAv2Q0KOVOrfJrdXA6GmOnOHK3gK98g9kI2DoX0JD7x0n9L_2-cD9jlFnEZIBIGXdnEajnISi_ibZcTOUjdiSXP5dVsc5e3XbzTrW4n5UtJcMPtqURCNU2qMI3hg8sNl3EDR19WZHZLqIJ3oXBGTGPfKvXFpzqZZ9u1Ad93m2MHqEXQnPDjF_jTLOoCjWjzGadpPKLQs88091VbSvFfAvtfTmk3jkS3WXBdfxdbsrRM8Hh3dCZ0VKpPL0xFF07SLWIxG1RhhMX0rYluv-Fy4MvveHd3W7bpSd6rHm3svsD94P_CwNzSXxyIa9sjhwlKZb-3yubgrazm7yride5QHjdmz3HGbJormGyPNLVV0Kdyewx314xmslHszzU_4UssPmB_RsLMKHvHBEUfv5uNeliKXapxA66E7mK_mou8iaLjUGnOtjNXubWi9ldtbi_sDmpmbjlb3e6qFstcqK7Zxc7IcGbAAcdTZYFRfe1lI8Uj1LRkHPfBn5PWARSHFnc7-SOco8ykshc4KvU7Yfsref3O7O0EyK6oFX5R2uPV8LCrNxO1SA3J1JJXVqHbvBkcGv82lvivtLZVtnusXKrDXeyBJBGNw6bRf_w-Lou-ponbYKyX_XYk97LdiXejNpyrLmgDYjecio1VuF1zkworjz-z25cct8PZmpUfSt9ry5Hg67doy60EspbF6s-8crznAkT3Ez0TyimXecM9R7csIjwLYP2vOpU0Uv9cFE8Zsdf0lTvdfGBKvjhicDFst1bIuQ481n6iwClMeBV0qHu0lPC-Ng8Nx8KdF8WlWunSaxj164zG9AmdH6W0LE7aiTQmSvNdl3uLmZJgF7jY1eLSp8bAXiB-C-deAo972jhTAZHwRjaGURHBNpTrNDa0wTkm3Id7dInN3qygLQhQTuFjkMmULY6m2i1aVndRl3Xd-w64xetl9xRPiATxnpgJ4Ppns_nSdTs6EAZIQH9ef7dx4jDykAjazngp7SLfM765UnvELwqdkSs_EhRcRQjwU4PhsdcEySqjAscdwkPGAYxHEEQ2xSKM0nZL4TF5ghH0PI9_zUOzHE8oi7ImAkgjTgIQp8JFYU5lPaiUnhV6euduWF54Xhx4-y2kqcuMu_mLsXBFjEFye6QsHKq2WBvgol8aaToKVNneXhd0DweWBq5Hu4qYwZ5XOL77_Pmir5NMF_k8AAAD__-nz4D8">