[LLVMbugs] [Bug 11691] New: llc assertion failure generating arm neon vst2 with pointer update
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Jan 2 11:51:22 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=11691
Bug #: 11691
Summary: llc assertion failure generating arm neon vst2 with
pointer update
Product: new-bugs
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: andrew.b.adams at gmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 7828
--> http://llvm.org/bugs/attachment.cgi?id=7828
bugpoint-reduced failure case
llc fails an assertion when generating the arm neon VST2 instruction when it
detects it can use the address-updating form:
llc: /data/scratch/omap4/llvm/include/llvm/CodeGen/MachineOperand.h:385:
int64_t llvm::MachineOperand::getImm() const: Assertion `isImm() && "Wrong
MachineOperand accessor"' failed.
Stack dump:
0. Program arguments: llc bugpoint-reduced-simplified.bc
1. Running pass 'Function Pass Manager' on module
'bugpoint-reduced-simplified.bc'.
2. Running pass 'If Converter' on function '@curved_inner'
Aborted
I believe this is the case because the assertion is no longer triggered if you
include this check in ARMISelLowering.cpp at line 7340
--- a/lib/Target/ARM/ARMISelLowering.cpp
+++ b/lib/Target/ARM/ARMISelLowering.cpp
@@ -7335,6 +7335,10 @@ static SDValue CombineBaseUpdate(SDNode *N,
unsigned NumVecs = 0;
if (isIntrinsic) {
unsigned IntNo = cast<ConstantSDNode>(N->getOperand(1))->getZExtValue();
+
+ // AA: bail out for VST2 to avoid bug
+ if (IntNo == Intrinsic::arm_neon_vst2) continue;
+
switch (IntNo) {
default: assert(0 && "unexpected intrinsic for Neon base update");
case Intrinsic::arm_neon_vld1: NewOpc = ARMISD::VLD1_UPD;
A bugpoint-simplified bc file is attached. Compile it with -march=arm
-mcpu=cortex-a9
--
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