diff --git a/androidbp/cmd/soong.go b/androidbp/cmd/soong.go
index 488390f..db27071 100644
--- a/androidbp/cmd/soong.go
+++ b/androidbp/cmd/soong.go
@@ -71,6 +71,8 @@
 	"cc_binary_host":           "BUILD_HOST_EXECUTABLE",
 	"cc_test":                  "BUILD_NATIVE_TEST",
 	"cc_test_host":             "BUILD_HOST_NATIVE_TEST",
+	"cc_benchmark":             "BUILD_NATIVE_BENCHMARK",
+	"cc_benchmark_host":        "BUILD_HOST_NATIVE_BENCHMARK",
 	"java_library":             "BUILD_JAVA_LIBRARY",
 	"java_library_static":      "BUILD_STATIC_JAVA_LIBRARY",
 	"java_library_host":        "BUILD_HOST_JAVA_LIBRARY",
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 8038473..4d928b1 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -138,6 +138,8 @@
 	"BUILD_HOST_EXECUTABLE":     "cc_binary_host",
 	"BUILD_NATIVE_TEST":         "cc_test",
 	"BUILD_HOST_NATIVE_TEST":    "cc_test_host",
+	"BUILD_NATIVE_BENCHMARK":         "cc_benchmark",
+	"BUILD_HOST_NATIVE_BENCHMARK":    "cc_benchmark_host",
 
 	"BUILD_JAVA_LIBRARY":             "java_library",
 	"BUILD_STATIC_JAVA_LIBRARY":      "java_library_static",
diff --git a/cc/cc.go b/cc/cc.go
index 8032fe3..5d72097 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1481,6 +1481,36 @@
 	}
 }
 
+type CCBenchmark struct {
+	CCBinary
+}
+
+func (c *CCBenchmark) depNames(ctx common.AndroidBaseContext, depNames CCDeps) CCDeps {
+	depNames = c.CCBinary.depNames(ctx, depNames)
+	depNames.StaticLibs = append(depNames.StaticLibs, "libbenchmark")
+	return depNames
+}
+
+func (c *CCBenchmark) installModule(ctx common.AndroidModuleContext, flags CCFlags) {
+	if ctx.Device() {
+		ctx.InstallFile("../data/nativetest"+ctx.Arch().ArchType.Multilib[3:]+"/"+ctx.ModuleName(), c.out)
+	} else {
+		c.CCBinary.installModule(ctx, flags)
+	}
+}
+
+func NewCCBenchmark(test *CCBenchmark, module CCModuleType,
+	hod common.HostOrDeviceSupported, props ...interface{}) (blueprint.Module, []interface{}) {
+
+	return NewCCBinary(&test.CCBinary, module, hod, props...)
+}
+
+func CCBenchmarkFactory() (blueprint.Module, []interface{}) {
+	module := &CCBenchmark{}
+
+	return NewCCBenchmark(module, module, common.HostAndDeviceSupported)
+}
+
 //
 // Static library
 //
@@ -1546,6 +1576,15 @@
 }
 
 //
+// Host Benchmarks
+//
+
+func CCBenchmarkHostFactory() (blueprint.Module, []interface{}) {
+	module := &CCBenchmark{}
+	return NewCCBinary(&module.CCBinary, module, common.HostSupported)
+}
+
+//
 // Device libraries shipped with gcc
 //
 
diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go
index 8f5fae7..f8c32cb 100644
--- a/cmd/soong_build/main.go
+++ b/cmd/soong_build/main.go
@@ -45,6 +45,7 @@
 	ctx.RegisterModuleType("cc_object", cc.CCObjectFactory)
 	ctx.RegisterModuleType("cc_binary", cc.CCBinaryFactory)
 	ctx.RegisterModuleType("cc_test", cc.CCTestFactory)
+	ctx.RegisterModuleType("cc_benchmark", cc.CCBenchmarkFactory)
 
 	ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
 	ctx.RegisterModuleType("ndk_prebuilt_library", cc.NdkPrebuiltLibraryFactory)
@@ -56,6 +57,7 @@
 	ctx.RegisterModuleType("cc_library_host_shared", cc.CCLibraryHostSharedFactory)
 	ctx.RegisterModuleType("cc_binary_host", cc.CCBinaryHostFactory)
 	ctx.RegisterModuleType("cc_test_host", cc.CCTestHostFactory)
+	ctx.RegisterModuleType("cc_benchmark_host", cc.CCBenchmarkHostFactory)
 
 	ctx.RegisterModuleType("gensrcs", genrule.GenSrcsFactory)
 	ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
