<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 - Crash in X86DAGToDAGISel::RunSDNodeXForm: "getConstant with a uint64_t value that doesn't fit in the type!""
   href="https://bugs.llvm.org/show_bug.cgi?id=33828">33828</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Crash in X86DAGToDAGISel::RunSDNodeXForm: "getConstant with a uint64_t value that doesn't fit in the type!"
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </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>Backend: X86
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>babokin@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>clang trunk, rev 308072, x86_64.

Bug reproduces for -march=haswell|broadwell|skx

<span class="quote">> cat f.cpp</span >
extern unsigned short var_22;
extern signed char var_32;
extern unsigned short var_53;
extern signed char var_56;
extern signed char var_62;
extern signed char var_580;

void foo() {
  var_53 = 0;
  if (var_56)
    ;
  else {
    if (var_32)
      var_53 = var_22 || var_62 / 31;
    if (var_580 & ~((0 || 309201625365528537) << 2 * var_53 / 71 - 3))
      var_62 = 0;
  }
}

<span class="quote">> clang++ -w -O2 -march=haswell -c f.cpp</span >
clang-5.0:
/home/dybaboki/llvm/llvm-trunk-20170714/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1088:
llvm::SDValue llvm::SelectionDAG::getConstant(uint64_t, const llvm::SDLoc &,
llvm::EVT, bool, bool): Assertion `(EltVT.getSizeInBits() >= 64 ||
(uint64_t)((int64_t)Val >> EltVT.getSizeInBits()) + 1 < 2) && "getConstant with
a uint64_t value that doesn't fit in the type!"' failed.
#0 0x000000000130a23f llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x130a23f)
#1 0x000000000130a546 SignalHandler(int)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x130a546)
#2 0x00007f89e5eb0370 __restore_rt (/lib64/libpthread.so.0+0xf370)
#3 0x00007f89e4a2d1d7 __GI_raise (/lib64/libc.so.6+0x351d7)
#4 0x00007f89e4a2e8c8 __GI_abort (/lib64/libc.so.6+0x368c8)
#5 0x00007f89e4a26146 __assert_fail_base (/lib64/libc.so.6+0x2e146)
#6 0x00007f89e4a261f2 (/lib64/libc.so.6+0x2e1f2)
#7 0x00000000019fe7c7
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x19fe7c7)
#8 0x000000000081fe62 (anonymous
namespace)::X86DAGToDAGISel::RunSDNodeXForm(llvm::SDValue, unsigned int)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x81fe62)
#9 0x0000000001a3c123 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*,
unsigned char const*, unsigned int)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1a3c123)
#10 0x0000000000819ae6 (anonymous
namespace)::X86DAGToDAGISel::Select(llvm::SDNode*)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x819ae6)
#11 0x0000000001a35c7a llvm::SelectionDAGISel::DoInstructionSelection()
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1a35c7a)
#12 0x0000000001a34c92 llvm::SelectionDAGISel::CodeGenAndEmitDAG()
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1a34c92)
#13 0x0000000001a32460
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1a32460)
#14 0x0000000001a2ede6
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1a2ede6)
#15 0x00000000008158d1 (anonymous
namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x8158d1)
#16 0x0000000000bcb794
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0xbcb794)
#17 0x0000000000ec598f llvm::FPPassManager::runOnFunction(llvm::Function&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0xec598f)
#18 0x0000000000ec5be3 llvm::FPPassManager::runOnModule(llvm::Module&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0xec5be3)
#19 0x0000000000ec60d6 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0xec60d6)
#20 0x000000000147a64f clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x147a64f)
#21 0x0000000001b1d382
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1b1d382)
#22 0x0000000001f80396 clang::ParseAST(clang::Sema&, bool, bool)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x1f80396)
#23 0x00000000017f5498 clang::FrontendAction::Execute()
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x17f5498)
#24 0x00000000017ba421
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x17ba421)
#25 0x000000000187a1c7
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x187a1c7)
#26 0x0000000000770e2f cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x770e2f)
#27 0x000000000076ebb6 main
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x76ebb6)
#28 0x00007f89e4a19b35 __libc_start_main (/lib64/libc.so.6+0x21b35)
#29 0x000000000076bf17 _start
(/home/dybaboki/llvm/bin-trunk-20170714/bin/clang-5.0+0x76bf17)</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>