Gast
#834246
Guten Abend Freunde, ich arbeite gerade an einem Vektorprozessor (SIMD). Da habe ich ein Problem mit der Multiplikation. Ich habe 16-bit Daten. Die Multiplikation passt in 32-bit Bereich. Ich habe aber nur 16-bit zur Verfügung. D.h. die Multiplikation liefert nur die LSBs als Ergebnis und im Falle eines Overflows erfolgt wrap-around. Was kann ich an der Stelle machen? Ich habe mit Schiebe-Operatoren versucht. Aber die Ergebnisse waren trotzdem nicht richtig :-( Zum veranschaulichen des Problems: short A1,A2,B1,B2; int A,B; Packing erfolgt hier: A = (A1,A2); B = (B1,B2); C = mul(A,B); C sieht so aus: C = (A1*B1,A2*B2) Ich hoffe, das ist verständlich.