पैक्ड सिंगल प्रिसिजन फ्लोट्स के रूप में मेमोरी से 8 वर्णों को __m256 वेरिएबल में लोड करना
गॉसियन ब्लर के लिए एक एल्गोरिदम को अनुकूलित करने के प्रयास में, आप फ्लोट बफ़र के उपयोग को __m256 आंतरिक चर के साथ बदलने का प्रयास करें। इस प्रश्न का उद्देश्य इस कार्य के लिए इष्टतम निर्देश निर्धारित करना है। 256बी रजिस्टर में पूर्णांक।
VCVTDQ2PS के साथ इन-प्लेस में कनवर्ट करें।
; आरएसआई = new_image VPMOVZXBD ymm0, [rsi] ; या साइन-एक्सटेंड करने के लिए SX (DWord को बाइट) VCVTDQ2PS ymm0, ymm0 ; पैक्ड फ़ोट में कनवर्ट करें; rsi = new_image VPMOVZXBD ymm0, [rsi] ; or SX to sign-extend (Byte to DWord) VCVTDQ2PS ymm0, ymm0 ; convert to packed foat
निम्न चरण निष्पादित करें:
आंतरिक विचार:
इसके बजाय _mm_loadl_epi64 आंतरिक का उपयोग करने पर विचार करें, जिसे GCC संस्करण 9 और बाद के GCC के साथ -O3 पर इष्टतम एएसएम के लिए मेमोरी ऑपरेंड में फोल्ड किया जा सकता है।
VPMOVZXBD xmm0, [rsi] VPMOVZXBD xmm1, [rsi 4] VINSERTF128 ymm0, ymm0, xmm1, 1 ; put the 2nd load of data into the high128 of ymm0 VCVTDQ2PS ymm0, ymm0 ; convert to packed float
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3