Fix AVX512 moves on X86 (#88421)
authorMichał Petryka <35800402+MichalPetryka@users.noreply.github.com>
Wed, 5 Jul 2023 19:01:33 +0000 (21:01 +0200)
committerGitHub <noreply@github.com>
Wed, 5 Jul 2023 19:01:33 +0000 (21:01 +0200)
Extracted from #85875.

src/coreclr/jit/emitxarch.cpp

index 759fff1..a6e0d68 100644 (file)
@@ -6131,6 +6131,18 @@ bool emitter::HasSideEffect(instruction ins, emitAttr size)
             break;
         }
 
+        case INS_vmovdqa64:
+        case INS_vmovdqu8:
+        case INS_vmovdqu16:
+        case INS_vmovdqu64:
+        {
+            // These EVEX instructions merges/masks based on k-register
+            // TODO-XArch-AVX512 : Handle merge/masks scenarios once k-mask support is added for these.
+            assert(UseEvexEncoding());
+            hasSideEffect = (size != EA_64BYTE);
+            break;
+        }
+
         case INS_movd:
         {
             // Clears the upper bits
@@ -6162,18 +6174,6 @@ bool emitter::HasSideEffect(instruction ins, emitAttr size)
             break;
         }
 
-        case INS_vmovdqa64:
-        case INS_vmovdqu8:
-        case INS_vmovdqu16:
-        case INS_vmovdqu64:
-        {
-            // These EVEX instructions merges/masks based on k-register
-            // TODO-XArch-AVX512 : Handle merge/masks scenarios once k-mask support is added for these.
-            assert(UseEvexEncoding());
-            hasSideEffect = (size != EA_64BYTE);
-            break;
-        }
-
         case INS_movsxd:
         {
             // Sign-extends the source