| Issue |
179100
|
| Summary |
[X86] `LLVM ERROR: Cannot emit physreg copy instruction`
|
| Labels |
backend:X86,
crash-on-valid,
regression:22
|
| Assignees |
|
| Reporter |
alexrp
|
```llvm
; ModuleID = 'reduced.bc'
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-freebsd15.0.68-unknown"
define fastcc i16 @"simd.test.vector prefix scan"() #0 {
Entry:
%0 = call fastcc <4 x i1> null(ptr null, <4 x i1> zeroinitializer)
%1 = call fastcc i16 null(ptr null, <4 x i1> zeroinitializer, <4 x i1> %0)
ret i16 %1
}
attributes #0 = { "target-cpu"="znver5" }
```
```console
❯ llc --version | head -n2
LLVM (http://llvm.org/):
LLVM version 22.1.0-rc2
❯ llc -O0 reduced.ll
LLVM ERROR: Cannot emit physreg copy instruction
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: llc -O0 reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'Post-RA pseudo instruction expansion pass' on function '@"simd.test.vector prefix scan"'
#0 0x000072bcaa62216d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/alexrp/Sources/llvm/llvm/lib/Support/Unix/Signals.inc:846:3
#1 0x000072bcaa61f2a4 llvm::sys::RunSignalHandlers() /home/alexrp/Sources/llvm/llvm/lib/Support/Signals.cpp:108:20
#2 0x000072bcaa61fabc SignalHandler(int, siginfo_t*, void*) /home/alexrp/Sources/llvm/llvm/lib/Support/Unix/Signals.inc:429:14
#3 0x000072bca8e45f60 (/lib/x86_64-linux-gnu/libc.so.6+0x45f60)
#4 0x000072bca8ea5fed __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000072bca8ea5fed __pthread_kill_internal ./nptl/pthread_kill.c:89:10
#6 0x000072bca8ea5fed pthread_kill ./nptl/pthread_kill.c:100:10
#7 0x000072bca8e45e2e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000072bca8e28888 internal_signal_block_all ./stdlib/../sysdeps/unix/sysv/linux/internal-signals.h:81:3
#9 0x000072bca8e28888 __abort_lock_wrlock ./stdlib/abort.c:62:3
#10 0x000072bca8e28888 abort ./stdlib/abort.c:85:3
#11 0x000072bca9eb9721 std::mutex::lock() /usr/include/c++/15/bits/std_mutex.h:119:22
#12 0x000072bca9eb9721 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/include/c++/15/bits/std_mutex.h:252:23
#13 0x000072bca9eb9721 llvm::install_bad_alloc_error_handler(void (*)(void*, char const*, bool), void*) (.cold) /home/alexrp/Sources/llvm/llvm/lib/Support/ErrorHandling.cpp:162:61
#14 0x000072bcaa5293f9 (/opt/llvm-22/bin/../lib/libLLVM.so.22.1-rc2+0xf293f9)
#15 0x000072bcaf0534e4 llvm::X86InstrInfo::copyPhysReg(llvm::MachineBasicBlock&, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::DebugLoc const&, llvm::Register, llvm::Register, bool, bool, bool) const /home/alexrp/Sources/llvm/llvm/lib/Target/X86/X86InstrInfo.cpp:4387:23
#16 0x000072bcaaea9318 llvm::MachineInstr::getNumOperands() const /home/alexrp/Sources/llvm/llvm/include/llvm/CodeGen/MachineInstr.h:602:44
#17 0x000072bcaaea9318 llvm::TargetInstrInfo::lowerCopy(llvm::MachineInstr*, llvm::TargetRegisterInfo const*) const /home/alexrp/Sources/llvm/llvm/lib/CodeGen/TargetInstrInfo.cpp:904:25
#18 0x000072bcaaa4cf78 (anonymous namespace)::ExpandPostRA::run(llvm::MachineFunction&) (.constprop.0) /home/alexrp/Sources/llvm/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp:161:20
#19 0x000072bcaaa4d848 (anonymous namespace)::ExpandPostRALegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Sources/llvm/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp:139:1
#20 0x000072bcaabaafea llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) /home/alexrp/Sources/llvm/llvm/lib/CodeGen/MachineFunctionPass.cpp:108:30
#21 0x000072bcaa7ddaaa llvm::FPPassManager::runOnFunction(llvm::Function&) /home/alexrp/Sources/llvm/llvm/lib/IR/LegacyPassManager.cpp:1398:40
#22 0x000072bcaa7ddcb5 llvm::ilist_detail::node_base_prevnext<llvm::ilist_node_base<true, void>, true>::getNext() const /home/alexrp/Sources/llvm/llvm/include/llvm/ADT/ilist_node_base.h:42:38
#23 0x000072bcaa7ddcb5 llvm::ilist_node_impl<llvm::ilist_detail::node_options<llvm::Function, true, false, void, false, void>>::getNext() /home/alexrp/Sources/llvm/llvm/include/llvm/ADT/ilist_node.h:108:66
#24 0x000072bcaa7ddcb5 llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void, false, void>, false, false>::operator++() /home/alexrp/Sources/llvm/llvm/include/llvm/ADT/ilist_iterator.h:187:25
#25 0x000072bcaa7ddcb5 llvm::FPPassManager::runOnModule(llvm::Module&) /home/alexrp/Sources/llvm/llvm/lib/IR/LegacyPassManager.cpp:1443:22
#26 0x000072bcaa7de54f runOnModule /home/alexrp/Sources/llvm/llvm/lib/IR/LegacyPassManager.cpp:1513:38
#27 0x000072bcaa7de54f llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/alexrp/Sources/llvm/llvm/lib/IR/LegacyPassManager.cpp:531:55
#28 0x00005c416076f9f5 compileModule(char**, llvm::SmallVectorImpl<llvm::PassPlugin>&, llvm::LLVMContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) /home/alexrp/Sources/llvm/llvm/tools/llc/llc.cpp:874:34
#29 0x00005c4160762f5c main /home/alexrp/Sources/llvm/llvm/tools/llc/llc.cpp:462:35
#30 0x000072bca8e2a575 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#31 0x000072bca8e2a628 call_init ./csu/../csu/libc-start.c:128:20
#32 0x000072bca8e2a628 __libc_start_main ./csu/../csu/libc-start.c:347:5
#33 0x00005c4160763ce5 _start (/opt/llvm-22/bin/llc+0x15ce5)
fish: Job 1, 'llc -O0 reduced.ll' terminated by signal SIGABRT (Abort)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs