On Fri, Dec 14, 2018 at 06:33:37PM +0800, Wei Xiao wrote:
--- a/gcc/config/i386/driver-i386.c
+++ b/gcc/config/i386/driver-i386.c
@@ -832,8 +832,16 @@ const char *host_detect_local_cpu (int argc, const char 
**argv)
          cpu = "skylake";
          break;
        case 0x55:
-         /* Skylake with AVX-512.  */
-         cpu = "skylake-avx512";
+         if (has_avx512vnni)
+         {
+           /* Cascade Lake.  */
+           cpu = "cascadelake";
+         }
+         else
+         {
+           /* Skylake with AVX-512.  */
+           cpu = "skylake-avx512";
+         }
          break;

Just a formatting nit here, if {}s are used, they should be indented
2 columns to the right from the if or else and the body of {} should
be indented by two further columns over {.
But, in this case, there is another rule, that if the body has a single
statement, then there shouldn't be {}s around it.  Thus just:
          if (has_avx512vnni)
            /* Cascade Lake.  */
            cpu = "cascadelake";
          else
            /* Skylake with AVX-512.  */
            cpu = "skylake-avx512";

        Jakub

Reply via email to