[all-commits] [llvm/llvm-project] 95c7dd: Revert "[Hexagon] Don't build two halves of HVX ve...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Thu Dec 30 08:13:45 PST 2021

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 95c7dd8810b0bc93c0f76a285f1bcc3bd73f6a50
  Author: Krzysztof Parzyszek <kparzysz at quicinc.com>
  Date:   2021-12-30 (Thu, 30 Dec 2021)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
    M llvm/test/CodeGen/Hexagon/autohvx/isel-build-vector.ll

  Log Message:
  Revert "[Hexagon] Don't build two halves of HVX vector in parallel"

This reverts commit ba07f300c6d67a2c6dde8eef216b7a77ac4600bb.

A build-vector sequence is made of pairs: rotate+insert. When constructing
a single vector, this results in a chain of 2*N instructions. The rotate
operation is a permute operation, but the insert uses a multiplication
resource: insert and rotate can execute in the same cycle, but obviously
they cannot operate on the same vector. The original halving idea is still
beneficial since it does allow for insert/rotate overlap, and for hiding
insert's latency.

More information about the All-commits mailing list