[all-commits] [llvm/llvm-project] 9fcff0: [AArch64] Fold zero-high vector inserts in MI peep...

Amina Chabane via All-commits all-commits at lists.llvm.org
Wed Mar 4 09:13:28 PST 2026


  Branch: refs/heads/users/Amichaxx/vcombine_peephole
  Home:   https://github.com/llvm/llvm-project
  Commit: 9fcff0076b13cdd0209d80e422f5b1dd713636c6
      https://github.com/llvm/llvm-project/commit/9fcff0076b13cdd0209d80e422f5b1dd713636c6
  Author: Amichaxx <amina.chabane at arm.com>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    M llvm/test/CodeGen/AArch64/aarch64-addv.ll
    M llvm/test/CodeGen/AArch64/aarch64-matrix-umull-smull.ll
    M llvm/test/CodeGen/AArch64/bitcast-extend.ll
    M llvm/test/CodeGen/AArch64/ctpop.ll
    M llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll
    M llvm/test/CodeGen/AArch64/neon-lowhalf128-optimisation.ll
    M llvm/test/CodeGen/AArch64/peephole-insvigpr.mir

  Log Message:
  -----------
  [AArch64] Fold zero-high vector inserts in MI peephole optimisation

Summary
This patch follows on from #178227.
The previous ISel fold lowers the 64-bit case to:
    fmov d0, x0
    fmov d0, d0
which is not ideal and could be fmov d0, x0.
A redundant copy comes from the INSERT_SUBREG/INSvi64lane.

This peephole detects <2 x i64> vectors made of a zeroed upper and low
lane produced by FMOVXDr/FMOVDr, then removes the redundant copy.

Further updated tests and added MIR tests.


  Commit: 8778f23015b3ecfb24f0a673ef772bce59a25b3a
      https://github.com/llvm/llvm-project/commit/8778f23015b3ecfb24f0a673ef772bce59a25b3a
  Author: Amichaxx <amina.chabane at arm.com>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    A llvm/test/CodeGen/AArch64/aarch64-neonvector-tensorflow-regression.ll

  Log Message:
  -----------
  Compile time regression test


  Commit: 55d4280c03439a8e09494755d09737d1b44dd627
      https://github.com/llvm/llvm-project/commit/55d4280c03439a8e09494755d09737d1b44dd627
  Author: Amichaxx <amina.chabane at arm.com>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/aarch64-addv.ll
    R llvm/test/CodeGen/AArch64/aarch64-neonvector-tensorflow-regression.ll
    M llvm/test/CodeGen/AArch64/bitcast-extend.ll

  Log Message:
  -----------
  Update tests, remove regression test


Compare: https://github.com/llvm/llvm-project/compare/fb664ad79661...55d4280c0343

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