<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>