[PATCH] D126782: [AArch64] Look through bitcast when looking for extract_high subvector
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 7 09:56:02 PDT 2022
dmgreen added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:6516-6517
- def : Pat<(v8i16 (IntOp (v8i8 (extract_high_v16i8 V128:$Rn)),
- (v8i8 (extract_high_v16i8 V128:$Rm)))),
+ def : Pat<(v8i16 (IntOp (v8i8 (extract_high_v16i8 (v16i8 V128:$Rn))),
+ (v8i8 (extract_high_v16i8 (v16i8 V128:$Rm))))),
(!cast<Instruction>(NAME#"v16i8") V128:$Rn, V128:$Rm)>;
----------------
samtebbs wrote:
> Out of curiosity, what changes when being explicit about the operand's type?
Yeah all these types are a bit unfortunate - the old tablegen patterns for extract_high_v16i8 were able to deduce them automatically, but now that they are ComplexPattern they need to be explicit. The important parts are the extract_high and SelectExtractHigh parts above, these extra types are unfortunately just needed to make that work.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126782/new/
https://reviews.llvm.org/D126782
More information about the llvm-commits
mailing list