[all-commits] [llvm/llvm-project] e20391: [LoopVectorize] When tail-folding, don't always pr...

david-arm via All-commits all-commits at lists.llvm.org
Fri Nov 26 03:32:28 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e20391fc5d6a72e712449142e803fb81b8a75153
      https://github.com/llvm/llvm-project/commit/e20391fc5d6a72e712449142e803fb81b8a75153
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2021-11-26 (Fri, 26 Nov 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/tail-fold-uniform-memops.ll

  Log Message:
  -----------
  [LoopVectorize] When tail-folding, don't always predicate uniform loads

In VPRecipeBuilder::handleReplication if we believe the instruction
is predicated we then proceed to create new VP region blocks even
when the load is uniform and only predicated due to tail-folding.

I have updated isPredicatedInst to avoid treating a uniform load as
predicated when tail-folding, which means we can do a single scalar
load and a vector splat of the value.

Tests added here:

  Transforms/LoopVectorize/AArch64/tail-fold-uniform-memops.ll

Differential Revision: https://reviews.llvm.org/D112552




More information about the All-commits mailing list