Link to home
Start Free TrialLog in
Avatar of hengck23
hengck23

asked on

What is the defference between movd and movss?

Dear all,

movd is to move 32-bit interger to xmm register.
movss is to to 32-bit floating float instead.

however, would:

movd  xmm0, DWORD PTR[eax]
movss  xmm0, DWORD PTR[eax]

be the same? Or this there a difference in speed?

Thank you.
Avatar of dimitry
dimitry

These are same commands according to Intel spec:
MOVD instruction when destination operand is XMM register:
DEST[31-0] ←SRC;
DEST[127-32] ←000000000000000000000000H;

MOVSS instruction when source operand is memory location and destination operand is XMM register:
DEST[31-0] ←SRC;
DEST[127-32] ←000000000000000000000000H;

However they have different C/C++ Intel Compiler Intrinsics...
Despite I think there is no speed difference, I would suggest to use movss as special SSE command.


ASKER CERTIFIED SOLUTION
Avatar of dimitry
dimitry

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
no-         movd moves 64 bit data not 32 bit
movss is not there in 80x86 instruction set.     movs is there but it's used for moving string. i thought, i'm correct?


byte                               (MOVB 8 bits),
word                              (MOVW 16 bits),
longword                        (MOVL 32 bits),
quadword                       (MOVQ 64 bits),
octaword                        (MOVQ 128 bits),
single precision floating    (MOVF 32 bits),
double precision floating   (MOVD 64 bits),
G floating                        (MOVG 64 bits), or
H floating                        (MOVH 128 bits)


Avatar of mbizup
No comment has been added to this question in more than 21 days, so it is now classified as abandoned.

I will leave the following recommendation for this question in the Cleanup topic area:
    Accept: dimitry {http:#12547124}

Any objections should be posted here in the next 4 days. After that time, the question will be closed.

mbizup
EE Cleanup Volunteer