<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 - A/F: !getDef() && "VPValue is not a live-in; it is defined by a VPDef inside a VPlan""
   href="https://bugs.llvm.org/show_bug.cgi?id=52460">52460</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>A/F: !getDef() && "VPValue is not a live-in; it is defined by a VPDef inside a VPlan"
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </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>enhancement
          </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>We have an internal test case that hit an assertion failure in clang which I
bisected to be caused by commit c45045bfd04af92044979243a6d7d8e8a1b47133.

/* test.cpp */
void m_fn1(unsigned h, int k, int *e, float *g) {
  for (;;) {
    for (int dim = 0; dim < h; ++dim)
      int l = l * dim;

    for (int dim = h + 1; dim < 100; ++dim)
      k += (dim - 1) * e[dim];

    int *m = &e[k];
    for (int i; k;)
      g[i] = m[1];
  }
}

Compiling with "clang -c -O3 test.cpp" hits an assertion failure:

clang:
/home/dyung/src/upstream/llvm_clean_git/llvm/lib/Transforms/Vectorize/VPlanValue.h:185:
llvm::Value* llvm::VPValue::getLiveInIRValue(): Assertion `!getDef() &&
"VPValue is not a live-in; it is defined by a VPDef inside a VPlan"
' failed.                                          
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: bad/bin/clang -c -O3 test.cpp
1.      <eof> parser at end of file          
2.      Optimizer                                
 #0 0x0000559dfd6688c4 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x0000559dfd6666c4 llvm::sys::CleanupOnSignal(unsigned long)
(bad/bin/clang+0x39986c4)
 #2 0x0000559dfd5a2ba8 CrashRecoverySignalHandler(int)
CrashRecoveryContext.cpp:0:0
 #3 0x00007f4c32a6e3c0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
 #4 0x00007f4c3250d18b raise
/build/glibc-eX1tMB/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f4c324ec859 abort /build/glibc-eX1tMB/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007f4c324ec729 get_sysdep_segment_value
/build/glibc-eX1tMB/glibc-2.31/intl/loadmsgcat.c:509:8
 #7 0x00007f4c324ec729 _nl_load_domain
/build/glibc-eX1tMB/glibc-2.31/intl/loadmsgcat.c:970:34
 #8 0x00007f4c324fdf36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
 #9 0x0000559dfd872dca llvm::VPTransformState::get(llvm::VPValue*, unsigned
int) (bad/bin/clang+0x3ba4dca)
#10 0x0000559dfd87368e
llvm::InnerLoopVectorizer::widenInstruction(llvm::Instruction&, llvm::VPValue*,
llvm::VPUser&, llvm::VPTransformState&) (bad/bin/clang+0x3ba568e)
#11 0x0000559dfd9205e7 llvm::VPBasicBlock::execute(llvm::VPTransformState*)
(bad/bin/clang+0x3c525e7)
#12 0x0000559dfd91ea4d llvm::VPlan::execute(llvm::VPTransformState*)
(bad/bin/clang+0x3c50a4d)
#13 0x0000559dfd88dc2e
llvm::LoopVectorizationPlanner::executePlan(llvm::ElementCount, unsigned int,
llvm::VPlan&, llvm::InnerLoopVectorizer&, llvm::DominatorTree*)
(bad/bin/clang+0x3bbfc2e)
#14 0x0000559dfd8abd43 llvm::LoopVectorizePass::processLoop(llvm::Loop*)
(bad/bin/clang+0x3bddd43)
#15 0x0000559dfd8ac640 llvm::LoopVectorizePass::runImpl(llvm::Function&,
llvm::ScalarEvolution&, llvm::LoopInfo&, llvm::TargetTransformInfo&,
llvm::DominatorTree&, llvm::BlockFrequencyInfo&, llvm::TargetLibraryInfo*,
llvm::DemandedBit
s&, llvm::AAResults&, llvm::AssumptionCache&,
std::function<llvm::LoopAccessInfo const& (llvm::Loop&)>&,
llvm::OptimizationRemarkEmitter&, llvm::ProfileSummaryInfo*)
(bad/bin/clang+0x3bde640)
#16 0x0000559dfd8ace19 llvm::LoopVectorizePass::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&) (bad/bin/clang+0x3bdee19)
#17 0x0000559dfe8ce6e6 llvm::detail::PassModel<llvm::Function,
llvm::LoopVectorizePass, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&) (bad/bin/clang+0x4c
006e6)
#18 0x0000559dfcd38326 llvm::PassManager<llvm::Function,
llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&) (bad/bin/clang+0x306a326)
#19 0x0000559dfb0e8486 llvm::detail::PassModel<llvm::Function,
llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>
<span class="quote">>::run(llvm::Function&, llvm::Ana</span >
lysisManager<llvm::Function>&) (bad/bin/clang+0x141a486)
#20 0x0000559dfcd36d29 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) (bad/bin/clang+0x3068d29)
#21 0x0000559dfb0e8dd6 llvm::detail::PassModel<llvm::Module,
llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) (bad/bin/clang+0x
141add6)
#22 0x0000559dfcd348df llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) (bad/bin/clang+0x30668df)
#23 0x0000559dfd9bd19f (anonymous
namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >&,
std::unique_ptr<llvm::ToolOutput
File, std::default_delete<llvm::ToolOutputFile> >&) (.constprop.0)
BackendUtil.cpp:0:0
#24 0x0000559dfd9c09d2 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef,
llvm::Module*, clang:
:BackendAction, std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >) (bad/bin/clang+0x3cf29d2)
#25 0x0000559dfe868d53
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(bad/bin/clang+0x4b9ad53)
#26 0x0000559dff5a8539 clang::ParseAST(clang::Sema&, bool, bool)
(bad/bin/clang+0x58da539)
#27 0x0000559dfe867708 clang::CodeGenAction::ExecuteAction()
(bad/bin/clang+0x4b99708)
#28 0x0000559dfe0dc669 clang::FrontendAction::Execute()
(bad/bin/clang+0x440e669)
#29 0x0000559dfe06b48e
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(bad/bin/clang+0x439d48e)
#30 0x0000559dfe1bcae3
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(bad/bin/clang+0x44eeae3)
#31 0x0000559dfadf8c1d cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (bad/bin/clang+0x112ac1d)
#32 0x0000559dfadf5028 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
driver.cpp:0:0
#33 0x0000559dfdef8029 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
#34 0x0000559dfd5a2d2c
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(bad/bin/clang+0x38d4d2c)
#35 0x0000559dfdef873d
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
#36 0x0000559dfdec9b9b
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const (bad/bin/clang+0x41fbb9b)
#37 0x0000559dfdeca6a9
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(bad/bin/clang+0x41fc6a9)
#38 0x0000559dfded3fc9
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(bad/bin/clang+0x4205fc9)
#39 0x0000559dfad2b016 main (bad/bin/clang+0x105d016)
#40 0x00007f4c324ee0b3 __libc_start_main
/build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
#41 0x0000559dfadf4b9e _start (bad/bin/clang+0x1126b9e)</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>