github.com/as/shiny@v0.8.2/driver/internal/swizzle/swizzle_amd64.go (about)

     1  // Copyright 2018 as
     2  // Copyright 2015 The Go Authors
     3  package swizzle
     4  
     5  func haveSSSE3() bool
     6  func haveAVX() bool
     7  func haveAVX2() bool
     8  
     9  var (
    10  	useBGRA4 = true
    11  	useSSSE3 = haveSSSE3()
    12  	useAVX   = haveAVX()
    13  	useAVX2  = haveAVX2()
    14  )
    15  
    16  func init() {
    17  	swizzler = bgra4sd
    18  	if useSSSE3 {
    19  		swizzler = bgra16sd
    20  	}
    21  	if useAVX {
    22  		swizzler = bgra128sd
    23  	}
    24  	if useAVX2 {
    25  		swizzler = bgra256sd
    26  	}
    27  }
    28  
    29  func bgra256sd(p, q []byte) // swizzle_amd64.s:/bgra256sd/
    30  func bgra128sd(p, q []byte) // swizzle_amd64.s:/bgra128sd/
    31  func bgra16sd(p, q []byte)  // swizzle_amd64.s:/bgra16sd/
    32  func bgra4sd(p, q []byte)