Check for retail config for EnableAVX
authorBrian Sullivan <briansul@microsoft.com>
Fri, 20 Apr 2018 00:03:27 +0000 (17:03 -0700)
committerBrian Sullivan <briansul@microsoft.com>
Fri, 20 Apr 2018 00:03:27 +0000 (17:03 -0700)
Disable AVX2 when AVX is disabled

src/jit/compiler.cpp

index 8f43bcd..3daebc2 100644 (file)
@@ -2528,7 +2528,8 @@ static bool configEnableISA(InstructionSet isa)
         case InstructionSet_AVX:
             return JitConfig.EnableAVX() != 0;
         case InstructionSet_AVX2:
-            return JitConfig.EnableAVX2() != 0;
+            // Don't enable AVX2 when AVX is disabled
+            return (JitConfig.EnableAVX() != 0) && (JitConfig.EnableAVX2() != 0);
 
         case InstructionSet_AES:
             return JitConfig.EnableAES() != 0;
@@ -2548,7 +2549,15 @@ static bool configEnableISA(InstructionSet isa)
             return false;
     }
 #else
-    return true;
+    // We have a retail config switch that can disable AVX/AVX2 instructions
+    if ((isa == InstructionSet_AVX) || (isa == InstructionSet_AVX2))
+    {
+        return JitConfig.EnableAVX() != 0;
+    }
+    else
+    {
+        return true;
+    }
 #endif
 }
 #endif // _TARGET_XARCH_