Commit Graph

1870 Commits

Author SHA1 Message Date
minybot
b6c1c205df Avx512cd (#963) 2020-12-09 00:32:37 +00:00
DevJPM
c5ccd02907 Add AVX512BITALG (#964)
This adds the AVX512BITALG intrinsics.
It also patches the verification against the Intel Intrinsic Guide
because Rust uses a different naming.
Added intrinsics match _mm(256|512)?(_maskz?)?_popcnt_epi(8|16) for the popcount ones
and _mm(256|512)?(_mask)?_bitshuffle_epi64_mask
2020-12-09 00:28:58 +00:00
DevJPM
fa56fcfd8a Add GFNI Intrinsics (#961) 2020-12-01 15:03:51 +00:00
DevJPM
c1ae807d89 Add AVX512VPOPCNTDQ Intrinsics (#962)
Adds all 18 intrinsics belongin to AVX512VPOPCNTDQ counting the number of set bits in packed 32 / 64 bit integers.
Intrinsics match _mm(256|512)?(_maskz?)?_popcnt_epi(32|64).
Versions for packed 8 and 16 bit integers are part of BITALG.
2020-12-01 09:44:58 +00:00
DevJPM
a6be1973aa Add VPCLMULQDQ Intrinsics (#943) 2020-12-01 09:44:10 +00:00
minybot
8cd6f164a6 Avx512bw (#960) 2020-12-01 09:43:01 +00:00
Andrew Sadler
f0ed8c497d Reimplement _xgetbv with LLVM intrinsics (#958)
`_xgetbv` was reimplemented to use inline assembly in #333 since LLVM
3.9 didn't export the intrinsic we needed to use.  LLVM 4.0 has since
rectified that issue, and since rust's minimum supported version of LLVM
is 8.0, this change can be reverted.
2020-11-24 20:38:17 +00:00
minybot
ea5a0d01d3 Avx512bw (#953) 2020-11-22 15:10:25 +00:00
Makoto Kato
fd99d973dc Add reamained vmax and vmin via auto-generated code (#956) 2020-11-22 14:07:22 +00:00
DevJPM
f9d32c56e2 Add VAES intrinsics (#942) 2020-11-22 13:50:18 +00:00
Makoto Kato
e799627ed7 Add vrev* instructions. (#950) 2020-11-16 06:28:03 +00:00
Adam Hillier
7ebfd93bb6 Add most single-register load Arm intrinsics. (#941) 2020-11-07 23:22:07 +00:00
minybot
7bb92b7809 Avx512f (#933) 2020-11-07 00:14:05 +00:00
Adam Hillier
c6ad1cf58b Add more addition Arm intrinsics (#939) 2020-11-06 21:56:51 +00:00
Makoto Kato
9a4ff9fe79 Use --no-show-raw-insn to make disassemble parser simple. (#948) 2020-11-06 21:56:36 +00:00
Nemo157
bb27bb7f64 Replace <c> element by markdown inline code (#946) 2020-11-04 23:51:49 +00:00
Joseph Richey
e254082775 Use black_box instead of llvm_asm (#944)
The implementation is the same (where possible), and it unblocks #904

Signed-off-by: Joe Richey <joerichey@google.com>
2020-11-04 17:20:13 +00:00
Aaron Hill
dd11a4b07b Remove trailing semicolons from several macro definitions (#938)
The x86 code contains several macros that following this pattern:

```rust
macro_rules! expr {
    () => { true; }
}

fn bar(_val: bool) {}

fn main() {
    bar(expr!());
}
```

Here, we have a macro `expr!` that expands to tokens sequence with
a trailing semicolon.

Currently, the trailing semicolon is ignored when the macro is invoked
in expression position, due to https://github.com/rust-lang/rust/issues/33953
If this behavior is changed, then a large number of macro invocations in
`stdarch` will stop compiling.

Regardless of whether nor not this change is made, removing the
semicolon more clearly expresses the intent of the code - these macros
are designed to expand to the result of a function call, not ignore its
results (as the `;` would suggest).
2020-11-02 00:54:21 +00:00
Joshua Nelson
33355e69c2 Fix some clippy lints (#937) 2020-11-02 00:53:39 +00:00
Adam Hillier
56e4b3dd1f Add shift-and-insert Arm intrinsics. (#936) 2020-11-02 00:44:25 +00:00
Adam Hillier
8f8df056ca Add popcount Arm intrinsics. (#935) 2020-10-26 18:21:24 +00:00
Makoto Kato
e020a85ff0 Run CI for i686-pc-windows-msvc (#934) 2020-10-25 01:32:27 +01:00
Makoto Kato
ddecf15383 Support ARM crypto extension on A32/T32 (#929) 2020-10-20 05:07:31 +01:00
minybot
ae707fa29d Avx512f (#927) 2020-10-17 01:14:41 +01:00
Guillaume Gomez
50c46fa268 Fix URLs (#928) 2020-10-14 20:46:52 +01:00
minybot
9090eec2f7 Avx512f (#921) 2020-10-10 17:14:15 +01:00
Ralf Jung
6c6f5e6b87 replace some unions by transmute and make the rest repr(C) (#925) 2020-10-06 18:18:15 +01:00
Jubilee
28f43f9fe5 Fix another "stdimd" typo (#923) 2020-10-03 20:24:07 +01:00
Joshua Nelson
fe2a752e8d Remove cfg(not(doc)) from doctests (#922)
This was changed from `cfg(dox)` to `cfg(doc)` in
https://github.com/rust-lang/stdarch/pull/920. `cfg(doc)` is incorrect
here; rustdoc sets `cfg(doctest)`, not `cfg(doc)` in doc-tests.

However, this piece of code isn't needed anyway: this code will only
ever be run as a doc-test, so it will never be compiled in.
2020-10-01 14:35:08 +01:00
Joshua Nelson
7f7ca407ff Replace cfg(dox) with cfg(doc) (#920)
`dox` has to be set explicitly, but `doc` is set whenever rustdoc runs.
This simplifies the doc process to `cargo doc` and means bootstrap can
stop passing `--cfg dox` when documenting crates.
2020-09-29 23:57:19 +01:00
Dong Bo
eba81a5a50 remove redundant feature declaration const_fn_transmute in lib.rs (#919) 2020-09-27 13:44:10 +01:00
minybot
4fd4980774 Avx512f (#917) 2020-09-26 15:47:20 +01:00
Dong Bo
4eefe3f4ab Implement prefetch hints for aarch64 (#918)
Co-authored-by: Wang Maozhang <wangmaozhang@huawei.com>
2020-09-26 02:37:57 +01:00
Ivan Tham
268ce21837 Switch to intra-doc links (#914) 2020-09-21 13:59:03 +01:00
minybot
99f0dac00e Avx512f (#912) 2020-09-19 22:16:01 +01:00
Jubilee
c0d49aec61 Fix typo stdimd -> stdsimd (#915) 2020-09-18 23:22:12 +01:00
Thom Chiovoloni
6a0969d12f Optimize std_detect's caching (#908) 2020-09-17 02:43:25 +01:00
Camelid
5ce2b53048 Remove old TODO (#911) 2020-09-17 00:19:46 +01:00
minybot
4a08ae849b Avx512f (#907) 2020-09-15 18:04:18 +01:00
Jeff Muizelaar
7fab649ef2 Properly escape the '[' and ']' (#910) 2020-09-15 14:03:20 +01:00
Jeff Muizelaar
53ff7829b7 Add vminq_f32 and vmaxq_f32 (#905) 2020-09-14 07:24:27 +01:00
Jeff Muizelaar
394940b950 Add vcvtq_u32_f32 and vcvtq_s32_f32 (#902) 2020-09-13 21:11:32 +01:00
minybot
cf1adeba7a Avx512f (#901) 2020-09-11 22:26:39 +01:00
Jeff Muizelaar
d6e2546615 Add vgetq_lane_s32 (#903) 2020-09-10 18:58:03 +01:00
Jeff Muizelaar
5b3d026e21 Add vld1q_s32 and vld1q_u32 (#899) 2020-09-08 21:52:58 +01:00
Jeff Muizelaar
78c5f04228 Add vld1q_dup_f32 (#897) 2020-09-08 14:39:56 +01:00
jethrogb
e8a9e43f93 Re-land mm_extract_epi fix (#898)
This reverts commit 311d56cd91609c1c1c0370cbd2ece8e3048653a5.

Co-authored-by: Jethro Beekman <jethro@fortanix.com>
2020-09-08 14:38:43 +01:00
minybot
3f982e086d Avx512f (#896) 2020-09-08 12:59:57 +01:00
Jeff Muizelaar
51ca88d3a6 Add vld1q_f32 (#892)
The alignment requirements should match the pointer type. See
llvm commit 8beaba13b8a61697008854b82ed3b45377af9d9d
2020-09-07 21:50:55 +01:00
Jeff Muizelaar
6f97356f7f Reformat avx512 (#894) 2020-09-07 20:45:20 +01:00