[libc-commits] [libc] [libc][stdbit] implement stdc_trailing_ones (C23) (PR #80459)
Nick Desaulniers via libc-commits
libc-commits at lists.llvm.org
Fri Feb 2 15:16:58 PST 2024
================
@@ -1,112 +1,23 @@
add_custom_target(libc-stdbit-tests)
-add_libc_test(
- stdc_leading_zeros_uc_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_zeros_uc_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_zeros_uc
-)
-
-add_libc_test(
- stdc_leading_zeros_us_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_zeros_us_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_zeros_us
-)
-
-add_libc_test(
- stdc_leading_zeros_ui_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_zeros_ui_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_zeros_ui
-)
-
-add_libc_test(
- stdc_leading_zeros_ul_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_zeros_ul_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_zeros_ul
-)
-
-add_libc_test(
- stdc_leading_zeros_ull_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_zeros_ull_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_zeros_ull
-)
-
-add_libc_test(
- stdc_leading_ones_uc_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_ones_uc_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_ones_uc
-)
-
-add_libc_test(
- stdc_leading_ones_us_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_ones_us_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_ones_us
-)
-
-add_libc_test(
- stdc_leading_ones_ui_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_ones_ui_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_ones_ui
-)
-
-add_libc_test(
- stdc_leading_ones_ul_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_ones_ul_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_ones_ul
-)
-
-add_libc_test(
- stdc_leading_ones_ull_test
- SUITE
- libc-stdbit-tests
- SRCS
- stdc_leading_ones_ull_test.cpp
- DEPENDS
- libc.src.__support.CPP.limits
- libc.src.stdbit.stdc_leading_ones_ull
-)
-
+list(APPEND prefixes
+ leading_zeros
+ leading_ones
+ trailing_zeros
+ trailing_ones
+)
+list(APPEND suffixes c s i l ll)
+foreach(prefix IN LISTS prefixes)
+ foreach(suffix IN LISTS suffixes)
----------------
nickdesaulniers wrote:
Consider making this point in https://github.com/llvm/llvm-project/pull/80344 (the child PR this PR is based off of; sorry for stacking commits but this was more obvious in phabricator than github PRs).
The list of "suffixes" is set, but "prefixes" will grow to:
- leading_zeros
- leading_ones
- trailing_zeros
- trailing_ones
- first_leading_zero
- first_leading_one
- first_trailing_zero
- first_trailing_one
- count_zeros
- count_ones
- has_single_bit
- bit_width
- bit_floor
- bit_ceil
as I finish implementing stdbit.h. Personal preference, but I prefer to add new individual lines for each of these to minimize the impact on `git blame`, as opposed to making one line excessively longer through multiple commits (which I believe is what you're suggesting). I don't feel strongly about it, but that's an insight into *why* I did it that way. WDYT?
https://github.com/llvm/llvm-project/pull/80459
More information about the libc-commits
mailing list