about summary refs log tree commit diff
path: root/tests/codegen
diff options
context:
space:
mode:
authorTrevor Gross <tmgross@umich.edu>2025-01-23 01:46:24 +0000
committerTrevor Gross <t.gross35@gmail.com>2025-04-09 00:46:53 -0500
commit28b6df86036aeeb231e2ea09c78ea33645aa4325 (patch)
treebb074b2cbdb6351480aa558eef5d998e34453910 /tests/codegen
parent375cb5402fb1aa6bf8b4c513921b5f087decb3ca (diff)
downloadrust-28b6df86036aeeb231e2ea09c78ea33645aa4325.tar.gz
rust-28b6df86036aeeb231e2ea09c78ea33645aa4325.zip
Add assembly version of simple operations on aarch64
Replace `core::arch` versions of the following with handwritten
assembly, which avoids recursion issues (cg_gcc using `rint` as a
fallback) as well as problems with `aarch64be`.

* `rint`
* `rintf`

Additionally, add assembly versions of the following:

* `fma`
* `fmaf`
* `sqrt`
* `sqrtf`

If the `fp16` target feature is available, which implies `neon`, also
include the following:

* `rintf16`
* `sqrtf16`

`sqrt` is added to match the implementation for `x86`. `fma` is included
since it is used by many other routines.

There are a handful of other operations that have assembly
implementations. They are omitted here because we should have basic
float math routines available in `core` in the near future, which will
allow us to defer to LLVM for assembly lowering rather than implementing
these ourselves.
Diffstat (limited to 'tests/codegen')
0 files changed, 0 insertions, 0 deletions