[LoongArch] Fix register type in FCMP_*_D instructions definition
[llvm-project.git] / libcxx / benchmarks / stringstream.bench.cpp
blob828ef4b405f47aca94622566abc0ea9e232895ab
1 #include "benchmark/benchmark.h"
2 #include "test_macros.h"
4 #include <sstream>
6 TEST_NOINLINE double istream_numbers();
8 double istream_numbers() {
9 const char *a[] = {
10 "-6 69 -71 2.4882e-02 -100 101 -2.00005 5000000 -50000000",
11 "-25 71 7 -9.3262e+01 -100 101 -2.00005 5000000 -50000000",
12 "-14 53 46 -6.7026e-02 -100 101 -2.00005 5000000 -50000000"
15 int a1, a2, a3, a4, a5, a6, a7;
16 double f1 = 0.0, f2 = 0.0, q = 0.0;
17 for (int i=0; i < 3; i++) {
18 std::istringstream s(a[i]);
19 s >> a1
20 >> a2
21 >> a3
22 >> f1
23 >> a4
24 >> a5
25 >> f2
26 >> a6
27 >> a7;
28 q += (a1 + a2 + a3 + a4 + a5 + a6 + a7 + f1 + f2)/1000000;
30 return q;
33 static void BM_Istream_numbers(benchmark::State &state) {
34 double i = 0;
35 while (state.KeepRunning())
36 benchmark::DoNotOptimize(i += istream_numbers());
39 BENCHMARK(BM_Istream_numbers)->RangeMultiplier(2)->Range(1024, 4096);
40 BENCHMARK_MAIN();