[llvm-bugs] [Bug 26353] New: llc aborts with "Unknown mismatch!"

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jan 28 03:33:14 PST 2016


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

            Bug ID: 26353
           Summary: llc aborts with "Unknown mismatch!"
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: snowkh at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 15738
  --> https://llvm.org/bugs/attachment.cgi?id=15738&action=edit
IR code for crash

I found a crash in llc.

llvm version (HEAD on git as now):
commit e9abc8ca75bd65d7c25fc0e18a01daa5eaaf4d4b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date:   Thu Jan 28 09:45:01 2016 +0000

    [X86][SSE] Move setTargetShuffleZeroElements closer to
getTargetShuffleMask. NFCI.

    Keep target shuffle mask helper functions closer together.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259034
91177308-0d34-0410-b5e6-96231b3b80d8


minimal reproducible case:
/* compiled with 
`clang -target powerpc-unknown-eabispe -ffreestanding -c -nostdinc -fno-builtin
-mcpu=e500v2 -emit-llvm fail.c` .
clang not crashes, but `llc fail.bc` crashes.
*/
typedef union
{
    struct
    {
        unsigned int hi;
        unsigned int lo;
    } i;
    double d;
//    float d;
} hexdouble;

void foo(){
  hexdouble fpscr;

  asm volatile ("mfspr %0, 512": "=r"(fpscr.d)); /* SPRN_SPEFSCR */
  if (fpscr.i.lo & (1<<28))
  {
    fpscr.i.lo = fpscr.i.lo & !(1<<28);
  }
}


stdout (with `llc fail.bc`):

Unknown mismatch!
UNREACHABLE executed at
/home/khwon/tmp/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:236!
0  llc             0x0000000002476f8d
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 44
1  llc             0x00000000024772a2
2  llc             0x00000000024759ba llvm::sys::RunSignalHandlers() + 118
3  llc             0x0000000002476ab4
4  libpthread.so.0 0x00007fc9a6d60340
5  libc.so.6       0x00007fc9a61a1cc9 gsignal + 57
6  libc.so.6       0x00007fc9a61a50d8 abort + 328
7  llc             0x0000000002414cb1
8  llc             0x000000000229721c
9  llc             0x000000000229b157
llvm::RegsForValue::getCopyFromRegs(llvm::SelectionDAG&,
llvm::FunctionLoweringInfo&, llvm::SDLoc, llvm::SDValue&, llvm::SDValue*,
llvm::Value const*) const + 4209
10 llc             0x00000000022c4b6a
llvm::SelectionDAGBuilder::visitInlineAsm(llvm::ImmutableCallSite) + 11012
11 llc             0x00000000022c0d53
llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) + 109
12 llc             0x000000000229d260 llvm::SelectionDAGBuilder::visit(unsigned
int, llvm::User const&) + 1376
13 llc             0x000000000229cc5c
llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) + 140
14 llc             0x000000000232e731
llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction
const>, llvm::ilist_iterator<llvm::Instruction const>, bool&) + 69
15 llc             0x0000000002331966
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 2888
16 llc             0x000000000232d763
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 1533
17 llc             0x000000000161e530
18 llc             0x0000000001cfc72b
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 95
19 llc             0x0000000001ff3c26
llvm::FPPassManager::runOnFunction(llvm::Function&) + 290
20 llc             0x0000000001ff3db9
llvm::FPPassManager::runOnModule(llvm::Module&) + 97
21 llc             0x0000000001ff4154
22 llc             0x0000000001ff48a4
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 256
23 llc             0x0000000001ff4ae5
llvm::legacy::PassManager::run(llvm::Module&) + 39
24 llc             0x0000000000d614d7
25 llc             0x0000000000d602aa main + 242
26 libc.so.6       0x00007fc9a618cec5 __libc_start_main + 245
27 llc             0x0000000000d5eb79
Stack dump:
0.    Program arguments: ./llc fail.bc
1.    Running pass 'Function Pass Manager' on module 'fail.bc'.
2.    Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function
'@foo'

-- 
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/20160128/68e9baad/attachment.html>


More information about the llvm-bugs mailing list