Skip to content

Commit b0d3b71

Browse files
committed
Better test
1 parent 944418d commit b0d3b71

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

libc/test/src/__support/CPP/simd_test.cpp

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,27 +70,17 @@ TEST(LlvmLibcSIMDTest, MaskOperations) {
7070
}
7171

7272
TEST(LlvmLibcSIMDTest, SplitConcat) {
73-
cpp::simd<char, 8> v(1);
73+
cpp::simd<char, 8> v{1, 1, 2, 2, 3, 3, 4, 4};
7474
auto [v1, v2, v3, v4] = cpp::split<2, 2, 2, 2>(v);
75-
static_assert(cpp::simd_size_v<decltype(v1)> == 2 &&
76-
cpp::simd_size_v<decltype(v2)> == 2 &&
77-
cpp::simd_size_v<decltype(v3)> == 2 &&
78-
cpp::simd_size_v<decltype(v4)> == 2,
79-
"invalid size");
80-
81-
v1 = cpp::simd<char, 2>(1);
82-
v2 = cpp::simd<char, 2>(2);
83-
v3 = cpp::simd<char, 2>(3);
84-
v4 = cpp::simd<char, 2>(4);
85-
cpp::simd<char, 8> m = cpp::concat(v1, v2, v3, v4);
86-
static_assert(cpp::simd_size_v<decltype(m)> == 8, "invalid size");
75+
EXPECT_TRUE(cpp::all_of(cpp::simd_cast<bool>(v1 == 1)));
76+
EXPECT_TRUE(cpp::all_of(cpp::simd_cast<bool>(v2 == 2)));
77+
EXPECT_TRUE(cpp::all_of(cpp::simd_cast<bool>(v3 == 3)));
78+
EXPECT_TRUE(cpp::all_of(cpp::simd_cast<bool>(v4 == 4)));
8779

88-
cpp::simd<char, 8> c = {1, 1, 2, 2, 3, 3, 4, 4};
89-
for (int i = 0; i < 8; ++i)
90-
EXPECT_EQ(c[i], m[i]);
80+
cpp::simd<char, 8> m = cpp::concat(v1, v2, v3, v4);
81+
EXPECT_TRUE(cpp::all_of(cpp::simd_cast<bool>(m == v)));
9182

92-
cpp::simd<char, 1> c1('\0');
93-
cpp::simd<char, 8> c2('\0');
94-
cpp::simd<char, 9> c3 = cpp::concat(c1, c2);
95-
static_assert(cpp::simd_size_v<decltype(c3)> == 9, "invalid size");
83+
cpp::simd<char, 1> c(~0);
84+
cpp::simd<char, 8> n = cpp::concat(c, c, c, c, c, c, c, c);
85+
EXPECT_TRUE(cpp::all_of(cpp::simd_cast<bool>(n == ~0)));
9686
}

0 commit comments

Comments
 (0)