[all-commits] [llvm/llvm-project] 2ec380: [Hexagon] Improve handling of 32-bit mulh/mul_lohi...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Sat Oct 22 15:24:56 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2ec380b23f2e7058a1732582f890f9b41fd94175
      https://github.com/llvm/llvm-project/commit/2ec380b23f2e7058a1732582f890f9b41fd94175
  Author: Krzysztof Parzyszek <kparzysz at quicinc.com>
  Date:   2022-10-22 (Sat, 22 Oct 2022)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsHexagon.td
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonISelLowering.h
    M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
    M llvm/lib/Target/Hexagon/HexagonPatterns.td
    M llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
    M llvm/test/CodeGen/Hexagon/autohvx/mulh.ll
    A llvm/test/CodeGen/Hexagon/autohvx/vmpy-parts.ll

  Log Message:
  -----------
  [Hexagon] Improve handling of 32-bit mulh/mul_lohi on HVX

Handle MULH[US] by normalizing them into newly invented nodes
HexagonISD::(S|U|US)MUL_LOHI. On HVX v60, if only the high part of
SMUL_LOHI is used, use the original MULHS expansion. In all other
cases, expand the full product.
On HVX v62, always expand the full product.

Introduce Hexagon-specific LLVM IR intrinsics for 32x32 multiplication
returning low/high parts.




More information about the All-commits mailing list