diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.h b/FEXCore/Source/Interface/Core/OpcodeDispatcher.h index ff71eac54..50367e8de 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.h +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.h @@ -1347,6 +1347,17 @@ protected: if (CTX->HostFeatures.SupportsAFP) { return; } + break; + + case OP_VLOADVECTORMASKED: + case OP_VLOADVECTORGATHERMASKED: + case OP_VSTOREVECTORMASKED: + /* On ASIMD platforms, the emulation happens to preserve NZCV, unlike the + * more optimal SVE implementation that clobbers. + */ + if (!CTX->HostFeatures.SupportsSVE128 && !CTX->HostFeatures.SupportsSVE256) { + return; + } break; default: break;