Add new benchmark for integer `StrAppend`

PiperOrigin-RevId: 582033534
Change-Id: I9af42210f65b40ccd7f55c9a2e0c8387b69760dc
diff --git a/absl/strings/str_cat_benchmark.cc b/absl/strings/str_cat_benchmark.cc
index b0a8617..3660026 100644
--- a/absl/strings/str_cat_benchmark.cc
+++ b/absl/strings/str_cat_benchmark.cc
@@ -154,7 +154,7 @@
 }
 
 void BM_StrAppend(benchmark::State& state) {
-  const int total_bytes = state.range(0);
+  const size_t total_bytes = state.range(0);
   const int chunks_at_a_time = state.range(1);
   const absl::string_view kChunk = "0123456789";
 
@@ -174,6 +174,27 @@
   }
 }
 
+void BM_StrAppendInt(benchmark::State& state) {
+  const size_t total_bytes = state.range(0);
+  const int chunks_at_a_time = state.range(1);
+  const size_t kChunk = 1234;
+
+  switch (chunks_at_a_time) {
+    case 1:
+      return BM_StrAppendImpl(state, total_bytes, kChunk);
+    case 2:
+      return BM_StrAppendImpl(state, total_bytes, kChunk, kChunk);
+    case 4:
+      return BM_StrAppendImpl(state, total_bytes, kChunk, kChunk, kChunk,
+                              kChunk);
+    case 8:
+      return BM_StrAppendImpl(state, total_bytes, kChunk, kChunk, kChunk,
+                              kChunk, kChunk, kChunk, kChunk, kChunk);
+    default:
+      std::abort();
+  }
+}
+
 template <typename B>
 void StrAppendConfig(B* benchmark) {
   for (int bytes : {10, 100, 1000, 10000}) {
@@ -187,6 +208,7 @@
 }
 
 BENCHMARK(BM_StrAppend)->Apply(StrAppendConfig);
+BENCHMARK(BM_StrAppendInt)->Apply(StrAppendConfig);
 
 template <typename... Chunks>
 void BM_StrCatImpl(benchmark::State& state,