Ist es möglich, SSE (v2) zu verwenden, um eine 128-Bit breite Ganzzahl zu erstellen?

8

Ich möchte die Fähigkeiten von SSE2 ein wenig mehr verstehen und würde gerne wissen, ob man eine 128-Bit breite Ganzzahl erzeugen könnte, die Addition, Subtraktion, XOR und Multiplikation unterstützt. Danke, Erkling.

    
Erkling 30.08.2012, 15:45
quelle

1 Antwort

4

SSE2 hat kein Carry-Flag, aber Sie können den Carry als carry = sum < a oder carry = sum < b wie dies einfach berechnen. Aber noch schlimmer, SSE2 hat auch keine 64-Bit-Vergleiche, daher müssen Sie einige Workarounds wie die hier

Hier ist ein ungetesteter, nicht optimierter C-Code, der auf der obigen Idee basiert.

%Vor%

Wie Sie sehen können, benötigt der Code viel mehr Anweisungen und selbst nach der Optimierung kann er noch viel länger sein als eine einfache 2-Anweisung add / adc in x86_64 (oder 4 in x86)

    
Lưu Vĩnh Phúc 07.09.2013, 13:20
quelle

Tags und Links