[PATCH][AArch64] implement 3 aarch64 neon instrunctions (umov smov ins) in llvm
Kevin Qin
kevinqindev at gmail.com
Sun Sep 1 22:34:16 PDT 2013
Hi,
Attached is implementation of 'umov', 'smov' and 'ins' in llvm, covering
both of MC definition and IR pattern match.
1) smov is implemented as signed-extend following to extractelement.
2) umov is implemented as zero-extend following to extractelement, or just
extractelement only.
3) ins has 2 versions: one is insert from main, which is implemented as
insertelement; the other is insert from element, which is implemented
as insertelement
following to extractelement.
To avoid legalizing signed-extend and zero-extend to 'and' and
'sign_extend_inreg', we combined them with extractelement in early combine
stage, presenting as 'Neon_vector_extract' node.
Also, some codes are added to copyPhysReg() function to let llvm know how
to use these instructions when generating copy machine instruction between
GPR and FPR.
Please review this patch, thanks.
--
Best Regards,
Kevin Qin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130902/ddb79cb9/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: umov_smov_ins.patch
Type: application/octet-stream
Size: 48301 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130902/ddb79cb9/attachment.obj>
More information about the llvm-commits
mailing list