In the book Computer Systems: A Programmer's Perspective(CS:APP), It's mentioned that compiler generates assembly code for XMM registers copying from one to another using the instructions vmovaps and vmovapd.. and it's mentioned that those instructions copy the whole source XMM register into the destination XMM register.
My question is, why do both of these instructions exist when both of them will just copy the source bit by bit to the destination? I don't see the significance of specifying whether we want to copy a single or a double?
This paragraph is present, and from which I speculate that the two instructions exist because it's left as microarchitecture-defined whether to copy the low-order single or double or just copy the whole register.
