[llvm] [aarch64] Add hyperbolic and arc trig intrinsic lowering (PR #98937)

Paschalis Mpeis via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 18 05:20:40 PDT 2024


https://github.com/paschalis-mpeis commented:

Hey @farzonl ,

Unfortunately I cannot have a strong opinion on Global ISel contributions.

#### Regarding sources I've modified in the past
The below look OK to me:
- additions to `VecFuncs.def`
- all `replace-with-veclib-*`
- LoopVectorize `veclib-intrinsic-calls.ll`

I verified the existence of the symbols used in sources and test files on ArmPL and SLEEF libraries (see list at the bottom).

---

#### Regarding the rest of the sources and tests:
They also look reasonable and similar to existing sources, but I cannot vouch for them.

BTW in `GlobalISel/arm64-irtranslator.ll` other functions have variants for double as well for scalable vectors (float and double). Why this isn't the case for the newly added functions as well?


---

#### Symbos verified in libraries:
```bash
# ARMPL
armpl_vacosq_f64
armpl_vacosq_f32
armpl_svacos_f64_x
armpl_svacos_f32_x

armpl_vasinq_f64
armpl_vasinq_f32
armpl_svasin_f64_x
armpl_svasin_f32_x

armpl_vatanq_f64
armpl_vatanq_f32
armpl_svatan_f64_x
armpl_svatan_f32_x

armpl_vcoshq_f64
armpl_vcoshq_f32
armpl_svcosh_f64_x
armpl_svcosh_f32_x

armpl_vsinhq_f64
armpl_vsinhq_f32
armpl_svsinh_f64_x
armpl_svsinh_f32_x

armpl_vtanhq_f64
armpl_vtanhq_f32
armpl_svtanh_f64_x
armpl_svtanh_f32_x

# SLEEF
## Sleef scalable:
_ZGVsMxv_acos
_ZGVsMxv_acosf

_ZGVsMxv_asin
_ZGVsMxv_asinf

_ZGVsMxv_atan
_ZGVsMxv_atanf

_ZGVsMxv_cosh
_ZGVsMxv_coshf

_ZGVsMxv_sinh
_ZGVsMxv_sinhf

_ZGVsMxv_tanh
_ZGVsMxv_tanhf

## Sleef vector:
_ZGVnN2v_acos
_ZGVnN4v_acosf

_ZGVnN2v_asin
_ZGVnN4v_asinf

_ZGVnN2v_atan
_ZGVnN4v_atanf

_ZGVnN2v_cosh
_ZGVnN4v_coshf

_ZGVnN2v_sinh
_ZGVnN4v_sinhf

_ZGVnN2v_tanh
_ZGVnN4v_tanhf
```



https://github.com/llvm/llvm-project/pull/98937


More information about the llvm-commits mailing list