[PATCH] Implement AArch64 SISD intrinsics for vget_high and vget_low

Jiangning Liu liujiangning1 at gmail.com
Thu Nov 21 18:53:41 PST 2013


Tim,

You are correct. I made the change and committed as r195408 and r195409.

Thanks,
-Jiangning


2013/11/21 Tim Northover <t.p.northover at gmail.com>

> Hi Jiangning,
>
> On 18 November 2013 10:48, Jiangning Liu <liujiangning1 at gmail.com> wrote:
> > Attached patch is to implement AArch64 SISD intrinsics for vget_high and
> > vget_low.
>
> +def Neon_High2D  : PatFrag<(ops node:$in),
> +                           (extract_subvector (v2i64 node:$in), (iPTR
> 1))>;
> +def Neon_High2d  : PatFrag<(ops node:$in),
> +                           (extract_subvector (v2f64 node:$in), (iPTR
> 1))>;
>
> These two should not be named so similarly. There's also (existing,
> but shouldn't) capitalisation confusion in that area: Neon_High vs
> Neon_low.
>
> +  def : Pat<(ResTy (GetLow VPR128:$Rn)),
> +            (ResTy (DUPdv_D (OpTy VPR128:$Rn), 0))>;
>
> This should be a simple EXTRACT_SUBREG shouldn't it? That way the
> register allocator can almost certainly remove it completely. In
> particular I'd expect all of your tests to be empty functions: "ret"
> only.
>
> Cheers.
>
> Tim.
>



-- 
Thanks,
-Jiangning
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131122/6c1d89eb/attachment.html>


More information about the cfe-commits mailing list