For instance, here is the third loop with `-O3`
```
.L15:
	addq	$8, %rdx
	movsd	-8(%rdx), %xmm0
	ucomisd	%xmm1, %xmm0
	ja	.L24
	movapd	%xmm0, %xmm1
.L14:
	cmpq	%rax, %rdx
	jne	.L15
```
Compare to
```
.L55:
	xorl	%eax, %eax
.L41:
	rep ret
	.p2align 4,,10
	.p2align 3
.L60:
	cmpl	%edx, %esi
	jle	.L54
	addl	$1, %edx
	movslq	%edx, %rax
	leaq	(%rdi,%rax,8), %rax
	ucomisd	(%rax), %xmm1
	jbe	.L48
	jmp	.L55
	.p2align 4,,10
	.p2align 3
.L47:
	movsd	(%rax), %xmm0
	addq	$8, %rax
	addl	$1, %edx
	ucomisd	(%rax), %xmm0
	ja	.L55
```

This with gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) .

@jaimefrio Don't worry, we're just playing here, although there is much to learn be reading way too much generated assembly ;)