llvm-6502/test/CodeGen
Sebastian Pop cb4953089b Codegen failure for vmull with small vectors
Codegen was failing with an assertion because of unexpected vector
operands when legalizing the selection DAG for a MUL instruction.

The asserting code was legalizing multiplies for vectors of size 128
bits. It uses a custom lowering to try and detect cases where it can
use a VMULL instruction instead of a VMOVL + VMUL.  The code was
looking for input operands to the MUL that had been sign or zero
extended. If it found the extended operands it would drop the
sign/zero extension and use the original vector size as input to a
VMULL instruction.

The code assumed that the original input vector was 64 bits so that
after dropping the extension it would fit directly into a D register
and could be used as an operand of a VMULL instruction. The input
code that trigger the failure used a vector of <4 x i8> that was
sign extended to <4 x i32>. It was not safe to drop the sign
extension in this case because the original vector is only 32 bits
wide. The fix is to insert a sign extension for the vector to reach
the required 64 bit size. In this particular example, the vector would
need to be sign extented to a <4 x i16>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169024 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-30 19:08:04 +00:00
..
ARM Codegen failure for vmull with small vectors 2012-11-30 19:08:04 +00:00
CPP test commit 2012-07-18 17:53:05 +00:00
Generic Codegen support for arbitrary vector getelementptrs. 2012-11-13 13:01:58 +00:00
Hexagon test/CodeGen/Hexagon/postinc-load.ll: Suppress it for now. It triggered the failure on i686 hosts. 2012-11-14 22:22:37 +00:00
MBlaze
Mips [mips] Generate big GOT code. 2012-11-21 20:40:38 +00:00
MSP430 Add support for varargs functions for msp430. 2012-11-21 17:28:27 +00:00
NVPTX Teach the legalizer how to handle operands for VSELECT nodes 2012-11-29 14:26:28 +00:00
PowerPC test/CodeGen/PowerPC/vec_mul.ll: Fix register operands. 2012-11-30 18:29:01 +00:00
SPARC Use TargetTransformInfo to control switch-to-lookup table transformation 2012-10-30 11:23:25 +00:00
Thumb Convert an improper CodeGen test to a MC test. 2012-11-10 04:30:40 +00:00
Thumb2 Add GPRPair Register class to ARM. 2012-10-26 21:29:15 +00:00
X86 When combining consecutive stores allow loads in between the stores, if the loads do not alias. 2012-11-29 00:00:08 +00:00
XCore Fix handling of aliases to functions. 2012-11-16 21:12:38 +00:00