मैं सिर्फ gcc (g ++) और compilerflags -msse और -msse2 के साथ खेल रहा हूं। जब मैंने इसे निम्न कथनों से संकलनसी/सी ++: -msse और -msse2 झंडे पर कोई प्रभाव नहीं पड़ता है?
#include <iostream>
int main(int argc, char **argv) {
float a = 12558.5688;
float b = 6.5585;
float result = 0.0;
result = a * b;
std::cout << "Result: " << result << std::endl;
return 0;
}
:
/usr/local/bin/g++-4.9 -W -msse main.cpp -o testsse
और
/usr/local/bin/g++-4.9 -W -msse2 main.cpp -o testsse2
उत्पादन फ़ाइलों द्विआधारी बराबर हैं मैं एक छोटे से परीक्षण कार्यक्रम जो कि तरह दिखता है। लेकिन मुझे उम्मीद है कि वे एसएमआईडी झंडे के कारण समान नहीं हैं।
तो मेरा सवाल यह है कि, क्या उन अनुपालन झंडे बाइनरी फ़ाइल पर कोई प्रभाव नहीं रखते हैं? मैंने इसे ओएस एक्स 10.10.3 और फेडोरा 21 पर परीक्षण किया है।
आपकी मदद के लिए धन्यवाद।
तरह का संबंध
फैबियन
-msse और -msse2 x86_64 प्रोसेसर पर डिफ़ॉल्ट रूप से सक्षम हैं। यदि आप ऐसे प्रोसेसर पर निर्माण कर रहे हैं, तो यह समझ में आएगा कि उनके पास कोई प्रभाव नहीं है। – IanPudney
वैसे भी करने के लिए कोई गणित नहीं है, आप केवल एक स्ट्रिंग और स्थिर – harold
प्रिंट कर रहे हैं आप यह देखने के लिए जेनरेटेड असेंबली देख सकते हैं कि कोई भी निर्देश उपयोग किया जाता है या नहीं। –