divss - divide scalar single (32 bit floating point)

dest = dest / source

The divss instruction divides the source value (second operand) into the destination (an XMM register). The source can be an XMM register or a 32 bit memory location. There is also vdivss on CPUs with AVX instructions which allows using 3 XMM registers or 2 XMM registers and a memory location which can simplify coding.

        divss   xmm0, xmm1          ; divide xmm0 by xmm1
                                    ; leave the rest of xmm0 as is
        divss   xmm0, [x]           ; divide xmm0 by 32 bit variable x
                                    ; leave the rest of xmm0 as is
        divss   xmm0, [rdi]         ; divide xmm0 by 32 bit value [rdi]
                                    ; rdi holds the address of a float
                                    ; leave the rest of xmm0 as is
        divss   xmm0, [x+4*rcx]     ; divide xmm0 by 32 bit element of array x
                                    ; rcx contains the array index
                                    ; leave the rest of xmm0 as is
        vdivss  xmm3, xmm0, xmm15   ; xmm3 = xmm0 / xmm15

            ; Note: operates by copying 128 bits from xmm0 to xmm3
            ; before dividing.  This might occasionally be useful.
            ; The rest of ymm0 is left as is
            ; using divss would change either xmm0 or xmm15
            ; possibly requiring an additional instruction

        vdivss  xmm3, xmm0, [x]     ; xmm3 = xmm0 / x

flags: none