Segmentation fault in lowerVectorShuffle

Hello,

I am getting segmentation fault in vshuffle implementation (lowerV32I64VectorShuffle) for v32i64.

After debugging and using bt i am getting the following messages;

(gdb) bt
#0 llvm::SDNode::isUndef (this=0x7fff00000001)
at /include/llvm/CodeGen/SelectionDAGNodes.h:556
#1 0x00000000009b8038 in llvm::SDValue::isUndef (this=0x7fffffff9d90)
at /include/llvm/CodeGen/SelectionDAGNodes.h:989
#2 0x0000000000970fed in lowerV16X128VectorShuffle (DL=…, VT=…, Mask=…,
V1=…, V2=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:13902
#3 0x000000000096f263 in lowerV32I64VectorShuffle (DL=…, Mask=…,
Zeroable=…, V1=…, V2=…, Subtarget=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:13995
#4 0x00000000009368ff in lower2048BitVectorShuffle (DL=…, Mask=…, VT=…,
V1=…, V2=…, Zeroable=…, Subtarget=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:14159
#5 0x00000000008bd6ff in lowerVectorShuffle (Op=…, Subtarget=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:15065
#6 0x00000000008b9573 in llvm::X86TargetLowering::LowerOperation (
this=0x3079f08, Op=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:24922
#7 0x00000000016fc710 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffb7f0, Node=0x310e500)
at /lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1111
#8 0x00000000016fb54c in llvm::SelectionDAG::Legalize (this=0x304ca70)
at /lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:4542
#9 0x0000000001815d45 in llvm::SelectionDAGISel::CodeGenAndEmitDAG (
this=0x304c5b0)
at /lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:831
#10 0x000000000181476e in llvm::SelectionDAGISel::SelectBasicBlock (
—Type to continue, or q to quit—
this=0x304c5b0, Begin=…, End=…, HadTailCall=@0x7fffffffc4fd: false)
at /lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:683
#11 0x00000000018145a5 in llvm::SelectionDAGISel::SelectAllBasicBlocks (
this=0x304c5b0, Fn=…)
at /lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1558

#12 0x0000000001812459 in llvm::SelectionDAGISel::runOnMachineFunction (
this=0x304c5b0, mf=…)
at /lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:504
#13 0x0000000000834c6b in (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction (this=0x304c5b0, MF=…)
at /lib/Target/X86/X86ISelDAGToDAG.cpp:176
#14 0x000000000104dce1 in llvm::MachineFunctionPass::runOnFunction (
this=0x304c5b0, F=…)
at /lib/CodeGen/MachineFunctionPass.cpp:62
#15 0x000000000147823f in llvm::FPPassManager::runOnFunction (this=0x3049b70,
F=…) at /lib/IR/LegacyPassManager.cpp:1513
#16 0x0000000001478555 in llvm::FPPassManager::runOnModule (this=0x3049b70,
M=…) at /lib/IR/LegacyPassManager.cpp:1534
#17 0x0000000001478cea in (anonymous namespace)::MPPassManager::runOnModule (
this=0x3034e50, M=…)
at /lib/IR/LegacyPassManager.cpp:1590
#18 0x0000000001478816 in llvm::legacy::PassManagerImpl::run (this=0x303f4d0,
M=…) at /lib/IR/LegacyPassManager.cpp:1693
#19 0x0000000001479201 in llvm::legacy::PassManager::run (this=0x7fffffffd788,
M=…) at /lib/IR/LegacyPassManager.cpp:1724
#20 0x000000000076be0e in compileModule (argv=0x7fffffffdf78, Context=…)
at /tools/llc/llc.cpp:528
—Type to continue, or q to quit—
#21 0x000000000076a2f9 in main (argc=4, argv=0x7fffffffdf78)
at /tools/llc/llc.cpp:285
(gdb)

How to resolve this issue? Please help.

Thank You

These methods are methods that are specific to your code and are not part of the llvm trunk. It’s going to be hard for us to tell you what’s wrong when we can’t see your code.

#2 0x0000000000970fed in lowerV16X128VectorShuffle (DL=…, VT=…, Mask=…,
V1=…, V2=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:13902
#3 0x000000000096f263 in lowerV32I64VectorShuffle (DL=…, Mask=…,
Zeroable=…, V1=…, V2=…, Subtarget=…, DAG=…)
at /lib/Target/X86/X86ISelLowering.cpp:13995
#4 0x00000000009368ff in lower2048BitVectorShuffle (DL=…, Mask=…, VT=…,
V1=…, V2=…, Zeroable=…, Subtarget=…, DAG=…)