[PATCH][ARM] Get the correct input type type when generating a vpaddl

Silviu Baranga silbar01 at arm.com
Tue Apr 1 02:54:22 PDT 2014


Hi,

The attached patch fixes the code generation of vpaddl instructions in the
ARM backend.
The existing code assumed that the lane element type of the vector was the
same as the output
of the extract_vector_elt dag node. However extract_vector_elt can do an
extend operation.

This can produce an invalid vpaddl that has a mismatch between the input
type and the output
type (for example the produced node can take a vector of i16 and produce a
vector of i64),
causing the compiler to fail in instruction selection.

The fix generates a vpaddl which has the correct input type. However, in
this case we need to
extend or truncate the output to the required size. This is correct because
extract_vector_elt
is doing an any_extend.

Please review.

Thanks,
Silviu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vpaddl.diff
Type: application/octet-stream
Size: 2161 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140401/30882cb2/attachment.obj>


More information about the llvm-commits mailing list