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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Tensor Canonicalizer crashed with assertion failure succeeded(ConcreteT::verify(getDefaultDiagnosticEmitFn(ctx), args...))
        </td>
    </tr>

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

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

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

<pre>
    
Reproduced with:  
`mlir-opt --canonicalize temp.mlir`

temp.mlir:
```mlir 
#map16 = affine_map<(d0) -> ( d0 - 128, d0 * 32)>
module { 
  %cst = arith.constant 0 : i32 
  %c1 = arith.constant 1 : index 
  %139 = affine.min #map16(%c1)
  %tensor = tensor.generate %139 {
  ^bb0(%arg0: index, %arg1: index):
    tensor.yield %cst : i32
  } : tensor<?x8xi32> 
  %expanded_1201 = tensor.expand_shape %tensor [[0], [1, 2]] : tensor<?x8xi32> into tensor<?x8x1xi32>
}

``` 

The `mlir-opt` first reports an error " invalid tensor dimension size", then crashed with assertion failure, as shown below:

trace:
```console 
<unknown>:0: error: invalid tensor dimension size
Assertion failed: (succeeded(ConcreteT::verify(getDefaultDiagnosticEmitFn(ctx), args...))), function get, file StorageUniquerSupport.h, line 153.
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 --canonicalize temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt 0x000000010516eb40 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 72
1  mlir-opt                 0x000000010516f05c PrintStackTraceSignalHandler(void*) + 28
2  mlir-opt 0x000000010516d0e0 llvm::sys::RunSignalHandlers() + 148
3  mlir-opt 0x0000000105170cc8 SignalHandler(int) + 252
4 libsystem_platform.dylib 0x00000001b072d4c4 _sigtramp + 56
5 libsystem_pthread.dylib  0x00000001b0715ee0 pthread_kill + 288
6 libsystem_c.dylib        0x00000001b0650340 abort + 168
7 libsystem_c.dylib        0x00000001b064f754 err + 0
8  mlir-opt 0x0000000109455944 mlir::RankedTensorType mlir::detail::StorageUserBase<mlir::RankedTensorType, mlir::TensorType, mlir::detail::RankedTensorTypeStorage, mlir::detail::TypeUniquer, mlir::SubElementTypeInterface::Trait, mlir::ShapedType::Trait>::get<llvm::ArrayRef<long long>, mlir::Type, mlir::Attribute>(mlir::MLIRContext*, llvm::ArrayRef<long long>, mlir::Type, mlir::Attribute) + 176
9  mlir-opt                 0x0000000109455880 mlir::RankedTensorType::get(llvm::ArrayRef<long long>, mlir::Type, mlir::Attribute) + 80
10 mlir-opt                 0x0000000107762aec (anonymous namespace)::StaticTensorGenerate::matchAndRewrite(mlir::tensor::GenerateOp, mlir::PatternRewriter&) const + 708
11 mlir-opt 0x00000001077627b8 mlir::detail::OpOrInterfaceRewritePatternBase<mlir::tensor::GenerateOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const + 72
12 mlir-opt 0x0000000109f2a5d8 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&)>) + 1356
13 mlir-opt                 0x0000000109271d18 (anonymous namespace)::GreedyPatternRewriteDriver::simplify(llvm::MutableArrayRef<mlir::Region>) + 1644
14 mlir-opt                 0x0000000109271558 mlir::applyPatternsAndFoldGreedily(llvm::MutableArrayRef<mlir::Region>, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig) + 236
15 mlir-opt                 0x000000010587eb68 mlir::applyPatternsAndFoldGreedily(mlir::Operation*, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig) + 80
16 mlir-opt                 0x000000010914c6d4 (anonymous namespace)::Canonicalizer::runOnOperation() + 152
17 mlir-opt 0x00000001090d171c mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 512
18 mlir-opt                 0x00000001090d1e20 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 364
19 mlir-opt                 0x00000001090d4140 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) + 108
20 mlir-opt                 0x00000001090d3ef0 mlir::PassManager::run(mlir::Operation*) + 864
21 mlir-opt 0x00000001090b76e4 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 560
22 mlir-opt                 0x00000001090b7234 processBuffer(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, bool, bool, bool, bool, bool, bool, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, llvm::ThreadPool*) + 524
23 mlir-opt 0x00000001090b6fe0 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0::operator()(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const + 204
24 mlir-opt                 0x00000001090b6ef4 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>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 80
25 mlir-opt                 0x00000001092cd1bc llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const + 96
26 mlir-opt                 0x00000001092ccca0 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) + 128
27 mlir-opt 0x00000001090b4934 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) + 320
28 mlir-opt                 0x00000001090b4b3c mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::PassPipelineCLParser const&, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool, bool) + 296
29 mlir-opt                 0x00000001090b5700 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 2912
30 mlir-opt                 0x0000000104990d48 main + 148
31 dyld                     0x00000001238ed088 start + 516
zsh: abort mlir-opt --canonicalize temp.mlir

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl9v2zgS_zTKC1GDoiRLesiD4yS7BRIkSHIH3L0YlDiyeaVIHUmlcT_9gZRky3acuL0U212sEcSyOBzOn98MZyhRY_hSApwHyUWQXJ7R1q6UPp8rIVSjtG0NPisUW58H-DLAswdotGJtCQx95XYVRDOEupFgimvB9SfVWPTpU0mlkrykgn8DZKFuJm4wmOKe2P_f3o9mGybdn7s7MCZRTZtwioLoEtGq4hIWNW2CaB6QjOGA5OhTEF2hgGSIYfQJhSQLyNxdB2SGIhKQPIiuOma1Yq0AFKQXPXeEApKUxnbcNberSamksVRahJHTj0dkhzZ8jTTsSCWDlzFxGOUjsSc1l2hQJ3BSJmXopNtOsCCN0n5OdzlZggRNLWzYpRcb-uSqKHDHiOol3ojg1O_uhaN7-cbMCKGB_ZqDYFsbeHU3_NNLf6sjdQaPrl-yF0fh7L2VGl4aKhmwRUhwOBa-G1iYFW1grJ7D2gUOkksvaXIRum_ifidvLcmlVftDYT_YgyW9HCNsgyc0vvu0AjSCqxuuuDYWaXCQN4hKBFo7QQlBXD5TwVm_LmK8Bmm4ksjwbxAQ4kS3K5Co1NSs-sBA1BjQ1pFVlItWgyOjBpmV-ipRAUJ93aK-iwZNSziMBAcx5SDb3Y7mrfwi1VfpVI5m3ude1s7Rb4nqGcx25ALmpgUkM21ZAjBgAcnmSpYaLDw5YaLZM2herQOSLcFeQkVbYS85XUplLC-vam6vZUCy0nqEOSX10kwmE_8r7-9VrSz9okuw_jcXgB6t0nQJ_5D8vy3ox7Zxxp-s3LjgElCYRJNO6Pubq9njFTJtUXOLKCraZe8rZBVaWdsYJyu5Dsj1kttVW0xKVQfkWojn4etTo9V_oLQBuebGtGACco2oZIjLUrQMnA87F6KCll-8N_rlHy0tvyDW1s3GPXiC_Odeq6WmtVO6rUFaJwd6Pw_usfWQUa1FZl0XSiBJazDOLSBNqwGtVYtW9BmQV6Qj4t9AIy7dmEb3s6ffkdLIgPV6gHzmWkknEXqm2qH95uaft4vHf91e3N18_vfVw8JNcci3CjWKS29JbsdZAqOtJvgFd58QJ-EUihh7WTqEmLXpLu41l9ar9eTBTLItkaZfF8pYDbQOyNQ5mUu3HArIBUr7nBOOltz_7IpQ4aREe-s98qWk4ncqmQAdkOxZcRaQ2bAIybpFyFG9GIZX9Xpo5Q5v43NuxzWMe7bRMbYpLssM7Qs30p4kvfoxErwwa2OhXjSC2krpesLWghcjjgVOCYvLGC0MX1pN68YzSaYdj2TMw640UNaz2OURJgAY9RSLL1yI3ki9OtMRn3LgsO-JAk8THMUY0cIFo7fHtGeQnsggrtIkdjnMT-8LhOx1Y-ZxkuRxjIaiIZo9UPkF2JNPeE_rBkZDDCzlorseco0BfUENBNH8OAuHze3osftj7vsc-tWOT3BEfd7bJXpsiysBLm4dyWdpQVf9thDNnjTldo_e7azMSzci8VtDEM1cto3mW0DPtKbrB6jcTSWXyP1zxLsKH6g6s1bzorXgabPtwO3N54e5khZerI-zOfrAtYb4Sntg56flBgeRLMNvQGRrm3F--ih5sx7BIT5J3DSdEgqlS_Zuq1jXqjVd_m98Bs0H_FLLy06H3_qKsBupqS1XM8ke4KvmToyRf4ZSyV0Ps-6aXQXuqbWgZT9d-9ycI1_YdqkZ9_Echq-GpFMgLbIjQL9r7vQGxf0a_YoHcXhE2gHMbyl61zhqrmQPw-9Qb9h5yOsJpyI0Ydkhw1nTCF5SOwj8cdKNg2iomxbaA7NQymXp7IBBp1CnXA_ao0zcrvh_M9lOvlFLV988gGmFPY1vH9jRsGWF0WmRTdKQhdl7ofKbBmDrXcteav4MvVSG143oKtqteretpYWAURIY5Q9YOt-NJJ_GcS95fLLkSTJGEW0aMchoZpJdK8G84Fz8kGBjUF1r9Q3kbrA9gh25YUzdmaunnitZ8eWmLokGByWnlWVZCsX0O9Q8JUQ-TJtNYp6e5rMwLqcsfg9t81GB38ugW3knRwptS8WhzgvT15MNZmEalkdT6ZO6a-6pMTNGm03i0a3cCzpjDox43LwzScXacHNLJV121YjLMu67lf5oiI0L9SQcVMhOsyJmIRD83Srd8wZcE7gHEke6kXT64TrupmZjPktjte_rlH4ld48JupW7gV72e6pB2s-yUgNYN61INB0SSH6qGeMwxnurD_psjEaNcX3tSXF1YJQeo8N2T06rX3LMIqjek-wNmfrgHAxCXq8yclykU4hRA9o1RTO_F5l3GszBycO3sawjXSzCfi9YUQ1s0Vi9Uyc_qlaXcLvUQXR1JNG8Vfr-2F65i-xhB97VoQ_C4RiVkBN9VKQkilGjVQnGXLRV5VvQt2x3aKvW9ysHtrqFWun1wPO1iaw7NFowEOCq1mOTXaH3is7vf_8cy28pLjkVUFq33Rqr1wdV2pPvoe-9NBtEJ2RAdHQM0dMKxoFzK7i-a-wt5fIXds4fY-zvhUQfLh3LgMQL3F0qn3tcNs_80WT2a5hy38XjDoXgAUgnFpu4mEI1PiPZ9cePOPAXtdKmNyypEAUtvywquaPI3yH1c0PqyllVyeWvY8HDSBrX_uS0RiYnJQuL8i8ZKn_CDJj3bSg5sXMjZVnS8c5qGsHtTLL7vQLo11D9L4GtNyleL2PDzQOZY-1wEedR_HeF9DPTedeOkiE_ntrVF3ERlX86z-xaeejT5zf3VBvQRzq9jzT3rtnJJrGdegpQJCk-3jL0ZxjlinanFXtt6aPVXC4foDpdv0HO4dQnOu1QIM5zzOIM1dS_8DJ-SBoithbsYPIuAxJlwHCWIWNp_1gxCXtbfTP-raPugeOJT9r3Xqk4Y-cRy6OcnsF5OE0JnoZxmpytznEUsyzDOUsjUuVhTklShJiWWVFRMo3ZGT8nmJCQkGkYRWGYTEhVEMBllqZJUaQsDmIMNeVi4sw-UXp55l82OE_yFEdnghYgzPCqlT73j_OLdmmCGAturNlOs9wK_1KW1yK5RN2zH7Rz3vjOKyfoZ73VcdZqcf7jr114Y_wvAAD___wEn6M">