[PATCH] D15515: [AArch64] Add missing extract extend patterns

Geoff Berry via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 15 07:45:18 PST 2015


gberry added inline comments.

================
Comment at: lib/Target/AArch64/AArch64InstrInfo.td:3809
@@ -3808,1 +3808,3 @@
 
+def : Pat<(sext_inreg (i64 (anyext (vector_extract (v16i8 V128:$Rn),
+            VectorIndexB:$idx))), i8),
----------------
mssimpso wrote:
> sbaranga wrote:
> > Any idea why we don't have (anyext (vector_extract (...) ) -> vector_extract ( )?
> > 
> > I see that vector_extract is EXTRACT_VECTOR_ELT, which according to ISDOpcodes.h should be able to perform the anyext operation. If that would happen, wouldn't one of the patterns above match this?
> I see what you're getting at, but as far as I know (please correct me if I'm wrong), "vector_extract" can't be used in an output pattern.
I think what Silvu is getting at is that maybe a better place to fix this would be to add a dag-combine that did (anyext (vector_extract (x)) -> vector_extract(x) (with the wider type).



http://reviews.llvm.org/D15515





More information about the llvm-commits mailing list