@@ -39,6 +39,8 @@ static_assert(SWAR<8, u32>::MaxUnsignedLaneValue == 255);
39
39
static_assert (SWAR<4 , u32>::MaxUnsignedLaneValue == 15 );
40
40
static_assert (SWAR<2 , u32>::MaxUnsignedLaneValue == 3 );
41
41
42
+ auto v = SWAR<3 , u16>::LeastSignificantLaneMask;
43
+
42
44
43
45
#define ZOO_PP_UNPARENTHESIZE (...) __VA_ARGS__
44
46
#define X (TYPE, av, expected ) \
@@ -282,6 +284,7 @@ TEST_CASE("Parity", "[swar]") {
282
284
CHECK (by16.value () == 0x8000'8000 );
283
285
}
284
286
287
+ #if ZOO_USE_LEASTNBITSMASK
285
288
TEST_CASE (
286
289
" Isolate" ,
287
290
" [swar]"
@@ -322,6 +325,7 @@ TEST_CASE(
322
325
// CHECK(0xFFFF'FFFF'FFFF'FFFFull == isolate<64, u64>(allones)); // Broken until PR/93 goes in.
323
326
}
324
327
}
328
+ #endif
325
329
326
330
TEST_CASE (" Compress/Expand" , " [swar]" ) {
327
331
unsigned
@@ -387,6 +391,7 @@ static_assert(0x20 == isolateLSB<u8>(0xE0));
387
391
static_assert (0x40 == isolateLSB<u8>(0xC0 ));
388
392
static_assert (0x80 == isolateLSB<u8>(0x80 ));
389
393
394
+ #if ZOO_USE_LEASTNBITSMASK
390
395
static_assert (0x80u == mostNBitsMask<1 , u8>());
391
396
static_assert (0xC0u == mostNBitsMask<2 , u8>());
392
397
static_assert (0xE0u == mostNBitsMask<3 , u8>());
@@ -477,6 +482,7 @@ static_assert(0x18 == isolateLSBits<2, u8>(0xF8));
477
482
static_assert (0x03 == isolateLSBits<2 , u8>(0xFB ));
478
483
static_assert (0x0C == isolateLSBits<2 , u8>(0xFC ));
479
484
static_assert (0x03 == isolateLSBits<2 , u8>(0xFF ));
485
+ #endif
480
486
481
487
static_assert (0x0606'0606 == u32(broadcast<8 >(SWAR<8 , u32>(0x0000'0006 ))));
482
488
static_assert (0x0808'0808 == u32(broadcast<8 >(SWAR<8 , u32>(0x0000'0008 ))));
0 commit comments