Source file src/simd/archsimd/unsafe_helpers.go

     1  // Code generated by 'tmplgen'; DO NOT EDIT.
     2  
     3  //go:build goexperiment.simd
     4  
     5  package archsimd
     6  
     7  import "unsafe"
     8  
     9  // paInt8x16 returns a type-unsafe pointer to array that can
    10  // only be used with partial load/store operations that only
    11  // access the known-safe portions of the array.
    12  //
    13  //go:nocheckptr
    14  func paInt8x16(s []int8) *[16]int8 {
    15  	return (*[16]int8)(unsafe.Pointer(&s[0]))
    16  }
    17  
    18  // paInt16x8 returns a type-unsafe pointer to array that can
    19  // only be used with partial load/store operations that only
    20  // access the known-safe portions of the array.
    21  //
    22  //go:nocheckptr
    23  func paInt16x8(s []int16) *[8]int16 {
    24  	return (*[8]int16)(unsafe.Pointer(&s[0]))
    25  }
    26  
    27  // paInt32x4 returns a type-unsafe pointer to array that can
    28  // only be used with partial load/store operations that only
    29  // access the known-safe portions of the array.
    30  //
    31  //go:nocheckptr
    32  func paInt32x4(s []int32) *[4]int32 {
    33  	return (*[4]int32)(unsafe.Pointer(&s[0]))
    34  }
    35  
    36  // paInt64x2 returns a type-unsafe pointer to array that can
    37  // only be used with partial load/store operations that only
    38  // access the known-safe portions of the array.
    39  //
    40  //go:nocheckptr
    41  func paInt64x2(s []int64) *[2]int64 {
    42  	return (*[2]int64)(unsafe.Pointer(&s[0]))
    43  }
    44  
    45  // paUint8x16 returns a type-unsafe pointer to array that can
    46  // only be used with partial load/store operations that only
    47  // access the known-safe portions of the array.
    48  //
    49  //go:nocheckptr
    50  func paUint8x16(s []uint8) *[16]uint8 {
    51  	return (*[16]uint8)(unsafe.Pointer(&s[0]))
    52  }
    53  
    54  // paUint16x8 returns a type-unsafe pointer to array that can
    55  // only be used with partial load/store operations that only
    56  // access the known-safe portions of the array.
    57  //
    58  //go:nocheckptr
    59  func paUint16x8(s []uint16) *[8]uint16 {
    60  	return (*[8]uint16)(unsafe.Pointer(&s[0]))
    61  }
    62  
    63  // paUint32x4 returns a type-unsafe pointer to array that can
    64  // only be used with partial load/store operations that only
    65  // access the known-safe portions of the array.
    66  //
    67  //go:nocheckptr
    68  func paUint32x4(s []uint32) *[4]uint32 {
    69  	return (*[4]uint32)(unsafe.Pointer(&s[0]))
    70  }
    71  
    72  // paUint64x2 returns a type-unsafe pointer to array that can
    73  // only be used with partial load/store operations that only
    74  // access the known-safe portions of the array.
    75  //
    76  //go:nocheckptr
    77  func paUint64x2(s []uint64) *[2]uint64 {
    78  	return (*[2]uint64)(unsafe.Pointer(&s[0]))
    79  }
    80  
    81  // paFloat32x4 returns a type-unsafe pointer to array that can
    82  // only be used with partial load/store operations that only
    83  // access the known-safe portions of the array.
    84  //
    85  //go:nocheckptr
    86  func paFloat32x4(s []float32) *[4]float32 {
    87  	return (*[4]float32)(unsafe.Pointer(&s[0]))
    88  }
    89  
    90  // paFloat64x2 returns a type-unsafe pointer to array that can
    91  // only be used with partial load/store operations that only
    92  // access the known-safe portions of the array.
    93  //
    94  //go:nocheckptr
    95  func paFloat64x2(s []float64) *[2]float64 {
    96  	return (*[2]float64)(unsafe.Pointer(&s[0]))
    97  }
    98  
    99  // paInt8x32 returns a type-unsafe pointer to array that can
   100  // only be used with partial load/store operations that only
   101  // access the known-safe portions of the array.
   102  //
   103  //go:nocheckptr
   104  func paInt8x32(s []int8) *[32]int8 {
   105  	return (*[32]int8)(unsafe.Pointer(&s[0]))
   106  }
   107  
   108  // paInt16x16 returns a type-unsafe pointer to array that can
   109  // only be used with partial load/store operations that only
   110  // access the known-safe portions of the array.
   111  //
   112  //go:nocheckptr
   113  func paInt16x16(s []int16) *[16]int16 {
   114  	return (*[16]int16)(unsafe.Pointer(&s[0]))
   115  }
   116  
   117  // paInt32x8 returns a type-unsafe pointer to array that can
   118  // only be used with partial load/store operations that only
   119  // access the known-safe portions of the array.
   120  //
   121  //go:nocheckptr
   122  func paInt32x8(s []int32) *[8]int32 {
   123  	return (*[8]int32)(unsafe.Pointer(&s[0]))
   124  }
   125  
   126  // paInt64x4 returns a type-unsafe pointer to array that can
   127  // only be used with partial load/store operations that only
   128  // access the known-safe portions of the array.
   129  //
   130  //go:nocheckptr
   131  func paInt64x4(s []int64) *[4]int64 {
   132  	return (*[4]int64)(unsafe.Pointer(&s[0]))
   133  }
   134  
   135  // paUint8x32 returns a type-unsafe pointer to array that can
   136  // only be used with partial load/store operations that only
   137  // access the known-safe portions of the array.
   138  //
   139  //go:nocheckptr
   140  func paUint8x32(s []uint8) *[32]uint8 {
   141  	return (*[32]uint8)(unsafe.Pointer(&s[0]))
   142  }
   143  
   144  // paUint16x16 returns a type-unsafe pointer to array that can
   145  // only be used with partial load/store operations that only
   146  // access the known-safe portions of the array.
   147  //
   148  //go:nocheckptr
   149  func paUint16x16(s []uint16) *[16]uint16 {
   150  	return (*[16]uint16)(unsafe.Pointer(&s[0]))
   151  }
   152  
   153  // paUint32x8 returns a type-unsafe pointer to array that can
   154  // only be used with partial load/store operations that only
   155  // access the known-safe portions of the array.
   156  //
   157  //go:nocheckptr
   158  func paUint32x8(s []uint32) *[8]uint32 {
   159  	return (*[8]uint32)(unsafe.Pointer(&s[0]))
   160  }
   161  
   162  // paUint64x4 returns a type-unsafe pointer to array that can
   163  // only be used with partial load/store operations that only
   164  // access the known-safe portions of the array.
   165  //
   166  //go:nocheckptr
   167  func paUint64x4(s []uint64) *[4]uint64 {
   168  	return (*[4]uint64)(unsafe.Pointer(&s[0]))
   169  }
   170  
   171  // paFloat32x8 returns a type-unsafe pointer to array that can
   172  // only be used with partial load/store operations that only
   173  // access the known-safe portions of the array.
   174  //
   175  //go:nocheckptr
   176  func paFloat32x8(s []float32) *[8]float32 {
   177  	return (*[8]float32)(unsafe.Pointer(&s[0]))
   178  }
   179  
   180  // paFloat64x4 returns a type-unsafe pointer to array that can
   181  // only be used with partial load/store operations that only
   182  // access the known-safe portions of the array.
   183  //
   184  //go:nocheckptr
   185  func paFloat64x4(s []float64) *[4]float64 {
   186  	return (*[4]float64)(unsafe.Pointer(&s[0]))
   187  }
   188  
   189  // paInt8x64 returns a type-unsafe pointer to array that can
   190  // only be used with partial load/store operations that only
   191  // access the known-safe portions of the array.
   192  //
   193  //go:nocheckptr
   194  func paInt8x64(s []int8) *[64]int8 {
   195  	return (*[64]int8)(unsafe.Pointer(&s[0]))
   196  }
   197  
   198  // paInt16x32 returns a type-unsafe pointer to array that can
   199  // only be used with partial load/store operations that only
   200  // access the known-safe portions of the array.
   201  //
   202  //go:nocheckptr
   203  func paInt16x32(s []int16) *[32]int16 {
   204  	return (*[32]int16)(unsafe.Pointer(&s[0]))
   205  }
   206  
   207  // paInt32x16 returns a type-unsafe pointer to array that can
   208  // only be used with partial load/store operations that only
   209  // access the known-safe portions of the array.
   210  //
   211  //go:nocheckptr
   212  func paInt32x16(s []int32) *[16]int32 {
   213  	return (*[16]int32)(unsafe.Pointer(&s[0]))
   214  }
   215  
   216  // paInt64x8 returns a type-unsafe pointer to array that can
   217  // only be used with partial load/store operations that only
   218  // access the known-safe portions of the array.
   219  //
   220  //go:nocheckptr
   221  func paInt64x8(s []int64) *[8]int64 {
   222  	return (*[8]int64)(unsafe.Pointer(&s[0]))
   223  }
   224  
   225  // paUint8x64 returns a type-unsafe pointer to array that can
   226  // only be used with partial load/store operations that only
   227  // access the known-safe portions of the array.
   228  //
   229  //go:nocheckptr
   230  func paUint8x64(s []uint8) *[64]uint8 {
   231  	return (*[64]uint8)(unsafe.Pointer(&s[0]))
   232  }
   233  
   234  // paUint16x32 returns a type-unsafe pointer to array that can
   235  // only be used with partial load/store operations that only
   236  // access the known-safe portions of the array.
   237  //
   238  //go:nocheckptr
   239  func paUint16x32(s []uint16) *[32]uint16 {
   240  	return (*[32]uint16)(unsafe.Pointer(&s[0]))
   241  }
   242  
   243  // paUint32x16 returns a type-unsafe pointer to array that can
   244  // only be used with partial load/store operations that only
   245  // access the known-safe portions of the array.
   246  //
   247  //go:nocheckptr
   248  func paUint32x16(s []uint32) *[16]uint32 {
   249  	return (*[16]uint32)(unsafe.Pointer(&s[0]))
   250  }
   251  
   252  // paUint64x8 returns a type-unsafe pointer to array that can
   253  // only be used with partial load/store operations that only
   254  // access the known-safe portions of the array.
   255  //
   256  //go:nocheckptr
   257  func paUint64x8(s []uint64) *[8]uint64 {
   258  	return (*[8]uint64)(unsafe.Pointer(&s[0]))
   259  }
   260  
   261  // paFloat32x16 returns a type-unsafe pointer to array that can
   262  // only be used with partial load/store operations that only
   263  // access the known-safe portions of the array.
   264  //
   265  //go:nocheckptr
   266  func paFloat32x16(s []float32) *[16]float32 {
   267  	return (*[16]float32)(unsafe.Pointer(&s[0]))
   268  }
   269  
   270  // paFloat64x8 returns a type-unsafe pointer to array that can
   271  // only be used with partial load/store operations that only
   272  // access the known-safe portions of the array.
   273  //
   274  //go:nocheckptr
   275  func paFloat64x8(s []float64) *[8]float64 {
   276  	return (*[8]float64)(unsafe.Pointer(&s[0]))
   277  }
   278  

View as plain text