[PATCH] D159267: [AArch64] Remove copy instruction between uaddlv and dup

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 31 10:12:05 PDT 2023


efriedma added a comment.

Ideally, we'd lower the intrinsic to some operation that returns its result in a vector register.  Given limitations of SelectionDAG, that means introducing an opcode that produces a <2 x i32> or something like that.  So instead of "(AArch64dup (int_aarch64_neon_uaddlv))", we'd end up with something more like "(AArch64dup (extract_element(AArch64uaddlv))", and existing patterns would naturally do the right thing.

Otherwise, I think we end up needing way too many patterns to cover every operation that could possibly use the result of a uaddlv in a vector register.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D159267/new/

https://reviews.llvm.org/D159267



More information about the llvm-commits mailing list