मैं एसएसई के लिए बहुत नया हूं और इंट्रिनिक्स का उपयोग कर कोड के एक अनुभाग को अनुकूलित किया है। मैं ऑपरेशन से खुद खुश हूं, लेकिन मैं परिणाम लिखने का एक बेहतर तरीका ढूंढ रहा हूं। परिणाम तीन _m128i
चर में समाप्त होते हैं।एसएसई इंट्रिनिक्स के साथ गैर-संगत मेमोरी लोकेशन में मूल्यों को कैसे स्टोर करें?
जो मैं करने की कोशिश कर रहा हूं वह परिणाम मानों से विशिष्ट बाइट्स को गैर-संगत स्मृति स्थानों तक स्टोर करता है। मैं वर्तमान में इस कर रहा हूँ:
__m128i values0,values1,values2;
/*Do stuff and store the results in values0, values1, and values2*/
y[0] = (BYTE)_mm_extract_epi16(values0,0);
cb[2]=cb[3] = (BYTE)_mm_extract_epi16(values0,2);
y[3] = (BYTE)_mm_extract_epi16(values0,4);
cr[4]=cr[5] = (BYTE)_mm_extract_epi16(values0,6);
cb[0]=cb[1] = (BYTE)_mm_extract_epi16(values1,0);
y[1] = (BYTE)_mm_extract_epi16(values1,2);
cr[2]=cr[3] = (BYTE)_mm_extract_epi16(values1,4);
y[4] = (BYTE)_mm_extract_epi16(values1,6);
cr[0]=cr[1] = (BYTE)_mm_extract_epi16(values2,0);
y[2] = (BYTE)_mm_extract_epi16(values2,2);
cb[4]=cb[5] = (BYTE)_mm_extract_epi16(values2,4);
y[5] = (BYTE)_mm_extract_epi16(values2,6);
y
, cb
, और cr
कहाँ बाइट (unsigned char
) सरणियों कर रहे हैं। यह उन कारणों से गलत लगता है जिन्हें मैं परिभाषित नहीं कर सकता। क्या किसी के पास बेहतर तरीके से कोई सुझाव है?
धन्यवाद!
मुझे लगता है कि आप _mm_packXxx इंट्रिनिक्स में से एक के लिए देख रहे हैं। –
मैंने उन पर ध्यान दिया, लेकिन उनमें से कोई भी ऐसा नहीं कर रहा था जो मैं चाहता हूं। मैं फिर से जांच जाऊंगा, धन्यवाद। – Scott