[PATCH] D110235: [LoopVectorize] Support reductions that store intermediary result

David Sherwood via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 3 07:11:59 PST 2022


david-arm added a comment.

Hi @igor.kirillov, the patch looks good now! I just had one question about an odd-looking CHECK line in one of the test files.



================
Comment at: llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll:341
+; CHECK: exit:
+; CHECK: %[[PHI:[a-zA-Z.0-9]+]] = phi i32 {{.*}}
+; CHECK: %[[ADDR:[a-zA-Z.0-9]+]] = getelementptr inbounds i32, i32* %dst, i64 43
----------------
nit: I think it's fine (and cleaner) to just do

  %[[PHI:%.*]] =
  %[[ADDR:%.*]] =

here. Also, can you add the incoming value to the phi just to make sure it's the correct value? I think it should just be

  phi i32 {{ [[TMP]], %middle.block }}



================
Comment at: llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll:369
+; Make sure any check-not directives are not triggered by function declarations.
+; CHECK: declare
----------------
This looks a bit odd. I'm not sure why it's needed? If there is a CHECK-LABEL for every function I don't think this should happen.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110235



More information about the llvm-commits mailing list