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