github.com/apache/arrow/go/v14@v14.0.1/internal/utils/transpose_ints_amd64.go (about)

     1  // Code generated by transpose_ints_amd64.go.tmpl. DO NOT EDIT.
     2  
     3  // Licensed to the Apache Software Foundation (ASF) under one
     4  // or more contributor license agreements.  See the NOTICE file
     5  // distributed with this work for additional information
     6  // regarding copyright ownership.  The ASF licenses this file
     7  // to you under the Apache License, Version 2.0 (the
     8  // "License"); you may not use this file except in compliance
     9  // with the License.  You may obtain a copy of the License at
    10  //
    11  // http://www.apache.org/licenses/LICENSE-2.0
    12  //
    13  // Unless required by applicable law or agreed to in writing, software
    14  // distributed under the License is distributed on an "AS IS" BASIS,
    15  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  // See the License for the specific language governing permissions and
    17  // limitations under the License.
    18  
    19  //go:build !noasm
    20  
    21  package utils
    22  
    23  import (
    24  	"golang.org/x/sys/cpu"
    25  )
    26  
    27  var (
    28  	TransposeInt8Int8   func([]int8, []int8, []int32)
    29  	TransposeInt8Uint8  func([]int8, []uint8, []int32)
    30  	TransposeInt8Int16  func([]int8, []int16, []int32)
    31  	TransposeInt8Uint16 func([]int8, []uint16, []int32)
    32  	TransposeInt8Int32  func([]int8, []int32, []int32)
    33  	TransposeInt8Uint32 func([]int8, []uint32, []int32)
    34  	TransposeInt8Int64  func([]int8, []int64, []int32)
    35  	TransposeInt8Uint64 func([]int8, []uint64, []int32)
    36  
    37  	TransposeUint8Int8   func([]uint8, []int8, []int32)
    38  	TransposeUint8Uint8  func([]uint8, []uint8, []int32)
    39  	TransposeUint8Int16  func([]uint8, []int16, []int32)
    40  	TransposeUint8Uint16 func([]uint8, []uint16, []int32)
    41  	TransposeUint8Int32  func([]uint8, []int32, []int32)
    42  	TransposeUint8Uint32 func([]uint8, []uint32, []int32)
    43  	TransposeUint8Int64  func([]uint8, []int64, []int32)
    44  	TransposeUint8Uint64 func([]uint8, []uint64, []int32)
    45  
    46  	TransposeInt16Int8   func([]int16, []int8, []int32)
    47  	TransposeInt16Uint8  func([]int16, []uint8, []int32)
    48  	TransposeInt16Int16  func([]int16, []int16, []int32)
    49  	TransposeInt16Uint16 func([]int16, []uint16, []int32)
    50  	TransposeInt16Int32  func([]int16, []int32, []int32)
    51  	TransposeInt16Uint32 func([]int16, []uint32, []int32)
    52  	TransposeInt16Int64  func([]int16, []int64, []int32)
    53  	TransposeInt16Uint64 func([]int16, []uint64, []int32)
    54  
    55  	TransposeUint16Int8   func([]uint16, []int8, []int32)
    56  	TransposeUint16Uint8  func([]uint16, []uint8, []int32)
    57  	TransposeUint16Int16  func([]uint16, []int16, []int32)
    58  	TransposeUint16Uint16 func([]uint16, []uint16, []int32)
    59  	TransposeUint16Int32  func([]uint16, []int32, []int32)
    60  	TransposeUint16Uint32 func([]uint16, []uint32, []int32)
    61  	TransposeUint16Int64  func([]uint16, []int64, []int32)
    62  	TransposeUint16Uint64 func([]uint16, []uint64, []int32)
    63  
    64  	TransposeInt32Int8   func([]int32, []int8, []int32)
    65  	TransposeInt32Uint8  func([]int32, []uint8, []int32)
    66  	TransposeInt32Int16  func([]int32, []int16, []int32)
    67  	TransposeInt32Uint16 func([]int32, []uint16, []int32)
    68  	TransposeInt32Int32  func([]int32, []int32, []int32)
    69  	TransposeInt32Uint32 func([]int32, []uint32, []int32)
    70  	TransposeInt32Int64  func([]int32, []int64, []int32)
    71  	TransposeInt32Uint64 func([]int32, []uint64, []int32)
    72  
    73  	TransposeUint32Int8   func([]uint32, []int8, []int32)
    74  	TransposeUint32Uint8  func([]uint32, []uint8, []int32)
    75  	TransposeUint32Int16  func([]uint32, []int16, []int32)
    76  	TransposeUint32Uint16 func([]uint32, []uint16, []int32)
    77  	TransposeUint32Int32  func([]uint32, []int32, []int32)
    78  	TransposeUint32Uint32 func([]uint32, []uint32, []int32)
    79  	TransposeUint32Int64  func([]uint32, []int64, []int32)
    80  	TransposeUint32Uint64 func([]uint32, []uint64, []int32)
    81  
    82  	TransposeInt64Int8   func([]int64, []int8, []int32)
    83  	TransposeInt64Uint8  func([]int64, []uint8, []int32)
    84  	TransposeInt64Int16  func([]int64, []int16, []int32)
    85  	TransposeInt64Uint16 func([]int64, []uint16, []int32)
    86  	TransposeInt64Int32  func([]int64, []int32, []int32)
    87  	TransposeInt64Uint32 func([]int64, []uint32, []int32)
    88  	TransposeInt64Int64  func([]int64, []int64, []int32)
    89  	TransposeInt64Uint64 func([]int64, []uint64, []int32)
    90  
    91  	TransposeUint64Int8   func([]uint64, []int8, []int32)
    92  	TransposeUint64Uint8  func([]uint64, []uint8, []int32)
    93  	TransposeUint64Int16  func([]uint64, []int16, []int32)
    94  	TransposeUint64Uint16 func([]uint64, []uint16, []int32)
    95  	TransposeUint64Int32  func([]uint64, []int32, []int32)
    96  	TransposeUint64Uint32 func([]uint64, []uint32, []int32)
    97  	TransposeUint64Int64  func([]uint64, []int64, []int32)
    98  	TransposeUint64Uint64 func([]uint64, []uint64, []int32)
    99  )
   100  
   101  func init() {
   102  	if cpu.X86.HasAVX2 {
   103  
   104  		TransposeInt8Int8 = transposeInt8Int8avx2
   105  		TransposeInt8Uint8 = transposeInt8Uint8avx2
   106  		TransposeInt8Int16 = transposeInt8Int16avx2
   107  		TransposeInt8Uint16 = transposeInt8Uint16avx2
   108  		TransposeInt8Int32 = transposeInt8Int32avx2
   109  		TransposeInt8Uint32 = transposeInt8Uint32avx2
   110  		TransposeInt8Int64 = transposeInt8Int64avx2
   111  		TransposeInt8Uint64 = transposeInt8Uint64avx2
   112  
   113  		TransposeUint8Int8 = transposeUint8Int8avx2
   114  		TransposeUint8Uint8 = transposeUint8Uint8avx2
   115  		TransposeUint8Int16 = transposeUint8Int16avx2
   116  		TransposeUint8Uint16 = transposeUint8Uint16avx2
   117  		TransposeUint8Int32 = transposeUint8Int32avx2
   118  		TransposeUint8Uint32 = transposeUint8Uint32avx2
   119  		TransposeUint8Int64 = transposeUint8Int64avx2
   120  		TransposeUint8Uint64 = transposeUint8Uint64avx2
   121  
   122  		TransposeInt16Int8 = transposeInt16Int8avx2
   123  		TransposeInt16Uint8 = transposeInt16Uint8avx2
   124  		TransposeInt16Int16 = transposeInt16Int16avx2
   125  		TransposeInt16Uint16 = transposeInt16Uint16avx2
   126  		TransposeInt16Int32 = transposeInt16Int32avx2
   127  		TransposeInt16Uint32 = transposeInt16Uint32avx2
   128  		TransposeInt16Int64 = transposeInt16Int64avx2
   129  		TransposeInt16Uint64 = transposeInt16Uint64avx2
   130  
   131  		TransposeUint16Int8 = transposeUint16Int8avx2
   132  		TransposeUint16Uint8 = transposeUint16Uint8avx2
   133  		TransposeUint16Int16 = transposeUint16Int16avx2
   134  		TransposeUint16Uint16 = transposeUint16Uint16avx2
   135  		TransposeUint16Int32 = transposeUint16Int32avx2
   136  		TransposeUint16Uint32 = transposeUint16Uint32avx2
   137  		TransposeUint16Int64 = transposeUint16Int64avx2
   138  		TransposeUint16Uint64 = transposeUint16Uint64avx2
   139  
   140  		TransposeInt32Int8 = transposeInt32Int8avx2
   141  		TransposeInt32Uint8 = transposeInt32Uint8avx2
   142  		TransposeInt32Int16 = transposeInt32Int16avx2
   143  		TransposeInt32Uint16 = transposeInt32Uint16avx2
   144  		TransposeInt32Int32 = transposeInt32Int32avx2
   145  		TransposeInt32Uint32 = transposeInt32Uint32avx2
   146  		TransposeInt32Int64 = transposeInt32Int64avx2
   147  		TransposeInt32Uint64 = transposeInt32Uint64avx2
   148  
   149  		TransposeUint32Int8 = transposeUint32Int8avx2
   150  		TransposeUint32Uint8 = transposeUint32Uint8avx2
   151  		TransposeUint32Int16 = transposeUint32Int16avx2
   152  		TransposeUint32Uint16 = transposeUint32Uint16avx2
   153  		TransposeUint32Int32 = transposeUint32Int32avx2
   154  		TransposeUint32Uint32 = transposeUint32Uint32avx2
   155  		TransposeUint32Int64 = transposeUint32Int64avx2
   156  		TransposeUint32Uint64 = transposeUint32Uint64avx2
   157  
   158  		TransposeInt64Int8 = transposeInt64Int8avx2
   159  		TransposeInt64Uint8 = transposeInt64Uint8avx2
   160  		TransposeInt64Int16 = transposeInt64Int16avx2
   161  		TransposeInt64Uint16 = transposeInt64Uint16avx2
   162  		TransposeInt64Int32 = transposeInt64Int32avx2
   163  		TransposeInt64Uint32 = transposeInt64Uint32avx2
   164  		TransposeInt64Int64 = transposeInt64Int64avx2
   165  		TransposeInt64Uint64 = transposeInt64Uint64avx2
   166  
   167  		TransposeUint64Int8 = transposeUint64Int8avx2
   168  		TransposeUint64Uint8 = transposeUint64Uint8avx2
   169  		TransposeUint64Int16 = transposeUint64Int16avx2
   170  		TransposeUint64Uint16 = transposeUint64Uint16avx2
   171  		TransposeUint64Int32 = transposeUint64Int32avx2
   172  		TransposeUint64Uint32 = transposeUint64Uint32avx2
   173  		TransposeUint64Int64 = transposeUint64Int64avx2
   174  		TransposeUint64Uint64 = transposeUint64Uint64avx2
   175  
   176  	} else if cpu.X86.HasSSE42 {
   177  
   178  		TransposeInt8Int8 = transposeInt8Int8sse4
   179  		TransposeInt8Uint8 = transposeInt8Uint8sse4
   180  		TransposeInt8Int16 = transposeInt8Int16sse4
   181  		TransposeInt8Uint16 = transposeInt8Uint16sse4
   182  		TransposeInt8Int32 = transposeInt8Int32sse4
   183  		TransposeInt8Uint32 = transposeInt8Uint32sse4
   184  		TransposeInt8Int64 = transposeInt8Int64sse4
   185  		TransposeInt8Uint64 = transposeInt8Uint64sse4
   186  
   187  		TransposeUint8Int8 = transposeUint8Int8sse4
   188  		TransposeUint8Uint8 = transposeUint8Uint8sse4
   189  		TransposeUint8Int16 = transposeUint8Int16sse4
   190  		TransposeUint8Uint16 = transposeUint8Uint16sse4
   191  		TransposeUint8Int32 = transposeUint8Int32sse4
   192  		TransposeUint8Uint32 = transposeUint8Uint32sse4
   193  		TransposeUint8Int64 = transposeUint8Int64sse4
   194  		TransposeUint8Uint64 = transposeUint8Uint64sse4
   195  
   196  		TransposeInt16Int8 = transposeInt16Int8sse4
   197  		TransposeInt16Uint8 = transposeInt16Uint8sse4
   198  		TransposeInt16Int16 = transposeInt16Int16sse4
   199  		TransposeInt16Uint16 = transposeInt16Uint16sse4
   200  		TransposeInt16Int32 = transposeInt16Int32sse4
   201  		TransposeInt16Uint32 = transposeInt16Uint32sse4
   202  		TransposeInt16Int64 = transposeInt16Int64sse4
   203  		TransposeInt16Uint64 = transposeInt16Uint64sse4
   204  
   205  		TransposeUint16Int8 = transposeUint16Int8sse4
   206  		TransposeUint16Uint8 = transposeUint16Uint8sse4
   207  		TransposeUint16Int16 = transposeUint16Int16sse4
   208  		TransposeUint16Uint16 = transposeUint16Uint16sse4
   209  		TransposeUint16Int32 = transposeUint16Int32sse4
   210  		TransposeUint16Uint32 = transposeUint16Uint32sse4
   211  		TransposeUint16Int64 = transposeUint16Int64sse4
   212  		TransposeUint16Uint64 = transposeUint16Uint64sse4
   213  
   214  		TransposeInt32Int8 = transposeInt32Int8sse4
   215  		TransposeInt32Uint8 = transposeInt32Uint8sse4
   216  		TransposeInt32Int16 = transposeInt32Int16sse4
   217  		TransposeInt32Uint16 = transposeInt32Uint16sse4
   218  		TransposeInt32Int32 = transposeInt32Int32sse4
   219  		TransposeInt32Uint32 = transposeInt32Uint32sse4
   220  		TransposeInt32Int64 = transposeInt32Int64sse4
   221  		TransposeInt32Uint64 = transposeInt32Uint64sse4
   222  
   223  		TransposeUint32Int8 = transposeUint32Int8sse4
   224  		TransposeUint32Uint8 = transposeUint32Uint8sse4
   225  		TransposeUint32Int16 = transposeUint32Int16sse4
   226  		TransposeUint32Uint16 = transposeUint32Uint16sse4
   227  		TransposeUint32Int32 = transposeUint32Int32sse4
   228  		TransposeUint32Uint32 = transposeUint32Uint32sse4
   229  		TransposeUint32Int64 = transposeUint32Int64sse4
   230  		TransposeUint32Uint64 = transposeUint32Uint64sse4
   231  
   232  		TransposeInt64Int8 = transposeInt64Int8sse4
   233  		TransposeInt64Uint8 = transposeInt64Uint8sse4
   234  		TransposeInt64Int16 = transposeInt64Int16sse4
   235  		TransposeInt64Uint16 = transposeInt64Uint16sse4
   236  		TransposeInt64Int32 = transposeInt64Int32sse4
   237  		TransposeInt64Uint32 = transposeInt64Uint32sse4
   238  		TransposeInt64Int64 = transposeInt64Int64sse4
   239  		TransposeInt64Uint64 = transposeInt64Uint64sse4
   240  
   241  		TransposeUint64Int8 = transposeUint64Int8sse4
   242  		TransposeUint64Uint8 = transposeUint64Uint8sse4
   243  		TransposeUint64Int16 = transposeUint64Int16sse4
   244  		TransposeUint64Uint16 = transposeUint64Uint16sse4
   245  		TransposeUint64Int32 = transposeUint64Int32sse4
   246  		TransposeUint64Uint32 = transposeUint64Uint32sse4
   247  		TransposeUint64Int64 = transposeUint64Int64sse4
   248  		TransposeUint64Uint64 = transposeUint64Uint64sse4
   249  
   250  	} else {
   251  
   252  		TransposeInt8Int8 = transposeInt8Int8
   253  		TransposeInt8Uint8 = transposeInt8Uint8
   254  		TransposeInt8Int16 = transposeInt8Int16
   255  		TransposeInt8Uint16 = transposeInt8Uint16
   256  		TransposeInt8Int32 = transposeInt8Int32
   257  		TransposeInt8Uint32 = transposeInt8Uint32
   258  		TransposeInt8Int64 = transposeInt8Int64
   259  		TransposeInt8Uint64 = transposeInt8Uint64
   260  
   261  		TransposeUint8Int8 = transposeUint8Int8
   262  		TransposeUint8Uint8 = transposeUint8Uint8
   263  		TransposeUint8Int16 = transposeUint8Int16
   264  		TransposeUint8Uint16 = transposeUint8Uint16
   265  		TransposeUint8Int32 = transposeUint8Int32
   266  		TransposeUint8Uint32 = transposeUint8Uint32
   267  		TransposeUint8Int64 = transposeUint8Int64
   268  		TransposeUint8Uint64 = transposeUint8Uint64
   269  
   270  		TransposeInt16Int8 = transposeInt16Int8
   271  		TransposeInt16Uint8 = transposeInt16Uint8
   272  		TransposeInt16Int16 = transposeInt16Int16
   273  		TransposeInt16Uint16 = transposeInt16Uint16
   274  		TransposeInt16Int32 = transposeInt16Int32
   275  		TransposeInt16Uint32 = transposeInt16Uint32
   276  		TransposeInt16Int64 = transposeInt16Int64
   277  		TransposeInt16Uint64 = transposeInt16Uint64
   278  
   279  		TransposeUint16Int8 = transposeUint16Int8
   280  		TransposeUint16Uint8 = transposeUint16Uint8
   281  		TransposeUint16Int16 = transposeUint16Int16
   282  		TransposeUint16Uint16 = transposeUint16Uint16
   283  		TransposeUint16Int32 = transposeUint16Int32
   284  		TransposeUint16Uint32 = transposeUint16Uint32
   285  		TransposeUint16Int64 = transposeUint16Int64
   286  		TransposeUint16Uint64 = transposeUint16Uint64
   287  
   288  		TransposeInt32Int8 = transposeInt32Int8
   289  		TransposeInt32Uint8 = transposeInt32Uint8
   290  		TransposeInt32Int16 = transposeInt32Int16
   291  		TransposeInt32Uint16 = transposeInt32Uint16
   292  		TransposeInt32Int32 = transposeInt32Int32
   293  		TransposeInt32Uint32 = transposeInt32Uint32
   294  		TransposeInt32Int64 = transposeInt32Int64
   295  		TransposeInt32Uint64 = transposeInt32Uint64
   296  
   297  		TransposeUint32Int8 = transposeUint32Int8
   298  		TransposeUint32Uint8 = transposeUint32Uint8
   299  		TransposeUint32Int16 = transposeUint32Int16
   300  		TransposeUint32Uint16 = transposeUint32Uint16
   301  		TransposeUint32Int32 = transposeUint32Int32
   302  		TransposeUint32Uint32 = transposeUint32Uint32
   303  		TransposeUint32Int64 = transposeUint32Int64
   304  		TransposeUint32Uint64 = transposeUint32Uint64
   305  
   306  		TransposeInt64Int8 = transposeInt64Int8
   307  		TransposeInt64Uint8 = transposeInt64Uint8
   308  		TransposeInt64Int16 = transposeInt64Int16
   309  		TransposeInt64Uint16 = transposeInt64Uint16
   310  		TransposeInt64Int32 = transposeInt64Int32
   311  		TransposeInt64Uint32 = transposeInt64Uint32
   312  		TransposeInt64Int64 = transposeInt64Int64
   313  		TransposeInt64Uint64 = transposeInt64Uint64
   314  
   315  		TransposeUint64Int8 = transposeUint64Int8
   316  		TransposeUint64Uint8 = transposeUint64Uint8
   317  		TransposeUint64Int16 = transposeUint64Int16
   318  		TransposeUint64Uint16 = transposeUint64Uint16
   319  		TransposeUint64Int32 = transposeUint64Int32
   320  		TransposeUint64Uint32 = transposeUint64Uint32
   321  		TransposeUint64Int64 = transposeUint64Int64
   322  		TransposeUint64Uint64 = transposeUint64Uint64
   323  
   324  	}
   325  }