[all-commits] [llvm/llvm-project] a84891: [instcombine] Scalarize operands of vector geps if...

Philip Reames via All-commits all-commits at lists.llvm.org
Tue Jun 24 09:48:21 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a84891698a2a13780d3804686ebf31d3639dd6a4
      https://github.com/llvm/llvm-project/commit/a84891698a2a13780d3804686ebf31d3639dd6a4
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2025-06-24 (Tue, 24 Jun 2025)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/fold-phi-arg-gep-to-phi-negative.ll
    M llvm/test/Transforms/InstCombine/getelementptr.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
    M llvm/test/Transforms/InstCombine/vector_gep1-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vector_gep1.ll

  Log Message:
  -----------
  [instcombine] Scalarize operands of vector geps if possible (#145402)

If we have a gep with vector indices which were splats (either constants
or shuffles), prefer the scalar form of the index. If all operands are
scalarizable, then prefer a scalar gep with splat following.

This does loose some information about undef/poison lanes, but I'm not
sure that's significant versus the number of downstream transformations
which get confused by having to manual scalarize operands.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list