@@ -70,27 +70,17 @@ TEST(LlvmLibcSIMDTest, MaskOperations) {
7070}
7171
7272TEST (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