AMD64 Architettura di Programmatore Volume 1: Application Programming pagina 226 dice riguardanti istruzioni SSE:tipi di dati x64 SSE Manuale
Il processore non controlla il tipo di dati degli operandi di istruzioni prima di istruzioni di esecuzione. Lo li controlla solo al punto di esecuzione. Ad esempio, se il processore esegue un'istruzione aritmetica che accetta operandi a precisione doppia ma viene fornita con operandi a precisione singola mediante le istruzioni MOV , il processore prima convertirà gli operandi da precisione singola a doppia precisione prima dell'esecuzione dell'operazione aritmetica e il risultato sarà corretto. Tuttavia, la conversione richiesta può causare un peggioramento delle prestazioni.
Non capisco; Avrei pensato che i registri di ymm contenessero semplicemente 256 bit che ogni istruzione interpreta in base ai suoi operandi previsti, sta a te assicurarti che siano presenti i tipi corretti, e nello scenario descritto, la CPU funzionerebbe alla massima velocità e darebbe in silenzio risposta sbagliata.
Cosa mi manca?
Forse si riferiscono al fatto che se si utilizza 'movaps' per caricare i doppi, funziona comunque? È un po 'strano dirlo come hanno fatto, soprattutto perché non c'è conversione, ma non vedo cos'altro potrebbero significare .. – harold