Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More x86 const generics conversions #1047

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
e0cdbe6
convert `_mm_aeskeygenassist_si128` to const generics
lqd Mar 4, 2021
5d60cb4
convert `_mm_extract_epi64` to const generics
lqd Mar 4, 2021
d538c7e
convert `_mm_insert_epi64` to const generics
lqd Mar 4, 2021
2ab199f
convert `_mm256_extract_epi64` to const generics
lqd Mar 4, 2021
5391f5e
convert `_mm_sha1rnds4_epu32` to const generics
lqd Mar 4, 2021
e4feec7
remove unused constify_imm x86 macro
lqd Mar 4, 2021
1b51708
convert `_mm_clmulepi64_si128` to const generics
lqd Mar 4, 2021
d42445f
convert `_mm512_cmp_epu16_mask` to const generics
lqd Mar 4, 2021
f503771
convert `_mm512_mask_cmp_epu16_mask` to const generics
lqd Mar 4, 2021
ad387ec
convert `_mm256_cmp_epu16_mask` to const generics
lqd Mar 4, 2021
e6af7a7
convert `_mm256_mask_cmp_epu16_mask` to const generics
lqd Mar 4, 2021
9865abe
convert `_mm_cmp_epu16_mask` to const generics
lqd Mar 4, 2021
417099b
convert `_mm_mask_cmp_epu16_mask` to const generics
lqd Mar 4, 2021
58cf57c
convert `_mm512_cmp_epu8_mask` to const generics
lqd Mar 4, 2021
91ab86e
convert `_mm512_mask_cmp_epu8_mask` to const generics
lqd Mar 4, 2021
c877097
convert `_mm256_cmp_epu8_mask` to const generics
lqd Mar 4, 2021
72ef6fc
convert `_mm256_mask_cmp_epu8_mask` to const generics
lqd Mar 4, 2021
87efe7f
convert `_mm_cmp_epu8_mask` to const generics
lqd Mar 4, 2021
4194761
convert `_mm_mask_cmp_epu8_mask` to const generics
lqd Mar 4, 2021
180fb13
convert `_mm512_cmp_epi16_mask` to const generics
lqd Mar 4, 2021
5b27c7b
convert `_mm512_mask_cmp_epi16_mask` to const generics
lqd Mar 4, 2021
9d2e150
convert `_mm256_cmp_epi16_mask` to const generics
lqd Mar 4, 2021
251ee8f
convert `_mm256_mask_cmp_epi16_mask` to const generics
lqd Mar 4, 2021
4367475
convert `_mm_cmp_epi16_mask` to const generics
lqd Mar 4, 2021
6daf457
convert `_mm_mask_cmp_epi16_mask` to const generics
lqd Mar 4, 2021
3328d52
convert `_mm512_cmp_epi8_mask` to const generics
lqd Mar 4, 2021
eb6db97
convert `_mm512_mask_cmp_epi8_mask` to const generics
lqd Mar 4, 2021
7c2e525
convert `_mm256_cmp_epi8_mask` to const generics
lqd Mar 4, 2021
d248792
convert `_mm256_mask_cmp_epi8_mask` to const generics
lqd Mar 4, 2021
be531e5
convert `_mm_cmp_epi8_mask` to const generics
lqd Mar 4, 2021
0617c2f
convert `_mm_mask_cmp_epi8_mask` to const generics
lqd Mar 4, 2021
9f97c68
convert `_mm512_slli_epi16` to const generics
lqd Mar 4, 2021
9bd0e81
convert `_mm512_mask_slli_epi16` to const generics
lqd Mar 4, 2021
21688a9
convert `_mm512_maskz_slli_epi16` to const generics
lqd Mar 4, 2021
2f4974e
convert `_mm512_srli_epi16` to const generics
lqd Mar 4, 2021
738d2e2
convert `_mm512_mask_srli_epi16` to const generics
lqd Mar 4, 2021
82e584e
convert `_mm512_maskz_srli_epi16` to const generics
lqd Mar 4, 2021
5c3fea1
convert `_mm256_mask_srli_epi16` to const generics
lqd Mar 4, 2021
202b4ca
convert `_mm256_maskz_srli_epi16` to const generics
lqd Mar 4, 2021
f8b9ddf
convert `_mm_mask_srli_epi16` to const generics
lqd Mar 4, 2021
236e9fe
convert `_mm_maskz_srli_epi16` to const generics
lqd Mar 4, 2021
3a5ecf1
convert `_mm512_srai_epi16` to const generics
lqd Mar 4, 2021
db3c119
convert `_mm512_mask_srai_epi16` to const generics
lqd Mar 4, 2021
6233708
convert `_mm512_maskz_srai_epi16` to const generics
lqd Mar 4, 2021
af3ca25
convert `_mm512_mask_shufflelo_epi16` to const generics
lqd Mar 4, 2021
43c3462
convert `_mm512_maskz_shufflelo_epi16` to const generics
lqd Mar 4, 2021
02f1e0a
convert `_mm256_mask_shufflelo_epi16` to const generics
lqd Mar 4, 2021
3a4eef9
convert `_mm256_maskz_shufflelo_epi16` to const generics
lqd Mar 4, 2021
dc096ce
convert `_mm_mask_shufflelo_epi16` to const generics
lqd Mar 4, 2021
cc968bd
convert `_mm_maskz_shufflelo_epi16` to const generics
lqd Mar 4, 2021
32aa7e6
convert `_mm512_mask_shufflehi_epi16` to const generics
lqd Mar 4, 2021
df7f344
convert `_mm512_maskz_shufflehi_epi16` to const generics
lqd Mar 4, 2021
ac84cef
convert `_mm256_mask_shufflehi_epi16` to const generics
lqd Mar 4, 2021
f409f1c
convert `_mm256_maskz_shufflehi_epi16` to const generics
lqd Mar 4, 2021
5e14a30
convert `_mm_mask_shufflehi_epi16` to const generics
lqd Mar 4, 2021
a42603c
convert `_mm_maskz_shufflehi_epi16` to const generics
lqd Mar 4, 2021
32208c8
convert `_mm512_dbsad_epu8` to const generics
lqd Mar 4, 2021
3b2f98c
convert `_mm512_mask_dbsad_epu8` to const generics
lqd Mar 4, 2021
bff52b5
convert `_mm512_maskz_dbsad_epu8` to const generics
lqd Mar 4, 2021
31d15ff
convert `_mm256_dbsad_epu8` to const generics
lqd Mar 4, 2021
ba5e536
convert `_mm256_mask_dbsad_epu8` to const generics
lqd Mar 4, 2021
d93ffb3
convert `_mm256_maskz_dbsad_epu8` to const generics
lqd Mar 5, 2021
492314e
convert `_mm_dbsad_epu8` to const generics
lqd Mar 5, 2021
aefa8a7
convert `_mm_mask_dbsad_epu8` to const generics
lqd Mar 5, 2021
2f96bad
convert `_mm_maskz_dbsad_epu8` to const generics
lqd Mar 5, 2021
602125b
convert `_mm512_mask_alignr_epi8` to const generics
lqd Mar 5, 2021
fe659e2
convert `_mm512_maskz_alignr_epi8` to const generics
lqd Mar 5, 2021
2da8026
convert `_mm256_mask_alignr_epi8` to const generics
lqd Mar 5, 2021
cc1337a
convert `_mm256_maskz_alignr_epi8` to const generics
lqd Mar 5, 2021
54e3f64
convert `_mm_mask_alignr_epi8` to const generics
lqd Mar 5, 2021
d5bcaba
convert `_mm_maskz_alignr_epi8` to const generics
lqd Mar 5, 2021
050d981
convert `_xabort` to const generics
lqd Mar 4, 2021
18b5cef
temporarily disable WASM CI
lqd Mar 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
- mips64-unknown-linux-gnuabi64
- mips64el-unknown-linux-gnuabi64
- s390x-unknown-linux-gnu
- wasm32-wasi
# - wasm32-wasi
- i586-unknown-linux-gnu
- x86_64-linux-android
- arm-linux-androideabi
Expand Down Expand Up @@ -131,8 +131,8 @@ jobs:
disable_assert_instr: true
- target: s390x-unknown-linux-gnu
os: ubuntu-latest
- target: wasm32-wasi
os: ubuntu-latest
# - target: wasm32-wasi
# os: ubuntu-latest
- target: aarch64-apple-darwin
os: macos-latest
norun: true
Expand Down
18 changes: 7 additions & 11 deletions crates/core_arch/src/x86/aes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,21 +87,17 @@ pub unsafe fn _mm_aesimc_si128(a: __m128i) -> __m128i {
///
/// Assist in expanding the AES cipher key by computing steps towards
/// generating a round key for encryption cipher using data from `a` and an
/// 8-bit round constant `imm8`.
/// 8-bit round constant `IMM8`.
///
/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_aeskeygenassist_si128)
#[inline]
#[target_feature(enable = "aes")]
#[cfg_attr(test, assert_instr(aeskeygenassist, imm8 = 0))]
#[rustc_args_required_const(1)]
#[cfg_attr(test, assert_instr(aeskeygenassist, IMM8 = 0))]
#[rustc_legacy_const_generics(1)]
#[stable(feature = "simd_x86", since = "1.27.0")]
pub unsafe fn _mm_aeskeygenassist_si128(a: __m128i, imm8: i32) -> __m128i {
macro_rules! call {
($imm8:expr) => {
aeskeygenassist(a, $imm8)
};
}
constify_imm8!(imm8, call)
pub unsafe fn _mm_aeskeygenassist_si128<const IMM8: i32>(a: __m128i) -> __m128i {
static_assert_imm8!(IMM8);
aeskeygenassist(a, IMM8 as u8)
}

#[cfg(test)]
Expand Down Expand Up @@ -169,7 +165,7 @@ mod tests {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc714138.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let e = _mm_set_epi64x(0x857c266b7c266e85, 0xeac4eea9c4eeacea);
let r = _mm_aeskeygenassist_si128(a, 5);
let r = _mm_aeskeygenassist_si128::<5>(a);
assert_eq_m128i(r, e);
}
}
2 changes: 1 addition & 1 deletion crates/core_arch/src/x86/avx2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5184,7 +5184,7 @@ mod tests {
#[simd_test(enable = "avx2")]
unsafe fn test_mm256_sll_epi64() {
let a = _mm256_set1_epi64x(0xFFFFFFFF);
let b = _mm_insert_epi64(_mm_set1_epi64x(0), 4, 0);
let b = _mm_insert_epi64::<0>(_mm_set1_epi64x(0), 4);
let r = _mm256_sll_epi64(a, b);
assert_eq_m256i(r, _mm256_set1_epi64x(0xFFFFFFFF0));
}
Expand Down
Loading