Magnus,
You may like this one then, sequential add then average.
; ----------------------------------------------
; result is in the user specified SSE register
; also saves & uses xmm15 for integer conversion
; ----------------------------------------------
sseavrg MACRO ssereg, args:VARARG
LOCAL cntr
cntr = 1
FOR arg,<args>
IF cntr eq 1
movsd ssereg, arg
ELSE
addsd ssereg, arg
ENDIF
cntr = cntr + 1
ENDM
cntr = cntr - 1
IFNDEF xmmbak@@@@@@
xmmbak@@@@@@ equ <1>
.data
align 16
xmmx XMMWORD 0.0
.code
ENDIF
movdqa xmmx, xmm15 ;; save xmm15
mov rax, cntr
cvtsi2sd xmm15, rax
divsd ssereg, xmm15
movdqa xmm15, xmmx ;; restore xmm15
ENDM
; --------------------------------------------
Disassembly.
.text:000000014000101e 488D8530FFFFFF lea rax, [rbp-0xd0]
.text:0000000140001025 48898550FFFFFF mov qword ptr [rbp-0xb0], rax
.text:000000014000102c 488D052D100000 lea rax, [0x140002060]
.text:0000000140001033 F20F1000 movsd xmm0, qword ptr [rax]
.text:0000000140001037 F20F118570FFFFFF movsd qword ptr [rbp-0x90], xmm0
.text:000000014000103f F20F10A570FFFFFF movsd xmm4, qword ptr [rbp-0x90]
.text:0000000140001047 F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:000000014000104f F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:0000000140001057 F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:000000014000105f F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:0000000140001067 F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:000000014000106f F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:0000000140001077 F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:000000014000107f F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:0000000140001087 F20F58A570FFFFFF addsd xmm4, qword ptr [rbp-0x90]
.text:000000014000108f 66440F7F3DD80F0000 movdqa xmmword ptr [0x140002070], xmm15
.text:0000000140001098 48C7C00A000000 mov rax, 0xa
.text:000000014000109f F24C0F2AF8 cvtsi2sd xmm15, rax
.text:00000001400010a4 F2410F5EE7 divsd xmm4, xmm15
.text:00000001400010a9 66440F6F3DBE0F0000 movdqa xmm15, xmmword ptr [0x140002070]
.text:00000001400010b2 F20F11A570FFFFFF movsd qword ptr [rbp-0x90], xmm4