[llvm-bugs] [Bug 26652] New: X86 instruction selection encounters invalid shufflevector instructions

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Feb 17 10:16:00 PST 2016


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

            Bug ID: 26652
           Summary: X86 instruction selection encounters invalid
                    shufflevector instructions
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: andrew.b.adams at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 15916
  --> https://llvm.org/bugs/attachment.cgi?id=15916&action=edit
.ll that triggers the issue

Some time over the last day trunk llvm starting barfing on the attached .ll
with the stack trace below. There are a bunch of shufflevector instructions in
the input, but all look legal to me.

$ ./llvm/trunk/build-64-g++-4.8/bin/llc bugpoint-reduced-function.ll 
llc:
/usr/local/google/home/abadams/projects/Halide/llvm/trunk/lib/IR/Instructions.cpp:1791:
static int llvm::ShuffleVectorInst::getMaskValue(llvm::Constant*, unsigned
int): Assertion `i < Mask->getType()->getVectorNumElements() && "Index out of
range"' failed.
#0 0x00000000013d8f25 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x13d8f25)
#1 0x00000000013d6cd6 llvm::sys::RunSignalHandlers()
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x13d6cd6)
#2 0x00000000013d6f01 SignalHandler(int)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x13d6f01)
#3 0x00007f4d41173330 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x10330)
#4 0x00007f4d40325cb7 gsignal
/tmp/tmp.Htw1L27e9P/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#5 0x00007f4d403290a8 abort /tmp/tmp.Htw1L27e9P/stdlib/abort.c:91:0
#6 0x00007f4d4031eb76 __assert_fail_base
/tmp/tmp.Htw1L27e9P/assert/assert.c:92:0
#7 0x00007f4d4031ec22 (/lib/x86_64-linux-gnu/libc.so.6+0x2fc22)
#8 0x000000000105e96c llvm::ShuffleVectorInst::getMaskValue(llvm::Constant*,
unsigned int)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x105e96c)
#9 0x000000000126249b isVectorReductionOp(llvm::User const*)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x126249b)
#10 0x000000000127300c llvm::SelectionDAGBuilder::visitBinary(llvm::User
const&, unsigned int)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x127300c)
#11 0x0000000001293c1a llvm::SelectionDAGBuilder::visit(llvm::Instruction
const&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x1293c1a)
#12 0x00000000012d0901
llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction
const>, llvm::ilist_iterator<llvm::Instruction const>, bool&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x12d0901)
#13 0x00000000012d8c0f
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x12d8c0f)
#14 0x00000000012da44c
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x12da44c)
#15 0x000000000065ed04 (anonymous
namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x65ed04)
#16 0x00000000010817d3 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x10817d3)
#17 0x0000000001081b8b llvm::FPPassManager::runOnModule(llvm::Module&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x1081b8b)
#18 0x0000000001081e9f llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x1081e9f)
#19 0x00000000006055a6 compileModule(char**, llvm::LLVMContext&)
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x6055a6)
#20 0x00000000005d2250 main
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x5d2250)
#21 0x00007f4d40310ec5 __libc_start_main
/tmp/tmp.Htw1L27e9P/csu/libc-start.c:321:0
#22 0x00000000005fd646 _start
(/usr/local/google/home/abadams/projects/Halide_trunk/llvm/trunk/build-64-g++-4.8/bin/llc+0x5fd646)
Stack dump:
0.    Program arguments: ./llvm/trunk/build-64-g++-4.8/bin/llc
bugpoint-reduced-function.ll 
1.    Running pass 'Function Pass Manager' on module
'bugpoint-reduced-function.ll'.
2.    Running pass 'X86 DAG->DAG Instruction Selection' on function
'@__argvcall'
Aborted (core dumped)

-- 
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/20160217/76ba6181/attachment.html>


More information about the llvm-bugs mailing list