github.com/egonelbre/exp@v0.0.0-20240430123955-ed1d3aa93911/sse/sse.go (about) 1 package sse 2 3 func AddU32_ASM(dst, src []uint32) 4 func SubU32_ASM(dst, src []uint32) 5 func MulU32_ASM(dst, src []uint32) 6 7 func AddU32_SSE(dst, src []uint32) 8 func SubU32_SSE(dst, src []uint32) 9 func MulU32_SSE(dst, src []uint32) 10 11 func AddU32_Slow(dst, src []uint32) { 12 n := len(dst) 13 if n > len(src) { 14 n = len(src) 15 } 16 17 for i := range dst[:n] { 18 dst[i] += src[i] 19 } 20 } 21 22 func SubU32_Slow(dst, src []uint32) { 23 n := len(dst) 24 if n > len(src) { 25 n = len(src) 26 } 27 28 for i := range dst[:n] { 29 dst[i] -= src[i] 30 } 31 } 32 33 func MulU32_Slow(dst, src []uint32) { 34 n := len(dst) 35 if n > len(src) { 36 n = len(src) 37 } 38 39 for i := range dst[:n] { 40 dst[i] *= src[i] 41 } 42 }