Die folgenden API proposal fügen die Einschränkungs- und Erweiterungsoperationen hinzu. Die vorgeschlagene API folgt einem ähnlichen Design wie die zugrunde liegenden SSE2-Anweisungen; um zu erweitern, werden die untere und die obere Hälfte des Eingabevektors in zwei Ausgabevektoren geschrieben. Um zu verengen, werden Elemente, die von zwei Eingabevektoren kommen, konvertiert (mit einer Sättigung mit oder ohne Vorzeichen) und dann in einen einzelnen Ausgabevektor gepackt.
Da es sich um einen API-Vorschlag handelt, kann es sehr lange dauern, bis das Produkt tatsächlich ausgeliefert wird, oder es kann ewig dauern.
Diese Methoden sind nutzlos (in Bezug auf die Leistung), es sei denn, das JIT wird schließlich aktualisiert, um Intrinsics zu generieren. Dies bedeutet, dass Sie einfach annehmen sollten, dass die Fähigkeit noch nicht da ist. Wenn Sie derzeit einen systemeigenen Code verwenden (über C++/CLI oder P/Invoke), sollten Sie weiterhin Ihre aktuelle Vorgehensweise verwenden, da die Alternative noch nicht existiert.
Um den Status der JIT-seitige Implementierung herauszufinden: Add JIT intrinsics support for vector conversion on AMD64 and x86 #10662
auf den Kommentaren Basierend es in .NET Standard-nicht 2.0 sein wird, aber es ist wahrscheinlich, 2.1 Teil von .NET Standard.