Fast CRC implementations ported from Intel's efforts

Provides fast CRC32C with PCLMULQDQ instructions in Golang

The white papers on CRC32C calculations with PCLMULQDQ instruction can be
  downloaded from:

http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/crc-iscsi-polynomial-crc32-instruction-paper.pdf
http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-paper.pdf
This commit is contained in:
Harshavardhana
2014-12-02 03:17:39 -08:00
parent d31050803b
commit fb34c5290c
9 changed files with 995 additions and 1 deletions

View File

@@ -0,0 +1,27 @@
package cpu
import (
. "gopkg.in/check.v1"
"testing"
)
func Test(t *testing.T) { TestingT(t) }
type MySuite struct{}
var _ = Suite(&MySuite{})
func (s *MySuite) TestHasSSE41(c *C) {
var bool = HasSSE41()
c.Check(bool, Equals, 1)
}
func (s *MySuite) TestHasAVX(c *C) {
var bool = HasAVX()
c.Check(bool, Equals, 1)
}
func (s *MySuite) TestHasAVX2(c *C) {
var bool = HasAVX2()
c.Check(bool, Equals, 0)
}