diff options
Diffstat (limited to 'SingleSource/UnitTests/Vector/AVX512F/xor_or_m512_epi64.c')
-rw-r--r-- | SingleSource/UnitTests/Vector/AVX512F/xor_or_m512_epi64.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/SingleSource/UnitTests/Vector/AVX512F/xor_or_m512_epi64.c b/SingleSource/UnitTests/Vector/AVX512F/xor_or_m512_epi64.c new file mode 100644 index 00000000..bfb4f83f --- /dev/null +++ b/SingleSource/UnitTests/Vector/AVX512F/xor_or_m512_epi64.c @@ -0,0 +1,48 @@ +#include "m512_test_util.h" +#include <stdio.h> +#include <string.h> +/* This test was created to check the correctness + * of the following intrinsics support: + * _mm512_or_epi64() + * _mm512_mask_or_epi64() + * _mm512_xor_epi64() + * _mm512_mask_xor_epi64() + */ +void __declspec(noinline) do_or_() { + __mmask16 k8 = 0xAAAA; + volatile __m512i undef = _mm512_set1_epi64(3); + volatile __m512i v1 = _mm512_set1_epi64((10)); + volatile __m512i v2 = _mm512_set1_epi64((3)); + volatile __m512i exp1 = _mm512_set1_epi64((11)); + volatile __m512i exp2 = _mm512_set_epi64((11), 3, (11), 3, (11), 3, (11), 3); + volatile __m512i r = _mm512_or_epi64(v1, v2); + check_equal_nq(&r, &exp1, 8, "_mm512_or_epi64", __LINE__); + r = _mm512_mask_or_epi64(undef, k8, v1, v2); + check_equal_nq(&r, &exp2, 8, "_mm512_mask_or_epi64", __LINE__); +} + +void __declspec(noinline) do_xor_() { + __mmask16 k8 = 0xAAAA; + volatile __m512i undef = _mm512_set1_epi64(3); + volatile __m512i v1 = _mm512_set1_epi64((10)); + volatile __m512i v2 = _mm512_set1_epi64((3)); + volatile __m512i exp1 = _mm512_set1_epi64((9)); + volatile __m512i exp2 = _mm512_set_epi64((9), 3, (9), 3, (9), 3, (9), 3); + volatile __m512i r = _mm512_xor_epi64(v1, v2); + check_equal_nq(&r, &exp1, 8, "_mm512_xor_epi64", __LINE__); + r = _mm512_mask_xor_epi64(undef, k8, v1, v2); + check_equal_nq(&r, &exp2, 8, "_mm512_mask_xor_epi64", __LINE__); +} + +int main(int argc, char *argv[]) { + do_or_(); + do_xor_(); + + if (n_errs != 0) { + printf("FAILED\n"); + return 1; + } + + printf("PASSED\n"); + return 0; +} |