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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] `getMemorySpaceAsInt()` crashed with assertion failure.
        </td>
    </tr>

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

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

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

<pre>
    MLIR built at commit  b4c54b20
Reproduced with:  
`mlir-opt --affine-data-copy-generate="fast-mem-capacity=1 fast-mem-space=1 min-dma-transfer=0 skip-non-unit-stride-loops slow-mem-space=8 tag-mem-space=1" temp.mlir`

temp.mlir:
``` milr 
module {
  func.func private @func1(%arg0: tensor<9x31xi1>, %arg1: memref<18x9xi16, #spirv.storage_class<StorageBuffer>>, %arg2: memref<18x9xf16, #spirv.storage_class<StorageBuffer>>) {
    %cst = arith.constant dense<5.875200e+04> : vector<1xf16>
    %c0 = arith.constant 0 : index
    %c6 = arith.constant 6 : index 
    %6 = tensor.empty(%c6) : tensor<?x9xi64>
    %alloc_20 = memref.alloc(%c6, %c6) : memref<?x?x9xi64, #spirv.storage_class<StorageBuffer>>
    %15 = vector.matrix_multiply %cst, %cst {lhs_columns = 1 : i32, lhs_rows = 1 : i32, rhs_columns = 1 : i32} : (vector<1xf16>, vector<1xf16>) -> vector<1xf16>
 %19 = vector.flat_transpose %15 {columns = 1 : i32, rows = 1 : i32} : vector<1xf16> -> vector<1xf16>
    %extracted = tensor.extract %6[%c0, %c0] : tensor<?x9xi64>
    %23 = vector.matrix_multiply %15, %19 {lhs_columns = 1 : i32, lhs_rows = 1 : i32, rhs_columns = 1 : i32} : (vector<1xf16>, vector<1xf16>) -> vector<1xf16>
    affine.store %extracted, %alloc_20[%c0, %c0, %c0] : memref<?x?x9xi64, #spirv.storage_class<StorageBuffer>>
    %alloc_33 = memref.alloc() : memref<9x31xi32, #spirv.storage_class<StorageBuffer>>
    return
 }
}
```
 
trace:
```console
Assertion failed: (llvm::isa<IntegerAttr>(memorySpace) && "Using `getMemorySpaceInteger` with non-Integer attribute"), function getMemorySpaceAsInt, file BuiltinTypes.cpp, line 517.
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 "--affine-data-copy-generate=fast-mem-capacity=1 fast-mem-space=1 min-dma-transfer=0 skip-non-unit-stride-loops slow-mem-space=8 tag-mem-space=1" temp.mlir
 #0 0x0000000104590548 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/workspace/bin/mlir-opt+0x1002f8548)
 #1 0x000000010458e7e4 llvm::sys::RunSignalHandlers() (/workspace/bin/mlir-opt+0x1002f67e4)
 #2 0x0000000104590bf4 SignalHandler(int) (/workspace/bin/mlir-opt+0x1002f8bf4)
 #3 0x00000001a46cd4c4 (/usr/lib/system/libsystem_platform.dylib+0x1803414c4)
 #4 0x00000001a46b5ee0 (/usr/lib/system/libsystem_pthread.dylib+0x180329ee0)
 #5 0x00000001a45f0340 (/usr/lib/system/libsystem_c.dylib+0x180264340)
 #6 0x00000001a45ef754 (/usr/lib/system/libsystem_c.dylib+0x180263754)
 #7 0x0000000108b948ec mlir::UnrankedMemRefType::getMemorySpaceAsInt() const (.cold.1) (/workspace/bin/mlir-opt+0x1048fc8ec)
 #8 0x0000000106d0f8cc mlir::UnrankedMemRefType::getMemorySpaceAsInt() const (/workspace/bin/mlir-opt+0x102a778cc)
 #9 0x000000010468b628 void llvm::function_ref<void (mlir::Operation*)>::callback_fn<mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::__1::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&)::$_4>(long, mlir::Operation*) (/workspace/bin/mlir-opt+0x1003f3628)
#10 0x0000000104683cc8 mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::__1::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&) (/workspace/bin/mlir-opt+0x1003ebcc8)
#11 0x00000001046486b0 (anonymous namespace)::AffineDataCopyGeneration::runOnBlock(mlir::Block*, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&) (/workspace/bin/mlir-opt+0x1003b06b0)
#12 0x00000001046476c8 (anonymous namespace)::AffineDataCopyGeneration::runOnOperation() (/workspace/bin/mlir-opt+0x1003af6c8)
#13 0x0000000106c19e34 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/bin/mlir-opt+0x102981e34)
#14 0x0000000106c1a524 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/bin/mlir-opt+0x102982524)
#15 0x0000000106c1b5d8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/workspace/bin/mlir-opt+0x1029835d8)
#16 0x0000000106c19f90 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/bin/mlir-opt+0x102981f90)
#17 0x0000000106c1a524 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/bin/mlir-opt+0x102982524)
#18 0x0000000106c1c3bc mlir::PassManager::run(mlir::Operation*) (/workspace/bin/mlir-opt+0x1029843bc)
#19 0x0000000106c14808 performActions(llvm::raw_ostream&, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) (/workspace/bin/mlir-opt+0x10297c808)
#20 0x0000000106c13d30 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>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_1>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) (/workspace/bin/mlir-opt+0x10297bd30)
#21 0x0000000106c92be0 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) (/workspace/bin/mlir-opt+0x1029fabe0)
#22 0x0000000106c0e6e4 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/workspace/bin/mlir-opt+0x1029766e4)
#23 0x0000000106c0eb54 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/workspace/bin/mlir-opt+0x102976b54)
#24 0x000000010429b58c main (/workspace/bin/mlir-opt+0x10000358c)
#25 0x000000010f905088 

``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl9v2zgS_zTMC2GDIiVZesiDYyd3ARo0SHbv1aCokcMrRepIqo2__YGSHZu2042L3UNv0aKIZZKaP7_5cWZoiTsn1xrgGmU3KFte8d6_GHu9MEqZzljfO3JVmXpz_fDp_glXvVQec4-FaVvpMa5SkaUVJYgsEZk_QWdN3Quo8TfpXxCbYzzOoJy0StqJ6TyeTHjTSA2Tmns-EabbTNagwXIPiC0RpQ13ftJCOxG840L6DWLLBL-Nuo4LGIZaqSd1yyfecu0asIgtCXZfZDfRRk96Lf3EeStrmChjOoedMt8iEQX2fB0LRZRiD203DfaifOvZ-Hc_zuZvfo3_cSuV3TrbmrpXgNHsZvyOcdNrMQ1_cGflV-4Bo5SE7wmiBaIZt2sS0PKgnbGILcpXlrzKBLFbRBd4XJGEFS20FhrEFknxWr7KJB_nmeuk_Tp13li-hpVQ3DnEFs_j95u-GdC5jeTRU3nNj8grDz3FQbhwHiO2xNxK_zIVRjvPtcc1aAeILbJpMcsoIYDoDUkRu8XBkq8g_OB7MpjBbmOR5JxEMtwpdQ2v8er83Op8vxpHy8fVI_hTaDu_GcMi8sG7w8Agdhdwz9NjA7lSRqzoaOaI6nQY24ta4EjmG_RB5l7upfgfGpFkg_oRymnLvZWvq7ZXXnZqs43Mzo4Qo9mNenErYVTfajfcmowYMRqWhUlrvp2Zse_eNlsOl4gWpwGlizNRpiWeBA68F__gVnnoVqO4Xw1bvjMOdm7Pbt5144wLWytPdH7flBFkePWWCw91xJpxcGBTSKWBsTukCcqWH2QRZX8QwCTbSk3K_4_wYYzHdD-QGSIAd7lou3VOcTsG8C_YMqNyxs7v26OdOqblEcMf02jB91bvqD1bbsvI28WunuxWjHXHDsXpuOaExGYUjKNz58B6aTRuuFRQb6Oo1Nc23Mnm0nHEFvfawxrs3PvBNFq00Bq7eR7KX3CX5ojmGFH6u5N6jVFO1uAf9ou2AkLJCzUeh0q7HcPceyur3gOiFNEyoBSK3GBVLGXu7vWQiRqpAN-EtkLq3zYduKnouoG8UgPOktl0dO_x0-38-Ra7vgp9B8dVv8YWQoeCvcEv3ncuuEnvEL1bS__SV1NhWkTvBgDGj0lnzb9BeETvpHM9OETvMNc1llqovgbsXwALy90Lrrj4MqC-Vf_sufiC677t3sJApoiUj9asLW8xt-u-Be3dQJddp4Mo_X6z8xN1Ortkywgmr2T8l5A0K0mWFnhPI7dx48WjldoPuPw20POQa5Z_WxnnLfB2INQCyxDuQK8C0btvxn4ZzaB3ldSI3u0gCx3Ba0IIbYosDftvb1cS21XADNJzdj31-lmuNVf_5LpWYN1uI39YdT6DNFJNjyGpmhRHShAtLvewamI17EANT3NRpyLdyuudDSSWFaJ3buM8tOPX8XrVKe4bY9tpvRnWBBUFYWmSilhFGquoMgDyQRX-xQKvjzTQEoBEGrJIQ9YQln5Qg4hl0zxlaSw7j2VDM8s-CNCJbDbLYmRmhzEuqjItQOBdr8_mv2vL9ReoH6B9giZkqnH8bFob-Da0ncG6qTCqniYXkCMtGlGAiOwrDu3La9IU4k-y7yMWUT6bFSK2qIx2RV5UOS3wVyPrg125S_-rsX4Os6HovNn9uQu5UBqN6DxID-UyjAuuVEjCq0YjttivH7Pp4fWSe74w3eYfu7QaFT0lnV9JH2aG7uR4qgbPpRpHtKlhZbpgjYuUHhi5wN72MFQurtxwEZzatkdvY-PFOPhzWXMeyvlwHWD8PGoc6bFN3s7X47LVKhkvRru4igz7F1f9qdPLcOp7Bv-eD_Mzyx94d68b891bdo4GfflAnfnQAaSrdOxslNHr2OMjsn04V7OG5XRfjUIxIkfkZ0IU72D7i6a_aLqn6cdJB5UQMeniFihPi7waaivXRm9a0zuseQtbseUhZEfsC-aNjVqvP-sbZcSXKCtvR875_FNBVJG8IhFE9AiiWS6KPwGiA5MvaiYZb_KjILKokIukBJYe0P1wb33ufjOfu0fu3Lzm3bAXtxZF0QoLtlC-D_J-Zq652jjpHrjm4SRHF7gyRoXPXg-_BtcXtuu0LBJgaeRmeuQmz-jlbj7KDsJB8KhlCEvfrM__dL8Pbwqq7rXzdjjeGXsiNV5wwJud7Y_cgvZhE-yS1SW1h5YFzWgMbXYEbZXVxcXQHnB67jZa3LedQrQYEbnEPJbVMcHzY4I3JfkbELwp40wz-0Xwv4rgxRG0glXiyKKdj2f58oN9Hi2LlFUiMqU8MiUtSIE7sOG0PRdj1_P9Xz5OuxL3wi3Uq87HvdWz6a2Ah7VF7Dbqa_aOPXy6f1oY7eHVn8TpQUn7ufMPXOqF0Y1cH8i4AIKZKEi0nyk5goDV7HA_fzJrKbh6Atcr__7R770bEC1OEeq1_E8PJwiNJ9ntD6tnoa2h4b0KHaoCD-_f_PYo7P3I_fFZ9ADxiznwv_Nwb-9ScgXCP8FaOm83p-z6HoP2x6skPl79pNG7gPFVzaLUTpOY8SWt4JDxrlPSz3X9aI0A53Ye_SQ8_lvsu--u2Je1i7uVhlcQx5rGsSaQQ3p-T_z99_gFeybPIarZlB3jWGXv47jtQsQLH_uNo5Pjs7dSr5-g-WPfLrK5ymKbozNKSssqKwRuudQfPt8RwrIi6hho1J03JclIUeDDt0j274xc1desLlnJr-A6yUtSJDRPk6uXa0FmIGqe1axqSJmkKWNNVUOapWXFszy9kteUUEZmLEnShLB8muQlp0DKumZpKbIUpQRaLtU0oDo1dn01PPK6zlM6S68Ur0C54Z0fSjV8w8MkohRlyyt7PTwsq_q1QylR0nm3l-KlV8PLQkNYsuXpA8KD35iDj8PztO0LQZhHDyl7C9Or3qrrH398N7jz3wAAAP__-GcbUg">