[all-commits] [llvm/llvm-project] f334db: [llvm][CodeGen] Intrinsic `llvm.powi.*` code gen f...

Zhaoxin Yang via All-commits all-commits at lists.llvm.org
Wed Dec 18 16:57:53 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f334db92be168876b618db72dc93078ce23ffa89
      https://github.com/llvm/llvm-project/commit/f334db92be168876b618db72dc93078ce23ffa89
  Author: Zhaoxin Yang <yangzhaoxin at loongson.cn>
  Date:   2024-12-19 (Thu, 19 Dec 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    A llvm/test/CodeGen/LoongArch/lasx/fpowi.ll
    A llvm/test/CodeGen/LoongArch/lsx/fpowi.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fpowi.ll

  Log Message:
  -----------
  [llvm][CodeGen] Intrinsic `llvm.powi.*` code gen for vector arguments (#118242)

Scalarize vector FPOWI instead of promoting the type. This allows the
scalar FPOWIs to be visited and converted to libcalls before promoting
the type.

FIXME: This should be done in LegalizeVectorOps/LegalizeDAG, but call
lowering needs the unpromoted EVT.

Without this patch, in some backends, such as RISCV64 and LoongArch64,
the i32 type is illegal and will be promoted. This causes exponent type
check to fail when ISD::FPOWI node generates a libcall.

Fix https://github.com/llvm/llvm-project/issues/118079



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