Zudem gibt's Shader-Befehle, die eine Multiplikation und eine Addition vereinen ("MAD").
Soweit ich weiß, brauchen die auf heutiger Hardware genauso lange wie nur eine Addition oder nur eine Multiplikation.
Das ist korrekt, wobei diese Instruktionen heutzutage meist unter dem Namen "FMA" (fused multiply add) gehandelt werden; ein MAD ist, im Gegensatz zu einem FMA, nicht notwendigerweise fused, kann also von der Hardware auch als zwei getrennte Operationen ausgeführt werden...
Auf einer GTX680 ist ein FMA mit floats gleich schnell als eine simple float Addition oder Multiplikation und z.B. 6x schneller als eine int Multiplikation oder ein Bitshift. Man muss aber aufpassen, seinen Code so zu schreiben, dass der Compiler FMA einsetzen darf, da ein FMA sich auch bezüglich Genauigkeit anders Verhält als eine getrennte Multiplikation und Addition (FMA ist genauer) und der Compiler in vielen Fällen, in denen man evtl. erwarten würde, dass ein FMA draus wird, keines draus machen
darf, da es das Programm verändern würde.
PS: FMA gibts mittlerweile übrigens auch auf der CPU:
http://en.wikipedia.org/wiki/FMA_instruction_set