[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