Issue |
100910
|
Summary |
x86 backend aborts with "Do not know how to split the result of this operator"
|
Labels |
new issue
|
Assignees |
|
Reporter |
ychen306
|
Reproduce the crash here: https://godbolt.org/z/5Ef61sKoE.
Here's the code triggering the abort, and you need to target avx512 see the abort.
```llvm
define void @_Z24weight_h264_pixels16_8_cPhiii(ptr %out) #0 {
.latch_crit_edge.new:
br label %latch
latch: ; preds = %latch, %.latch_crit_edge.new
%0 = tail call <16 x i32> @llvm.x86.avx512.psrav.d.512(<16 x i32> zeroinitializer, <16 x i32> zeroinitializer)
%conv25.1.0.vec.3 = trunc <16 x i32> %0 to <16 x i8>
br i1 true, label %exit.loopexit.unr-lcssa.loopexit, label %latch
exit.loopexit.unr-lcssa.loopexit: ; preds = %latch
store <16 x i8> %conv25.1.0.vec.3, ptr %out, align 1
ret void
}
```
Trying to lower this code I see this
```
> llc x.ll
SplitVectorResult #0: t16: v16i32 = llvm.x86.avx512.psrav.d.512 TargetConstant:i64<10268>, t9, t15
LLVM ERROR: Do not know how to split the result of this operator!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc x.ll
1. Running pass 'Function Pass Manager' on module 'x.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_Z24weight_h264_pixels16_8_cPhiii'
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 llc 0x000000010f28b677 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
1 llc 0x000000010f28a354 llvm::sys::RunSignalHandlers() + 260
2 llc 0x000000010f28bcc0 SignalHandler(int) + 272
3 libsystem_platform.dylib 0x00007fff6d04f5fd _sigtramp + 29
4 libsystem_platform.dylib 000000000000000000 _sigtramp + 18446603338687121952
5 libsystem_c.dylib 0x00007fff6cf25808 abort + 120
6 llc 0x000000010f1ca29f llvm::report_fatal_error(llvm::Twine const&, bool) + 447
7 llc 0x000000010f1ca0db llvm::report_fatal_error(char const*, bool) + 43
8 llc 0x000000010efe3cbc llvm::DAGTypeLegalizer::SplitVectorResult(llvm::SDNode*, unsigned int) + 1340
9 llc 0x000000010efc23e2 llvm::DAGTypeLegalizer::run() + 2754
10 llc 0x000000010efc7afe llvm::SelectionDAG::LegalizeTypes() + 1438
11 llc 0x000000010f0fc48b llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 1739
12 llc 0x000000010f0fb44d llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 7917
13 llc 0x000000010f0f8111 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 2065
14 llc 0x000000010ddf6f1e (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 126
15 llc 0x000000010e600721 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 673
16 llc 0x000000010ea67ec2 llvm::FPPassManager::runOnFunction(llvm::Function&) + 1186
17 llc 0x000000010ea6e538 llvm::FPPassManager::runOnModule(llvm::Module&) + 72
18 llc 0x000000010ea6852e llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1102
19 llc 0x000000010dd08f19 main + 9417
20 libdyld.dylib 0x00007fff6ce56cc9 start + 1
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs