Lines Matching +full:0 +full:xffffff7f

21 	unsigned int expected_ffs64_0based; /* __ffs64() result (0-based) */
30 {0x00000000, 0, 0, "zero value"},
33 {0x00000001, 1, 1, "bit 0 set"},
34 {0x00000002, 2, 2, "bit 1 set"},
35 {0x00000004, 3, 3, "bit 2 set"},
36 {0x00000008, 4, 4, "bit 3 set"},
37 {0x00000010, 5, 5, "bit 4 set"},
38 {0x00000020, 6, 6, "bit 5 set"},
39 {0x00000040, 7, 7, "bit 6 set"},
40 {0x00000080, 8, 8, "bit 7 set"},
41 {0x00000100, 9, 9, "bit 8 set"},
42 {0x00008000, 16, 16, "bit 15 set"},
43 {0x00010000, 17, 17, "bit 16 set"},
44 {0x40000000, 31, 31, "bit 30 set"},
45 {0x80000000, 32, 32, "bit 31 set (sign bit)"},
48 {0xFFFFFFFF, 1, 32, "all bits set"},
51 {0x00000003, 1, 2, "bits 0-1 set"},
52 {0x00000007, 1, 3, "bits 0-2 set"},
53 {0x0000000F, 1, 4, "bits 0-3 set"},
54 {0x000000FF, 1, 8, "bits 0-7 set"},
55 {0x0000FFFF, 1, 16, "bits 0-15 set"},
56 {0x7FFFFFFF, 1, 31, "bits 0-30 set"},
59 {0x00000101, 1, 9, "bits 0,8 set"},
60 {0x00001001, 1, 13, "bits 0,12 set"},
61 {0x80000001, 1, 32, "bits 0,31 set"},
62 {0x40000002, 2, 31, "bits 1,30 set"},
70 {0x0000000000000000ULL, 0, 0, "zero value"},
73 {0x0000000000000001ULL, 1, 0, "bit 0 set"},
74 {0x0000000000000002ULL, 2, 1, "bit 1 set"},
75 {0x0000000000000004ULL, 3, 2, "bit 2 set"},
76 {0x0000000000000008ULL, 4, 3, "bit 3 set"},
77 {0x0000000000008000ULL, 16, 15, "bit 15 set"},
78 {0x0000000000010000ULL, 17, 16, "bit 16 set"},
79 {0x0000000080000000ULL, 32, 31, "bit 31 set"},
80 {0x0000000100000000ULL, 33, 32, "bit 32 set"},
81 {0x0000000200000000ULL, 34, 33, "bit 33 set"},
82 {0x4000000000000000ULL, 63, 62, "bit 62 set"},
83 {0x8000000000000000ULL, 64, 63, "bit 63 set (sign bit)"},
86 {0xFFFFFFFFFFFFFFFFULL, 64, 0, "all bits set"},
89 {0x00000000FFFFFFFFULL, 32, 0, "lower 32 bits set"},
90 {0xFFFFFFFF00000000ULL, 64, 32, "upper 32 bits set"},
91 {0x8000000000000001ULL, 64, 0, "bits 0,63 set"},
92 {0x4000000000000002ULL, 63, 1, "bits 1,62 set"},
95 {0x00000001FFFFFFFFULL, 33, 0, "bit 32 + lower 32 bits"},
96 {0xFFFFFFFF80000000ULL, 64, 31, "upper 32 bits + bit 31"},
107 "%s(0x%08lx) [%s]: expected %d, got %d", in validate_ffs_result()
119 "%s(0x%016llx) [%s]: expected %d, got %d", in validate_ffs64_result()
133 if (input == 0) { in validate_ffs_relationships()
135 KUNIT_EXPECT_EQ(test, ffs(input), 0); in validate_ffs_relationships()
136 KUNIT_EXPECT_EQ(test, fls(input), 0); in validate_ffs_relationships()
137 /* __ffs and __fls are undefined for 0, but often return specific values */ in validate_ffs_relationships()
146 /* Relationship: ffs(x) == __ffs(x) + 1 for x != 0 */ in validate_ffs_relationships()
148 "ffs(0x%08lx) != __ffs(0x%08lx) + 1: %d != %u + 1", in validate_ffs_relationships()
151 /* Relationship: fls(x) == __fls(x) + 1 for x != 0 */ in validate_ffs_relationships()
153 "fls(0x%08lx) != __fls(0x%08lx) + 1: %d != %u + 1", in validate_ffs_relationships()
171 if (input == 0) { in validate_ffs64_relationships()
172 KUNIT_EXPECT_EQ(test, fls64(input), 0); in validate_ffs64_relationships()
188 if (input <= 0xFFFFFFFFULL) { in validate_ffs64_relationships()
191 "fls64(0x%llx) != fls(0x%lx): %d != %d", in validate_ffs64_relationships()
194 if (input != 0) { in validate_ffs64_relationships()
196 "__ffs64(0x%llx) != __ffs(0x%lx): %lu != %lu", in validate_ffs64_relationships()
211 for (i = 0; i < ARRAY_SIZE(basic_test_cases); i++) { in ffs_basic_correctness_test()
223 if (tc->input != 0) { in ffs_basic_correctness_test()
231 if (tc->input != 0) { in ffs_basic_correctness_test()
247 for (i = 0; i < ARRAY_SIZE(ffs64_test_cases); i++) { in ffs64_correctness_test()
255 if (tc->input != 0) { in ffs64_correctness_test()
271 for (i = 0; i < ARRAY_SIZE(basic_test_cases); i++) { in ffs_mathematical_relationships_test()
276 for (i = 0; i < ARRAY_SIZE(ffs64_test_cases); i++) { in ffs_mathematical_relationships_test()
296 0x7FFFFFFFUL, /* Maximum positive 32-bit */ in ffs_edge_cases_test()
297 0x80000000UL, /* Minimum negative 32-bit */ in ffs_edge_cases_test()
298 0xFFFFFFFFUL, /* Maximum 32-bit unsigned */ in ffs_edge_cases_test()
302 for (i = 0; i < ARRAY_SIZE(test_patterns); i++) { in ffs_edge_cases_test()
314 0x0000000100000000ULL, /* 2^32 */ in ffs64_edge_cases_test()
315 0x0000000200000000ULL, /* 2^33 */ in ffs64_edge_cases_test()
316 0x0000000400000000ULL, /* 2^34 */ in ffs64_edge_cases_test()
317 0x0000001000000000ULL, /* 2^36 */ in ffs64_edge_cases_test()
318 0x0000010000000000ULL, /* 2^40 */ in ffs64_edge_cases_test()
319 0x0001000000000000ULL, /* 2^48 */ in ffs64_edge_cases_test()
320 0x0100000000000000ULL, /* 2^56 */ in ffs64_edge_cases_test()
321 0x4000000000000000ULL, /* 2^62 */ in ffs64_edge_cases_test()
322 0x8000000000000000ULL, /* 2^63 */ in ffs64_edge_cases_test()
325 0x00000000FFFFFFFFULL, /* Lower 32 bits */ in ffs64_edge_cases_test()
326 0xFFFFFFFF00000000ULL, /* Upper 32 bits */ in ffs64_edge_cases_test()
327 0x7FFFFFFFFFFFFFFFULL, /* Maximum positive 64-bit */ in ffs64_edge_cases_test()
328 0xFFFFFFFFFFFFFFFFULL, /* Maximum 64-bit unsigned */ in ffs64_edge_cases_test()
332 for (i = 0; i < ARRAY_SIZE(test_patterns_64); i++) { in ffs64_edge_cases_test()
348 {0xFFFFFFFE, 0, "bit 0 is zero"}, /* ...11111110 */
349 {0xFFFFFFFD, 1, "bit 1 is zero"}, /* ...11111101 */
350 {0xFFFFFFFB, 2, "bit 2 is zero"}, /* ...11111011 */
351 {0xFFFFFFF7, 3, "bit 3 is zero"}, /* ...11110111 */
352 {0xFFFFFFEF, 4, "bit 4 is zero"}, /* ...11101111 */
353 {0xFFFFFFDF, 5, "bit 5 is zero"}, /* ...11011111 */
354 {0xFFFFFFBF, 6, "bit 6 is zero"}, /* ...10111111 */
355 {0xFFFFFF7F, 7, "bit 7 is zero"}, /* ...01111111 */
356 {0xFFFFFEFF, 8, "bit 8 is zero"}, /* Gap in bit 8 */
357 {0xFFFF7FFF, 15, "bit 15 is zero"}, /* Gap in bit 15 */
358 {0xFFFEFFFF, 16, "bit 16 is zero"}, /* Gap in bit 16 */
359 {0xBFFFFFFF, 30, "bit 30 is zero"}, /* Gap in bit 30 */
360 {0x7FFFFFFF, 31, "bit 31 is zero"}, /* 01111111... */
363 {0xFFFFFFFC, 0, "bits 0-1 are zero"}, /* ...11111100 */
364 {0xFFFFFFF8, 0, "bits 0-2 are zero"}, /* ...11111000 */
365 {0xFFFFFFF0, 0, "bits 0-3 are zero"}, /* ...11110000 */
366 {0xFFFFFF00, 0, "bits 0-7 are zero"}, /* ...00000000 */
367 {0xFFFF0000, 0, "bits 0-15 are zero"}, /* Lower 16 bits zero */
370 {0x00000000, 0, "all bits zero"},
373 {0xFFFDFFFF, 17, "bit 17 is zero"}, /* Gap in bit 17 */
374 {0xFFF7FFFF, 19, "bit 19 is zero"}, /* Gap in bit 19 */
375 {0xF7FFFFFF, 27, "bit 27 is zero"}, /* Gap in bit 27 */
376 {0xDFFFFFFF, 29, "bit 29 is zero"}, /* Gap in bit 29 */
386 for (i = 0; i < ARRAY_SIZE(ffz_test_cases); i++) { in ffz_basic_correctness_test()
391 "ffz(0x%08lx) [%s]: expected %lu, got %lu", in ffz_basic_correctness_test()
403 if (input == 0) { in validate_ffz_relationships()
404 /* ffz(0) should return 0 (first zero bit is at position 0) */ in validate_ffz_relationships()
405 KUNIT_EXPECT_EQ(test, ffz(input), 0); in validate_ffz_relationships()
409 if (input == ~0UL) { in validate_ffz_relationships()
410 /* ffz(~0) is undefined (no zero bits) - just verify it doesn't crash */ in validate_ffz_relationships()
422 KUNIT_EXPECT_EQ_MSG(test, (input >> ffz_result) & 1, 0, in validate_ffz_relationships()
423 "ffz(0x%08lx) = %lu, but bit %lu is not zero", in validate_ffz_relationships()
429 if (modified != ~0UL) { /* Skip if all bits would be set */ in validate_ffz_relationships()
432 "ffz(0x%08lx) = %lu, but setting that bit doesn't change ffz result", in validate_ffz_relationships()
442 0xFFFFFFFE, 0xFFFFFFFD, 0xFFFFFFFB, 0xFFFFFFF7, in ffz_mathematical_relationships_test()
443 0xFFFFFFEF, 0xFFFFFFDF, 0xFFFFFFBF, 0xFFFFFF7F, in ffz_mathematical_relationships_test()
446 0xFFFFFF00, 0xFFFFF000, 0xFFFF0000, 0xFFF00000, in ffz_mathematical_relationships_test()
447 0x7FFFFFFF, 0x3FFFFFFF, 0x1FFFFFFF, 0x0FFFFFFF, in ffz_mathematical_relationships_test()
450 0xAAAAAAAA, 0x55555555, 0xCCCCCCCC, 0x33333333, in ffz_mathematical_relationships_test()
451 0xF0F0F0F0, 0x0F0F0F0F, 0xFF00FF00, 0x00FF00FF, in ffz_mathematical_relationships_test()
456 for (i = 0; i < ARRAY_SIZE(ffz_test_cases); i++) { in ffz_mathematical_relationships_test()
461 for (i = 0; i < ARRAY_SIZE(test_patterns); i++) { in ffz_mathematical_relationships_test()
473 0x00000000, /* All zeros */ in ffz_edge_cases_test()
474 0x80000000, /* Only MSB set */ in ffz_edge_cases_test()
475 0x00000001, /* Only LSB set */ in ffz_edge_cases_test()
476 0x7FFFFFFF, /* MSB clear */ in ffz_edge_cases_test()
477 0xFFFFFFFE, /* LSB clear */ in ffz_edge_cases_test()
480 ~(1UL << 0), ~(1UL << 1), ~(1UL << 2), ~(1UL << 3), in ffz_edge_cases_test()
484 0xFFFFFFFE, 0xFFFFFFFD, 0xFFFFFFFB, 0xFFFFFFF7, in ffz_edge_cases_test()
485 0xFFFFFFEF, 0xFFFFFFDF, 0xFFFFFFBF, 0xFFFFFF7F, in ffz_edge_cases_test()
486 0xFFFFFEFF, 0xFFFFFDFF, 0xFFFFFBFF, 0xFFFFF7FF, in ffz_edge_cases_test()
489 0xFFFFFF00, 0xFFFFF000, 0xFFFF0000, 0xFFF00000, in ffz_edge_cases_test()
490 0xFF000000, 0xF0000000, 0x00000000, in ffz_edge_cases_test()
494 for (i = 0; i < ARRAY_SIZE(edge_patterns); i++) { in ffz_edge_cases_test()