Commit Graph

1130 Commits

Author SHA1 Message Date
Folkert de Vries
ac92d7d006 use llvm.nearbyint.v4f32 for rounding
see https://godbolt.org/z/Wx1KWezbe to see that these in fact generate equivalent assembly
2025-02-23 23:21:06 +00:00
Folkert de Vries
f6d53388e6 use generic llvm intrinsics for min/max on powerpc 2025-02-23 23:21:06 +00:00
bendn
ae8b7b38aa fix 2025-02-23 23:15:57 +00:00
Nikita Popov
96c609e5f7 Update wasm sub sat intrinsics for LLVM 20
The wasm-specific intrinsics have been removed in
https://github.com/llvm/llvm-project/pull/109405, use the generic
ones instead.
2025-02-19 17:04:36 +00:00
Amanieu d'Antras
3107e07899 Remove target_feature_11 feature which is now stable 2025-02-14 16:40:26 +00:00
Folkert de Vries
d28b3b3eea add vec_nand, vec_nor, vec_eqv, vec_andc and vec_orc 2025-02-13 10:55:13 +00:00
Folkert de Vries
8e6208b18f s390x vector: add vec_and, vec_or and vec_xor 2025-02-13 10:55:13 +00:00
Folkert de Vries
507a298ba9 s390x vector: add vec_cntlz, vec_cnttz and vec_popcnt 2025-02-13 10:55:13 +00:00
sayantn
46fbfe9b09 Add the keylocker intrinsics 2025-02-13 10:54:53 +00:00
Eric Huss
d9ec0157da Format with style edition 2024 2025-02-09 12:57:14 -08:00
Eric Huss
1d091e3aaa Update documentation for unsafe_op_in_unsafe_fn
For the documentation side, we probably want to show the Rust 2024
style.
2025-02-09 12:31:33 -08:00
Eric Huss
844a604bf0 Allow unsafe_op_in_unsafe_fn
Because stdarch has a really large number of unsafe functions with
single-line calls, `unsafe_op_in_unsafe_fn` would end up adding a lot of
noise, so for now we will allow it to migrate to 2024.
2025-02-09 12:31:30 -08:00
Eric Huss
64e9ca74a8 Apply missing_unsafe_on_extern 2025-02-09 09:12:30 -08:00
Folkert de Vries
fe2acd4184 some doc changes 2025-02-07 22:42:27 +00:00
Folkert de Vries
6adb9dec75 add vec_splats for s390x 2025-02-07 22:42:27 +00:00
Folkert de Vries
55d37bd777 add vec_abs for s390x 2025-02-07 22:42:27 +00:00
Folkert de Vries
9be5f9b5f6 add vec_max and vec_min for s390x 2025-02-07 22:42:27 +00:00
Folkert de Vries
950229cd7d add vec_sub and vec_mul for s390x 2025-02-07 22:42:27 +00:00
Folkert de Vries
7f6d35d196 implement VectorAdd for s390x 2025-02-07 22:42:27 +00:00
sayantn
e6ea3dc21c Remove CSR accessing tests as they are immediate UB 2025-02-07 22:09:48 +00:00
sayantn
b7036c26db Fix names of several tests
Rewrote `_mm_cvtps_ph` and `_mm_cvtph_ps` tests
2025-02-07 22:09:48 +00:00
Jacob Bramley
bd598f3be3 Update stdarch-gen-arm path generation.
Fix both the instructions for how to regenerate each `generated.rs`, and
the logic for inferring the correct output path from each input
`.spec.yml`.
2025-02-03 21:15:41 +00:00
Jacob Bramley
81035da551 Fix usage of proc_macro2::Punct.
Restructure stdarch-gen-arm to use `Group`s with `Delimiter`s rather
than ad-hoc `Punct`s.

`Punct` should only be used to represent specific characters, and never
for bracket-like characters. Recent versions of `Punct::new` check this
with an assertion.

Note that there doesn't appear to be a way to emit a line break for
formatting reasons — `Punct::new('\n', ...)` no longer works — so this
also removes all blank lines between functions in the generated files.
2025-01-29 17:44:31 +00:00
Folkert de Vries
96576234db implement VectorAdd for s390x 2025-01-20 14:48:56 +00:00
Folkert de Vries
48bbd53d19 basic infra for s390x vector intrinsics 2025-01-20 14:48:56 +00:00
James Barford-Evans
a1be13aeeb refactor - remove Sized as it is implicit 2025-01-16 14:29:19 +00:00
James Barford-Evans
ebd0c622cd remove - relaxing if size 2025-01-16 14:29:19 +00:00
James Barford-Evans
56f7baadc9 fix: always inline signed conversions 2025-01-16 14:29:19 +00:00
James Barford-Evans
f283e449b1 PR feedback & pipeline 2025-01-16 14:29:19 +00:00
James Barford-Evans
28cb01cd6a Remove old ARM intrinsic generator 2025-01-16 14:29:19 +00:00
James Barford-Evans
57b6779050 Generator supports creating neon instructions from YAML 2025-01-16 14:29:19 +00:00
Satoshi Tanda
17422c6089 Fix typo and prettify comment 2024-12-29 10:44:14 +00:00
sayantn
a19239f298 Remove 2 unused intrinsics 2024-12-27 11:23:44 +00:00
sayantn
4da1071b68 Remove v64.rs as it was superseded by simd.rs 2024-12-27 11:23:44 +00:00
sayantn
3a3146a56c Refactor the as_* functions in x86 2024-12-27 11:23:44 +00:00
WANG Rui
75ec201457 core_arch: Add LoongArch basic intrinsics 2024-12-23 22:28:34 +00:00
sayantn
96154fbde8 Fix _mm*_mask_cmp_ep*_mask bug with IMM3=7 2024-12-21 12:02:41 +00:00
daxpedda
9ea6010f16 Fix Wasm f*_sqrt() doc 2024-12-21 12:02:28 +00:00
Martin Liska
728b35dfbb Remove buffers in tests for {f,}xsave{c,}{64,}
Fixes: #1672
2024-12-13 15:07:48 +00:00
Sayantan Chakraborty
5d3879f558 assert_instr for AMX 2024-12-12 16:56:01 +00:00
Sayantan Chakraborty
139b2ad3e3 Use core::intrinsics::fmaf16 instead of LLVM intrinsic 2024-12-12 16:56:01 +00:00
Sayantan Chakraborty
0b0b7e6fe1 Cleanup: remove redundant target features
Make target feature verification stricter
2024-12-12 16:56:01 +00:00
daxpedda
69efcbdb54 Add numeric instructions for Wasm not available in core 2024-12-12 16:53:36 +00:00
aaishwarymishra@gmail.com
b3bdc662d8 Fix incorrect documentation for _mm_loadu_si64 function 2024-12-09 03:02:48 +00:00
Alex Crichton
745ebd5362 wasm: Add missing #[target_feature] to simd ctors
This is a resubmission of #1609 which was ruled optional but not
necessary at the time but it's now necessary. These weren't originally
applied as they weren't allowed in a `const` context but that's no
longer applicable. At the same time though be sure to add some small
tests to ensure that these intrinsics can be used in a `const` context.
2024-12-02 16:28:24 +00:00
Martin Liska
a1e78aca2f Fix test-case 2024-11-30 23:07:21 +00:00
Martin Liska
0601aa385b Fix and document _mmX_alignr_epiX family of intrinsics 2024-11-30 23:07:21 +00:00
Martin Liska
1d10adfa38 Fix implementation of _mm256_alignr_epi8<16>
The function is supposed to return first argument for IMM8 == 8.
2024-11-30 23:07:21 +00:00
Martin Liska
6d24a9f72b Fix signature of _mm512_store{u,}_si512.
Simiarly to other functions for `mm` and `mm256` register widths, the
first argument should be a pointer to the pointer type. See e.g.
`_mm256_store_si256` function.
2024-11-30 21:35:13 +00:00
Ralf Jung
358aee539b remove rustc_allow_const_fn_unstable feature gate 2024-11-30 21:34:02 +00:00