Fix stdarch-verify test

This commit is contained in:
Daniel Smith 2020-05-27 22:57:27 +00:00 committed by Amanieu d'Antras
parent 7ab646ef42
commit 2d717c3623
2 changed files with 28 additions and 15 deletions

View file

@ -207,12 +207,4 @@ mod tests {
);
assert_eq_m512i(r, e);
}
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_cmplt_epu64_mask() {
let a = _mm512_set_epi64(0, 1, -1, u64::MAX as i64, i64::MAX, i64::MIN, 100, -100);
let b = _mm512_set1_epi64(-1);
let m = _mm512_cmplt_epu64_mask(a, b);
assert_eq!(m, 0b11001111);
}
}

View file

@ -18,18 +18,27 @@ pub unsafe fn _mm512_set_epi64(
e1: i64,
e0: i64,
) -> __m512i {
let r = i64x8(e0, e1, e2, e3, e4, e5, e6, e7);
transmute(r)
_mm512_setr_epi64(e7, e6, e5, e4, e3, e2, e1, e0);
}
/// Compare packed unsigned 64-bit integers in a and b for less-than, and store the results in a mask vector.
/// Sets packed 64-bit integers in `dst` with the supplied values in
/// reverse order.
///
/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=727,1063,4909,1062,1062&text=_mm512_cmplt_epu64)
/// [Intel's documentation]( https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=727,1063,4909,1062,1062,4909&text=_mm512_set_epi64)
#[inline]
#[target_feature(enable = "avx512f")]
#[cfg_attr(test, assert_instr(vpcmpuq))]
pub unsafe fn _mm512_cmplt_epu64_mask(a: __m512i, b: __m512i) -> __mmask8 {
simd_bitmask::<__m512i, _>(simd_lt(a.as_u64x8(), b.as_u64x8()))
pub unsafe fn _mm512_setr_epi64(
e7: i64,
e6: i64,
e5: i64,
e4: i64,
e3: i64,
e2: i64,
e1: i64,
e0: i64,
) -> __m512i {
let r = i64x8(e0, e1, e2, e3, e4, e5, e6, e7);
transmute(r)
}
#[cfg(test)]
@ -47,4 +56,16 @@ mod tests {
let m = _mm512_cmplt_epu64_mask(a, b);
assert_eq!(m, 0b11001111);
}
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_set_epi64() {
let r = _mm512_setr_epi64(0, 1, 2, 3, 4, 5, 6, 7);
assert_eq_m512i(r, _mm512_set_epi64(7, 6, 5, 4, 3, 2, 1, 0))
}
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_setr_epi64() {
let r = _mm512_set_epi64(0, 1, 2, 3, 4, 5, 6, 7);
assert_eq_m512i(r, _mm512_setr_epi64(7, 6, 5, 4, 3, 2, 1, 0))
}
}