[PATCH] D87796: [SVE][WIP] Lower fixed length VECREDUCE_ADD to Scalable

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 16 14:41:50 PDT 2020


efriedma added a comment.

I think the NEON code is trying to avoid producing an extra instruction if the result ends up getting used by a vector operation.  SelectionDAG technically allows instructions that produce an i64 result to return it in a floating-point register, but it doesn't work very well in practice: the operations that consume it will force it back into a GPR.  This is one of the issues GlobalISel's RegBankSelect solves.

It should be possible to make the patterns for SVE do the same thing, I think?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D87796



More information about the llvm-commits mailing list