github.com/apernet/sing-tun@v0.2.6-0.20240323130332-b9f6511036ad/internal/clashtcpip/tcpip_amd64.go (about) 1 //go:build !noasm 2 3 package clashtcpip 4 5 import ( 6 "unsafe" 7 8 "golang.org/x/sys/cpu" 9 ) 10 11 //go:noescape 12 func sumAsmAvx2(data unsafe.Pointer, length uintptr) uintptr 13 14 func SumAVX2(data []byte) uint32 { 15 if len(data) == 0 { 16 return 0 17 } 18 19 return uint32(sumAsmAvx2(unsafe.Pointer(&data[0]), uintptr(len(data)))) 20 } 21 22 func init() { 23 if cpu.X86.HasAVX2 { 24 SumFnc = SumAVX2 25 } 26 }