================
@@ -646,20 +646,711 @@ __mmask16 test_mm_cmp_epi8_mask(__m128i __a, __m128i
__b) {
return (__mmask16)_mm_cmp_epi8_mask(__a, __b, 0);
}
+// cmpeq tests
TEST_CONSTEXPR(_mm_cmpeq_epi8_mask(
- ((__m128i)(__v16qi){5, 3, 7, 2, 9, 3, 7, 1, 5, 4, 8, 2, 9, 6, 7, 5}),
- ((__m128i)(__v16qi){5, 2, 7, 3, 9, 4, 6, 1, 5, 3, 8, 1, 9, 5, 7, 5})
-) == (__mmask16)0xd595);
+ ((__m128i)(__v16qs){0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}),
+ ((__m128i)(__v16qs){0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
+) == (__mmask16)0xffff);
+
+TEST_CONSTEXPR(_mm_cmpeq_epi8_mask(
+ ((__m128i)(__v16qs){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}),
+ ((__m128i)(__v16qs){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1})
+) == (__mmask16)0xffff);
+
+TEST_CONSTEXPR(_mm_cmpeq_epi8_mask(
+ ((__m128i)(__v16qs){127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127}),
+ ((__m128i)(__v16qs){-128, -128, -128, -128, -128, -128, -128, -128, -128,
-128, -128, -128, -128, -128, -128, -128})
+) == (__mmask16)0x0000);
+
+TEST_CONSTEXPR(_mm_cmpeq_epi8_mask(
+ ((__m128i)(__v16qs){-31, 90, -66, 3, 27, -22, -64, 111, -87, 105, -19, 0,
26, -111, 24, -72}),
+ ((__m128i)(__v16qs){-84, -98, 20, -83, -98, 80, -46, -9, 22, -120, -123,
53, 117, -85, 50, 94})
+) == (__mmask16)0x0000);
----------------
RKSimon wrote:
These all feel like you're missing the point of vector code - we can compare a
broad range of values against one another and create a mixed result mask - I
think you only need a single test per intrinsic just with better selected
values.
This test at least has a mixture of random values - but ideally we want some
that the comparison is true for.
https://github.com/llvm/llvm-project/pull/169452
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits