496 Commits

Author SHA1 Message Date
minybot
b7acc2e1da
Avx512f avx512vl (#1001) 2021-02-14 17:59:05 +00:00
Ralf Jung
8c6b267d44
use min_const_generics to avoid incomplete_features (#976) 2021-02-14 16:57:29 +00:00
Amanieu d'Antras
cd7547d369
Fix CI (#1007) 2021-02-14 12:07:11 +00:00
kangshan1157
936e1add97
Implement avx512bf16 intrinsics (#998) 2021-02-10 23:29:27 +00:00
minybot
54ce616d6b
Avx512 avx512vl (#999) 2021-02-10 03:14:34 +00:00
minybot
aca07c3104
Fix_avx512f,bw (#997) 2021-02-07 20:40:43 +00:00
minybot
135a256a9a
Avx512f avx512vl (#995) 2021-02-06 16:56:47 +00:00
Thom Chiovoloni
59dfb05bd0
Add 'volatile' to cpuid inline asm (#994) 2021-02-06 01:57:55 +00:00
minybot
ff16186fcc
Avx512f avx512vl (#991) 2021-02-03 23:52:48 +00:00
Eduardo Sánchez Muñoz
ec9e7f28b5
fix _mm_loadu_si64 (#992) 2021-02-03 23:18:16 +00:00
jethrogb
402d81b9a3
Clarify _mm256_shuffle_epi8 documentation (#990)
The old documentation seemed to suggest that the low 4 bits of bytes in `b` would index into the 32-element array `a`. That's not quite right and you'd need 5 bits to index 32 elements.
2021-01-30 20:06:21 +00:00
minybot
cae0862f44
Avx512f avx512vl (#988) 2021-01-30 20:05:34 +00:00
minybot
919dfbd0f2
Avx512f_avx512vl (#985) 2021-01-23 13:55:03 +00:00
Carlos Pérez
390ce8dca5
Fix false rustdoc broken_intra_link detection (#984)
I saw in https://github.com/rust-lang/rust/issues/81037
that when you document private items with rustdoc the
`x86 AVX-512 BITALG` feature comment does not contain
scape characters in the message and therefore rustdoc
was emiting warnings.

This fixes it.
2021-01-18 23:56:58 +00:00
minybot
7f67a97180
Avx512f_avx512vl (#983) 2021-01-18 23:56:21 +00:00
minybot
1f93bbe3b9
avx512vnni (#982) 2021-01-13 14:09:19 +00:00
minybot
6dc569d9d9
avx512vbmi2 (#979) 2021-01-11 16:52:19 +00:00
minybot
981e250f89
Avx512vbmi (#977) 2021-01-04 00:35:51 +00:00
Amanieu d'Antras
5f6e8a261f
Fix CI failure caused by new warnings (#978) 2021-01-03 22:17:21 +00:00
tmiasko
bd91c5e9cf
Remove no longer necessary bootstrap guards (#975) 2020-12-31 16:21:46 +00:00
minybot
448a5d481d
Avx512bw (#972) 2020-12-25 21:27:57 +00:00
tmiasko
111adc8ac0
Move code out of constify macros (#973) 2020-12-21 15:33:08 +00:00
minybot
6fc888bd95
Avx512bw (#971) 2020-12-14 02:35:10 +00:00
tmiasko
e8bef7ee3f
Use a bootstrap guard for modules with new target features (#970)
The recently added modules use target features that are not yet
available in rustc compiler used for bootstrapping.

Guard them with `#[cfg(not(bootstrap))]`.
2020-12-11 17:02:35 +00:00
tmiasko
9dc04c006f
Avoid calling intrinsics with invalid const arguments (#969) 2020-12-11 12:23:50 +00:00
minybot
a3a53f28be
Avx512bw (#965) 2020-12-09 00:35:34 +00:00
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