<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Fatal error: Cannot select t77: v4f64 = X86ISD::VBROADCAST t5 after upstream commit 2078c4ecfda"
href="https://bugs.llvm.org/show_bug.cgi?id=51615">51615</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Fatal error: Cannot select t77: v4f64 = X86ISD::VBROADCAST t5 after upstream commit 2078c4ecfda
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>new bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>douglas_yung@playstation.sony.com
</td>
</tr>
<tr>
<th>CC</th>
<td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>A few of our internal tests started hitting a fatal error in the compiler after
upstream commit 2078c4ecfda80f802febc4f98e4a163656093c43.
I have reduced one of the failing tests to the following code
(test_1472633855.preproc.cpp):
/* Begin test_1472633855.preproc.cpp */
typedef double __attribute__((ext_vector_type(8))) double8;
typedef double __attribute__((ext_vector_type(2))) double2;
typedef double __attribute__((ext_vector_type(4))) double4;
volatile double2 test5_id1234;
double4 test5_id1260;
void test5() {
double8 id1232 = __builtin_shufflevector(test5_id1234, test5_id1234, 1, 1, 1,
2, 2, 2, 0, 0);
double4 id1231(id1232.wwyw);
volatile double8 id1230 =
__builtin_shufflevector(id1231, test5_id1260, 6, 7, 3, 6, 7, 1, 7, 1);
}
/* End test_1472633855.preproc.cpp */
When compiled with "-O2 -mavx" using a compiler that includes
2078c4ecfda80f802febc4f98e4a163656093c43, it will hit a fatal error in the
backend similar to this:
fatal error: error in backend: Cannot select: t77: v4f64 = X86ISD::VBROADCAST
t5
t5: v2f64,ch = load<(volatile dereferenceable load (s128) from @test5_id1234,
!tbaa !3)> t4:1, t54, undef:i64
t54: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<<2 x double>*
@test5_id1234> 0
t53: i64 = TargetGlobalAddress<<2 x double>* @test5_id1234> 0
t3: i64 = undef
In function: _Z5test5v
PLEASE submit a bug report to <a href="https://bugs.llvm.org/">https://bugs.llvm.org/</a> and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments:
/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang
-c -O2 -mavx test_1472633855.preproc.cpp
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module
'test_1472633855.preproc.cpp'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function
'@_Z5test5v'
#0 0x0000562c0c705e84 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x0000562c0c703c84 llvm::sys::CleanupOnSignal(unsigned long)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3af3c84)
#2 0x0000562c0c6478f3 llvm::CrashRecoveryContext::HandleExit(int)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3a378f3)
#3 0x0000562c0c6fb8e2 llvm::sys::Process::Exit(int, bool)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3aeb8e2)
#4 0x0000562c09f2c817 LLVMErrorHandler(void*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool) cc1_main.cpp:0:0
#5 0x0000562c0c64fbac llvm::report_fatal_error(llvm::Twine const&, bool)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3a3fbac)
#6 0x0000562c0c64fd24
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3a3fd24)
#7 0x0000562c0d769673 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4b59673)
#8 0x0000562c0d76b072 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*,
unsigned char const*, unsigned int)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4b5b072)
#9 0x0000562c0b18cb5f (anonymous
namespace)::X86DAGToDAGISel::Select(llvm::SDNode*) X86ISelDAGToDAG.cpp:0:0
#10 0x0000562c0d767b59 llvm::SelectionDAGISel::DoInstructionSelection()
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4b57b59)
#11 0x0000562c0d77241f llvm::SelectionDAGISel::CodeGenAndEmitDAG()
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4b6241f)
#12 0x0000562c0d775bab
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4b65bab)
#13 0x0000562c0d777dc1
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0)
SelectionDAGISel.cpp:0:0
#14 0x0000562c0b1977fc (anonymous
namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&)
X86ISelDAGToDAG.cpp:0:0
#15 0x0000562c0b8cf398
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x2cbf398)
#16 0x0000562c0bdb4675 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x31a4675)
#17 0x0000562c0bdb48b9 llvm::FPPassManager::runOnModule(llvm::Module&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x31a48b9)
#18 0x0000562c0bdb59a2 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x31a59a2)
#19 0x0000562c0ca49892 (anonymous
namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >) BackendUtil.cpp:0:0
#20 0x0000562c0ca4b53d clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef,
llvm::Module*, clang::BackendAction, std::uniq
ue_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3e3b53d)
#21 0x0000562c0d8ad70f
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4c9d70f)
#22 0x0000562c0e617c79 clang::ParseAST(clang::Sema&, bool, bool)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x5a07c79)
#23 0x0000562c0d8ac258 clang::CodeGenAction::ExecuteAction()
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4c9c258)
#24 0x0000562c0d1413a9 clang::FrontendAction::Execute()
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x45313a9)
#25 0x0000562c0d0d6b1e
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x44c6b1e)
#26 0x0000562c0d2207a0
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x46107a0)
#27 0x0000562c09f2da8d cc1_main(llvm::ArrayRef<char const*>, char const*,
void*)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x131da8d)
#28 0x0000562c09f29dd8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
driver.cpp:0:0
#29 0x0000562c0cf612c9 void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
<span class="quote">>, std::__cxx11::basic_string<char, std::char_traits<char>,</span >
std::allocator<char> >*, bool*) const::'lambda'(
)>(long) Job.cpp:0:0
#30 0x0000562c0c6477bc
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x3a377bc)
#31 0x0000562c0cf619dd
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
<span class="quote">>, std::__cxx11::basic_string<char, std::char_traits<char>,</span >
std::allocator<char> >*, bool*) const (.part.0) Job.cpp:0:0
#32 0x0000562c0cf33d0b
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x4323d0b)
#33 0x0000562c0cf34829
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x43
24829)
#34 0x0000562c0cf3f839
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x432f839)
#35 0x0000562c09e62e27 main
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x1252e27)
#36 0x00007f5eb352d0b3 __libc_start_main
/build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
#37 0x0000562c09f2994e _start
(/home/dyung/src/upstream/2078c4ecfda80f802febc4f98e4a163656093c43-linux/bin/clang+0x131994e)</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>