diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
index 8c61ad0f048394c22ff21d0e31a4a88893e2a724..896948fc52c861db30dbc8ac9aafe915a7c43ec0 100644
--- a/gcc/config/arm/arm-cpus.in
+++ b/gcc/config/arm/arm-cpus.in
@@ -1477,6 +1477,17 @@ begin cpu cortex-a78ae
  part d42
 end cpu cortex-a78ae
 
+begin cpu cortex-a78c
+ cname cortexa78c
+ tune for cortex-a57
+ tune flags LDSCHED
+ architecture armv8.2-a+fp16+dotprod
+ option crypto add FP_ARMv8 CRYPTO
+ costs cortex_a57
+ vendor 41
+ part d4b
+end cpu cortex-a78c
+
 begin cpu cortex-x1
  cname cortexx1
  tune for cortex-a57
diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
index 05f5c08400b920ddd944c0a02c995670ccf7a1e4..8637933ad85ec1f264c30b60c79e0c3a67a7015b 100644
--- a/gcc/config/arm/arm-tables.opt
+++ b/gcc/config/arm/arm-tables.opt
@@ -246,6 +246,9 @@ Enum(processor_type) String(cortex-a78) Value( TARGET_CPU_cortexa78)
 EnumValue
 Enum(processor_type) String(cortex-a78ae) Value( TARGET_CPU_cortexa78ae)
 
+EnumValue
+Enum(processor_type) String(cortex-a78c) Value( TARGET_CPU_cortexa78c)
+
 EnumValue
 Enum(processor_type) String(cortex-x1) Value( TARGET_CPU_cortexx1)
 
diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md
index 32657da48a5fdd1b7823231eb56d27572b29a417..e10d73eb9de41298c5fef208409be9218b300a5f 100644
--- a/gcc/config/arm/arm-tune.md
+++ b/gcc/config/arm/arm-tune.md
@@ -45,9 +45,9 @@ (define_attr "tune"
 	cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,
 	cortexa73cortexa53,cortexa55,cortexa75,
 	cortexa76,cortexa76ae,cortexa77,
-	cortexa78,cortexa78ae,cortexx1,
-	neoversen1,cortexa75cortexa55,cortexa76cortexa55,
-	neoversev1,neoversen2,cortexm23,
-	cortexm33,cortexm35p,cortexm55,
-	cortexr52"
+	cortexa78,cortexa78ae,cortexa78c,
+	cortexx1,neoversen1,cortexa75cortexa55,
+	cortexa76cortexa55,neoversev1,neoversen2,
+	cortexm23,cortexm33,cortexm35p,
+	cortexm55,cortexr52"
 	(const (symbol_ref "((enum attr_tune) arm_tune)")))
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ad5e484a836481b350fe2e5f36a7228655770111..e069a83406a6a03bf0fd5d86837552ea3237cbca 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -19514,7 +19514,7 @@ Permissible names are: @samp{arm7tdmi}, @samp{arm7tdmi-s}, @samp{arm710t},
 @samp{cortex-a32}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a55},
 @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-a75},
 @samp{cortex-a76}, @samp{cortex-a76ae}, @samp{cortex-a77},
-@samp{cortex-a78}, @samp{cortex-a78ae},
+@samp{cortex-a78}, @samp{cortex-a78ae}, @samp{cortex-a78c},
 @samp{ares}, @samp{cortex-r4}, @samp{cortex-r4f},
 @samp{cortex-r5}, @samp{cortex-r7}, @samp{cortex-r8}, @samp{cortex-r52},
 @samp{cortex-m0}, @samp{cortex-m0plus}, @samp{cortex-m1}, @samp{cortex-m3},
