[all-commits] [llvm/llvm-project] 2bd367: [Hexagon] Translate IEEE HVX intrinsics to QFloat ...

Fateme Hosseini via All-commits all-commits at lists.llvm.org
Mon Jun 8 09:18:52 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2bd367126678f3c8bb9e7f0067cf37089c4807a4
      https://github.com/llvm/llvm-project/commit/2bd367126678f3c8bb9e7f0067cf37089c4807a4
  Author: Fateme Hosseini <Fhossein at qti.qualcomm.com>
  Date:   2026-06-08 (Mon, 08 Jun 2026)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
    M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h
    M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
    A llvm/test/CodeGen/Hexagon/autohvx/ieeetoqfloat.ll

  Log Message:
  -----------
  [Hexagon] Translate IEEE HVX intrinsics to QFloat on v79+ (#198832)

On Hexagon v79 and later, the IEEE-floating-point HVX
instruction encodings (sf/hf operands) are no longer
present in the architecture.  Code that uses the IEEE HVX
intrinsics still needs to compile for those targets, so
this change implicitly lowers the intrinsic calls to
equivalent QFloat (qf16 / qf32) sequences during DAG-to-DAG
instruction selection.  v75 and earlier continue to emit
the original IEEE encodings unchanged.

The translation covers 22 intrinsics: arithmetic kernels
(vadd / vsub / vmpy / vmpy-acc) for both hf-hf and sf-hf
operand pairs, sign-bit manipulation (vabs / vfneg), the
non-IEEE min/max variants, the cross-domain conversions
(vcvt_hf_h, vcvt_h_hf, vcvt_sf_hf), and vassign_fp.

9 HVX IEEE intrinsics are not translated by this patch
and will be added incrementally: the byte/ubyte/uhalf
conversion variants (vcvt_b_hf, vcvt_hf_b, vcvt_ub_hf,
vcvt_hf_ub, vcvt_uh_hf, vcvt_hf_uh), vcvt_h_hf (v79
requires a runtime call), vcvt_hf_sf, and vdmpy_sf_hf.
isIEEEHVXIntrinsic excludes them, so they fall through
to the normal SelectCode path rather than hitting
llvm_unreachable (which would be UB in release builds).

Co-authored-by: Sumanth Gundapaneni <sgundapa at quicinc.com>
Co-authored-by: Santanu Das <quic_santdas at quicinc.com>



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