[LLVMbugs] [Bug 7167] New: Assertion failure "Unexpected illegal type!" in LegalizeDAG.cpp when using shufflevector
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed May 19 03:16:06 PDT 2010
http://llvm.org/bugs/show_bug.cgi?id=7167
Summary: Assertion failure "Unexpected illegal type!" in
LegalizeDAG.cpp when using shufflevector
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: ARM
AssignedTo: unassignedbugs at nondot.org
ReportedBy: Edmund.Grimley-Evans at arm.com
CC: llvmbugs at cs.uiuc.edu
Almost any use of shufflevector that doesn't correspond to a recognised NEON
instruction seems to lead to:
llc: LegalizeDAG.cpp:778:
llvm::SDValue<unnamed>::SelectionDAGLegalize::LegalizeOp(llvm::SDValue):
Assertion `(isTypeLegal(Node->getOperand(i).getValueType()) ||
Node->getOperand(i).getOpcode() == ISD::TargetConstant) && "Unexpected illegal
type!"' failed.
My command line is:
llc -march=thumb -mcpu=cortex-a8 -mtriple=thumbv7-eabi -float-abi=hard
I'm on revision 104116.
Here are some examples:
; Ideally this would turn into a VREV32.16, I think:
define <8 x i8> @f1(<8 x i8> %x) nounwind {
%y = shufflevector <8 x i8> %x, <8 x i8> undef,
<8 x i32> <i32 2, i32 3, i32 0, i32 1, i32 6, i32 7, i32 4, i32 5>
ret <8 x i8> %y
}
; Ideally this would turn into a VSWP, I think:
define <4 x i64> @f1(<4 x i64> %x) nounwind {
%y = shufflevector <4 x i64> %x, <4 x i64> undef,
<4 x i32> <i32 0, i32 3, i32 2, i32 1>
ret <4 x i64> %y
}
; This is just a random permutation:
define <8 x i8> @f1(<8 x i8> %x) nounwind {
%y = shufflevector <8 x i8> %x, <8 x i8> undef,
<8 x i32> <i32 1, i32 2, i32 0, i32 5, i32 3, i32 6, i32 7, i32 4>
ret <8 x i8> %y
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list