[PATCH] D158332: [LV] Use IRBuidlder to create middle-block compare.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 19 07:04:43 PDT 2023


fhahn created this revision.
fhahn added reviewers: Ayal, gilr, rengolin.
Herald added subscribers: artagnon, luke, sunshaoce, StephenFan, frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya.
Herald added a project: All.
fhahn requested review of this revision.
Herald added subscribers: wangpc, MaskRay.
Herald added a project: LLVM.

Split off from D150398 <https://reviews.llvm.org/D150398> to avoid builder-related diff changes there.
Using IRBuilder to create ICmps simplifies the result if both operands
are constants.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D158332

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
  llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll
  llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
  llvm/test/Transforms/LoopVectorize/AArch64/synthesize-mask-for-call.ll
  llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-insertelt.ll
  llvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll
  llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
  llvm/test/Transforms/LoopVectorize/RISCV/interleaved-accesses.ll
  llvm/test/Transforms/LoopVectorize/RISCV/safe-dep-distance.ll
  llvm/test/Transforms/LoopVectorize/RISCV/short-trip-count.ll
  llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
  llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
  llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
  llvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll
  llvm/test/Transforms/LoopVectorize/X86/limit-vf-by-tripcount.ll
  llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
  llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
  llvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
  llvm/test/Transforms/LoopVectorize/X86/optsize.ll
  llvm/test/Transforms/LoopVectorize/X86/pr34438.ll
  llvm/test/Transforms/LoopVectorize/X86/pr36524.ll
  llvm/test/Transforms/LoopVectorize/X86/pr51366-sunk-instruction-used-outside-of-loop.ll
  llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
  llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
  llvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll
  llvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll
  llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
  llvm/test/Transforms/LoopVectorize/create-induction-resume.ll
  llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-const-TC.ll
  llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence-multiply-recurrences.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
  llvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll
  llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
  llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
  llvm/test/Transforms/LoopVectorize/induction-multiple-uses-in-same-instruction.ll
  llvm/test/Transforms/LoopVectorize/induction.ll
  llvm/test/Transforms/LoopVectorize/instruction-only-used-outside-of-loop.ll
  llvm/test/Transforms/LoopVectorize/is_fpclass.ll
  llvm/test/Transforms/LoopVectorize/lcssa-crashes.ll
  llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
  llvm/test/Transforms/LoopVectorize/load-of-struct-deref-pred.ll
  llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
  llvm/test/Transforms/LoopVectorize/pointer-induction-unroll.ll
  llvm/test/Transforms/LoopVectorize/pointer-induction.ll
  llvm/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll
  llvm/test/Transforms/LoopVectorize/pr44488-predication.ll
  llvm/test/Transforms/LoopVectorize/pr47343-expander-lcssa-after-cfg-update.ll
  llvm/test/Transforms/LoopVectorize/pr50686.ll
  llvm/test/Transforms/LoopVectorize/pr55167-fold-tail-live-out.ll
  llvm/test/Transforms/LoopVectorize/pr58811-scev-expansion.ll
  llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll
  llvm/test/Transforms/LoopVectorize/runtime-check-needed-but-empty.ll
  llvm/test/Transforms/LoopVectorize/scev-exit-phi-invalidation.ll
  llvm/test/Transforms/LoopVectorize/scev-predicate-reasoning.ll
  llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll
  llvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll
  llvm/test/Transforms/LoopVectorize/strided-accesses-interleave-only.ll
  llvm/test/Transforms/LoopVectorize/trunc-shifts.ll
  llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1.ll
  llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_and.ll
  llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll
  llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_lshr.ll
  llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction2.ll
  llvm/test/Transforms/LoopVectorize/widen-gep-all-indices-invariant.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158332.551748.patch
Type: text/x-patch
Size: 282406 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230819/f3648ab8/attachment-0001.bin>


More information about the llvm-commits mailing list