Quote:Original post by Washu
Eh, lets leave singletons out of this.
But I take your side! :)
Quote:Original post by discman1028
So I am still adamant about the unusefulness of the *ss() operations.
Hmmm maybe I lied, they could be of some use. Maybe you could store your W component (or any component), by convention*, of your vector4 in the [0] position. Then you could modify W by the [0] component of any other vector4 without affecting the X,Y,Z components. I'm not sure if that's why SSE chose to include those instructions, but it's one valid use I hadn't thought of.
The same thing could be done in any vector architecture, but you would have to generate a mask vector like <0xFFFFFFFF,0,0,0> in order to apply the change to the [0] component only.
Just trying to think of ways to use the darn things... :)
*by convention b/c if you try to optimize by shuffling, then performing a 1-component *ss() op, than shuffling back, you could have just done a packed operation, then shuffled the result and the original together to create the desired result, saving one instruction.