[LLVMbugs] [Bug 12796] New: ARMFastISel::FinishCall doesn't handle returning general ARM NEON vectors
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu May 10 23:31:44 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=12796
Bug #: 12796
Summary: ARMFastISel::FinishCall doesn't handle returning
general ARM NEON vectors
Product: libraries
Version: trunk
Platform: PC
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: Backend: ARM
AssignedTo: unassignedbugs at nondot.org
ReportedBy: iannucci at mit.edu
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
It seems that ARMFastISel::FinishCall doesn't handle returns of ARM NEON
vectors unless (a) the vector is a pair of doubles, or (b) the vector fits into
an RVLoc vector of size 1. According to the ARM architecture procedure call
standard, for VCP co-processor containerized vector types, the ideal behavior
is to return the vector "in the appropriate number of consecutive VFP registers
starting with the lowest numbered register (s0, d0, q0)".
Here is a test case that triggers the assertion in question. Tested in trunk.
test.c:
__attribute__((neon_vector_type(16)))signed char b(){}void a(){b();}
Compile with
clang -cc1 -triple thumbv7-apple-ios -S test.c
--
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