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

    <tr>
        <th>Summary</th>
        <td>
            [mlir][vector] -convert-vector-to-scf crashes in BuiltinAttributes.cpp:964: static DenseElementsAttr mlir::DenseElementsAttr::get(ShapedType, ArrayRef<Attribute>): Assertion `floatAttr.getType() == eltType && "expected float attribute type to equal element type"' 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: 8168088f0a9015b

system: `Ubuntu 18.04.6 LTS`

reproduce with: `mlir-opt -convert-vector-to-scf a.mlir`

a.mlir:
``` 
module {
  func.func @fold_vector_transfer_read_with_rank_reduced_extension(%arg1: memref<?x?x?xf32, strided<[?,?,?], offset:?>>, %arg2: index, %arg3: index, %arg4: index, %arg5: index, %arg6: index, %arg7: index) -> vector<4xf64> {
    %cst = arith.constant 0.000000e+00 : f32
    %subview = memref.subview %arg1[0, %arg2, %arg3] [1, %arg4, %arg5] [1, 1, 1] : memref<?x?x?xf32, strided<[?,?,?], offset:?>> to memref<?x?xf32, strided<[?,?], offset:?>>
    %0 = vector.transfer_read %subview[%arg6, %arg7], %cst {in_bounds = [true]} : memref<?x?xf32, strided<[?,?], offset:?>>, vector<4xf64>
    return %0 : vector<4xf64>
  }
}
``` 
stack trace:

``` 
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/mlir/lib/IR/BuiltinAttributes.cpp:964: static DenseElementsAttr mlir::DenseElementsAttr::get(ShapedType, ArrayRef<Attribute>): Assertion `floatAttr.getType() == eltType && "expected float attribute type to equal element type"' 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-vector-to-scf a.mlir
 #0 0x000055abe62ee2c8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10dc2c8)
 #1 0x000055abe62ebdde llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d9dde)
 #2 0x000055abe62eec5d SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fd65c7b6420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007fd65bdf300b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007fd65bdd2859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007fd65bdd2729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
 #7 0x00007fd65bdd2729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
 #8 0x00007fd65bde3fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #9 0x000055abe9506d02 mlir::DenseElementsAttr::get(mlir::ShapedType, llvm::ArrayRef<mlir::Attribute>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42f4d02)
#10 0x000055abe889851d mlir::vector::SplatOp::fold(mlir::vector::SplatOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x368651d)
#11 0x000055abe891b981 llvm::LogicalResult mlir::Op<mlir::vector::SplatOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::VectorType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::OneOperand, mlir::OpTrait::OpInvariants, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait>::foldSingleResultHook<mlir::vector::SplatOp>(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3709981)
#12 0x000055abe891af60 mlir::RegisteredOperationName::Model<mlir::vector::SplatOp>::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3708f60)
#13 0x000055abe95b844d mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x43a644d)
#14 0x000055abe95b87f3 mlir::Operation::fold(llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x43a67f3)
#15 0x000055abe948fcd4 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() GreedyPatternRewriteDriver.cpp:0:0
#16 0x000055abe948ce8f mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x427ae8f)
#17 0x000055abe8e80c2b (anonymous namespace)::ConvertVectorToSCFPass::runOnOperation() VectorToSCF.cpp:0:0
#18 0x000055abe9415156 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4203156)
#19 0x000055abe9415ac0 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+0x4203ac0)
#20 0x000055abe9418102 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4206102)
#21 0x000055abe9410931 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#22 0x000055abe941058b 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
#23 0x000055abe94bcf25 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+0x42aaf25)
#24 0x000055abe940b9b5 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+0x41f99b5)
#25 0x000055abe940bc5f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41f9c5f)
#26 0x000055abe940bf8e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41f9f8e)
#27 0x000055abe62cef07 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10bcf07)
#28 0x00007fd65bdd4083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#29 0x000055abe62cea8e _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10bca8e)
``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltv2zj2_zTKCxGDoi6WHvLgOPFMgfbfoOl_F9gXgSKPHG5pUkNSaTyffkFKtiXHTtvZ8c7OYIvEtajDc_mdCw_JUGvFWgHcRNltlN1d0c49aXNDX4DW7KrWfHuzFg49g7FCqyhZoCLOC1wUDaYljrM6wncRXvSfdmsdbDxRlOP_rzvlOhQXM5zOcvT-82OU4zG1gdZo3jFAX4V7GmZtpDDXunXommn1DMZdPwNz2lw7fW1Zg-jMUxxxGgaT4dG_DT-of95o3klA0fy2f0ao6RSb-Q8UpbjRkle9lMoZqmwDpjJAeeX1qgxVXyoDXlFewYsDFZAgRUQyataxV3wDGwNNlCyjZPWy-20SEpElss4IDty_zG6jZBWR5eEzu_MkumksOK9_soqSe_9DlqjnTzx_oTi8HMaSE2PpibHsxFh-Ymw-GivRdZTcox6PKFmmL02e-pERfMjPY9ahKLlD1Aj3NGNaWUeVQ3iGwz-IyC3GyHP2QIxn2q5-FvA1zO6Rm-2HBkyzWzyGYGR5doei7DYeGz6yd_R2-PAjl_AQcvo107cZnnX2GBwcYOnhn03CcQSdZzt4c-TEnv_ONfNboapad4rbwDLKbp3pwFPNz2DyG9Uny9fhcrDJgOuM2pm2OE8aze-G_N1_OUpk6yj7gpyhDA7JfjrlhzISqgpZcepoRFb2121EVh_ev_sUkZWUz5trAxKohd1ja_Q_gbmIrEJBISsp6oisAv1tJ6QTauGcEXXnwM5Y20bJosxD6llHnWDoDpSFewkbUM56WrQrTcni1bt-eA0uIsXjE22Bf9624PFcGEO3n4Jz9gID1KWXtbAWjBNa-YrZSE2dJ5qtwfXzC5_GUXLn3Q4yDKKI5BHJUUQIvLTAHHAUZiK644-cp3MawS8dlQh6RcNoREhE5qihQgKf9RA_vL9fPN4j29Ub4RBFdbdGBlptnOfx5FxrvX1kFZHVWrinrp4xvRmQfg24sLYDG5EVooojoZjsOCD3BIgZap9QTdmX4PlB_GOIBd5t2n0o4BlCD0avDd0gatZdwPk3R0DdCcn9_0IN8fAd61IfyhFJMMIvvgxmGa0hJwCEFShYHnxut7b_8mCEcsGWzyGsSXEgMvRrpa0zQDfBe0sklAuu9R7-3UzyhfolxpwR5gPnYEN8ZEPNOZyy4VOnHsVaUfkzVVyCsbsIvIiaJecwUZMcQ80yjiYKRaQYkOuHd6mLw--eUTIwmjc8z9i8zlOCUVUZsE4bqIwbLOqLwkuRV3l6LYXqXq7XqutftO7J1-qZ1TPca5ymBE_0Tcdiat4kGNfIUGF9ku6NX0tRs-v37B3BL_tHMktij2WwIiKr2cw_bS2H1qdOp8RLP_ActFGdfwysZyxKFplvVuKDJtlUE06KrES01sHS79PE8R6NMCsIKbyQ-UFIfixkTkq0Blf1elcW1j5Rq2cqu-9GQCjn7Zea8o1dM9qLzrAvj8VB9vyU7ErJyk-suN5Qof49keXcB1GSHmQWU5mQNDz_jsBhPmTyEDKJnzIJmXIc4mWGc47J9y4sB7LpEnNI5NFicyA-WnYukcwpaVKOyd5SX3ImdbMoyiKL-cjSXfMQzGkldR_b_sE38RNjT1D-BAqMYAtO274D-REILoZCkhd5FvMJCpPKW5RxXRbxyGHv9VowKj-B7aQboePBWL4NFllO6D8bKvpmbvEPMPoTrIVW9g2qjwp6sW_T-CDjA-FYpb8FlUIIekz90LtNK7-h1mPHGFirzTc0-9iCoYq_RdS-U8_UCOo7gwnZUisufE9Fpdw-tsA6SR2tJfSvex7nGS_kV7q143nerhOzPsBGm-190wBzXhsHphn62Z2UHTI-ph-FWssB8p-1_vJNB_s4LcZKgqEubFgXP5z1Y_LHDZWyd1_w2HjWx3al5d7d96FZuUyuzHFZFvEkV8hRrtAmxyO8fUhbBwb4Hor_o5sB7w-ag_weSPf-CD74SwNcNDmeAJxMF5-6SFOOTgEwLsR_bhjShOZpOq3J6TEM8yb5ARj-a-yaN8nErmxiV1o0jKdeNlVabTe6s0jRDdg27E7KXuGfDADfPlDnwKhP8NUIB3dGPMNgUGu0L9h_1-aLFNYN-4Hzs173416z_EgzBkUzQpy2rdxxswvFPYZBhJDbSYr2q9qwhToMr4z-FXZ6DHwewaFwlPWKuld-oF5q1Yi1J6i1liHzL9QhzSkUzcRf80m9gwIzUn_LX8t-zzqsvvpxuXqgdti9mU59VKMqFlw1ojztm2LqmziLs3yEFgdHhdyvk_pj6wXuO69B7sRLQaO-hp6vrqMKoqjcWmE_UEXXfou388USdSqcafMLbpdTgpM4yyeOKY8hoQz_MCQPogUpFBytMZ50b2n-u2M0nuRFvVPWmXB-os0rrlOCUc3b6f5ADSj3TjV6l0uXyw-cUDZZrgg-ckMRT_ZKYyRPxuEUzkupncfTjQ-Jj9TGZRKjFkyjzWbBXN-Wv3k4ZB0fDmaeqAFetW66x3nUnWHwYW2i5P5MkfOGLbVy8OJeuf2DFOZj6z5QofryN-JRotHbkwWDkGP7sqI-u6U5jDedCsZX_Un1uQkRKfbmd0r80sEr8_vG-7Zrmj4T9vQcGtpJV3GQ4BuSc3P2h93nnVDue0VGpawp-1I1arLUj3D6Xnde3J7RQYKgEpjre2azfR0fb8VATxKRtML9LkRqtf7PWvKGZ74dodM-N61ZQ7KR7baVwi0Uf-h7m526f0jc_Qmz4k2KyQbAGaHWfsNwbvhCNZnShmSTmjxt-VNcl3V2Ohv-arl8EYTjpizrKcLZMcIsa84iPLQq7In2TcniRwPnW_BczGyWTXp4kh-b3RTwu5j9B9nXFDCxbz69kmHQ4DkaDtsvcCdUswbPJwocHcLzFBcJqiopalZZR42rfuTon9lud9nSfw0vA59wCZCkxH8exJfH9tMCUC_4UgjQsQv2t-FX_CbhZVLSK7iJ5ySPk4Lg8urpJmZFOY9jxpKCJPU8qaEu0mLOS0ziNI7JlbghmKS4jEmMM4zLWR2XDEPS5HyeJXkTRymGDRVy5vWcabO-Cle4NzEukhxfSVqDtOHPigjpb9NJlN1dmZtgV92tbZRiKayzBw5OOBn-FClMyO6i7HY4kMvuzt28huthsEgo9L8r-t0V_VVn5M1vv4MffPh8Q_4VAAD__ylds-g">