Issue 185092
Summary [mlir][infrastructure] `XeGPUToXeVM`'s `materializecast.mlir` test fails on main
Labels mlir
Assignees
Reporter abhamra
    To reproduce:
```
mlir-opt -convert-xegpu-to-xevm --split-input-file materializecast.mlir | FileCheck materializecast.mlir
```
in the `test/Conversion/XeGPUToXeVM` directory.

**Stack Trace:**
```
asb@pc ~/p/l/m/t/C/XeGPUToXeVM (main ✔) > ~/personal/llvm-project/build/bin/mlir-opt -convert-xegpu-to-xevm --split-input-file materializecast.mlir | FileCheck materializecast.mlir
mlir-opt: /home/asb/personal/llvm-project/mlir/lib/Transforms/Utils/DialectConversion.cpp:3758: SmallVector<Value> mlir::TypeConverter::materializeTargetConversion(OpBuilder &, Location, TypeRange, ValueRange, Type) const: Assertion `TypeRange(ValueRange(result)) == resultTypes && "callback produced incorrect number of values or values with " "incorrect types"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.      Program arguments: /home/asb/personal/llvm-project/build/bin/mlir-opt -convert-xegpu-to-xevm --split-input-file materializecast.mlir
 #0 0x000056272ad15238 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/asb/personal/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x000056272ad12c63 llvm::sys::RunSignalHandlers() /home/asb/personal/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x000056272ad16231 SignalHandler(int, siginfo_t*, void*) /home/asb/personal/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007fd9ad229040 __restore_rt (/lib64/libc.so.6+0x1a040)
 #4 0x00007fd9ad282e5c __pthread_kill_implementation (/lib64/libc.so.6+0x73e5c)
 #5 0x00007fd9ad228f0e gsignal (/lib64/libc.so.6+0x19f0e)
 #6 0x00007fd9ad2106d0 abort (/lib64/libc.so.6+0x16d0)
 #7 0x00007fd9ad210639 __assert_perror_fail (/lib64/libc.so.6+0x1639)
 #8 0x00005627312993be (/home/asb/personal/llvm-project/build/bin/mlir-opt+0x66233be)
 #9 0x00005627312972d0 llvm::SmallVector<mlir::Value, 6u>::operator=(llvm::SmallVector<mlir::Value, 6u>&&) /home/asb/personal/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1267:27
#10 0x00005627312972d0 legalizeUnresolvedMaterialization(mlir::RewriterBase&, mlir::UnrealizedConversionCastOp, (anonymous namespace)::UnresolvedMaterializationInfo const&) /home/asb/personal/llvm-project/mlir/lib/Transforms/Utils/DialectConversion.cpp:3346:26
#11 0x00005627312972d0 mlir::OperationConverter::applyConversion(llvm::ArrayRef<mlir::Operation*>) /home/asb/personal/llvm-project/mlir/lib/Transforms/Utils/DialectConversion.cpp:3485:18
#12 0x00005627312a35a4 applyConversion(llvm::ArrayRef<mlir::Operation*>, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig, (anonymous namespace)::OpConversionMode)::$_0::operator()() const /home/asb/personal/llvm-project/mlir/lib/Transforms/Utils/DialectConversion.cpp:4170:9
#13 0x00005627312a35a4 void llvm::function_ref<void ()>::callback_fn<applyConversion(llvm::ArrayRef<mlir::Operation*>, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig, (anonymous namespace)::OpConversionMode)::$_0>(long) /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#14 0x000056273129b272 llvm::SmallVectorTemplateCommon<mlir::IRUnit, void>::begin() /home/asb/personal/llvm-project/llvm/include/llvm/ADT/SmallVector.h:273:45
#15 0x000056273129b272 llvm::SmallVectorTemplateCommon<mlir::IRUnit, void>::end() /home/asb/personal/llvm-project/llvm/include/llvm/ADT/SmallVector.h:275:27
#16 0x000056273129b272 llvm::SmallVector<mlir::IRUnit, 6u>::~SmallVector() /home/asb/personal/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1211:46
#17 0x000056273129b272 applyConversion(llvm::ArrayRef<mlir::Operation*>, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig, (anonymous namespace)::OpConversionMode) /home/asb/personal/llvm-project/mlir/lib/Transforms/Utils/DialectConversion.cpp:4174:1
#18 0x000056273129b30b mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) /home/asb/personal/llvm-project/mlir/lib/Transforms/Utils/DialectConversion.cpp:4190:3
#19 0x000056272de2a3a8 (anonymous namespace)::ConvertXeGPUToXeVMPass::runOnOperation() /home/asb/personal/llvm-project/mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp:1291:16
#20 0x000056273132ebc2 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_3::operator()() const /home/asb/personal/llvm-project/mlir/lib/Pass/Pass.cpp:0:19
#21 0x000056273132ebc2 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_3>(long) /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#22 0x000056273132ebc2 llvm::function_ref<void ()>::operator()() const /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#23 0x000056273132ebc2 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/asb/personal/llvm-project/mlir/include/mlir/IR/MLIRContext.h:290:7
#24 0x000056273132ebc2 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/asb/personal/llvm-project/mlir/lib/Pass/Pass.cpp:606:23
#25 0x000056273132fa04 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/asb/personal/llvm-project/mlir/lib/Pass/Pass.cpp:688:9
#26 0x000056273133626b mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/asb/personal/llvm-project/mlir/lib/Pass/Pass.cpp:1123:3
#27 0x00005627313358ee mlir::PassManager::run(mlir::Operation*) /home/asb/personal/llvm-project/mlir/lib/Pass/Pass.cpp:1097:0
#28 0x000056272adbdc5f performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/asb/personal/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:591:7
#29 0x000056272adbd05c processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, mlir::SourceMgrDiagnosticVerifierHandler*, llvm::ThreadPoolInterface*) /home/asb/personal/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:673:12
#30 0x000056272adbd05c mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef, llvm::raw_ostream&) const /home/asb/personal/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:771:12
#31 0x000056272adbd05c llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, 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::MemoryBufferRef const&, llvm::raw_ostream&) /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#32 0x0000562731603504 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) const /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#33 0x0000562731603504 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0::operator()(llvm::StringRef) const /home/asb/personal/llvm-project/mlir/lib/Support/ToolUtilities.cpp:94:13
#34 0x000056273160329e void llvm::interleave<llvm::StringRef const*, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream, llvm::StringRef>(llvm::SmallVector<llvm::StringRef, 8u> const&, llvm::raw_ostream&, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::StringRef const&)::'lambda'(), void>(llvm::SmallVector<llvm::StringRef, 8u>, llvm::SmallVector<llvm::StringRef, 8u>, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream) /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLExtras.h:0:0
#35 0x000056273160329e void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream, llvm::StringRef>(llvm::SmallVector<llvm::StringRef, 8u> const&, llvm::raw_ostream&, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::StringRef const&) /home/asb/personal/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2291:3
#36 0x000056273160329e 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /home/asb/personal/llvm-project/mlir/lib/Support/ToolUtilities.cpp:97:3
#37 0x000056272adb43b3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/asb/personal/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:776:26
#38 0x000056272adb46e6 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/asb/personal/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:822:14
#39 0x000056272adb494b mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/asb/personal/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:838:10
#40 0x000056272acfe7b3 main /home/asb/personal/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:347:33
#41 0x00007fd9ad212575 __libc_start_call_main (/lib64/libc.so.6+0x3575)
#42 0x00007fd9ad212628 __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3628)
#43 0x000056272acfe2e5 _start (/home/asb/personal/llvm-project/build/bin/mlir-opt+0x882e5)
materializecast.mlir:82:18: error: CHECK-LABEL: expected string not found in input
 // CHECK-LABEL: gpu.func @materialize_2D_single_element_vector_to_element
                 ^
<stdin>:116:59: note: scanning from here
 gpu.func @materialize_element_to_2D_single_element_vector(%arg0: memref<128xf32>) kernel {
                                                          ^
<stdin>:139:2: note: possible intended match here
 %13 = vector.broadcast %12 : f32 to vector<1x1xf32>
 ^

Input file: <stdin>
Check file: materializecast.mlir

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            .
            .
            .
          111: }
          112:
          113: // -----
          114: module {
          115:  gpu.module @materializecast [#xevm.target<chip = "pvc">] {
          116:  gpu.func @materialize_element_to_2D_single_element_vector(%arg0: memref<128xf32>) kernel {
label:82'0                                                               X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
          117:  %c0 = arith.constant 0 : index
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          118:  %alloca = memref.alloca() : memref<512xi8, 3>
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          119:  %intptr = memref.extract_aligned_pointer_as_index %alloca : memref<512xi8, 3> -> index
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          120:  %c0_0 = arith.constant 0 : index
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          121:  %0 = arith.index_castui %intptr : index to i32
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
            .
          134:  %c4_i32 = arith.constant 4 : i32
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          135:  %9 = arith.muli %8, %c4_i32 : i32
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          136:  %10 = arith.addi %3, %9 : i32
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          137:  %11 = llvm.inttoptr %10 : i32 to !llvm.ptr<3>
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          138:  %12 = llvm.load %11 : !llvm.ptr<3> -> f32
label:82'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          139:  %13 = vector.broadcast %12 : f32 to vecto<truncated>Please see the issue for the entire body.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to