I was reading Avx Scalar Floating-Point Instructions and in them, I faced some doubt. Consider this instruction.
See that we are adding the lower 32 bits of xmm1 and xmm2 registers and storing them in the xmm0 register. Now I have a doubt here. Say all the lower 31 bits is 0 and the MSB(of the lower 32 bits) is 1 in both the registers. Like 1000..00 for xmm1 as well as 1000..00 for xmm2 for 32 bits. Now if we add them the value of the from xmm0[31:0] becomes all zero but xmm0[32] bit becomes 1. But here in the addition, we are not storing that 1, we are just replacing the xmm0[127:32] with xmm1[127:32]. Isn't it wrong?
Moreover when we are adding bits in parallel how is carry propagated? Do we use carry look ahead adder in these cases?