I modified the code from [a previous experiment](https://stackoverflow.com/questions/37334345/two-loop-carried-dependency-chain-which-one-matters) (Agner Fog's [Optimizing Assembly, example 12.10a](http://agner.org/optimize/)) to make it more dependent:

```
movsd xmm2, [x] 
movsd xmm1, [one] 
xorps xmm0, xmm0  
mov eax, coeff    

L1:
    movsd xmm3, [eax]
    mulsd xmm3, xmm1
    mulsd xmm1, xmm2
    addsd xmm1, xmm3
    add   eax, 8
    cmp eax, coeff_end
    jb L1

```

And now it takes ~13 cycles per iteration, but I have no idea why so much.
Please help me understand.

---

**(update)**
I'm sorry. Yes, definetely @Peter Cordes is right- it takes 9 cycles per iteration in fact. The misunderstanding is caused by myself. I missed two similar pieces of codes ( instructions swapped), the 13-cycles code is here:

```
movsd xmm2, [x] 
movsd xmm1, [one] 
xorps xmm0, xmm0  
mov eax, coeff    

L1:
    movsd xmm3, [eax]

    mulsd xmm1, xmm2
    mulsd xmm3, xmm1      
    addsd xmm1, xmm3
    add   eax, 8
    cmp eax, coeff_end
    jb L1

```