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

Tim Northover t.p.northover at gmail.com
Fri Jan 24 03:31:55 PST 2014


> 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.



More information about the llvm-commits mailing list