some avx512 to const generics (#1054)

This commit is contained in:
minybot 2021-03-07 10:06:22 -05:00 committed by GitHub
parent 0203e47f5e
commit e54e113b05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 1147 additions and 2863 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -3219,7 +3219,7 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_getmant_pd() {
let a = _mm512_set1_pd(10.);
let r = _mm512_getmant_pd(a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm512_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a);
let e = _mm512_set1_pd(1.25);
assert_eq_m512d(r, e);
}
@ -3227,9 +3227,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_mask_getmant_pd() {
let a = _mm512_set1_pd(10.);
let r = _mm512_mask_getmant_pd(a, 0, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm512_mask_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a, 0, a);
assert_eq_m512d(r, a);
let r = _mm512_mask_getmant_pd(a, 0b11110000, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm512_mask_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a, 0b11110000, a);
let e = _mm512_setr_pd(10., 10., 10., 10., 1.25, 1.25, 1.25, 1.25);
assert_eq_m512d(r, e);
}
@ -3237,9 +3237,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_maskz_getmant_pd() {
let a = _mm512_set1_pd(10.);
let r = _mm512_maskz_getmant_pd(0, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm512_maskz_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(0, a);
assert_eq_m512d(r, _mm512_setzero_pd());
let r = _mm512_maskz_getmant_pd(0b11110000, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm512_maskz_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(0b11110000, a);
let e = _mm512_setr_pd(0., 0., 0., 0., 1.25, 1.25, 1.25, 1.25);
assert_eq_m512d(r, e);
}
@ -3247,7 +3247,7 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_getmant_pd() {
let a = _mm256_set1_pd(10.);
let r = _mm256_getmant_pd(a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm256_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a);
let e = _mm256_set1_pd(1.25);
assert_eq_m256d(r, e);
}
@ -3255,9 +3255,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_mask_getmant_pd() {
let a = _mm256_set1_pd(10.);
let r = _mm256_mask_getmant_pd(a, 0, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm256_mask_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a, 0, a);
assert_eq_m256d(r, a);
let r = _mm256_mask_getmant_pd(a, 0b00001111, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm256_mask_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a, 0b00001111, a);
let e = _mm256_set1_pd(1.25);
assert_eq_m256d(r, e);
}
@ -3265,9 +3265,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_maskz_getmant_pd() {
let a = _mm256_set1_pd(10.);
let r = _mm256_maskz_getmant_pd(0, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm256_maskz_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(0, a);
assert_eq_m256d(r, _mm256_setzero_pd());
let r = _mm256_maskz_getmant_pd(0b00001111, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm256_maskz_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(0b00001111, a);
let e = _mm256_set1_pd(1.25);
assert_eq_m256d(r, e);
}
@ -3275,7 +3275,7 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm_getmant_pd() {
let a = _mm_set1_pd(10.);
let r = _mm_getmant_pd(a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a);
let e = _mm_set1_pd(1.25);
assert_eq_m128d(r, e);
}
@ -3283,9 +3283,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm_mask_getmant_pd() {
let a = _mm_set1_pd(10.);
let r = _mm_mask_getmant_pd(a, 0, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm_mask_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a, 0, a);
assert_eq_m128d(r, a);
let r = _mm_mask_getmant_pd(a, 0b00000011, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm_mask_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(a, 0b00000011, a);
let e = _mm_set1_pd(1.25);
assert_eq_m128d(r, e);
}
@ -3293,9 +3293,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm_maskz_getmant_pd() {
let a = _mm_set1_pd(10.);
let r = _mm_maskz_getmant_pd(0, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm_maskz_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(0, a);
assert_eq_m128d(r, _mm_setzero_pd());
let r = _mm_maskz_getmant_pd(0b00000011, a, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC);
let r = _mm_maskz_getmant_pd::<_MM_MANT_NORM_1_2, _MM_MANT_SIGN_SRC>(0b00000011, a);
let e = _mm_set1_pd(1.25);
assert_eq_m128d(r, e);
}
@ -6030,7 +6030,7 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_roundscale_round_pd() {
let a = _mm512_set1_pd(1.1);
let r = _mm512_roundscale_round_pd(a, 0, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_roundscale_round_pd::<0, _MM_FROUND_CUR_DIRECTION>(a);
let e = _mm512_set1_pd(1.0);
assert_eq_m512d(r, e);
}
@ -6038,10 +6038,10 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_mask_roundscale_round_pd() {
let a = _mm512_set1_pd(1.1);
let r = _mm512_mask_roundscale_round_pd(a, 0, a, 0, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_mask_roundscale_round_pd::<0, _MM_FROUND_CUR_DIRECTION>(a, 0, a);
let e = _mm512_set1_pd(1.1);
assert_eq_m512d(r, e);
let r = _mm512_mask_roundscale_round_pd(a, 0b11111111, a, 0, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_mask_roundscale_round_pd::<0, _MM_FROUND_CUR_DIRECTION>(a, 0b11111111, a);
let e = _mm512_set1_pd(1.0);
assert_eq_m512d(r, e);
}
@ -6049,9 +6049,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_maskz_roundscale_round_pd() {
let a = _mm512_set1_pd(1.1);
let r = _mm512_maskz_roundscale_round_pd(0, a, 0, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_maskz_roundscale_round_pd::<0, _MM_FROUND_CUR_DIRECTION>(0, a);
assert_eq_m512d(r, _mm512_setzero_pd());
let r = _mm512_maskz_roundscale_round_pd(0b11111111, a, 0, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_maskz_roundscale_round_pd::<0, _MM_FROUND_CUR_DIRECTION>(0b11111111, a);
let e = _mm512_set1_pd(1.0);
assert_eq_m512d(r, e);
}
@ -6100,7 +6100,7 @@ mod tests {
let a = _mm512_set1_pd(f64::NAN);
let b = _mm512_set1_pd(f64::MAX);
let c = _mm512_set1_epi64(i32::MAX as i64);
let r = _mm512_fixupimm_round_pd(a, b, c, 5, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_fixupimm_round_pd::<5, _MM_FROUND_CUR_DIRECTION>(a, b, c);
let e = _mm512_set1_pd(0.0);
assert_eq_m512d(r, e);
}
@ -6110,7 +6110,7 @@ mod tests {
let a = _mm512_set_pd(f64::NAN, f64::NAN, f64::NAN, f64::NAN, 1., 1., 1., 1.);
let b = _mm512_set1_pd(f64::MAX);
let c = _mm512_set1_epi64(i32::MAX as i64);
let r = _mm512_mask_fixupimm_round_pd(a, 0b11110000, b, c, 5, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_mask_fixupimm_round_pd::<5, _MM_FROUND_CUR_DIRECTION>(a, 0b11110000, b, c);
let e = _mm512_set_pd(0., 0., 0., 0., 1., 1., 1., 1.);
assert_eq_m512d(r, e);
}
@ -6120,7 +6120,7 @@ mod tests {
let a = _mm512_set_pd(f64::NAN, f64::NAN, f64::NAN, f64::NAN, 1., 1., 1., 1.);
let b = _mm512_set1_pd(f64::MAX);
let c = _mm512_set1_epi64(i32::MAX as i64);
let r = _mm512_maskz_fixupimm_round_pd(0b11110000, a, b, c, 5, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_maskz_fixupimm_round_pd::<5, _MM_FROUND_CUR_DIRECTION>(0b11110000, a, b, c);
let e = _mm512_set_pd(0., 0., 0., 0., 0., 0., 0., 0.);
assert_eq_m512d(r, e);
}
@ -6128,12 +6128,11 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_getmant_round_pd() {
let a = _mm512_set1_pd(10.);
let r = _mm512_getmant_round_pd(
a,
let r = _mm512_getmant_round_pd::<
_MM_MANT_NORM_1_2,
_MM_MANT_SIGN_SRC,
_MM_FROUND_CUR_DIRECTION,
);
>(a);
let e = _mm512_set1_pd(1.25);
assert_eq_m512d(r, e);
}
@ -6141,23 +6140,17 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_mask_getmant_round_pd() {
let a = _mm512_set1_pd(10.);
let r = _mm512_mask_getmant_round_pd(
a,
0,
a,
let r = _mm512_mask_getmant_round_pd::<
_MM_MANT_NORM_1_2,
_MM_MANT_SIGN_SRC,
_MM_FROUND_CUR_DIRECTION,
);
>(a, 0, a);
assert_eq_m512d(r, a);
let r = _mm512_mask_getmant_round_pd(
a,
0b11110000,
a,
let r = _mm512_mask_getmant_round_pd::<
_MM_MANT_NORM_1_2,
_MM_MANT_SIGN_SRC,
_MM_FROUND_CUR_DIRECTION,
);
>(a, 0b11110000, a);
let e = _mm512_setr_pd(10., 10., 10., 10., 1.25, 1.25, 1.25, 1.25);
assert_eq_m512d(r, e);
}
@ -6165,21 +6158,17 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_maskz_getmant_round_pd() {
let a = _mm512_set1_pd(10.);
let r = _mm512_maskz_getmant_round_pd(
0,
a,
let r = _mm512_maskz_getmant_round_pd::<
_MM_MANT_NORM_1_2,
_MM_MANT_SIGN_SRC,
_MM_FROUND_CUR_DIRECTION,
);
>(0, a);
assert_eq_m512d(r, _mm512_setzero_pd());
let r = _mm512_maskz_getmant_round_pd(
0b11110000,
a,
let r = _mm512_maskz_getmant_round_pd::<
_MM_MANT_NORM_1_2,
_MM_MANT_SIGN_SRC,
_MM_FROUND_CUR_DIRECTION,
);
>(0b11110000, a);
let e = _mm512_setr_pd(0., 0., 0., 0., 1.25, 1.25, 1.25, 1.25);
assert_eq_m512d(r, e);
}
@ -6500,7 +6489,7 @@ mod tests {
#[rustfmt::skip]
let a = _mm512_set_pd(0., 1., -1., 13., f64::MAX, f64::MIN, 100., -100.);
let b = _mm512_set1_pd(-1.);
let m = _mm512_cmp_round_pd_mask(a, b, _CMP_LT_OQ, _MM_FROUND_CUR_DIRECTION);
let m = _mm512_cmp_round_pd_mask::<_CMP_LT_OQ, _MM_FROUND_CUR_DIRECTION>(a, b);
assert_eq!(m, 0b00000101);
}
@ -6510,7 +6499,7 @@ mod tests {
let a = _mm512_set_pd(0., 1., -1., 13., f64::MAX, f64::MIN, 100., -100.);
let b = _mm512_set1_pd(-1.);
let mask = 0b01100110;
let r = _mm512_mask_cmp_round_pd_mask(mask, a, b, _CMP_LT_OQ, _MM_FROUND_CUR_DIRECTION);
let r = _mm512_mask_cmp_round_pd_mask::<_CMP_LT_OQ, _MM_FROUND_CUR_DIRECTION>(mask, a, b);
assert_eq!(r, 0b00000100);
}
@ -8886,7 +8875,7 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_permute_pd() {
let a = _mm512_setr_pd(0., 1., 2., 3., 4., 5., 6., 7.);
let r = _mm512_permute_pd(a, 0b1111);
let r = _mm512_permute_pd::<0b11_11_11_11>(a);
let e = _mm512_setr_pd(1., 1., 3., 3., 5., 5., 7., 7.);
assert_eq_m512d(r, e);
}
@ -8894,9 +8883,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_mask_permute_pd() {
let a = _mm512_setr_pd(0., 1., 2., 3., 4., 5., 6., 7.);
let r = _mm512_mask_permute_pd(a, 0, a, 0b1111);
let r = _mm512_mask_permute_pd::<0b11_11_11_11>(a, 0, a);
assert_eq_m512d(r, a);
let r = _mm512_mask_permute_pd(a, 0b11111111, a, 0b1111);
let r = _mm512_mask_permute_pd::<0b11_11_11_11>(a, 0b11111111, a);
let e = _mm512_setr_pd(1., 1., 3., 3., 5., 5., 7., 7.);
assert_eq_m512d(r, e);
}
@ -8904,9 +8893,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_maskz_permute_pd() {
let a = _mm512_setr_pd(0., 1., 2., 3., 4., 5., 6., 7.);
let r = _mm512_maskz_permute_pd(0, a, 0b1111);
let r = _mm512_maskz_permute_pd::<0b11_11_11_11>(0, a);
assert_eq_m512d(r, _mm512_setzero_pd());
let r = _mm512_maskz_permute_pd(0b11111111, a, 0b1111);
let r = _mm512_maskz_permute_pd::<0b11_11_11_11>(0b11111111, a);
let e = _mm512_setr_pd(1., 1., 3., 3., 5., 5., 7., 7.);
assert_eq_m512d(r, e);
}
@ -8914,9 +8903,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_mask_permute_pd() {
let a = _mm256_set_pd(3., 2., 1., 0.);
let r = _mm256_mask_permute_pd(a, 0, a, 0b1111);
let r = _mm256_mask_permute_pd::<0b11_11>(a, 0, a);
assert_eq_m256d(r, a);
let r = _mm256_mask_permute_pd(a, 0b00001111, a, 0b1111);
let r = _mm256_mask_permute_pd::<0b11_11>(a, 0b00001111, a);
let e = _mm256_set_pd(3., 3., 1., 1.);
assert_eq_m256d(r, e);
}
@ -8924,9 +8913,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_maskz_permute_pd() {
let a = _mm256_set_pd(3., 2., 1., 0.);
let r = _mm256_maskz_permute_pd(0, a, 0b1111);
let r = _mm256_maskz_permute_pd::<0b11_11>(0, a);
assert_eq_m256d(r, _mm256_setzero_pd());
let r = _mm256_maskz_permute_pd(0b00001111, a, 0b1111);
let r = _mm256_maskz_permute_pd::<0b11_11>(0b00001111, a);
let e = _mm256_set_pd(3., 3., 1., 1.);
assert_eq_m256d(r, e);
}
@ -8954,7 +8943,7 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_permutex_epi64() {
let a = _mm512_setr_epi64(0, 1, 2, 3, 4, 5, 6, 7);
let r = _mm512_permutex_epi64(a, 0b11111111);
let r = _mm512_permutex_epi64::<0b11_11_11_11>(a);
let e = _mm512_setr_epi64(3, 3, 3, 3, 7, 7, 7, 7);
assert_eq_m512i(r, e);
}
@ -8962,9 +8951,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_mask_permutex_epi64() {
let a = _mm512_setr_epi64(0, 1, 2, 3, 4, 5, 6, 7);
let r = _mm512_mask_permutex_epi64(a, 0, a, 0b11111111);
let r = _mm512_mask_permutex_epi64::<0b11_11_11_11>(a, 0, a);
assert_eq_m512i(r, a);
let r = _mm512_mask_permutex_epi64(a, 0b11111111, a, 0b11111111);
let r = _mm512_mask_permutex_epi64::<0b11_11_11_11>(a, 0b11111111, a);
let e = _mm512_setr_epi64(3, 3, 3, 3, 7, 7, 7, 7);
assert_eq_m512i(r, e);
}
@ -8972,9 +8961,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_maskz_permutex_epi64() {
let a = _mm512_setr_epi64(0, 1, 2, 3, 4, 5, 6, 7);
let r = _mm512_maskz_permutex_epi64(0, a, 0b11111111);
let r = _mm512_maskz_permutex_epi64::<0b11_11_11_11>(0, a);
assert_eq_m512i(r, _mm512_setzero_si512());
let r = _mm512_maskz_permutex_epi64(0b11111111, a, 0b11111111);
let r = _mm512_maskz_permutex_epi64::<0b11_11_11_11>(0b11111111, a);
let e = _mm512_setr_epi64(3, 3, 3, 3, 7, 7, 7, 7);
assert_eq_m512i(r, e);
}
@ -8982,7 +8971,7 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_permutex_epi64() {
let a = _mm256_set_epi64x(3, 2, 1, 0);
let r = _mm256_permutex_epi64(a, 0b11111111);
let r = _mm256_permutex_epi64::<0b11_11_11_11>(a);
let e = _mm256_set_epi64x(3, 3, 3, 3);
assert_eq_m256i(r, e);
}
@ -8990,9 +8979,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_mask_permutex_epi64() {
let a = _mm256_set_epi64x(3, 2, 1, 0);
let r = _mm256_mask_permutex_epi64(a, 0, a, 0b11111111);
let r = _mm256_mask_permutex_epi64::<0b11_11_11_11>(a, 0, a);
assert_eq_m256i(r, a);
let r = _mm256_mask_permutex_epi64(a, 0b00001111, a, 0b11111111);
let r = _mm256_mask_permutex_epi64::<0b11_11_11_11>(a, 0b00001111, a);
let e = _mm256_set_epi64x(3, 3, 3, 3);
assert_eq_m256i(r, e);
}
@ -9000,9 +8989,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm256_maskz_permutex_epi64() {
let a = _mm256_set_epi64x(3, 2, 1, 0);
let r = _mm256_maskz_permutex_epi64(0, a, 0b11111111);
let r = _mm256_maskz_permutex_epi64::<0b11_11_11_11>(0, a);
assert_eq_m256i(r, _mm256_setzero_si256());
let r = _mm256_maskz_permutex_epi64(0b00001111, a, 0b11111111);
let r = _mm256_maskz_permutex_epi64::<0b11_11_11_11>(0b00001111, a);
let e = _mm256_set_epi64x(3, 3, 3, 3);
assert_eq_m256i(r, e);
}
@ -9010,7 +8999,7 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_permutex_pd() {
let a = _mm512_setr_pd(0., 1., 2., 3., 4., 5., 6., 7.);
let r = _mm512_permutex_pd(a, 0b11111111);
let r = _mm512_permutex_pd::<0b11_11_11_11>(a);
let e = _mm512_setr_pd(3., 3., 3., 3., 7., 7., 7., 7.);
assert_eq_m512d(r, e);
}
@ -9018,9 +9007,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_mask_permutex_pd() {
let a = _mm512_setr_pd(0., 1., 2., 3., 4., 5., 6., 7.);
let r = _mm512_mask_permutex_pd(a, 0, a, 0b11111111);
let r = _mm512_mask_permutex_pd::<0b11_11_11_11>(a, 0, a);
assert_eq_m512d(r, a);
let r = _mm512_mask_permutex_pd(a, 0b11111111, a, 0b11111111);
let r = _mm512_mask_permutex_pd::<0b11_11_11_11>(a, 0b11111111, a);
let e = _mm512_setr_pd(3., 3., 3., 3., 7., 7., 7., 7.);
assert_eq_m512d(r, e);
}
@ -9028,9 +9017,9 @@ mod tests {
#[simd_test(enable = "avx512f")]
unsafe fn test_mm512_maskz_permutex_pd() {
let a = _mm512_setr_pd(0., 1., 2., 3., 4., 5., 6., 7.);
let r = _mm512_maskz_permutex_pd(0, a, 0b11111111);
let r = _mm512_maskz_permutex_pd::<0b11_11_11_11>(0, a);
assert_eq_m512d(r, _mm512_setzero_pd());
let r = _mm512_maskz_permutex_pd(0b11111111, a, 0b11111111);
let r = _mm512_maskz_permutex_pd::<0b11_11_11_11>(0b11111111, a);
let e = _mm512_setr_pd(3., 3., 3., 3., 7., 7., 7., 7.);
assert_eq_m512d(r, e);
}
@ -9038,7 +9027,7 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_permutex_pd() {
let a = _mm256_set_pd(0., 1., 2., 3.);
let r = _mm256_permutex_pd(a, 0b11111111);
let r = _mm256_permutex_pd::<0b11_11_11_11>(a);
let e = _mm256_set_pd(0., 0., 0., 0.);
assert_eq_m256d(r, e);
}
@ -9046,9 +9035,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_mask_permutex_pd() {
let a = _mm256_set_pd(0., 1., 2., 3.);
let r = _mm256_mask_permutex_pd(a, 0, a, 0b11111111);
let r = _mm256_mask_permutex_pd::<0b11_11_11_11>(a, 0, a);
assert_eq_m256d(r, a);
let r = _mm256_mask_permutex_pd(a, 0b00001111, a, 0b11111111);
let r = _mm256_mask_permutex_pd::<0b11_11_11_11>(a, 0b00001111, a);
let e = _mm256_set_pd(0., 0., 0., 0.);
assert_eq_m256d(r, e);
}
@ -9056,9 +9045,9 @@ mod tests {
#[simd_test(enable = "avx512f,avx512vl")]
unsafe fn test_mm256_maskz_permutex_pd() {
let a = _mm256_set_pd(0., 1., 2., 3.);
let r = _mm256_maskz_permutex_pd(0, a, 0b11111111);
let r = _mm256_maskz_permutex_pd::<0b11_11_11_11>(0, a);
assert_eq_m256d(r, _mm256_setzero_pd());
let r = _mm256_maskz_permutex_pd(0b00001111, a, 0b11111111);
let r = _mm256_maskz_permutex_pd::<0b11_11_11_11>(0b00001111, a);
let e = _mm256_set_pd(0., 0., 0., 0.);
assert_eq_m256d(r, e);
}
@ -10509,11 +10498,11 @@ mod tests {
unsafe fn test_mm512_alignr_epi64() {
let a = _mm512_set_epi64(8, 7, 6, 5, 4, 3, 2, 1);
let b = _mm512_set_epi64(16, 15, 14, 13, 12, 11, 10, 9);
let r = _mm512_alignr_epi64(a, b, 0);
let r = _mm512_alignr_epi64::<0>(a, b);
assert_eq_m512i(r, b);
let r = _mm512_alignr_epi64(a, b, 8);
let r = _mm512_alignr_epi64::<8>(a, b);
assert_eq_m512i(r, b);
let r = _mm512_alignr_epi64(a, b, 1);
let r = _mm512_alignr_epi64::<1>(a, b);
let e = _mm512_set_epi64(1, 16, 15, 14, 13, 12, 11, 10);
assert_eq_m512i(r, e);
}
@ -10522,9 +10511,9 @@ mod tests {
unsafe fn test_mm512_mask_alignr_epi64() {
let a = _mm512_set_epi64(8, 7, 6, 5, 4, 3, 2, 1);
let b = _mm512_set_epi64(16, 15, 14, 13, 12, 11, 10, 9);
let r = _mm512_mask_alignr_epi64(a, 0, a, b, 1);
let r = _mm512_mask_alignr_epi64::<1>(a, 0, a, b);
assert_eq_m512i(r, a);
let r = _mm512_mask_alignr_epi64(a, 0b11111111, a, b, 1);
let r = _mm512_mask_alignr_epi64::<1>(a, 0b11111111, a, b);
let e = _mm512_set_epi64(1, 16, 15, 14, 13, 12, 11, 10);
assert_eq_m512i(r, e);
}
@ -10533,9 +10522,9 @@ mod tests {
unsafe fn test_mm512_maskz_alignr_epi64() {
let a = _mm512_set_epi64(8, 7, 6, 5, 4, 3, 2, 1);
let b = _mm512_set_epi64(16, 15, 14, 13, 12, 11, 10, 9);
let r = _mm512_maskz_alignr_epi64(0, a, b, 1);
let r = _mm512_maskz_alignr_epi64::<1>(0, a, b);
assert_eq_m512i(r, _mm512_setzero_si512());
let r = _mm512_maskz_alignr_epi64(0b00001111, a, b, 1);
let r = _mm512_maskz_alignr_epi64::<1>(0b00001111, a, b);
let e = _mm512_set_epi64(0, 0, 0, 0, 13, 12, 11, 10);
assert_eq_m512i(r, e);
}
@ -10544,10 +10533,10 @@ mod tests {
unsafe fn test_mm256_alignr_epi64() {
let a = _mm256_set_epi64x(4, 3, 2, 1);
let b = _mm256_set_epi64x(8, 7, 6, 5);
let r = _mm256_alignr_epi64(a, b, 0);
let r = _mm256_alignr_epi64::<0>(a, b);
let e = _mm256_set_epi64x(8, 7, 6, 5);
assert_eq_m256i(r, e);
let r = _mm256_alignr_epi64(a, b, 6);
let r = _mm256_alignr_epi64::<6>(a, b);
let e = _mm256_set_epi64x(6, 5, 4, 3);
assert_eq_m256i(r, e);
}
@ -10556,9 +10545,9 @@ mod tests {
unsafe fn test_mm256_mask_alignr_epi64() {
let a = _mm256_set_epi64x(4, 3, 2, 1);
let b = _mm256_set_epi64x(8, 7, 6, 5);
let r = _mm256_mask_alignr_epi64(a, 0, a, b, 1);
let r = _mm256_mask_alignr_epi64::<1>(a, 0, a, b);
assert_eq_m256i(r, a);
let r = _mm256_mask_alignr_epi64(a, 0b00001111, a, b, 0);
let r = _mm256_mask_alignr_epi64::<0>(a, 0b00001111, a, b);
let e = _mm256_set_epi64x(8, 7, 6, 5);
assert_eq_m256i(r, e);
}
@ -10567,9 +10556,9 @@ mod tests {
unsafe fn test_mm256_maskz_alignr_epi64() {
let a = _mm256_set_epi64x(4, 3, 2, 1);
let b = _mm256_set_epi64x(8, 7, 6, 5);
let r = _mm256_maskz_alignr_epi64(0, a, b, 1);
let r = _mm256_maskz_alignr_epi64::<1>(0, a, b);
assert_eq_m256i(r, _mm256_setzero_si256());
let r = _mm256_maskz_alignr_epi64(0b00001111, a, b, 0);
let r = _mm256_maskz_alignr_epi64::<0>(0b00001111, a, b);
let e = _mm256_set_epi64x(8, 7, 6, 5);
assert_eq_m256i(r, e);
}
@ -10578,7 +10567,7 @@ mod tests {
unsafe fn test_mm_alignr_epi64() {
let a = _mm_set_epi64x(2, 1);
let b = _mm_set_epi64x(4, 3);
let r = _mm_alignr_epi64(a, b, 0);
let r = _mm_alignr_epi64::<0>(a, b);
let e = _mm_set_epi64x(4, 3);
assert_eq_m128i(r, e);
}
@ -10587,9 +10576,9 @@ mod tests {
unsafe fn test_mm_mask_alignr_epi64() {
let a = _mm_set_epi64x(2, 1);
let b = _mm_set_epi64x(4, 3);
let r = _mm_mask_alignr_epi64(a, 0, a, b, 1);
let r = _mm_mask_alignr_epi64::<1>(a, 0, a, b);
assert_eq_m128i(r, a);
let r = _mm_mask_alignr_epi64(a, 0b00000011, a, b, 0);
let r = _mm_mask_alignr_epi64::<0>(a, 0b00000011, a, b);
let e = _mm_set_epi64x(4, 3);
assert_eq_m128i(r, e);
}
@ -10598,9 +10587,9 @@ mod tests {
unsafe fn test_mm_maskz_alignr_epi64() {
let a = _mm_set_epi64x(2, 1);
let b = _mm_set_epi64x(4, 3);
let r = _mm_maskz_alignr_epi64(0, a, b, 1);
let r = _mm_maskz_alignr_epi64::<1>(0, a, b);
assert_eq_m128i(r, _mm_setzero_si128());
let r = _mm_maskz_alignr_epi64(0b00000011, a, b, 0);
let r = _mm_maskz_alignr_epi64::<0>(0b00000011, a, b);
let e = _mm_set_epi64x(4, 3);
assert_eq_m128i(r, e);
}