Source file src/simd/archsimd/types_arm64.go

     1  // Code generated by 'simdgen -o godefs -goroot $GOROOT -arch arm64 -arm64Path $ARM64_ISA_PATH go_arm64.yaml types.yaml categories.yaml'; DO NOT EDIT.
     2  
     3  //go:build goexperiment.simd
     4  
     5  package archsimd
     6  
     7  // v128 is a tag type that tells the compiler that this is really 128-bit SIMD
     8  type v128 struct {
     9  	_128 [0]func() // uncomparable
    10  }
    11  
    12  // Float32x4 is a 128-bit SIMD vector of 4 float32s.
    13  type Float32x4 struct {
    14  	float32x4 v128
    15  	vals      [4]float32
    16  }
    17  
    18  // Len returns the number of elements in a Float32x4.
    19  func (x Float32x4) Len() int { return 4 }
    20  
    21  // LoadFloat32x4Array loads a Float32x4 from an array.
    22  //
    23  //go:noescape
    24  func LoadFloat32x4Array(y *[4]float32) Float32x4
    25  
    26  // StoreArray stores a Float32x4 to an array.
    27  //
    28  //go:noescape
    29  func (x Float32x4) StoreArray(y *[4]float32)
    30  
    31  // Float64x2 is a 128-bit SIMD vector of 2 float64s.
    32  type Float64x2 struct {
    33  	float64x2 v128
    34  	vals      [2]float64
    35  }
    36  
    37  // Len returns the number of elements in a Float64x2.
    38  func (x Float64x2) Len() int { return 2 }
    39  
    40  // LoadFloat64x2Array loads a Float64x2 from an array.
    41  //
    42  //go:noescape
    43  func LoadFloat64x2Array(y *[2]float64) Float64x2
    44  
    45  // StoreArray stores a Float64x2 to an array.
    46  //
    47  //go:noescape
    48  func (x Float64x2) StoreArray(y *[2]float64)
    49  
    50  // Int8x16 is a 128-bit SIMD vector of 16 int8s.
    51  type Int8x16 struct {
    52  	int8x16 v128
    53  	vals    [16]int8
    54  }
    55  
    56  // Len returns the number of elements in an Int8x16.
    57  func (x Int8x16) Len() int { return 16 }
    58  
    59  // LoadInt8x16Array loads an Int8x16 from an array.
    60  //
    61  //go:noescape
    62  func LoadInt8x16Array(y *[16]int8) Int8x16
    63  
    64  // StoreArray stores an Int8x16 to an array.
    65  //
    66  //go:noescape
    67  func (x Int8x16) StoreArray(y *[16]int8)
    68  
    69  // Int16x8 is a 128-bit SIMD vector of 8 int16s.
    70  type Int16x8 struct {
    71  	int16x8 v128
    72  	vals    [8]int16
    73  }
    74  
    75  // Len returns the number of elements in an Int16x8.
    76  func (x Int16x8) Len() int { return 8 }
    77  
    78  // LoadInt16x8Array loads an Int16x8 from an array.
    79  //
    80  //go:noescape
    81  func LoadInt16x8Array(y *[8]int16) Int16x8
    82  
    83  // StoreArray stores an Int16x8 to an array.
    84  //
    85  //go:noescape
    86  func (x Int16x8) StoreArray(y *[8]int16)
    87  
    88  // Int32x4 is a 128-bit SIMD vector of 4 int32s.
    89  type Int32x4 struct {
    90  	int32x4 v128
    91  	vals    [4]int32
    92  }
    93  
    94  // Len returns the number of elements in an Int32x4.
    95  func (x Int32x4) Len() int { return 4 }
    96  
    97  // LoadInt32x4Array loads an Int32x4 from an array.
    98  //
    99  //go:noescape
   100  func LoadInt32x4Array(y *[4]int32) Int32x4
   101  
   102  // StoreArray stores an Int32x4 to an array.
   103  //
   104  //go:noescape
   105  func (x Int32x4) StoreArray(y *[4]int32)
   106  
   107  // Int64x2 is a 128-bit SIMD vector of 2 int64s.
   108  type Int64x2 struct {
   109  	int64x2 v128
   110  	vals    [2]int64
   111  }
   112  
   113  // Len returns the number of elements in an Int64x2.
   114  func (x Int64x2) Len() int { return 2 }
   115  
   116  // LoadInt64x2Array loads an Int64x2 from an array.
   117  //
   118  //go:noescape
   119  func LoadInt64x2Array(y *[2]int64) Int64x2
   120  
   121  // StoreArray stores an Int64x2 to an array.
   122  //
   123  //go:noescape
   124  func (x Int64x2) StoreArray(y *[2]int64)
   125  
   126  // Uint8x16 is a 128-bit SIMD vector of 16 uint8s.
   127  type Uint8x16 struct {
   128  	uint8x16 v128
   129  	vals     [16]uint8
   130  }
   131  
   132  // Len returns the number of elements in a Uint8x16.
   133  func (x Uint8x16) Len() int { return 16 }
   134  
   135  // LoadUint8x16Array loads a Uint8x16 from an array.
   136  //
   137  //go:noescape
   138  func LoadUint8x16Array(y *[16]uint8) Uint8x16
   139  
   140  // StoreArray stores a Uint8x16 to an array.
   141  //
   142  //go:noescape
   143  func (x Uint8x16) StoreArray(y *[16]uint8)
   144  
   145  // Uint16x8 is a 128-bit SIMD vector of 8 uint16s.
   146  type Uint16x8 struct {
   147  	uint16x8 v128
   148  	vals     [8]uint16
   149  }
   150  
   151  // Len returns the number of elements in a Uint16x8.
   152  func (x Uint16x8) Len() int { return 8 }
   153  
   154  // LoadUint16x8Array loads a Uint16x8 from an array.
   155  //
   156  //go:noescape
   157  func LoadUint16x8Array(y *[8]uint16) Uint16x8
   158  
   159  // StoreArray stores a Uint16x8 to an array.
   160  //
   161  //go:noescape
   162  func (x Uint16x8) StoreArray(y *[8]uint16)
   163  
   164  // Uint32x4 is a 128-bit SIMD vector of 4 uint32s.
   165  type Uint32x4 struct {
   166  	uint32x4 v128
   167  	vals     [4]uint32
   168  }
   169  
   170  // Len returns the number of elements in a Uint32x4.
   171  func (x Uint32x4) Len() int { return 4 }
   172  
   173  // LoadUint32x4Array loads a Uint32x4 from an array.
   174  //
   175  //go:noescape
   176  func LoadUint32x4Array(y *[4]uint32) Uint32x4
   177  
   178  // StoreArray stores a Uint32x4 to an array.
   179  //
   180  //go:noescape
   181  func (x Uint32x4) StoreArray(y *[4]uint32)
   182  
   183  // Uint64x2 is a 128-bit SIMD vector of 2 uint64s.
   184  type Uint64x2 struct {
   185  	uint64x2 v128
   186  	vals     [2]uint64
   187  }
   188  
   189  // Len returns the number of elements in a Uint64x2.
   190  func (x Uint64x2) Len() int { return 2 }
   191  
   192  // LoadUint64x2Array loads a Uint64x2 from an array.
   193  //
   194  //go:noescape
   195  func LoadUint64x2Array(y *[2]uint64) Uint64x2
   196  
   197  // StoreArray stores a Uint64x2 to an array.
   198  //
   199  //go:noescape
   200  func (x Uint64x2) StoreArray(y *[2]uint64)
   201  
   202  // Mask8x16 is a mask for a SIMD vector of 16 8-bit elements.
   203  type Mask8x16 struct {
   204  	int8x16 v128
   205  	vals    [16]int8
   206  }
   207  
   208  // Mask16x8 is a mask for a SIMD vector of 8 16-bit elements.
   209  type Mask16x8 struct {
   210  	int16x8 v128
   211  	vals    [8]int16
   212  }
   213  
   214  // Mask32x4 is a mask for a SIMD vector of 4 32-bit elements.
   215  type Mask32x4 struct {
   216  	int32x4 v128
   217  	vals    [4]int32
   218  }
   219  
   220  // Mask64x2 is a mask for a SIMD vector of 2 64-bit elements.
   221  type Mask64x2 struct {
   222  	int64x2 v128
   223  	vals    [2]int64
   224  }
   225  

View as plain text