[llvm-bugs] [Bug 51615] New: Fatal error: Cannot select t77: v4f64 = X86ISD::VBROADCAST t5 after upstream commit 2078c4ecfda

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Aug 25 01:21:17 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=51615

            Bug ID: 51615
           Summary: Fatal error: Cannot select t77: v4f64 =
                    X86ISD::VBROADCAST t5 after upstream commit
                    2078c4ecfda
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: douglas_yung at playstation.sony.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

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 https://bugs.llvm.org/ 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>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
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>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
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)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210825/537cda9e/attachment-0001.html>


More information about the llvm-bugs mailing list