diff --git a/cfg/gnu.cfg b/cfg/gnu.cfg
index f83ed44294a..197a1d33899 100644
--- a/cfg/gnu.cfg
+++ b/cfg/gnu.cfg
@@ -25,6 +25,7 @@
pvalloc
free
+
false
@@ -64,10 +65,80 @@
-
+
+ false
+
+ (arg1 = ((arg1 & 0x55555555) << 1) | ((arg1 & 0xAAAAAAAA) >> 1),
+ arg1 = ((arg1 & 0x33333333) << 2) | ((arg1 & 0xCCCCCCCC) >> 2),
+ arg1 = ((arg1 & 0x0F0F0F0F) << 4) | ((arg1 & 0xF0F0F0F0) >> 4),
+ arg1)
+
+
+
+
+
+
+ 0:
+
+
+
+ false
+
+ (arg1 = ((arg1 & 0x55555555u) << 1) | ((arg1 & 0xAAAAAAAAu) >> 1),
+ arg1 = ((arg1 & 0x33333333u) << 2) | ((arg1 & 0xCCCCCCCCu) >> 2),
+ arg1 = ((arg1 & 0x0F0F0F0Fu) << 4) | ((arg1 & 0xF0F0F0F0u) >> 4),
+ arg1 = ((arg1 & 0x00FF00FFu) << 8) | ((arg1 & 0xFF00FF00u) >> 8),
+ arg1)
+
+
+
+
+
+
+ 0:
+
+
+
+ false
+
+ (arg1 = ((arg1 & 0x55555555ul) << 1) | ((arg1 & 0xAAAAAAAAul) >> 1),
+ arg1 = ((arg1 & 0x33333333ul) << 2) | ((arg1 & 0xCCCCCCCCul) >> 2),
+ arg1 = ((arg1 & 0x0F0F0F0Ful) << 4) | ((arg1 & 0xF0F0F0F0ul) >> 4),
+ arg1 = ((arg1 & 0x00FF00FFul) << 8) | ((arg1 & 0xFF00FF00ul) >> 8),
+ arg1 = ((arg1 & 0x0000FFFFul) << 16) | ((arg1 & 0xFFFF0000ul) >> 16),
+ arg1)
+
+
+
+
+
+
+ 0:
+
+
+
+ false
+
+ (arg1 = ((arg1 & 0x55555555ull) << 1) | ((arg1 & 0xAAAAAAAAull) >> 1),
+ arg1 = ((arg1 & 0x33333333ull) << 2) | ((arg1 & 0xCCCCCCCCull) >> 2),
+ arg1 = ((arg1 & 0x0F0F0F0Full) << 4) | ((arg1 & 0xF0F0F0F0ull) >> 4),
+ arg1 = ((arg1 & 0x00FF00FFull) << 8) | ((arg1 & 0xFF00FF00ull) >> 8),
+ arg1 = ((arg1 & 0x0000FFFFull) << 16) | ((arg1 & 0xFFFF0000ull) >> 16),
+ arg1 = ((arg1 & 0x00000000FFFFFFFFull) << 32) | ((arg1 & 0xFFFFFFFF00000000ull) >> 32),
+ arg1)
+
+
+
+
+
+
+ 0:
+
+
+
diff --git a/test/cfg/gnu.c b/test/cfg/gnu.c
index 7b3c6ae5fed..db44a341779 100644
--- a/test/cfg/gnu.c
+++ b/test/cfg/gnu.c
@@ -390,6 +390,23 @@ void valid_code(int argInt1, va_list valist_arg, const int * parg)
// cppcheck-suppress zerodiv
// cppcheck-suppress unreadVariable
i64_1 /= bswap_64(0x023456789abcde0f) - 0x0fdebc9a78563402;
+
+#if __GNUC__ > 16
+ uint8_t i8_1 = 0;
+ // cppcheck-suppress zerodiv
+ // cppcheck-suppress unreadVariable
+ i8_1 /= __builtin_bitreverse8(1) - 128;
+ // cppcheck-suppress zerodiv
+ // cppcheck-suppress unreadVariable
+ i16_1 /= __builtin_bitreverse16(5) - 40960;
+ // cppcheck-suppress zerodiv
+ // cppcheck-suppress unreadVariable
+ i32_1 /= __builtin_bitreverse32(4294967295) - 4294967295;
+ // cppcheck-suppress zerodiv
+ // cppcheck-suppress unreadVariable
+ i64_1 /= __builtin_bitreverse64(8) - 1152921504606846976;
+#endif
+
#endif
}