[PATCH] [AArch64] zext/sext from v1xx to v1xx

Jiangning Liu liujiangning1 at gmail.com
Sat Jan 25 19:35:01 PST 2014


OK. Fixed the following two and committed as r200113.
1) using "dup b0, v0.b[0]" for v1i8->v1i64
2) using "dup h0, v0.h[0]" for v1i16->v1i64

Thanks,
-Jiangning


2014/1/24 Tim Northover <t.p.northover at gmail.com>

> > Attached is to fix pattern match failure for zext/sext from v1xx to v1xx.
>
> +def : Pat<(v1i64 (zext (v1i8 FPR8:$Rn))),
> +        (v1i64 (ANDvvv_8B
> +          (v8i8 (SUBREG_TO_REG (i64 0), $Rn, sub_8)),
> +          (v8i8 (MOVIdi 1))))>;
>
> I'm not sure how much of an improvement it would be, but I think
> "(v1i64 (SUBREG_TO_REG (i64 0), (DUPbv_8 $Rn), sub_8))" (i.e. a single
> "mov bD, vN.b[0]" might be more efficient. Less register pressure and
> a single instruction.
>
> Other than that, it looks good.
>
> Cheers.
>
> Tim.
>



-- 
Thanks,
-Jiangning
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140126/18a4908f/attachment.html>


More information about the llvm-commits mailing list