field_amd64.go raw

   1  //go:build amd64
   2  
   3  package avx
   4  
   5  // AMD64-specific field operations with AVX2 assembly.
   6  
   7  // FieldAddAVX2 adds two field elements using AVX2.
   8  //
   9  //go:noescape
  10  func FieldAddAVX2(r, a, b *FieldElement)
  11  
  12  // FieldSubAVX2 subtracts two field elements using AVX2.
  13  //
  14  //go:noescape
  15  func FieldSubAVX2(r, a, b *FieldElement)
  16  
  17  // FieldMulAVX2 multiplies two field elements using AVX2.
  18  //
  19  //go:noescape
  20  func FieldMulAVX2(r, a, b *FieldElement)
  21  
  22  // FieldSqrAVX2 squares a field element using AVX2.
  23  //
  24  //go:noescape
  25  func FieldSqrAVX2(r, a *FieldElement)
  26