AMD64架構程序員手冊第1卷:應用程序編程第226個說關於SSE指令:64 SSE數據類型
處理器不前執行指令檢查指令操作數的數據類型。它只在執行時檢查它們。例如,如果處理器執行的算術指令採用雙精度操作數,但通過 MOVx指令提供單精度操作數,則在執行算術運算之前,處理器將首先將操作數從單精度轉換爲精度的兩倍 ,結果是正確的。但是,所需的轉換可能會導致性能下降。
我不明白這一點;我以爲ymm寄存器只包含256位,每個指令根據其預期的操作數來解釋,這取決於你是否存在正確的類型,並且在所描述的場景中,CPU將全速運行並默默給出錯誤的答案。
我錯過了什麼?
也許他們指的是,如果你使用'movaps'加載雙打,它無論如何都可以實現嗎?按照他們的方式說出來有點奇怪,特別是因爲沒有轉換,但我不明白他們還有什麼意思。 – harold 2013-03-10 16:21:28