<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61094>61094</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] GPU-To-LLVM Pass triggers Segmentation Fault in `VectorMaskOpConversionBase<mlir::vector::ReductionOp>::matchAndRewrite`
</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 ac67ec3a
Reproduced with:
`mlir-opt --gpu-to-llvm temp.mlir`
temp.mlir:
``` milr
module {
func.func @func(%arg: vector<11xf32>) {
%cst_41 = arith.constant dense<true> : vector<11xi1>
%127 = vector.mask %cst_41 { vector.yield %arg : vector<11xf32> } : vector<11xi1> -> vector<11xf32>
return
}
}
```
trace:
```console
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 --gpu-to-llvm 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 0x000000010082e5b4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 mlir-opt 0x000000010082d61c llvm::sys::RunSignalHandlers() + 112
2 mlir-opt 0x000000010082ec4c SignalHandler(int) + 344
3 libsystem_platform.dylib 0x000000019cc194c4 _sigtramp + 56
4 mlir-opt 0x0000000101cce180 (anonymous namespace)::VectorMaskOpConversionBase<mlir::vector::ReductionOp>::matchAndRewrite(mlir::vector::MaskOp, mlir::vector::MaskOpAdaptor, mlir::ConversionPatternRewriter&) const + 44
5 mlir-opt 0x0000000101cce034 mlir::ConvertOpToLLVMPattern<mlir::vector::MaskOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const + 184
6 mlir-opt 0x0000000102028ec4 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const + 200
7 mlir-opt 0x0000000102298924 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&)>) + 1420
8 mlir-opt 0x0000000102034098 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) + 1948
9 mlir-opt 0x000000010202ccc0 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) + 960
10 mlir-opt 0x000000010202ed88 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) + 80
11 mlir-opt 0x0000000101acb740 (anonymous namespace)::GpuToLLVMConversionPass::runOnOperation() + 596
12 mlir-opt 0x0000000101ff1ac0 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
13 mlir-opt 0x0000000101ff1ff0 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
14 mlir-opt 0x0000000101ff3960 mlir::PassManager::run(mlir::Operation*) + 1148
15 mlir-opt 0x0000000101fece80 performActions(llvm::raw_ostream&, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) + 476
16 mlir-opt 0x0000000101feca80 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&) + 520
17 mlir-opt 0x0000000102056e54 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) + 656
18 mlir-opt 0x0000000101feacc8 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) + 132
19 mlir-opt 0x0000000101feb4b8 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1972
20 mlir-opt 0x00000001006cb3c0 main + 108
21 dyld 0x0000000105b25088 start + 516
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWFtv47oR_jXyCxFDou4PfnBu5ywQI0aSLtC-GDQ1ktmlSJWksuvz6wtSki3HduJsT9uDDQLL5mUu33ycGZFozSoBMPPiay--nZDWbKSa3UjOZSOVabU_WctiO1s8fHlC65Zxg4hBVNY1MwgRmqRAQ-L5t54_f4JGyaKlUKDvzGy8cI5QN-Mlfs2ZupKNQVdXVdNeGXnF-WuNDNTN1M55id-vdZ_78XC-k9H9o5px1Y3Vsmg5IC-97hUhVLaCTu0H8iLfPj2ceTgmqrL2vAI1UnnhTRD8KEPshXcezsf7PRxTbVZRgLzwFhHFzGZKpdCGCIMKEBq88MaoFrzwDr2VyAI32luCrLAAp05St2xaE_1trCO9Hma2DHiBOkuPBHemIi-9PaPzyn6c2rGzRYFplRh-e-ltj-ruS-__IdYHo0YRCsfxsPBIDkOslw938-c7pNu1pQhB67ZCCiyZkJFoY0yjrQx87-H7iplNu55SWXv43vKhf1w1Sv4TqPHwPdO6Be3he0REgZigvC0AmQ0gqojeoDWh35xh0079syH0GyrautlZ6k89P18qWSlSI6KqtgZhrBHoQ1K-Eel4LVuD9LZeS44EqUEjD2cgdKsAbWWLNuQVkHOiW8T-AIWYsHMKLecvvyOpkAbjfADxypQU1iD0ShTyEv_h4eti9fz3xfXjw5d_3D2t7BbLeiNRI5lwKDLj4XzvH9o78vbP_-F3f4HvZxjideRss3vDud7q7stSMWGcmy8uxjjbL1Lk-0pqo4DUHk48fIOYMO7U4GsUJ50JwciEQ5VFEtBTKp9a8cwqQfjvRBQclHbntJMaBLgTiy92jEYUHcjzcDayM4yiTmKIOFvrrTZQrxpOTClVPS22nK1HEnNKgzyiEVppVhlF6ubA2ei0swGlEGS-pQMRUmxr2eqOIY3DNO8c_-pO6YLob4_NjRSvoDST4pq4zDJkvHA-HGaHFRQtNUyKx8ZmLDdWE0M3c1E8wXfFjA3Z6b2dIhu29-bnBWns0MGyvXVLYgwo0etSjgc5cnnRITOgG1_GRIuUH0ZHqsxj8yIt_3t9ZwHpnboEi8cGFLHYeXhu3dtTca4U2T5BeaDlK-Eut_8sEkHWQ5FcBgX2cQb0GIqRrs_7uJ_5yFzs9yk-Pc1pjPMsx9GxxHnTcEbJLiJ_nnnjENn6bTeulAvTWkqODkT3AjqPOu_64J0V8ipZ8R8L2W9-kBWjhD-Bbrm5TG6f5CLcY59dyJQw8vPso_SyA_sBKuKKTzfO-58XRuYjxjsP8ijrPMjPsMfHlNIPM-LOij4LDCbTISn00_qgLp08vgcOfZoIt4xUQmrD6FG08qEXCvxzrkKRZSMESdPw7ZIowwjfo_lp-F-IqsD0J2O_4F7JP2AISh-iZzAjro09v7WN6zOY81gdL1-Q5oso5btbLIQuC9-5gQ6qbEAquKwYELpOow9J8lvTdrVhzEzdNxOqFY9iZNyuk4jzoUHBp2t2WQaE-iNgCzCE8cHdF_nYWDVDfRy0vTnnWh9F8Hxs54LwrWZ6QQSpwNVcm9jssxXudawYt1gR7g9ZEJ51oSw_78KSNcCZeJsQ7NKdZcmf7tNh9tf6i9BGuYbcdh9H5WG8oNPcTfS2L4kCYSxNB-LvWBgO2TWILqNhWYZ54r_RPvhzMu6HcAyt65ATg_hMuIBC5qMGlO095_Q4sx133NoU3dRqFfR99IYoKFaNse97-63PslUUFpWyL3_jXLC32r7J30hh4Ic5AnzBmXpszIIwm4tLVo1rV8fGdDhQyVn3SDaG8bBA_kxFPfa-FexfLRx5v4Baqu11W5YdBY83FlCSlptVARwMnN_c57RxUnwblXzXflLCuX0NXZWHHesIzU_H93_n4UH540DNE1RMG7U9Zs577OiWeDiyhtxZf6Wo_t--vRO9rjzskkR6YQ8WJxCP22HdcGbmolgqSUHrwfq_CGd_iTP27op9nemeXVyT3b1Edi5LEUqz09z-9c9qV6nC_pIlyM9htI7W5zHqyzndkK5wv-khn41iorL9-QV2j2MX5Olw-3O61fYTug5tz0aY6Hb4fcnFASq2vBgvjtc49rMMaUNU98obB8n4xvPtVeekmIVFHuZkArMgSdMki9MUTzazOMERzbIoidMA52mRpkmQJj4UfkGKIi4nbIZ9HPqhHwRxlId4WpRlGeTBGsLMT-Iw8yIfasL41KI0laqauMvNWRL4eTThZA1cu4t4jAV8R27Sw9iLbydq5m4U122lvcjnTBu9l2KY4e4G38Ec36Lfln-7epFXtltGtotBRrGqAqXRM1S7VgrdW_IhC2Li_5dupRJ_0io--_lbX4fNvwMAAP__WRV8pw">