Run 175.vpr with benchmark binary

Change-Id: Ic33d55c97b45a40856657ad003b97dc2bbcc1b0c
diff --git a/175.vpr/BUILD.gn b/175.vpr/BUILD.gn
index beab079..8fe3e98 100644
--- a/175.vpr/BUILD.gn
+++ b/175.vpr/BUILD.gn
@@ -5,6 +5,7 @@
 inputs = [
   "data/ref/input/net.in",
   "data/ref/input/arch.in",
+  "data/ref/input/place.in",
 ]
 
 executable("175.vpr") {
diff --git a/benchmarks/main.cc b/benchmarks/main.cc
index 7f3ec14..e6714f1 100644
--- a/benchmarks/main.cc
+++ b/benchmarks/main.cc
@@ -68,6 +68,11 @@
   EonFixture() : SpecFixture("252.eon"){};
 };
 
+class VprFixture : public SpecFixture {
+ protected:
+  VprFixture() : SpecFixture("175.vpr"){};
+};
+
 }  // namespace
 
 std::string executableDir;
@@ -231,6 +236,27 @@
 }
 #endif
 
+BENCHMARK_F(VprFixture, 175_Vpr)(benchmark::State& st) {
+  const char* args1[] = {
+      "net.in",      "arch.in", "place.out",  "dum.out", "-nodisp",
+      "-place_only", "-init_t", "5",          "-exit_t", "0.005",
+      "-alpha_t",    "0.9412",  "-inner_num", "2"};
+
+  // clang-format off
+  const char* args2[] = {
+      "net.in", "arch.in", "place.in", "route.out", "-nodisp", "-route_only",
+      "-route_chan_width", "15", "-pres_fac_mult", "2", "-acc_fac", "1",
+      "-first_iter_pres_fac", "4", "-initial_pres_fac", "8"};
+  // clang-format on
+
+  while (st.KeepRunning()) {
+    if ((RunSpec(args1, 14, NULL)) != 0 || (RunSpec(args2, 16, NULL)) != 0) {
+      (std::string("Error while running benchmark: ") + strerror(errno))
+          .c_str();
+    }
+  }
+}
+
 int main(int argc, char* argv[]) {
   ::benchmark::Initialize(&argc, argv);
   google::InitGoogleLogging(argv[0]);