<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 - Regression between r298618 and r298625"
   href="https://bugs.llvm.org/show_bug.cgi?id=32414">32414</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Regression between r298618 and r298625
          </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>Common Code Generator Code
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>vvasilev@cern.ch
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=18167" name="attach_18167" title="Full repro">attachment 18167</a> <a href="attachment.cgi?id=18167&action=edit" title="Full repro">[details]</a></span>
Full repro

A reduced example:

cat importE.c
int a, c, e, *b, d;
void fn1() {
  int **f = 0;
  b = f + a;
  for (; e; e++, d += c)
    f[e] = b + d;
}


clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free
-main-file-name import.c -mrelocation-model pic -pic-level 2 -mthread-model
posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables
-target-cpu x86-64 -target-feature +mmx -momit-leaf-frame-pointer
-dwarf-column-info -O3 -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc
-fdiagnostics-show-option -vectorize-loops -vectorize-slp -o import.o -x c
importE.c
importE.c:4:5: warning: incompatible pointer types assigning to 'int *' from
'int **'; dereference with * [-Wincompatible-pointer-types]
  b = f + a;
    ^ ~~~~~
      *(   )
Assertion failed: (isa<IntegerType>(Val->getType()) && "Can only descale
integers!"), function Descale, file
/Users/vvassilev/workspace/llvm-git/src/lib/Transforms/InstCombine/InstructionCombining.cpp,
line 1054.
0  clang                    0x0000000106e1953c
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 60
1  clang                    0x0000000106e19ab9
PrintStackTraceSignalHandler(void*) + 25
2  clang                    0x0000000106e15839 llvm::sys::RunSignalHandlers() +
425
3  clang                    0x0000000106e19f32 SignalHandler(int) + 354
4  libsystem_platform.dylib 0x00007fff8c32c52a _sigtramp + 26
5  libsystem_platform.dylib 0x00007fff6ad215c8 _sigtramp + 3734982840
6  libsystem_c.dylib        0x00007fff96d326df abort + 129
7  libsystem_c.dylib        0x00007fff96cf9dd8 basename + 0
8  clang                    0x00000001065e6c0f
llvm::InstCombiner::Descale(llvm::Value*, llvm::APInt, bool&) + 175
9  clang                    0x00000001065eb506
llvm::InstCombiner::visitGetElementPtrInst(llvm::GetElementPtrInst&) + 8694
10 clang                    0x00000001065fff28
llvm::InstVisitor<llvm::InstCombiner,
llvm::Instruction*>::visitGetElementPtr(llvm::GetElementPtrInst&) + 40
11 clang                    0x00000001065f3b38
llvm::InstVisitor<llvm::InstCombiner,
llvm::Instruction*>::visit(llvm::Instruction&) + 984
12 clang                    0x00000001065f30ed llvm::InstCombiner::run() + 2701
13 clang                    0x00000001065f45e6
combineInstructionsOverFunction(llvm::Function&, llvm::InstCombineWorklist&,
llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&,
llvm::DominatorTree&, bool, llvm::LoopInfo*) + 902
14 clang                    0x00000001065f4857
llvm::InstructionCombiningPass::runOnFunction(llvm::Function&) + 295
15 clang                    0x0000000106351aef
llvm::FPPassManager::runOnFunction(llvm::Function&) + 399
16 clang                    0x0000000106351ff5
llvm::FPPassManager::runOnModule(llvm::Module&) + 117
17 clang                    0x0000000106352cdf (anonymous
namespace)::MPPassManager::runOnModule(llvm::Module&) + 1967
18 clang                    0x00000001063522b6
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 342
19 clang                    0x0000000106353931
llvm::legacy::PassManager::run(llvm::Module&) + 33
20 clang                    0x000000010721df9f (anonymous
namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction,
std::__1::unique_ptr<llvm::raw_pwrite_stream,
std::__1::default_delete<llvm::raw_pwrite_stream> >) + 4767
21 clang                    0x0000000107219f09
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions
const&, clang::CodeGenOptions const&, clang::TargetOptions const&,
clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*,
clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream,
std::__1::default_delete<llvm::raw_pwrite_stream> >) + 4457
22 clang                    0x000000010758c53c
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 4316
23 clang                    0x00000001091c9e06 clang::ParseAST(clang::Sema&,
bool, bool) + 1238
24 clang                    0x0000000107c6caf5
clang::ASTFrontendAction::ExecuteAction() + 485
25 clang                    0x000000010758ab06
clang::CodeGenAction::ExecuteAction() + 5494
26 clang                    0x0000000107c6bb10 clang::FrontendAction::Execute()
+ 112
27 clang                    0x0000000107b96fca
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 2250
28 clang                    0x0000000107d093ce
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 5822
29 clang                    0x00000001054355b4 cc1_main(llvm::ArrayRef<char
const*>, char const*, void*) + 4900
30 clang                    0x000000010542522e
ExecuteCC1Tool(llvm::ArrayRef<char const*>, llvm::StringRef) + 622
31 clang                    0x000000010542249c main + 4460
32 libdyld.dylib            0x00007fff8a0995ad start + 1
33 libdyld.dylib            0x0000000000000026 start + 1979083386
Stack dump:
0.      Program arguments: /Users/vvassilev/workspace/llvm-git/obj/bin/clang
-cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name
import.c -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno
-masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64
-target-feature +mmx -momit-leaf-frame-pointer -dwarf-column-info -O3
-ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc
-fdiagnostics-show-option -vectorize-loops -vectorize-slp -o import.o -x c
importE.c 
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'Function Pass Manager' on module 'importE.c'.
4.      Running pass 'Combine redundant instructions' on function '@fn1'</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>