[PATCH] Implement AArch64 SISD intrinsics for vget_high and vget_low
Tim Northover
t.p.northover at gmail.com
Thu Nov 21 06:01:51 PST 2013
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.
More information about the llvm-commits
mailing list