Source file src/cmd/compile/internal/ssagen/intrinsics_test.go

     1  // Copyright 2024 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package ssagen
     6  
     7  import (
     8  	"flag"
     9  	"fmt"
    10  	"slices"
    11  	"strings"
    12  	"testing"
    13  
    14  	"cmd/internal/sys"
    15  )
    16  
    17  var updateIntrinsics = flag.Bool("update", false, "Print an updated intrinsics table")
    18  
    19  type testIntrinsicKey struct {
    20  	archName string
    21  	pkg      string
    22  	fn       string
    23  }
    24  
    25  var wantIntrinsics = map[testIntrinsicKey]struct{}{
    26  	{"386", "internal/runtime/math", "MulUintptr"}:             struct{}{},
    27  	{"386", "internal/runtime/sys", "Bswap32"}:                 struct{}{},
    28  	{"386", "internal/runtime/sys", "Bswap64"}:                 struct{}{},
    29  	{"386", "internal/runtime/sys", "GetCallerPC"}:             struct{}{},
    30  	{"386", "internal/runtime/sys", "GetCallerSP"}:             struct{}{},
    31  	{"386", "internal/runtime/sys", "GetClosurePtr"}:           struct{}{},
    32  	{"386", "internal/runtime/sys", "TrailingZeros32"}:         struct{}{},
    33  	{"386", "internal/runtime/sys", "TrailingZeros64"}:         struct{}{},
    34  	{"386", "internal/runtime/sys", "TrailingZeros8"}:          struct{}{},
    35  	{"386", "math", "sqrt"}:                                    struct{}{},
    36  	{"386", "math/bits", "ReverseBytes32"}:                     struct{}{},
    37  	{"386", "math/bits", "ReverseBytes64"}:                     struct{}{},
    38  	{"386", "math/bits", "TrailingZeros16"}:                    struct{}{},
    39  	{"386", "math/bits", "TrailingZeros32"}:                    struct{}{},
    40  	{"386", "math/bits", "TrailingZeros64"}:                    struct{}{},
    41  	{"386", "math/bits", "TrailingZeros8"}:                     struct{}{},
    42  	{"386", "runtime", "KeepAlive"}:                            struct{}{},
    43  	{"386", "runtime", "slicebytetostringtmp"}:                 struct{}{},
    44  	{"amd64", "internal/runtime/atomic", "And"}:                struct{}{},
    45  	{"amd64", "internal/runtime/atomic", "And32"}:              struct{}{},
    46  	{"amd64", "internal/runtime/atomic", "And64"}:              struct{}{},
    47  	{"amd64", "internal/runtime/atomic", "And8"}:               struct{}{},
    48  	{"amd64", "internal/runtime/atomic", "Cas"}:                struct{}{},
    49  	{"amd64", "internal/runtime/atomic", "Cas64"}:              struct{}{},
    50  	{"amd64", "internal/runtime/atomic", "CasRel"}:             struct{}{},
    51  	{"amd64", "internal/runtime/atomic", "Casint32"}:           struct{}{},
    52  	{"amd64", "internal/runtime/atomic", "Casint64"}:           struct{}{},
    53  	{"amd64", "internal/runtime/atomic", "Casp1"}:              struct{}{},
    54  	{"amd64", "internal/runtime/atomic", "Casuintptr"}:         struct{}{},
    55  	{"amd64", "internal/runtime/atomic", "Load"}:               struct{}{},
    56  	{"amd64", "internal/runtime/atomic", "Load64"}:             struct{}{},
    57  	{"amd64", "internal/runtime/atomic", "Load8"}:              struct{}{},
    58  	{"amd64", "internal/runtime/atomic", "LoadAcq"}:            struct{}{},
    59  	{"amd64", "internal/runtime/atomic", "LoadAcq64"}:          struct{}{},
    60  	{"amd64", "internal/runtime/atomic", "LoadAcquintptr"}:     struct{}{},
    61  	{"amd64", "internal/runtime/atomic", "Loadint32"}:          struct{}{},
    62  	{"amd64", "internal/runtime/atomic", "Loadint64"}:          struct{}{},
    63  	{"amd64", "internal/runtime/atomic", "Loadp"}:              struct{}{},
    64  	{"amd64", "internal/runtime/atomic", "Loaduint"}:           struct{}{},
    65  	{"amd64", "internal/runtime/atomic", "Loaduintptr"}:        struct{}{},
    66  	{"amd64", "internal/runtime/atomic", "Or"}:                 struct{}{},
    67  	{"amd64", "internal/runtime/atomic", "Or32"}:               struct{}{},
    68  	{"amd64", "internal/runtime/atomic", "Or64"}:               struct{}{},
    69  	{"amd64", "internal/runtime/atomic", "Or8"}:                struct{}{},
    70  	{"amd64", "internal/runtime/atomic", "Store"}:              struct{}{},
    71  	{"amd64", "internal/runtime/atomic", "Store64"}:            struct{}{},
    72  	{"amd64", "internal/runtime/atomic", "Store8"}:             struct{}{},
    73  	{"amd64", "internal/runtime/atomic", "StoreRel"}:           struct{}{},
    74  	{"amd64", "internal/runtime/atomic", "StoreRel64"}:         struct{}{},
    75  	{"amd64", "internal/runtime/atomic", "StoreReluintptr"}:    struct{}{},
    76  	{"amd64", "internal/runtime/atomic", "Storeint32"}:         struct{}{},
    77  	{"amd64", "internal/runtime/atomic", "Storeint64"}:         struct{}{},
    78  	{"amd64", "internal/runtime/atomic", "StorepNoWB"}:         struct{}{},
    79  	{"amd64", "internal/runtime/atomic", "Storeuintptr"}:       struct{}{},
    80  	{"amd64", "internal/runtime/atomic", "Xadd"}:               struct{}{},
    81  	{"amd64", "internal/runtime/atomic", "Xadd64"}:             struct{}{},
    82  	{"amd64", "internal/runtime/atomic", "Xaddint32"}:          struct{}{},
    83  	{"amd64", "internal/runtime/atomic", "Xaddint64"}:          struct{}{},
    84  	{"amd64", "internal/runtime/atomic", "Xadduintptr"}:        struct{}{},
    85  	{"amd64", "internal/runtime/atomic", "Xchg"}:               struct{}{},
    86  	{"amd64", "internal/runtime/atomic", "Xchg64"}:             struct{}{},
    87  	{"amd64", "internal/runtime/atomic", "Xchg8"}:              struct{}{},
    88  	{"amd64", "internal/runtime/atomic", "Xchgint32"}:          struct{}{},
    89  	{"amd64", "internal/runtime/atomic", "Xchgint64"}:          struct{}{},
    90  	{"amd64", "internal/runtime/atomic", "Xchguintptr"}:        struct{}{},
    91  	{"amd64", "internal/runtime/math", "Add64"}:                struct{}{},
    92  	{"amd64", "internal/runtime/math", "Mul64"}:                struct{}{},
    93  	{"amd64", "internal/runtime/math", "MulUintptr"}:           struct{}{},
    94  	{"amd64", "internal/runtime/sys", "Bswap32"}:               struct{}{},
    95  	{"amd64", "internal/runtime/sys", "Bswap64"}:               struct{}{},
    96  	{"amd64", "internal/runtime/sys", "GetCallerPC"}:           struct{}{},
    97  	{"amd64", "internal/runtime/sys", "GetCallerSP"}:           struct{}{},
    98  	{"amd64", "internal/runtime/sys", "GetClosurePtr"}:         struct{}{},
    99  	{"amd64", "internal/runtime/sys", "Len64"}:                 struct{}{},
   100  	{"amd64", "internal/runtime/sys", "Len8"}:                  struct{}{},
   101  	{"amd64", "internal/runtime/sys", "OnesCount64"}:           struct{}{},
   102  	{"amd64", "internal/runtime/sys", "Prefetch"}:              struct{}{},
   103  	{"amd64", "internal/runtime/sys", "PrefetchStreamed"}:      struct{}{},
   104  	{"amd64", "internal/runtime/sys", "TrailingZeros32"}:       struct{}{},
   105  	{"amd64", "internal/runtime/sys", "TrailingZeros64"}:       struct{}{},
   106  	{"amd64", "internal/runtime/sys", "TrailingZeros8"}:        struct{}{},
   107  	{"amd64", "math", "Ceil"}:                                  struct{}{},
   108  	{"amd64", "math", "FMA"}:                                   struct{}{},
   109  	{"amd64", "math", "Floor"}:                                 struct{}{},
   110  	{"amd64", "math", "RoundToEven"}:                           struct{}{},
   111  	{"amd64", "math", "Trunc"}:                                 struct{}{},
   112  	{"amd64", "math", "sqrt"}:                                  struct{}{},
   113  	{"amd64", "math/big", "mulWW"}:                             struct{}{},
   114  	{"amd64", "math/bits", "Add"}:                              struct{}{},
   115  	{"amd64", "math/bits", "Add64"}:                            struct{}{},
   116  	{"amd64", "math/bits", "Div"}:                              struct{}{},
   117  	{"amd64", "math/bits", "Div64"}:                            struct{}{},
   118  	{"amd64", "math/bits", "Len"}:                              struct{}{},
   119  	{"amd64", "math/bits", "Len16"}:                            struct{}{},
   120  	{"amd64", "math/bits", "Len32"}:                            struct{}{},
   121  	{"amd64", "math/bits", "Len64"}:                            struct{}{},
   122  	{"amd64", "math/bits", "Len8"}:                             struct{}{},
   123  	{"amd64", "math/bits", "Mul"}:                              struct{}{},
   124  	{"amd64", "math/bits", "Mul64"}:                            struct{}{},
   125  	{"amd64", "math/bits", "OnesCount"}:                        struct{}{},
   126  	{"amd64", "math/bits", "OnesCount16"}:                      struct{}{},
   127  	{"amd64", "math/bits", "OnesCount32"}:                      struct{}{},
   128  	{"amd64", "math/bits", "OnesCount64"}:                      struct{}{},
   129  	{"amd64", "math/bits", "ReverseBytes32"}:                   struct{}{},
   130  	{"amd64", "math/bits", "ReverseBytes64"}:                   struct{}{},
   131  	{"amd64", "math/bits", "RotateLeft"}:                       struct{}{},
   132  	{"amd64", "math/bits", "RotateLeft16"}:                     struct{}{},
   133  	{"amd64", "math/bits", "RotateLeft32"}:                     struct{}{},
   134  	{"amd64", "math/bits", "RotateLeft64"}:                     struct{}{},
   135  	{"amd64", "math/bits", "RotateLeft8"}:                      struct{}{},
   136  	{"amd64", "math/bits", "Sub"}:                              struct{}{},
   137  	{"amd64", "math/bits", "Sub64"}:                            struct{}{},
   138  	{"amd64", "math/bits", "TrailingZeros16"}:                  struct{}{},
   139  	{"amd64", "math/bits", "TrailingZeros32"}:                  struct{}{},
   140  	{"amd64", "math/bits", "TrailingZeros64"}:                  struct{}{},
   141  	{"amd64", "math/bits", "TrailingZeros8"}:                   struct{}{},
   142  	{"amd64", "runtime", "KeepAlive"}:                          struct{}{},
   143  	{"amd64", "runtime", "slicebytetostringtmp"}:               struct{}{},
   144  	{"amd64", "sync", "runtime_LoadAcquintptr"}:                struct{}{},
   145  	{"amd64", "sync", "runtime_StoreReluintptr"}:               struct{}{},
   146  	{"amd64", "sync/atomic", "AddInt32"}:                       struct{}{},
   147  	{"amd64", "sync/atomic", "AddInt64"}:                       struct{}{},
   148  	{"amd64", "sync/atomic", "AddUint32"}:                      struct{}{},
   149  	{"amd64", "sync/atomic", "AddUint64"}:                      struct{}{},
   150  	{"amd64", "sync/atomic", "AddUintptr"}:                     struct{}{},
   151  	{"amd64", "sync/atomic", "AndInt32"}:                       struct{}{},
   152  	{"amd64", "sync/atomic", "AndInt64"}:                       struct{}{},
   153  	{"amd64", "sync/atomic", "AndUint32"}:                      struct{}{},
   154  	{"amd64", "sync/atomic", "AndUint64"}:                      struct{}{},
   155  	{"amd64", "sync/atomic", "AndUintptr"}:                     struct{}{},
   156  	{"amd64", "sync/atomic", "CompareAndSwapInt32"}:            struct{}{},
   157  	{"amd64", "sync/atomic", "CompareAndSwapInt64"}:            struct{}{},
   158  	{"amd64", "sync/atomic", "CompareAndSwapUint32"}:           struct{}{},
   159  	{"amd64", "sync/atomic", "CompareAndSwapUint64"}:           struct{}{},
   160  	{"amd64", "sync/atomic", "CompareAndSwapUintptr"}:          struct{}{},
   161  	{"amd64", "sync/atomic", "LoadInt32"}:                      struct{}{},
   162  	{"amd64", "sync/atomic", "LoadInt64"}:                      struct{}{},
   163  	{"amd64", "sync/atomic", "LoadPointer"}:                    struct{}{},
   164  	{"amd64", "sync/atomic", "LoadUint32"}:                     struct{}{},
   165  	{"amd64", "sync/atomic", "LoadUint64"}:                     struct{}{},
   166  	{"amd64", "sync/atomic", "LoadUintptr"}:                    struct{}{},
   167  	{"amd64", "sync/atomic", "OrInt32"}:                        struct{}{},
   168  	{"amd64", "sync/atomic", "OrInt64"}:                        struct{}{},
   169  	{"amd64", "sync/atomic", "OrUint32"}:                       struct{}{},
   170  	{"amd64", "sync/atomic", "OrUint64"}:                       struct{}{},
   171  	{"amd64", "sync/atomic", "OrUintptr"}:                      struct{}{},
   172  	{"amd64", "sync/atomic", "StoreInt32"}:                     struct{}{},
   173  	{"amd64", "sync/atomic", "StoreInt64"}:                     struct{}{},
   174  	{"amd64", "sync/atomic", "StoreUint32"}:                    struct{}{},
   175  	{"amd64", "sync/atomic", "StoreUint64"}:                    struct{}{},
   176  	{"amd64", "sync/atomic", "StoreUintptr"}:                   struct{}{},
   177  	{"amd64", "sync/atomic", "SwapInt32"}:                      struct{}{},
   178  	{"amd64", "sync/atomic", "SwapInt64"}:                      struct{}{},
   179  	{"amd64", "sync/atomic", "SwapUint32"}:                     struct{}{},
   180  	{"amd64", "sync/atomic", "SwapUint64"}:                     struct{}{},
   181  	{"amd64", "sync/atomic", "SwapUintptr"}:                    struct{}{},
   182  	{"arm", "internal/runtime/sys", "Bswap32"}:                 struct{}{},
   183  	{"arm", "internal/runtime/sys", "Bswap64"}:                 struct{}{},
   184  	{"arm", "internal/runtime/sys", "GetCallerPC"}:             struct{}{},
   185  	{"arm", "internal/runtime/sys", "GetCallerSP"}:             struct{}{},
   186  	{"arm", "internal/runtime/sys", "GetClosurePtr"}:           struct{}{},
   187  	{"arm", "internal/runtime/sys", "Len64"}:                   struct{}{},
   188  	{"arm", "internal/runtime/sys", "Len8"}:                    struct{}{},
   189  	{"arm", "internal/runtime/sys", "TrailingZeros32"}:         struct{}{},
   190  	{"arm", "internal/runtime/sys", "TrailingZeros64"}:         struct{}{},
   191  	{"arm", "internal/runtime/sys", "TrailingZeros8"}:          struct{}{},
   192  	{"arm", "math", "Abs"}:                                     struct{}{},
   193  	{"arm", "math", "FMA"}:                                     struct{}{},
   194  	{"arm", "math", "sqrt"}:                                    struct{}{},
   195  	{"arm", "math/bits", "Len"}:                                struct{}{},
   196  	{"arm", "math/bits", "Len16"}:                              struct{}{},
   197  	{"arm", "math/bits", "Len32"}:                              struct{}{},
   198  	{"arm", "math/bits", "Len64"}:                              struct{}{},
   199  	{"arm", "math/bits", "Len8"}:                               struct{}{},
   200  	{"arm", "math/bits", "ReverseBytes32"}:                     struct{}{},
   201  	{"arm", "math/bits", "ReverseBytes64"}:                     struct{}{},
   202  	{"arm", "math/bits", "RotateLeft32"}:                       struct{}{},
   203  	{"arm", "math/bits", "TrailingZeros16"}:                    struct{}{},
   204  	{"arm", "math/bits", "TrailingZeros32"}:                    struct{}{},
   205  	{"arm", "math/bits", "TrailingZeros64"}:                    struct{}{},
   206  	{"arm", "math/bits", "TrailingZeros8"}:                     struct{}{},
   207  	{"arm", "runtime", "KeepAlive"}:                            struct{}{},
   208  	{"arm", "runtime", "slicebytetostringtmp"}:                 struct{}{},
   209  	{"arm64", "internal/runtime/atomic", "And"}:                struct{}{},
   210  	{"arm64", "internal/runtime/atomic", "And32"}:              struct{}{},
   211  	{"arm64", "internal/runtime/atomic", "And64"}:              struct{}{},
   212  	{"arm64", "internal/runtime/atomic", "And8"}:               struct{}{},
   213  	{"arm64", "internal/runtime/atomic", "Anduintptr"}:         struct{}{},
   214  	{"arm64", "internal/runtime/atomic", "Cas"}:                struct{}{},
   215  	{"arm64", "internal/runtime/atomic", "Cas64"}:              struct{}{},
   216  	{"arm64", "internal/runtime/atomic", "CasRel"}:             struct{}{},
   217  	{"arm64", "internal/runtime/atomic", "Casint32"}:           struct{}{},
   218  	{"arm64", "internal/runtime/atomic", "Casint64"}:           struct{}{},
   219  	{"arm64", "internal/runtime/atomic", "Casp1"}:              struct{}{},
   220  	{"arm64", "internal/runtime/atomic", "Casuintptr"}:         struct{}{},
   221  	{"arm64", "internal/runtime/atomic", "Load"}:               struct{}{},
   222  	{"arm64", "internal/runtime/atomic", "Load64"}:             struct{}{},
   223  	{"arm64", "internal/runtime/atomic", "Load8"}:              struct{}{},
   224  	{"arm64", "internal/runtime/atomic", "LoadAcq"}:            struct{}{},
   225  	{"arm64", "internal/runtime/atomic", "LoadAcq64"}:          struct{}{},
   226  	{"arm64", "internal/runtime/atomic", "LoadAcquintptr"}:     struct{}{},
   227  	{"arm64", "internal/runtime/atomic", "Loadint32"}:          struct{}{},
   228  	{"arm64", "internal/runtime/atomic", "Loadint64"}:          struct{}{},
   229  	{"arm64", "internal/runtime/atomic", "Loadp"}:              struct{}{},
   230  	{"arm64", "internal/runtime/atomic", "Loaduint"}:           struct{}{},
   231  	{"arm64", "internal/runtime/atomic", "Loaduintptr"}:        struct{}{},
   232  	{"arm64", "internal/runtime/atomic", "Or"}:                 struct{}{},
   233  	{"arm64", "internal/runtime/atomic", "Or32"}:               struct{}{},
   234  	{"arm64", "internal/runtime/atomic", "Or64"}:               struct{}{},
   235  	{"arm64", "internal/runtime/atomic", "Or8"}:                struct{}{},
   236  	{"arm64", "internal/runtime/atomic", "Oruintptr"}:          struct{}{},
   237  	{"arm64", "internal/runtime/atomic", "Store"}:              struct{}{},
   238  	{"arm64", "internal/runtime/atomic", "Store64"}:            struct{}{},
   239  	{"arm64", "internal/runtime/atomic", "Store8"}:             struct{}{},
   240  	{"arm64", "internal/runtime/atomic", "StoreRel"}:           struct{}{},
   241  	{"arm64", "internal/runtime/atomic", "StoreRel64"}:         struct{}{},
   242  	{"arm64", "internal/runtime/atomic", "StoreReluintptr"}:    struct{}{},
   243  	{"arm64", "internal/runtime/atomic", "Storeint32"}:         struct{}{},
   244  	{"arm64", "internal/runtime/atomic", "Storeint64"}:         struct{}{},
   245  	{"arm64", "internal/runtime/atomic", "StorepNoWB"}:         struct{}{},
   246  	{"arm64", "internal/runtime/atomic", "Storeuintptr"}:       struct{}{},
   247  	{"arm64", "internal/runtime/atomic", "Xadd"}:               struct{}{},
   248  	{"arm64", "internal/runtime/atomic", "Xadd64"}:             struct{}{},
   249  	{"arm64", "internal/runtime/atomic", "Xaddint32"}:          struct{}{},
   250  	{"arm64", "internal/runtime/atomic", "Xaddint64"}:          struct{}{},
   251  	{"arm64", "internal/runtime/atomic", "Xadduintptr"}:        struct{}{},
   252  	{"arm64", "internal/runtime/atomic", "Xchg8"}:              struct{}{},
   253  	{"arm64", "internal/runtime/atomic", "Xchg"}:               struct{}{},
   254  	{"arm64", "internal/runtime/atomic", "Xchg64"}:             struct{}{},
   255  	{"arm64", "internal/runtime/atomic", "Xchgint32"}:          struct{}{},
   256  	{"arm64", "internal/runtime/atomic", "Xchgint64"}:          struct{}{},
   257  	{"arm64", "internal/runtime/atomic", "Xchguintptr"}:        struct{}{},
   258  	{"arm64", "internal/runtime/math", "Add64"}:                struct{}{},
   259  	{"arm64", "internal/runtime/math", "Mul64"}:                struct{}{},
   260  	{"arm64", "internal/runtime/math", "MulUintptr"}:           struct{}{},
   261  	{"arm64", "internal/runtime/sys", "Bswap32"}:               struct{}{},
   262  	{"arm64", "internal/runtime/sys", "Bswap64"}:               struct{}{},
   263  	{"arm64", "internal/runtime/sys", "GetCallerPC"}:           struct{}{},
   264  	{"arm64", "internal/runtime/sys", "GetCallerSP"}:           struct{}{},
   265  	{"arm64", "internal/runtime/sys", "GetClosurePtr"}:         struct{}{},
   266  	{"arm64", "internal/runtime/sys", "Len64"}:                 struct{}{},
   267  	{"arm64", "internal/runtime/sys", "Len8"}:                  struct{}{},
   268  	{"arm64", "internal/runtime/sys", "OnesCount64"}:           struct{}{},
   269  	{"arm64", "internal/runtime/sys", "Prefetch"}:              struct{}{},
   270  	{"arm64", "internal/runtime/sys", "PrefetchStreamed"}:      struct{}{},
   271  	{"arm64", "internal/runtime/sys", "TrailingZeros32"}:       struct{}{},
   272  	{"arm64", "internal/runtime/sys", "TrailingZeros64"}:       struct{}{},
   273  	{"arm64", "internal/runtime/sys", "TrailingZeros8"}:        struct{}{},
   274  	{"arm64", "math", "Abs"}:                                   struct{}{},
   275  	{"arm64", "math", "Ceil"}:                                  struct{}{},
   276  	{"arm64", "math", "FMA"}:                                   struct{}{},
   277  	{"arm64", "math", "Floor"}:                                 struct{}{},
   278  	{"arm64", "math", "Round"}:                                 struct{}{},
   279  	{"arm64", "math", "RoundToEven"}:                           struct{}{},
   280  	{"arm64", "math", "Trunc"}:                                 struct{}{},
   281  	{"arm64", "math", "sqrt"}:                                  struct{}{},
   282  	{"arm64", "math/big", "mulWW"}:                             struct{}{},
   283  	{"arm64", "math/bits", "Add"}:                              struct{}{},
   284  	{"arm64", "math/bits", "Add64"}:                            struct{}{},
   285  	{"arm64", "math/bits", "Len"}:                              struct{}{},
   286  	{"arm64", "math/bits", "Len16"}:                            struct{}{},
   287  	{"arm64", "math/bits", "Len32"}:                            struct{}{},
   288  	{"arm64", "math/bits", "Len64"}:                            struct{}{},
   289  	{"arm64", "math/bits", "Len8"}:                             struct{}{},
   290  	{"arm64", "math/bits", "Mul"}:                              struct{}{},
   291  	{"arm64", "math/bits", "Mul64"}:                            struct{}{},
   292  	{"arm64", "math/bits", "OnesCount16"}:                      struct{}{},
   293  	{"arm64", "math/bits", "OnesCount32"}:                      struct{}{},
   294  	{"arm64", "math/bits", "OnesCount64"}:                      struct{}{},
   295  	{"arm64", "math/bits", "Reverse"}:                          struct{}{},
   296  	{"arm64", "math/bits", "Reverse16"}:                        struct{}{},
   297  	{"arm64", "math/bits", "Reverse32"}:                        struct{}{},
   298  	{"arm64", "math/bits", "Reverse64"}:                        struct{}{},
   299  	{"arm64", "math/bits", "Reverse8"}:                         struct{}{},
   300  	{"arm64", "math/bits", "ReverseBytes32"}:                   struct{}{},
   301  	{"arm64", "math/bits", "ReverseBytes64"}:                   struct{}{},
   302  	{"arm64", "math/bits", "RotateLeft"}:                       struct{}{},
   303  	{"arm64", "math/bits", "RotateLeft32"}:                     struct{}{},
   304  	{"arm64", "math/bits", "RotateLeft64"}:                     struct{}{},
   305  	{"arm64", "math/bits", "Sub"}:                              struct{}{},
   306  	{"arm64", "math/bits", "Sub64"}:                            struct{}{},
   307  	{"arm64", "math/bits", "TrailingZeros16"}:                  struct{}{},
   308  	{"arm64", "math/bits", "TrailingZeros32"}:                  struct{}{},
   309  	{"arm64", "math/bits", "TrailingZeros64"}:                  struct{}{},
   310  	{"arm64", "math/bits", "TrailingZeros8"}:                   struct{}{},
   311  	{"arm64", "runtime", "KeepAlive"}:                          struct{}{},
   312  	{"arm64", "runtime", "publicationBarrier"}:                 struct{}{},
   313  	{"arm64", "runtime", "slicebytetostringtmp"}:               struct{}{},
   314  	{"arm64", "sync", "runtime_LoadAcquintptr"}:                struct{}{},
   315  	{"arm64", "sync", "runtime_StoreReluintptr"}:               struct{}{},
   316  	{"arm64", "sync/atomic", "AddInt32"}:                       struct{}{},
   317  	{"arm64", "sync/atomic", "AddInt64"}:                       struct{}{},
   318  	{"arm64", "sync/atomic", "AddUint32"}:                      struct{}{},
   319  	{"arm64", "sync/atomic", "AddUint64"}:                      struct{}{},
   320  	{"arm64", "sync/atomic", "AddUintptr"}:                     struct{}{},
   321  	{"arm64", "sync/atomic", "AndInt32"}:                       struct{}{},
   322  	{"arm64", "sync/atomic", "AndInt64"}:                       struct{}{},
   323  	{"arm64", "sync/atomic", "AndUint32"}:                      struct{}{},
   324  	{"arm64", "sync/atomic", "AndUint64"}:                      struct{}{},
   325  	{"arm64", "sync/atomic", "AndUintptr"}:                     struct{}{},
   326  	{"arm64", "sync/atomic", "CompareAndSwapInt32"}:            struct{}{},
   327  	{"arm64", "sync/atomic", "CompareAndSwapInt64"}:            struct{}{},
   328  	{"arm64", "sync/atomic", "CompareAndSwapUint32"}:           struct{}{},
   329  	{"arm64", "sync/atomic", "CompareAndSwapUint64"}:           struct{}{},
   330  	{"arm64", "sync/atomic", "CompareAndSwapUintptr"}:          struct{}{},
   331  	{"arm64", "sync/atomic", "LoadInt32"}:                      struct{}{},
   332  	{"arm64", "sync/atomic", "LoadInt64"}:                      struct{}{},
   333  	{"arm64", "sync/atomic", "LoadPointer"}:                    struct{}{},
   334  	{"arm64", "sync/atomic", "LoadUint32"}:                     struct{}{},
   335  	{"arm64", "sync/atomic", "LoadUint64"}:                     struct{}{},
   336  	{"arm64", "sync/atomic", "LoadUintptr"}:                    struct{}{},
   337  	{"arm64", "sync/atomic", "OrInt32"}:                        struct{}{},
   338  	{"arm64", "sync/atomic", "OrInt64"}:                        struct{}{},
   339  	{"arm64", "sync/atomic", "OrUint32"}:                       struct{}{},
   340  	{"arm64", "sync/atomic", "OrUint64"}:                       struct{}{},
   341  	{"arm64", "sync/atomic", "OrUintptr"}:                      struct{}{},
   342  	{"arm64", "sync/atomic", "StoreInt32"}:                     struct{}{},
   343  	{"arm64", "sync/atomic", "StoreInt64"}:                     struct{}{},
   344  	{"arm64", "sync/atomic", "StoreUint32"}:                    struct{}{},
   345  	{"arm64", "sync/atomic", "StoreUint64"}:                    struct{}{},
   346  	{"arm64", "sync/atomic", "StoreUintptr"}:                   struct{}{},
   347  	{"arm64", "sync/atomic", "SwapInt32"}:                      struct{}{},
   348  	{"arm64", "sync/atomic", "SwapInt64"}:                      struct{}{},
   349  	{"arm64", "sync/atomic", "SwapUint32"}:                     struct{}{},
   350  	{"arm64", "sync/atomic", "SwapUint64"}:                     struct{}{},
   351  	{"arm64", "sync/atomic", "SwapUintptr"}:                    struct{}{},
   352  	{"loong64", "internal/runtime/atomic", "And"}:              struct{}{},
   353  	{"loong64", "internal/runtime/atomic", "And32"}:            struct{}{},
   354  	{"loong64", "internal/runtime/atomic", "And64"}:            struct{}{},
   355  	{"loong64", "internal/runtime/atomic", "And8"}:             struct{}{},
   356  	{"loong64", "internal/runtime/atomic", "Anduintptr"}:       struct{}{},
   357  	{"loong64", "internal/runtime/atomic", "Cas"}:              struct{}{},
   358  	{"loong64", "internal/runtime/atomic", "Cas64"}:            struct{}{},
   359  	{"loong64", "internal/runtime/atomic", "CasRel"}:           struct{}{},
   360  	{"loong64", "internal/runtime/atomic", "Casint32"}:         struct{}{},
   361  	{"loong64", "internal/runtime/atomic", "Casint64"}:         struct{}{},
   362  	{"loong64", "internal/runtime/atomic", "Casp1"}:            struct{}{},
   363  	{"loong64", "internal/runtime/atomic", "Casuintptr"}:       struct{}{},
   364  	{"loong64", "internal/runtime/atomic", "Load"}:             struct{}{},
   365  	{"loong64", "internal/runtime/atomic", "Load64"}:           struct{}{},
   366  	{"loong64", "internal/runtime/atomic", "Load8"}:            struct{}{},
   367  	{"loong64", "internal/runtime/atomic", "LoadAcq"}:          struct{}{},
   368  	{"loong64", "internal/runtime/atomic", "LoadAcq64"}:        struct{}{},
   369  	{"loong64", "internal/runtime/atomic", "LoadAcquintptr"}:   struct{}{},
   370  	{"loong64", "internal/runtime/atomic", "Loadint32"}:        struct{}{},
   371  	{"loong64", "internal/runtime/atomic", "Loadint64"}:        struct{}{},
   372  	{"loong64", "internal/runtime/atomic", "Loadp"}:            struct{}{},
   373  	{"loong64", "internal/runtime/atomic", "Loaduint"}:         struct{}{},
   374  	{"loong64", "internal/runtime/atomic", "Loaduintptr"}:      struct{}{},
   375  	{"loong64", "internal/runtime/atomic", "Or"}:               struct{}{},
   376  	{"loong64", "internal/runtime/atomic", "Or32"}:             struct{}{},
   377  	{"loong64", "internal/runtime/atomic", "Or64"}:             struct{}{},
   378  	{"loong64", "internal/runtime/atomic", "Or8"}:              struct{}{},
   379  	{"loong64", "internal/runtime/atomic", "Oruintptr"}:        struct{}{},
   380  	{"loong64", "internal/runtime/atomic", "Store"}:            struct{}{},
   381  	{"loong64", "internal/runtime/atomic", "Store64"}:          struct{}{},
   382  	{"loong64", "internal/runtime/atomic", "Store8"}:           struct{}{},
   383  	{"loong64", "internal/runtime/atomic", "StoreRel"}:         struct{}{},
   384  	{"loong64", "internal/runtime/atomic", "StoreRel64"}:       struct{}{},
   385  	{"loong64", "internal/runtime/atomic", "StoreReluintptr"}:  struct{}{},
   386  	{"loong64", "internal/runtime/atomic", "Storeint32"}:       struct{}{},
   387  	{"loong64", "internal/runtime/atomic", "Storeint64"}:       struct{}{},
   388  	{"loong64", "internal/runtime/atomic", "StorepNoWB"}:       struct{}{},
   389  	{"loong64", "internal/runtime/atomic", "Storeuintptr"}:     struct{}{},
   390  	{"loong64", "internal/runtime/atomic", "Xadd"}:             struct{}{},
   391  	{"loong64", "internal/runtime/atomic", "Xadd64"}:           struct{}{},
   392  	{"loong64", "internal/runtime/atomic", "Xaddint32"}:        struct{}{},
   393  	{"loong64", "internal/runtime/atomic", "Xaddint64"}:        struct{}{},
   394  	{"loong64", "internal/runtime/atomic", "Xadduintptr"}:      struct{}{},
   395  	{"loong64", "internal/runtime/atomic", "Xchg"}:             struct{}{},
   396  	{"loong64", "internal/runtime/atomic", "Xchg64"}:           struct{}{},
   397  	{"loong64", "internal/runtime/atomic", "Xchgint32"}:        struct{}{},
   398  	{"loong64", "internal/runtime/atomic", "Xchgint64"}:        struct{}{},
   399  	{"loong64", "internal/runtime/atomic", "Xchguintptr"}:      struct{}{},
   400  	{"loong64", "internal/runtime/math", "Add64"}:              struct{}{},
   401  	{"loong64", "internal/runtime/math", "Mul64"}:              struct{}{},
   402  	{"loong64", "internal/runtime/math", "MulUintptr"}:         struct{}{},
   403  	{"loong64", "internal/runtime/sys", "Bswap32"}:             struct{}{},
   404  	{"loong64", "internal/runtime/sys", "Bswap64"}:             struct{}{},
   405  	{"loong64", "internal/runtime/sys", "GetCallerPC"}:         struct{}{},
   406  	{"loong64", "internal/runtime/sys", "GetCallerSP"}:         struct{}{},
   407  	{"loong64", "internal/runtime/sys", "GetClosurePtr"}:       struct{}{},
   408  	{"loong64", "internal/runtime/sys", "Len64"}:               struct{}{},
   409  	{"loong64", "internal/runtime/sys", "Len8"}:                struct{}{},
   410  	{"loong64", "internal/runtime/sys", "OnesCount64"}:         struct{}{},
   411  	{"loong64", "internal/runtime/sys", "TrailingZeros32"}:     struct{}{},
   412  	{"loong64", "internal/runtime/sys", "TrailingZeros64"}:     struct{}{},
   413  	{"loong64", "internal/runtime/sys", "TrailingZeros8"}:      struct{}{},
   414  	{"loong64", "math", "Abs"}:                                 struct{}{},
   415  	{"loong64", "math", "Copysign"}:                            struct{}{},
   416  	{"loong64", "math", "FMA"}:                                 struct{}{},
   417  	{"loong64", "math", "sqrt"}:                                struct{}{},
   418  	{"loong64", "math/big", "mulWW"}:                           struct{}{},
   419  	{"loong64", "math/bits", "Add"}:                            struct{}{},
   420  	{"loong64", "math/bits", "Add64"}:                          struct{}{},
   421  	{"loong64", "math/bits", "Mul"}:                            struct{}{},
   422  	{"loong64", "math/bits", "Mul64"}:                          struct{}{},
   423  	{"loong64", "math/bits", "Len"}:                            struct{}{},
   424  	{"loong64", "math/bits", "Len8"}:                           struct{}{},
   425  	{"loong64", "math/bits", "Len16"}:                          struct{}{},
   426  	{"loong64", "math/bits", "Len32"}:                          struct{}{},
   427  	{"loong64", "math/bits", "Len64"}:                          struct{}{},
   428  	{"loong64", "math/bits", "OnesCount16"}:                    struct{}{},
   429  	{"loong64", "math/bits", "OnesCount32"}:                    struct{}{},
   430  	{"loong64", "math/bits", "OnesCount64"}:                    struct{}{},
   431  	{"loong64", "math/bits", "Reverse"}:                        struct{}{},
   432  	{"loong64", "math/bits", "Reverse8"}:                       struct{}{},
   433  	{"loong64", "math/bits", "Reverse16"}:                      struct{}{},
   434  	{"loong64", "math/bits", "Reverse32"}:                      struct{}{},
   435  	{"loong64", "math/bits", "Reverse64"}:                      struct{}{},
   436  	{"loong64", "math/bits", "RotateLeft"}:                     struct{}{},
   437  	{"loong64", "math/bits", "RotateLeft32"}:                   struct{}{},
   438  	{"loong64", "math/bits", "RotateLeft64"}:                   struct{}{},
   439  	{"loong64", "math/bits", "ReverseBytes16"}:                 struct{}{},
   440  	{"loong64", "math/bits", "ReverseBytes32"}:                 struct{}{},
   441  	{"loong64", "math/bits", "ReverseBytes64"}:                 struct{}{},
   442  	{"loong64", "math/bits", "TrailingZeros16"}:                struct{}{},
   443  	{"loong64", "math/bits", "TrailingZeros32"}:                struct{}{},
   444  	{"loong64", "math/bits", "TrailingZeros64"}:                struct{}{},
   445  	{"loong64", "math/bits", "TrailingZeros8"}:                 struct{}{},
   446  	{"loong64", "math/bits", "Sub"}:                            struct{}{},
   447  	{"loong64", "math/bits", "Sub64"}:                          struct{}{},
   448  	{"loong64", "runtime", "KeepAlive"}:                        struct{}{},
   449  	{"loong64", "runtime", "publicationBarrier"}:               struct{}{},
   450  	{"loong64", "runtime", "slicebytetostringtmp"}:             struct{}{},
   451  	{"loong64", "sync", "runtime_LoadAcquintptr"}:              struct{}{},
   452  	{"loong64", "sync", "runtime_StoreReluintptr"}:             struct{}{},
   453  	{"loong64", "sync/atomic", "AddInt32"}:                     struct{}{},
   454  	{"loong64", "sync/atomic", "AddInt64"}:                     struct{}{},
   455  	{"loong64", "sync/atomic", "AddUint32"}:                    struct{}{},
   456  	{"loong64", "sync/atomic", "AddUint64"}:                    struct{}{},
   457  	{"loong64", "sync/atomic", "AddUintptr"}:                   struct{}{},
   458  	{"loong64", "sync/atomic", "AddInt32"}:                     struct{}{},
   459  	{"loong64", "sync/atomic", "AddInt64"}:                     struct{}{},
   460  	{"loong64", "sync/atomic", "AddUint32"}:                    struct{}{},
   461  	{"loong64", "sync/atomic", "AddUint64"}:                    struct{}{},
   462  	{"loong64", "sync/atomic", "AddUintptr"}:                   struct{}{},
   463  	{"loong64", "sync/atomic", "AndInt32"}:                     struct{}{},
   464  	{"loong64", "sync/atomic", "AndInt64"}:                     struct{}{},
   465  	{"loong64", "sync/atomic", "AndUint32"}:                    struct{}{},
   466  	{"loong64", "sync/atomic", "AndUint64"}:                    struct{}{},
   467  	{"loong64", "sync/atomic", "AndUintptr"}:                   struct{}{},
   468  	{"loong64", "sync/atomic", "CompareAndSwapInt32"}:          struct{}{},
   469  	{"loong64", "sync/atomic", "CompareAndSwapInt64"}:          struct{}{},
   470  	{"loong64", "sync/atomic", "CompareAndSwapUint32"}:         struct{}{},
   471  	{"loong64", "sync/atomic", "CompareAndSwapUint64"}:         struct{}{},
   472  	{"loong64", "sync/atomic", "CompareAndSwapUintptr"}:        struct{}{},
   473  	{"loong64", "sync/atomic", "LoadInt32"}:                    struct{}{},
   474  	{"loong64", "sync/atomic", "LoadInt64"}:                    struct{}{},
   475  	{"loong64", "sync/atomic", "LoadPointer"}:                  struct{}{},
   476  	{"loong64", "sync/atomic", "LoadUint32"}:                   struct{}{},
   477  	{"loong64", "sync/atomic", "LoadUint64"}:                   struct{}{},
   478  	{"loong64", "sync/atomic", "LoadUintptr"}:                  struct{}{},
   479  	{"loong64", "sync/atomic", "OrInt32"}:                      struct{}{},
   480  	{"loong64", "sync/atomic", "OrInt64"}:                      struct{}{},
   481  	{"loong64", "sync/atomic", "OrUint32"}:                     struct{}{},
   482  	{"loong64", "sync/atomic", "OrUint64"}:                     struct{}{},
   483  	{"loong64", "sync/atomic", "OrUintptr"}:                    struct{}{},
   484  	{"loong64", "sync/atomic", "StoreInt32"}:                   struct{}{},
   485  	{"loong64", "sync/atomic", "StoreInt64"}:                   struct{}{},
   486  	{"loong64", "sync/atomic", "StoreUint32"}:                  struct{}{},
   487  	{"loong64", "sync/atomic", "StoreUint64"}:                  struct{}{},
   488  	{"loong64", "sync/atomic", "StoreUintptr"}:                 struct{}{},
   489  	{"loong64", "sync/atomic", "SwapInt32"}:                    struct{}{},
   490  	{"loong64", "sync/atomic", "SwapInt64"}:                    struct{}{},
   491  	{"loong64", "sync/atomic", "SwapUint32"}:                   struct{}{},
   492  	{"loong64", "sync/atomic", "SwapUint64"}:                   struct{}{},
   493  	{"loong64", "sync/atomic", "SwapUintptr"}:                  struct{}{},
   494  	{"mips", "internal/runtime/atomic", "And"}:                 struct{}{},
   495  	{"mips", "internal/runtime/atomic", "And8"}:                struct{}{},
   496  	{"mips", "internal/runtime/atomic", "Cas"}:                 struct{}{},
   497  	{"mips", "internal/runtime/atomic", "CasRel"}:              struct{}{},
   498  	{"mips", "internal/runtime/atomic", "Casint32"}:            struct{}{},
   499  	{"mips", "internal/runtime/atomic", "Casp1"}:               struct{}{},
   500  	{"mips", "internal/runtime/atomic", "Casuintptr"}:          struct{}{},
   501  	{"mips", "internal/runtime/atomic", "Load"}:                struct{}{},
   502  	{"mips", "internal/runtime/atomic", "Load8"}:               struct{}{},
   503  	{"mips", "internal/runtime/atomic", "LoadAcq"}:             struct{}{},
   504  	{"mips", "internal/runtime/atomic", "LoadAcquintptr"}:      struct{}{},
   505  	{"mips", "internal/runtime/atomic", "Loadint32"}:           struct{}{},
   506  	{"mips", "internal/runtime/atomic", "Loadp"}:               struct{}{},
   507  	{"mips", "internal/runtime/atomic", "Loaduint"}:            struct{}{},
   508  	{"mips", "internal/runtime/atomic", "Loaduintptr"}:         struct{}{},
   509  	{"mips", "internal/runtime/atomic", "Or"}:                  struct{}{},
   510  	{"mips", "internal/runtime/atomic", "Or8"}:                 struct{}{},
   511  	{"mips", "internal/runtime/atomic", "Store"}:               struct{}{},
   512  	{"mips", "internal/runtime/atomic", "Store8"}:              struct{}{},
   513  	{"mips", "internal/runtime/atomic", "StoreRel"}:            struct{}{},
   514  	{"mips", "internal/runtime/atomic", "StoreReluintptr"}:     struct{}{},
   515  	{"mips", "internal/runtime/atomic", "Storeint32"}:          struct{}{},
   516  	{"mips", "internal/runtime/atomic", "StorepNoWB"}:          struct{}{},
   517  	{"mips", "internal/runtime/atomic", "Storeuintptr"}:        struct{}{},
   518  	{"mips", "internal/runtime/atomic", "Xadd"}:                struct{}{},
   519  	{"mips", "internal/runtime/atomic", "Xaddint32"}:           struct{}{},
   520  	{"mips", "internal/runtime/atomic", "Xadduintptr"}:         struct{}{},
   521  	{"mips", "internal/runtime/atomic", "Xchg"}:                struct{}{},
   522  	{"mips", "internal/runtime/atomic", "Xchgint32"}:           struct{}{},
   523  	{"mips", "internal/runtime/atomic", "Xchguintptr"}:         struct{}{},
   524  	{"mips", "internal/runtime/sys", "GetCallerPC"}:            struct{}{},
   525  	{"mips", "internal/runtime/sys", "GetCallerSP"}:            struct{}{},
   526  	{"mips", "internal/runtime/sys", "GetClosurePtr"}:          struct{}{},
   527  	{"mips", "internal/runtime/sys", "Len64"}:                  struct{}{},
   528  	{"mips", "internal/runtime/sys", "Len8"}:                   struct{}{},
   529  	{"mips", "internal/runtime/sys", "TrailingZeros32"}:        struct{}{},
   530  	{"mips", "internal/runtime/sys", "TrailingZeros64"}:        struct{}{},
   531  	{"mips", "internal/runtime/sys", "TrailingZeros8"}:         struct{}{},
   532  	{"mips", "math", "Abs"}:                                    struct{}{},
   533  	{"mips", "math", "sqrt"}:                                   struct{}{},
   534  	{"mips", "math/bits", "Len"}:                               struct{}{},
   535  	{"mips", "math/bits", "Len16"}:                             struct{}{},
   536  	{"mips", "math/bits", "Len32"}:                             struct{}{},
   537  	{"mips", "math/bits", "Len64"}:                             struct{}{},
   538  	{"mips", "math/bits", "Len8"}:                              struct{}{},
   539  	{"mips", "math/bits", "TrailingZeros16"}:                   struct{}{},
   540  	{"mips", "math/bits", "TrailingZeros32"}:                   struct{}{},
   541  	{"mips", "math/bits", "TrailingZeros64"}:                   struct{}{},
   542  	{"mips", "math/bits", "TrailingZeros8"}:                    struct{}{},
   543  	{"mips", "runtime", "KeepAlive"}:                           struct{}{},
   544  	{"mips", "runtime", "slicebytetostringtmp"}:                struct{}{},
   545  	{"mips", "sync", "runtime_LoadAcquintptr"}:                 struct{}{},
   546  	{"mips", "sync", "runtime_StoreReluintptr"}:                struct{}{},
   547  	{"mips", "sync/atomic", "AddInt32"}:                        struct{}{},
   548  	{"mips", "sync/atomic", "AddUint32"}:                       struct{}{},
   549  	{"mips", "sync/atomic", "AddUintptr"}:                      struct{}{},
   550  	{"mips", "sync/atomic", "CompareAndSwapInt32"}:             struct{}{},
   551  	{"mips", "sync/atomic", "CompareAndSwapUint32"}:            struct{}{},
   552  	{"mips", "sync/atomic", "CompareAndSwapUintptr"}:           struct{}{},
   553  	{"mips", "sync/atomic", "LoadInt32"}:                       struct{}{},
   554  	{"mips", "sync/atomic", "LoadPointer"}:                     struct{}{},
   555  	{"mips", "sync/atomic", "LoadUint32"}:                      struct{}{},
   556  	{"mips", "sync/atomic", "LoadUintptr"}:                     struct{}{},
   557  	{"mips", "sync/atomic", "StoreInt32"}:                      struct{}{},
   558  	{"mips", "sync/atomic", "StoreUint32"}:                     struct{}{},
   559  	{"mips", "sync/atomic", "StoreUintptr"}:                    struct{}{},
   560  	{"mips", "sync/atomic", "SwapInt32"}:                       struct{}{},
   561  	{"mips", "sync/atomic", "SwapUint32"}:                      struct{}{},
   562  	{"mips", "sync/atomic", "SwapUintptr"}:                     struct{}{},
   563  	{"mips64", "internal/runtime/atomic", "And"}:               struct{}{},
   564  	{"mips64", "internal/runtime/atomic", "And8"}:              struct{}{},
   565  	{"mips64", "internal/runtime/atomic", "Cas"}:               struct{}{},
   566  	{"mips64", "internal/runtime/atomic", "Cas64"}:             struct{}{},
   567  	{"mips64", "internal/runtime/atomic", "CasRel"}:            struct{}{},
   568  	{"mips64", "internal/runtime/atomic", "Casint32"}:          struct{}{},
   569  	{"mips64", "internal/runtime/atomic", "Casint64"}:          struct{}{},
   570  	{"mips64", "internal/runtime/atomic", "Casp1"}:             struct{}{},
   571  	{"mips64", "internal/runtime/atomic", "Casuintptr"}:        struct{}{},
   572  	{"mips64", "internal/runtime/atomic", "Load"}:              struct{}{},
   573  	{"mips64", "internal/runtime/atomic", "Load64"}:            struct{}{},
   574  	{"mips64", "internal/runtime/atomic", "Load8"}:             struct{}{},
   575  	{"mips64", "internal/runtime/atomic", "LoadAcq"}:           struct{}{},
   576  	{"mips64", "internal/runtime/atomic", "LoadAcq64"}:         struct{}{},
   577  	{"mips64", "internal/runtime/atomic", "LoadAcquintptr"}:    struct{}{},
   578  	{"mips64", "internal/runtime/atomic", "Loadint32"}:         struct{}{},
   579  	{"mips64", "internal/runtime/atomic", "Loadint64"}:         struct{}{},
   580  	{"mips64", "internal/runtime/atomic", "Loadp"}:             struct{}{},
   581  	{"mips64", "internal/runtime/atomic", "Loaduint"}:          struct{}{},
   582  	{"mips64", "internal/runtime/atomic", "Loaduintptr"}:       struct{}{},
   583  	{"mips64", "internal/runtime/atomic", "Or"}:                struct{}{},
   584  	{"mips64", "internal/runtime/atomic", "Or8"}:               struct{}{},
   585  	{"mips64", "internal/runtime/atomic", "Store"}:             struct{}{},
   586  	{"mips64", "internal/runtime/atomic", "Store64"}:           struct{}{},
   587  	{"mips64", "internal/runtime/atomic", "Store8"}:            struct{}{},
   588  	{"mips64", "internal/runtime/atomic", "StoreRel"}:          struct{}{},
   589  	{"mips64", "internal/runtime/atomic", "StoreRel64"}:        struct{}{},
   590  	{"mips64", "internal/runtime/atomic", "StoreReluintptr"}:   struct{}{},
   591  	{"mips64", "internal/runtime/atomic", "Storeint32"}:        struct{}{},
   592  	{"mips64", "internal/runtime/atomic", "Storeint64"}:        struct{}{},
   593  	{"mips64", "internal/runtime/atomic", "StorepNoWB"}:        struct{}{},
   594  	{"mips64", "internal/runtime/atomic", "Storeuintptr"}:      struct{}{},
   595  	{"mips64", "internal/runtime/atomic", "Xadd"}:              struct{}{},
   596  	{"mips64", "internal/runtime/atomic", "Xadd64"}:            struct{}{},
   597  	{"mips64", "internal/runtime/atomic", "Xaddint32"}:         struct{}{},
   598  	{"mips64", "internal/runtime/atomic", "Xaddint64"}:         struct{}{},
   599  	{"mips64", "internal/runtime/atomic", "Xadduintptr"}:       struct{}{},
   600  	{"mips64", "internal/runtime/atomic", "Xchg"}:              struct{}{},
   601  	{"mips64", "internal/runtime/atomic", "Xchg64"}:            struct{}{},
   602  	{"mips64", "internal/runtime/atomic", "Xchgint32"}:         struct{}{},
   603  	{"mips64", "internal/runtime/atomic", "Xchgint64"}:         struct{}{},
   604  	{"mips64", "internal/runtime/atomic", "Xchguintptr"}:       struct{}{},
   605  	{"mips64", "internal/runtime/math", "Add64"}:               struct{}{},
   606  	{"mips64", "internal/runtime/math", "Mul64"}:               struct{}{},
   607  	{"mips64", "internal/runtime/math", "MulUintptr"}:          struct{}{},
   608  	{"mips64", "internal/runtime/sys", "GetCallerPC"}:          struct{}{},
   609  	{"mips64", "internal/runtime/sys", "GetCallerSP"}:          struct{}{},
   610  	{"mips64", "internal/runtime/sys", "GetClosurePtr"}:        struct{}{},
   611  	{"mips64", "math", "Abs"}:                                  struct{}{},
   612  	{"mips64", "math", "sqrt"}:                                 struct{}{},
   613  	{"mips64", "math/big", "mulWW"}:                            struct{}{},
   614  	{"mips64", "math/bits", "Add"}:                             struct{}{},
   615  	{"mips64", "math/bits", "Add64"}:                           struct{}{},
   616  	{"mips64", "math/bits", "Mul"}:                             struct{}{},
   617  	{"mips64", "math/bits", "Mul64"}:                           struct{}{},
   618  	{"mips64", "math/bits", "Sub"}:                             struct{}{},
   619  	{"mips64", "math/bits", "Sub64"}:                           struct{}{},
   620  	{"mips64", "runtime", "KeepAlive"}:                         struct{}{},
   621  	{"mips64", "runtime", "slicebytetostringtmp"}:              struct{}{},
   622  	{"mips64", "sync", "runtime_LoadAcquintptr"}:               struct{}{},
   623  	{"mips64", "sync", "runtime_StoreReluintptr"}:              struct{}{},
   624  	{"mips64", "sync/atomic", "AddInt32"}:                      struct{}{},
   625  	{"mips64", "sync/atomic", "AddInt64"}:                      struct{}{},
   626  	{"mips64", "sync/atomic", "AddUint32"}:                     struct{}{},
   627  	{"mips64", "sync/atomic", "AddUint64"}:                     struct{}{},
   628  	{"mips64", "sync/atomic", "AddUintptr"}:                    struct{}{},
   629  	{"mips64", "sync/atomic", "CompareAndSwapInt32"}:           struct{}{},
   630  	{"mips64", "sync/atomic", "CompareAndSwapInt64"}:           struct{}{},
   631  	{"mips64", "sync/atomic", "CompareAndSwapUint32"}:          struct{}{},
   632  	{"mips64", "sync/atomic", "CompareAndSwapUint64"}:          struct{}{},
   633  	{"mips64", "sync/atomic", "CompareAndSwapUintptr"}:         struct{}{},
   634  	{"mips64", "sync/atomic", "LoadInt32"}:                     struct{}{},
   635  	{"mips64", "sync/atomic", "LoadInt64"}:                     struct{}{},
   636  	{"mips64", "sync/atomic", "LoadPointer"}:                   struct{}{},
   637  	{"mips64", "sync/atomic", "LoadUint32"}:                    struct{}{},
   638  	{"mips64", "sync/atomic", "LoadUint64"}:                    struct{}{},
   639  	{"mips64", "sync/atomic", "LoadUintptr"}:                   struct{}{},
   640  	{"mips64", "sync/atomic", "StoreInt32"}:                    struct{}{},
   641  	{"mips64", "sync/atomic", "StoreInt64"}:                    struct{}{},
   642  	{"mips64", "sync/atomic", "StoreUint32"}:                   struct{}{},
   643  	{"mips64", "sync/atomic", "StoreUint64"}:                   struct{}{},
   644  	{"mips64", "sync/atomic", "StoreUintptr"}:                  struct{}{},
   645  	{"mips64", "sync/atomic", "SwapInt32"}:                     struct{}{},
   646  	{"mips64", "sync/atomic", "SwapInt64"}:                     struct{}{},
   647  	{"mips64", "sync/atomic", "SwapUint32"}:                    struct{}{},
   648  	{"mips64", "sync/atomic", "SwapUint64"}:                    struct{}{},
   649  	{"mips64", "sync/atomic", "SwapUintptr"}:                   struct{}{},
   650  	{"mips64le", "internal/runtime/atomic", "And"}:             struct{}{},
   651  	{"mips64le", "internal/runtime/atomic", "And8"}:            struct{}{},
   652  	{"mips64le", "internal/runtime/atomic", "Cas"}:             struct{}{},
   653  	{"mips64le", "internal/runtime/atomic", "Cas64"}:           struct{}{},
   654  	{"mips64le", "internal/runtime/atomic", "CasRel"}:          struct{}{},
   655  	{"mips64le", "internal/runtime/atomic", "Casint32"}:        struct{}{},
   656  	{"mips64le", "internal/runtime/atomic", "Casint64"}:        struct{}{},
   657  	{"mips64le", "internal/runtime/atomic", "Casp1"}:           struct{}{},
   658  	{"mips64le", "internal/runtime/atomic", "Casuintptr"}:      struct{}{},
   659  	{"mips64le", "internal/runtime/atomic", "Load"}:            struct{}{},
   660  	{"mips64le", "internal/runtime/atomic", "Load64"}:          struct{}{},
   661  	{"mips64le", "internal/runtime/atomic", "Load8"}:           struct{}{},
   662  	{"mips64le", "internal/runtime/atomic", "LoadAcq"}:         struct{}{},
   663  	{"mips64le", "internal/runtime/atomic", "LoadAcq64"}:       struct{}{},
   664  	{"mips64le", "internal/runtime/atomic", "LoadAcquintptr"}:  struct{}{},
   665  	{"mips64le", "internal/runtime/atomic", "Loadint32"}:       struct{}{},
   666  	{"mips64le", "internal/runtime/atomic", "Loadint64"}:       struct{}{},
   667  	{"mips64le", "internal/runtime/atomic", "Loadp"}:           struct{}{},
   668  	{"mips64le", "internal/runtime/atomic", "Loaduint"}:        struct{}{},
   669  	{"mips64le", "internal/runtime/atomic", "Loaduintptr"}:     struct{}{},
   670  	{"mips64le", "internal/runtime/atomic", "Or"}:              struct{}{},
   671  	{"mips64le", "internal/runtime/atomic", "Or8"}:             struct{}{},
   672  	{"mips64le", "internal/runtime/atomic", "Store"}:           struct{}{},
   673  	{"mips64le", "internal/runtime/atomic", "Store64"}:         struct{}{},
   674  	{"mips64le", "internal/runtime/atomic", "Store8"}:          struct{}{},
   675  	{"mips64le", "internal/runtime/atomic", "StoreRel"}:        struct{}{},
   676  	{"mips64le", "internal/runtime/atomic", "StoreRel64"}:      struct{}{},
   677  	{"mips64le", "internal/runtime/atomic", "StoreReluintptr"}: struct{}{},
   678  	{"mips64le", "internal/runtime/atomic", "Storeint32"}:      struct{}{},
   679  	{"mips64le", "internal/runtime/atomic", "Storeint64"}:      struct{}{},
   680  	{"mips64le", "internal/runtime/atomic", "StorepNoWB"}:      struct{}{},
   681  	{"mips64le", "internal/runtime/atomic", "Storeuintptr"}:    struct{}{},
   682  	{"mips64le", "internal/runtime/atomic", "Xadd"}:            struct{}{},
   683  	{"mips64le", "internal/runtime/atomic", "Xadd64"}:          struct{}{},
   684  	{"mips64le", "internal/runtime/atomic", "Xaddint32"}:       struct{}{},
   685  	{"mips64le", "internal/runtime/atomic", "Xaddint64"}:       struct{}{},
   686  	{"mips64le", "internal/runtime/atomic", "Xadduintptr"}:     struct{}{},
   687  	{"mips64le", "internal/runtime/atomic", "Xchg"}:            struct{}{},
   688  	{"mips64le", "internal/runtime/atomic", "Xchg64"}:          struct{}{},
   689  	{"mips64le", "internal/runtime/atomic", "Xchgint32"}:       struct{}{},
   690  	{"mips64le", "internal/runtime/atomic", "Xchgint64"}:       struct{}{},
   691  	{"mips64le", "internal/runtime/atomic", "Xchguintptr"}:     struct{}{},
   692  	{"mips64le", "internal/runtime/math", "Add64"}:             struct{}{},
   693  	{"mips64le", "internal/runtime/math", "Mul64"}:             struct{}{},
   694  	{"mips64le", "internal/runtime/math", "MulUintptr"}:        struct{}{},
   695  	{"mips64le", "internal/runtime/sys", "GetCallerPC"}:        struct{}{},
   696  	{"mips64le", "internal/runtime/sys", "GetCallerSP"}:        struct{}{},
   697  	{"mips64le", "internal/runtime/sys", "GetClosurePtr"}:      struct{}{},
   698  	{"mips64le", "math", "Abs"}:                                struct{}{},
   699  	{"mips64le", "math", "sqrt"}:                               struct{}{},
   700  	{"mips64le", "math/big", "mulWW"}:                          struct{}{},
   701  	{"mips64le", "math/bits", "Add"}:                           struct{}{},
   702  	{"mips64le", "math/bits", "Add64"}:                         struct{}{},
   703  	{"mips64le", "math/bits", "Mul"}:                           struct{}{},
   704  	{"mips64le", "math/bits", "Mul64"}:                         struct{}{},
   705  	{"mips64le", "math/bits", "Sub"}:                           struct{}{},
   706  	{"mips64le", "math/bits", "Sub64"}:                         struct{}{},
   707  	{"mips64le", "runtime", "KeepAlive"}:                       struct{}{},
   708  	{"mips64le", "runtime", "slicebytetostringtmp"}:            struct{}{},
   709  	{"mips64le", "sync", "runtime_LoadAcquintptr"}:             struct{}{},
   710  	{"mips64le", "sync", "runtime_StoreReluintptr"}:            struct{}{},
   711  	{"mips64le", "sync/atomic", "AddInt32"}:                    struct{}{},
   712  	{"mips64le", "sync/atomic", "AddInt64"}:                    struct{}{},
   713  	{"mips64le", "sync/atomic", "AddUint32"}:                   struct{}{},
   714  	{"mips64le", "sync/atomic", "AddUint64"}:                   struct{}{},
   715  	{"mips64le", "sync/atomic", "AddUintptr"}:                  struct{}{},
   716  	{"mips64le", "sync/atomic", "CompareAndSwapInt32"}:         struct{}{},
   717  	{"mips64le", "sync/atomic", "CompareAndSwapInt64"}:         struct{}{},
   718  	{"mips64le", "sync/atomic", "CompareAndSwapUint32"}:        struct{}{},
   719  	{"mips64le", "sync/atomic", "CompareAndSwapUint64"}:        struct{}{},
   720  	{"mips64le", "sync/atomic", "CompareAndSwapUintptr"}:       struct{}{},
   721  	{"mips64le", "sync/atomic", "LoadInt32"}:                   struct{}{},
   722  	{"mips64le", "sync/atomic", "LoadInt64"}:                   struct{}{},
   723  	{"mips64le", "sync/atomic", "LoadPointer"}:                 struct{}{},
   724  	{"mips64le", "sync/atomic", "LoadUint32"}:                  struct{}{},
   725  	{"mips64le", "sync/atomic", "LoadUint64"}:                  struct{}{},
   726  	{"mips64le", "sync/atomic", "LoadUintptr"}:                 struct{}{},
   727  	{"mips64le", "sync/atomic", "StoreInt32"}:                  struct{}{},
   728  	{"mips64le", "sync/atomic", "StoreInt64"}:                  struct{}{},
   729  	{"mips64le", "sync/atomic", "StoreUint32"}:                 struct{}{},
   730  	{"mips64le", "sync/atomic", "StoreUint64"}:                 struct{}{},
   731  	{"mips64le", "sync/atomic", "StoreUintptr"}:                struct{}{},
   732  	{"mips64le", "sync/atomic", "SwapInt32"}:                   struct{}{},
   733  	{"mips64le", "sync/atomic", "SwapInt64"}:                   struct{}{},
   734  	{"mips64le", "sync/atomic", "SwapUint32"}:                  struct{}{},
   735  	{"mips64le", "sync/atomic", "SwapUint64"}:                  struct{}{},
   736  	{"mips64le", "sync/atomic", "SwapUintptr"}:                 struct{}{},
   737  	{"mipsle", "internal/runtime/atomic", "And"}:               struct{}{},
   738  	{"mipsle", "internal/runtime/atomic", "And8"}:              struct{}{},
   739  	{"mipsle", "internal/runtime/atomic", "Cas"}:               struct{}{},
   740  	{"mipsle", "internal/runtime/atomic", "CasRel"}:            struct{}{},
   741  	{"mipsle", "internal/runtime/atomic", "Casint32"}:          struct{}{},
   742  	{"mipsle", "internal/runtime/atomic", "Casp1"}:             struct{}{},
   743  	{"mipsle", "internal/runtime/atomic", "Casuintptr"}:        struct{}{},
   744  	{"mipsle", "internal/runtime/atomic", "Load"}:              struct{}{},
   745  	{"mipsle", "internal/runtime/atomic", "Load8"}:             struct{}{},
   746  	{"mipsle", "internal/runtime/atomic", "LoadAcq"}:           struct{}{},
   747  	{"mipsle", "internal/runtime/atomic", "LoadAcquintptr"}:    struct{}{},
   748  	{"mipsle", "internal/runtime/atomic", "Loadint32"}:         struct{}{},
   749  	{"mipsle", "internal/runtime/atomic", "Loadp"}:             struct{}{},
   750  	{"mipsle", "internal/runtime/atomic", "Loaduint"}:          struct{}{},
   751  	{"mipsle", "internal/runtime/atomic", "Loaduintptr"}:       struct{}{},
   752  	{"mipsle", "internal/runtime/atomic", "Or"}:                struct{}{},
   753  	{"mipsle", "internal/runtime/atomic", "Or8"}:               struct{}{},
   754  	{"mipsle", "internal/runtime/atomic", "Store"}:             struct{}{},
   755  	{"mipsle", "internal/runtime/atomic", "Store8"}:            struct{}{},
   756  	{"mipsle", "internal/runtime/atomic", "StoreRel"}:          struct{}{},
   757  	{"mipsle", "internal/runtime/atomic", "StoreReluintptr"}:   struct{}{},
   758  	{"mipsle", "internal/runtime/atomic", "Storeint32"}:        struct{}{},
   759  	{"mipsle", "internal/runtime/atomic", "StorepNoWB"}:        struct{}{},
   760  	{"mipsle", "internal/runtime/atomic", "Storeuintptr"}:      struct{}{},
   761  	{"mipsle", "internal/runtime/atomic", "Xadd"}:              struct{}{},
   762  	{"mipsle", "internal/runtime/atomic", "Xaddint32"}:         struct{}{},
   763  	{"mipsle", "internal/runtime/atomic", "Xadduintptr"}:       struct{}{},
   764  	{"mipsle", "internal/runtime/atomic", "Xchg"}:              struct{}{},
   765  	{"mipsle", "internal/runtime/atomic", "Xchgint32"}:         struct{}{},
   766  	{"mipsle", "internal/runtime/atomic", "Xchguintptr"}:       struct{}{},
   767  	{"mipsle", "internal/runtime/sys", "GetCallerPC"}:          struct{}{},
   768  	{"mipsle", "internal/runtime/sys", "GetCallerSP"}:          struct{}{},
   769  	{"mipsle", "internal/runtime/sys", "GetClosurePtr"}:        struct{}{},
   770  	{"mipsle", "internal/runtime/sys", "Len64"}:                struct{}{},
   771  	{"mipsle", "internal/runtime/sys", "Len8"}:                 struct{}{},
   772  	{"mipsle", "internal/runtime/sys", "TrailingZeros32"}:      struct{}{},
   773  	{"mipsle", "internal/runtime/sys", "TrailingZeros64"}:      struct{}{},
   774  	{"mipsle", "internal/runtime/sys", "TrailingZeros8"}:       struct{}{},
   775  	{"mipsle", "math", "Abs"}:                                  struct{}{},
   776  	{"mipsle", "math", "sqrt"}:                                 struct{}{},
   777  	{"mipsle", "math/bits", "Len"}:                             struct{}{},
   778  	{"mipsle", "math/bits", "Len16"}:                           struct{}{},
   779  	{"mipsle", "math/bits", "Len32"}:                           struct{}{},
   780  	{"mipsle", "math/bits", "Len64"}:                           struct{}{},
   781  	{"mipsle", "math/bits", "Len8"}:                            struct{}{},
   782  	{"mipsle", "math/bits", "TrailingZeros16"}:                 struct{}{},
   783  	{"mipsle", "math/bits", "TrailingZeros32"}:                 struct{}{},
   784  	{"mipsle", "math/bits", "TrailingZeros64"}:                 struct{}{},
   785  	{"mipsle", "math/bits", "TrailingZeros8"}:                  struct{}{},
   786  	{"mipsle", "runtime", "KeepAlive"}:                         struct{}{},
   787  	{"mipsle", "runtime", "slicebytetostringtmp"}:              struct{}{},
   788  	{"mipsle", "sync", "runtime_LoadAcquintptr"}:               struct{}{},
   789  	{"mipsle", "sync", "runtime_StoreReluintptr"}:              struct{}{},
   790  	{"mipsle", "sync/atomic", "AddInt32"}:                      struct{}{},
   791  	{"mipsle", "sync/atomic", "AddUint32"}:                     struct{}{},
   792  	{"mipsle", "sync/atomic", "AddUintptr"}:                    struct{}{},
   793  	{"mipsle", "sync/atomic", "CompareAndSwapInt32"}:           struct{}{},
   794  	{"mipsle", "sync/atomic", "CompareAndSwapUint32"}:          struct{}{},
   795  	{"mipsle", "sync/atomic", "CompareAndSwapUintptr"}:         struct{}{},
   796  	{"mipsle", "sync/atomic", "LoadInt32"}:                     struct{}{},
   797  	{"mipsle", "sync/atomic", "LoadPointer"}:                   struct{}{},
   798  	{"mipsle", "sync/atomic", "LoadUint32"}:                    struct{}{},
   799  	{"mipsle", "sync/atomic", "LoadUintptr"}:                   struct{}{},
   800  	{"mipsle", "sync/atomic", "StoreInt32"}:                    struct{}{},
   801  	{"mipsle", "sync/atomic", "StoreUint32"}:                   struct{}{},
   802  	{"mipsle", "sync/atomic", "StoreUintptr"}:                  struct{}{},
   803  	{"mipsle", "sync/atomic", "SwapInt32"}:                     struct{}{},
   804  	{"mipsle", "sync/atomic", "SwapUint32"}:                    struct{}{},
   805  	{"mipsle", "sync/atomic", "SwapUintptr"}:                   struct{}{},
   806  	{"ppc64", "internal/runtime/atomic", "And"}:                struct{}{},
   807  	{"ppc64", "internal/runtime/atomic", "And8"}:               struct{}{},
   808  	{"ppc64", "internal/runtime/atomic", "Cas"}:                struct{}{},
   809  	{"ppc64", "internal/runtime/atomic", "Cas64"}:              struct{}{},
   810  	{"ppc64", "internal/runtime/atomic", "CasRel"}:             struct{}{},
   811  	{"ppc64", "internal/runtime/atomic", "Casint32"}:           struct{}{},
   812  	{"ppc64", "internal/runtime/atomic", "Casint64"}:           struct{}{},
   813  	{"ppc64", "internal/runtime/atomic", "Casp1"}:              struct{}{},
   814  	{"ppc64", "internal/runtime/atomic", "Casuintptr"}:         struct{}{},
   815  	{"ppc64", "internal/runtime/atomic", "Load"}:               struct{}{},
   816  	{"ppc64", "internal/runtime/atomic", "Load64"}:             struct{}{},
   817  	{"ppc64", "internal/runtime/atomic", "Load8"}:              struct{}{},
   818  	{"ppc64", "internal/runtime/atomic", "LoadAcq"}:            struct{}{},
   819  	{"ppc64", "internal/runtime/atomic", "LoadAcq64"}:          struct{}{},
   820  	{"ppc64", "internal/runtime/atomic", "LoadAcquintptr"}:     struct{}{},
   821  	{"ppc64", "internal/runtime/atomic", "Loadint32"}:          struct{}{},
   822  	{"ppc64", "internal/runtime/atomic", "Loadint64"}:          struct{}{},
   823  	{"ppc64", "internal/runtime/atomic", "Loadp"}:              struct{}{},
   824  	{"ppc64", "internal/runtime/atomic", "Loaduint"}:           struct{}{},
   825  	{"ppc64", "internal/runtime/atomic", "Loaduintptr"}:        struct{}{},
   826  	{"ppc64", "internal/runtime/atomic", "Or"}:                 struct{}{},
   827  	{"ppc64", "internal/runtime/atomic", "Or8"}:                struct{}{},
   828  	{"ppc64", "internal/runtime/atomic", "Store"}:              struct{}{},
   829  	{"ppc64", "internal/runtime/atomic", "Store64"}:            struct{}{},
   830  	{"ppc64", "internal/runtime/atomic", "Store8"}:             struct{}{},
   831  	{"ppc64", "internal/runtime/atomic", "StoreRel"}:           struct{}{},
   832  	{"ppc64", "internal/runtime/atomic", "StoreRel64"}:         struct{}{},
   833  	{"ppc64", "internal/runtime/atomic", "StoreReluintptr"}:    struct{}{},
   834  	{"ppc64", "internal/runtime/atomic", "Storeint32"}:         struct{}{},
   835  	{"ppc64", "internal/runtime/atomic", "Storeint64"}:         struct{}{},
   836  	{"ppc64", "internal/runtime/atomic", "Storeuintptr"}:       struct{}{},
   837  	{"ppc64", "internal/runtime/atomic", "Xadd"}:               struct{}{},
   838  	{"ppc64", "internal/runtime/atomic", "Xadd64"}:             struct{}{},
   839  	{"ppc64", "internal/runtime/atomic", "Xaddint32"}:          struct{}{},
   840  	{"ppc64", "internal/runtime/atomic", "Xaddint64"}:          struct{}{},
   841  	{"ppc64", "internal/runtime/atomic", "Xadduintptr"}:        struct{}{},
   842  	{"ppc64", "internal/runtime/atomic", "Xchg8"}:              struct{}{},
   843  	{"ppc64", "internal/runtime/atomic", "Xchg"}:               struct{}{},
   844  	{"ppc64", "internal/runtime/atomic", "Xchg64"}:             struct{}{},
   845  	{"ppc64", "internal/runtime/atomic", "Xchgint32"}:          struct{}{},
   846  	{"ppc64", "internal/runtime/atomic", "Xchgint64"}:          struct{}{},
   847  	{"ppc64", "internal/runtime/atomic", "Xchguintptr"}:        struct{}{},
   848  	{"ppc64", "internal/runtime/math", "Add64"}:                struct{}{},
   849  	{"ppc64", "internal/runtime/math", "Mul64"}:                struct{}{},
   850  	{"ppc64", "internal/runtime/math", "MulUintptr"}:           struct{}{},
   851  	{"ppc64", "internal/runtime/sys", "Bswap32"}:               struct{}{},
   852  	{"ppc64", "internal/runtime/sys", "Bswap64"}:               struct{}{},
   853  	{"ppc64", "internal/runtime/sys", "GetCallerPC"}:           struct{}{},
   854  	{"ppc64", "internal/runtime/sys", "GetCallerSP"}:           struct{}{},
   855  	{"ppc64", "internal/runtime/sys", "GetClosurePtr"}:         struct{}{},
   856  	{"ppc64", "internal/runtime/sys", "Len64"}:                 struct{}{},
   857  	{"ppc64", "internal/runtime/sys", "Len8"}:                  struct{}{},
   858  	{"ppc64", "internal/runtime/sys", "OnesCount64"}:           struct{}{},
   859  	{"ppc64", "internal/runtime/sys", "Prefetch"}:              struct{}{},
   860  	{"ppc64", "internal/runtime/sys", "PrefetchStreamed"}:      struct{}{},
   861  	{"ppc64", "internal/runtime/sys", "TrailingZeros32"}:       struct{}{},
   862  	{"ppc64", "internal/runtime/sys", "TrailingZeros64"}:       struct{}{},
   863  	{"ppc64", "math", "Abs"}:                                   struct{}{},
   864  	{"ppc64", "math", "Ceil"}:                                  struct{}{},
   865  	{"ppc64", "math", "Copysign"}:                              struct{}{},
   866  	{"ppc64", "math", "FMA"}:                                   struct{}{},
   867  	{"ppc64", "math", "Floor"}:                                 struct{}{},
   868  	{"ppc64", "math", "Round"}:                                 struct{}{},
   869  	{"ppc64", "math", "Trunc"}:                                 struct{}{},
   870  	{"ppc64", "math", "sqrt"}:                                  struct{}{},
   871  	{"ppc64", "math/big", "mulWW"}:                             struct{}{},
   872  	{"ppc64", "math/bits", "Add"}:                              struct{}{},
   873  	{"ppc64", "math/bits", "Add64"}:                            struct{}{},
   874  	{"ppc64", "math/bits", "Len"}:                              struct{}{},
   875  	{"ppc64", "math/bits", "Len16"}:                            struct{}{},
   876  	{"ppc64", "math/bits", "Len32"}:                            struct{}{},
   877  	{"ppc64", "math/bits", "Len64"}:                            struct{}{},
   878  	{"ppc64", "math/bits", "Len8"}:                             struct{}{},
   879  	{"ppc64", "math/bits", "Mul"}:                              struct{}{},
   880  	{"ppc64", "math/bits", "Mul64"}:                            struct{}{},
   881  	{"ppc64", "math/bits", "OnesCount16"}:                      struct{}{},
   882  	{"ppc64", "math/bits", "OnesCount32"}:                      struct{}{},
   883  	{"ppc64", "math/bits", "OnesCount64"}:                      struct{}{},
   884  	{"ppc64", "math/bits", "OnesCount8"}:                       struct{}{},
   885  	{"ppc64", "math/bits", "ReverseBytes16"}:                   struct{}{},
   886  	{"ppc64", "math/bits", "ReverseBytes32"}:                   struct{}{},
   887  	{"ppc64", "math/bits", "ReverseBytes64"}:                   struct{}{},
   888  	{"ppc64", "math/bits", "RotateLeft"}:                       struct{}{},
   889  	{"ppc64", "math/bits", "RotateLeft32"}:                     struct{}{},
   890  	{"ppc64", "math/bits", "RotateLeft64"}:                     struct{}{},
   891  	{"ppc64", "math/bits", "Sub"}:                              struct{}{},
   892  	{"ppc64", "math/bits", "Sub64"}:                            struct{}{},
   893  	{"ppc64", "math/bits", "TrailingZeros16"}:                  struct{}{},
   894  	{"ppc64", "math/bits", "TrailingZeros32"}:                  struct{}{},
   895  	{"ppc64", "math/bits", "TrailingZeros64"}:                  struct{}{},
   896  	{"ppc64", "runtime", "KeepAlive"}:                          struct{}{},
   897  	{"ppc64", "runtime", "publicationBarrier"}:                 struct{}{},
   898  	{"ppc64", "runtime", "slicebytetostringtmp"}:               struct{}{},
   899  	{"ppc64", "sync", "runtime_LoadAcquintptr"}:                struct{}{},
   900  	{"ppc64", "sync", "runtime_StoreReluintptr"}:               struct{}{},
   901  	{"ppc64", "sync/atomic", "AddInt32"}:                       struct{}{},
   902  	{"ppc64", "sync/atomic", "AddInt64"}:                       struct{}{},
   903  	{"ppc64", "sync/atomic", "AddUint32"}:                      struct{}{},
   904  	{"ppc64", "sync/atomic", "AddUint64"}:                      struct{}{},
   905  	{"ppc64", "sync/atomic", "AddUintptr"}:                     struct{}{},
   906  	{"ppc64", "sync/atomic", "CompareAndSwapInt32"}:            struct{}{},
   907  	{"ppc64", "sync/atomic", "CompareAndSwapInt64"}:            struct{}{},
   908  	{"ppc64", "sync/atomic", "CompareAndSwapUint32"}:           struct{}{},
   909  	{"ppc64", "sync/atomic", "CompareAndSwapUint64"}:           struct{}{},
   910  	{"ppc64", "sync/atomic", "CompareAndSwapUintptr"}:          struct{}{},
   911  	{"ppc64", "sync/atomic", "LoadInt32"}:                      struct{}{},
   912  	{"ppc64", "sync/atomic", "LoadInt64"}:                      struct{}{},
   913  	{"ppc64", "sync/atomic", "LoadPointer"}:                    struct{}{},
   914  	{"ppc64", "sync/atomic", "LoadUint32"}:                     struct{}{},
   915  	{"ppc64", "sync/atomic", "LoadUint64"}:                     struct{}{},
   916  	{"ppc64", "sync/atomic", "LoadUintptr"}:                    struct{}{},
   917  	{"ppc64", "sync/atomic", "StoreInt32"}:                     struct{}{},
   918  	{"ppc64", "sync/atomic", "StoreInt64"}:                     struct{}{},
   919  	{"ppc64", "sync/atomic", "StoreUint32"}:                    struct{}{},
   920  	{"ppc64", "sync/atomic", "StoreUint64"}:                    struct{}{},
   921  	{"ppc64", "sync/atomic", "StoreUintptr"}:                   struct{}{},
   922  	{"ppc64", "sync/atomic", "SwapInt32"}:                      struct{}{},
   923  	{"ppc64", "sync/atomic", "SwapInt64"}:                      struct{}{},
   924  	{"ppc64", "sync/atomic", "SwapUint32"}:                     struct{}{},
   925  	{"ppc64", "sync/atomic", "SwapUint64"}:                     struct{}{},
   926  	{"ppc64", "sync/atomic", "SwapUintptr"}:                    struct{}{},
   927  	{"ppc64le", "internal/runtime/atomic", "And"}:              struct{}{},
   928  	{"ppc64le", "internal/runtime/atomic", "And8"}:             struct{}{},
   929  	{"ppc64le", "internal/runtime/atomic", "Cas"}:              struct{}{},
   930  	{"ppc64le", "internal/runtime/atomic", "Cas64"}:            struct{}{},
   931  	{"ppc64le", "internal/runtime/atomic", "CasRel"}:           struct{}{},
   932  	{"ppc64le", "internal/runtime/atomic", "Casint32"}:         struct{}{},
   933  	{"ppc64le", "internal/runtime/atomic", "Casint64"}:         struct{}{},
   934  	{"ppc64le", "internal/runtime/atomic", "Casp1"}:            struct{}{},
   935  	{"ppc64le", "internal/runtime/atomic", "Casuintptr"}:       struct{}{},
   936  	{"ppc64le", "internal/runtime/atomic", "Load"}:             struct{}{},
   937  	{"ppc64le", "internal/runtime/atomic", "Load64"}:           struct{}{},
   938  	{"ppc64le", "internal/runtime/atomic", "Load8"}:            struct{}{},
   939  	{"ppc64le", "internal/runtime/atomic", "LoadAcq"}:          struct{}{},
   940  	{"ppc64le", "internal/runtime/atomic", "LoadAcq64"}:        struct{}{},
   941  	{"ppc64le", "internal/runtime/atomic", "LoadAcquintptr"}:   struct{}{},
   942  	{"ppc64le", "internal/runtime/atomic", "Loadint32"}:        struct{}{},
   943  	{"ppc64le", "internal/runtime/atomic", "Loadint64"}:        struct{}{},
   944  	{"ppc64le", "internal/runtime/atomic", "Loadp"}:            struct{}{},
   945  	{"ppc64le", "internal/runtime/atomic", "Loaduint"}:         struct{}{},
   946  	{"ppc64le", "internal/runtime/atomic", "Loaduintptr"}:      struct{}{},
   947  	{"ppc64le", "internal/runtime/atomic", "Or"}:               struct{}{},
   948  	{"ppc64le", "internal/runtime/atomic", "Or8"}:              struct{}{},
   949  	{"ppc64le", "internal/runtime/atomic", "Store"}:            struct{}{},
   950  	{"ppc64le", "internal/runtime/atomic", "Store64"}:          struct{}{},
   951  	{"ppc64le", "internal/runtime/atomic", "Store8"}:           struct{}{},
   952  	{"ppc64le", "internal/runtime/atomic", "StoreRel"}:         struct{}{},
   953  	{"ppc64le", "internal/runtime/atomic", "StoreRel64"}:       struct{}{},
   954  	{"ppc64le", "internal/runtime/atomic", "StoreReluintptr"}:  struct{}{},
   955  	{"ppc64le", "internal/runtime/atomic", "Storeint32"}:       struct{}{},
   956  	{"ppc64le", "internal/runtime/atomic", "Storeint64"}:       struct{}{},
   957  	{"ppc64le", "internal/runtime/atomic", "Storeuintptr"}:     struct{}{},
   958  	{"ppc64le", "internal/runtime/atomic", "Xadd"}:             struct{}{},
   959  	{"ppc64le", "internal/runtime/atomic", "Xadd64"}:           struct{}{},
   960  	{"ppc64le", "internal/runtime/atomic", "Xaddint32"}:        struct{}{},
   961  	{"ppc64le", "internal/runtime/atomic", "Xaddint64"}:        struct{}{},
   962  	{"ppc64le", "internal/runtime/atomic", "Xadduintptr"}:      struct{}{},
   963  	{"ppc64le", "internal/runtime/atomic", "Xchg8"}:            struct{}{},
   964  	{"ppc64le", "internal/runtime/atomic", "Xchg"}:             struct{}{},
   965  	{"ppc64le", "internal/runtime/atomic", "Xchg64"}:           struct{}{},
   966  	{"ppc64le", "internal/runtime/atomic", "Xchgint32"}:        struct{}{},
   967  	{"ppc64le", "internal/runtime/atomic", "Xchgint64"}:        struct{}{},
   968  	{"ppc64le", "internal/runtime/atomic", "Xchguintptr"}:      struct{}{},
   969  	{"ppc64le", "internal/runtime/math", "Add64"}:              struct{}{},
   970  	{"ppc64le", "internal/runtime/math", "Mul64"}:              struct{}{},
   971  	{"ppc64le", "internal/runtime/math", "MulUintptr"}:         struct{}{},
   972  	{"ppc64le", "internal/runtime/sys", "Bswap32"}:             struct{}{},
   973  	{"ppc64le", "internal/runtime/sys", "Bswap64"}:             struct{}{},
   974  	{"ppc64le", "internal/runtime/sys", "GetCallerPC"}:         struct{}{},
   975  	{"ppc64le", "internal/runtime/sys", "GetCallerSP"}:         struct{}{},
   976  	{"ppc64le", "internal/runtime/sys", "GetClosurePtr"}:       struct{}{},
   977  	{"ppc64le", "internal/runtime/sys", "Len64"}:               struct{}{},
   978  	{"ppc64le", "internal/runtime/sys", "Len8"}:                struct{}{},
   979  	{"ppc64le", "internal/runtime/sys", "OnesCount64"}:         struct{}{},
   980  	{"ppc64le", "internal/runtime/sys", "Prefetch"}:            struct{}{},
   981  	{"ppc64le", "internal/runtime/sys", "PrefetchStreamed"}:    struct{}{},
   982  	{"ppc64le", "internal/runtime/sys", "TrailingZeros32"}:     struct{}{},
   983  	{"ppc64le", "internal/runtime/sys", "TrailingZeros64"}:     struct{}{},
   984  	{"ppc64le", "math", "Abs"}:                                 struct{}{},
   985  	{"ppc64le", "math", "Ceil"}:                                struct{}{},
   986  	{"ppc64le", "math", "Copysign"}:                            struct{}{},
   987  	{"ppc64le", "math", "FMA"}:                                 struct{}{},
   988  	{"ppc64le", "math", "Floor"}:                               struct{}{},
   989  	{"ppc64le", "math", "Round"}:                               struct{}{},
   990  	{"ppc64le", "math", "Trunc"}:                               struct{}{},
   991  	{"ppc64le", "math", "sqrt"}:                                struct{}{},
   992  	{"ppc64le", "math/big", "mulWW"}:                           struct{}{},
   993  	{"ppc64le", "math/bits", "Add"}:                            struct{}{},
   994  	{"ppc64le", "math/bits", "Add64"}:                          struct{}{},
   995  	{"ppc64le", "math/bits", "Len"}:                            struct{}{},
   996  	{"ppc64le", "math/bits", "Len16"}:                          struct{}{},
   997  	{"ppc64le", "math/bits", "Len32"}:                          struct{}{},
   998  	{"ppc64le", "math/bits", "Len64"}:                          struct{}{},
   999  	{"ppc64le", "math/bits", "Len8"}:                           struct{}{},
  1000  	{"ppc64le", "math/bits", "Mul"}:                            struct{}{},
  1001  	{"ppc64le", "math/bits", "Mul64"}:                          struct{}{},
  1002  	{"ppc64le", "math/bits", "OnesCount16"}:                    struct{}{},
  1003  	{"ppc64le", "math/bits", "OnesCount32"}:                    struct{}{},
  1004  	{"ppc64le", "math/bits", "OnesCount64"}:                    struct{}{},
  1005  	{"ppc64le", "math/bits", "OnesCount8"}:                     struct{}{},
  1006  	{"ppc64le", "math/bits", "ReverseBytes16"}:                 struct{}{},
  1007  	{"ppc64le", "math/bits", "ReverseBytes32"}:                 struct{}{},
  1008  	{"ppc64le", "math/bits", "ReverseBytes64"}:                 struct{}{},
  1009  	{"ppc64le", "math/bits", "RotateLeft"}:                     struct{}{},
  1010  	{"ppc64le", "math/bits", "RotateLeft32"}:                   struct{}{},
  1011  	{"ppc64le", "math/bits", "RotateLeft64"}:                   struct{}{},
  1012  	{"ppc64le", "math/bits", "Sub"}:                            struct{}{},
  1013  	{"ppc64le", "math/bits", "Sub64"}:                          struct{}{},
  1014  	{"ppc64le", "math/bits", "TrailingZeros16"}:                struct{}{},
  1015  	{"ppc64le", "math/bits", "TrailingZeros32"}:                struct{}{},
  1016  	{"ppc64le", "math/bits", "TrailingZeros64"}:                struct{}{},
  1017  	{"ppc64le", "runtime", "KeepAlive"}:                        struct{}{},
  1018  	{"ppc64le", "runtime", "publicationBarrier"}:               struct{}{},
  1019  	{"ppc64le", "runtime", "slicebytetostringtmp"}:             struct{}{},
  1020  	{"ppc64le", "sync", "runtime_LoadAcquintptr"}:              struct{}{},
  1021  	{"ppc64le", "sync", "runtime_StoreReluintptr"}:             struct{}{},
  1022  	{"ppc64le", "sync/atomic", "AddInt32"}:                     struct{}{},
  1023  	{"ppc64le", "sync/atomic", "AddInt64"}:                     struct{}{},
  1024  	{"ppc64le", "sync/atomic", "AddUint32"}:                    struct{}{},
  1025  	{"ppc64le", "sync/atomic", "AddUint64"}:                    struct{}{},
  1026  	{"ppc64le", "sync/atomic", "AddUintptr"}:                   struct{}{},
  1027  	{"ppc64le", "sync/atomic", "CompareAndSwapInt32"}:          struct{}{},
  1028  	{"ppc64le", "sync/atomic", "CompareAndSwapInt64"}:          struct{}{},
  1029  	{"ppc64le", "sync/atomic", "CompareAndSwapUint32"}:         struct{}{},
  1030  	{"ppc64le", "sync/atomic", "CompareAndSwapUint64"}:         struct{}{},
  1031  	{"ppc64le", "sync/atomic", "CompareAndSwapUintptr"}:        struct{}{},
  1032  	{"ppc64le", "sync/atomic", "LoadInt32"}:                    struct{}{},
  1033  	{"ppc64le", "sync/atomic", "LoadInt64"}:                    struct{}{},
  1034  	{"ppc64le", "sync/atomic", "LoadPointer"}:                  struct{}{},
  1035  	{"ppc64le", "sync/atomic", "LoadUint32"}:                   struct{}{},
  1036  	{"ppc64le", "sync/atomic", "LoadUint64"}:                   struct{}{},
  1037  	{"ppc64le", "sync/atomic", "LoadUintptr"}:                  struct{}{},
  1038  	{"ppc64le", "sync/atomic", "StoreInt32"}:                   struct{}{},
  1039  	{"ppc64le", "sync/atomic", "StoreInt64"}:                   struct{}{},
  1040  	{"ppc64le", "sync/atomic", "StoreUint32"}:                  struct{}{},
  1041  	{"ppc64le", "sync/atomic", "StoreUint64"}:                  struct{}{},
  1042  	{"ppc64le", "sync/atomic", "StoreUintptr"}:                 struct{}{},
  1043  	{"ppc64le", "sync/atomic", "SwapInt32"}:                    struct{}{},
  1044  	{"ppc64le", "sync/atomic", "SwapInt64"}:                    struct{}{},
  1045  	{"ppc64le", "sync/atomic", "SwapUint32"}:                   struct{}{},
  1046  	{"ppc64le", "sync/atomic", "SwapUint64"}:                   struct{}{},
  1047  	{"ppc64le", "sync/atomic", "SwapUintptr"}:                  struct{}{},
  1048  	{"riscv64", "internal/runtime/atomic", "And"}:              struct{}{},
  1049  	{"riscv64", "internal/runtime/atomic", "And8"}:             struct{}{},
  1050  	{"riscv64", "internal/runtime/atomic", "Cas"}:              struct{}{},
  1051  	{"riscv64", "internal/runtime/atomic", "Cas64"}:            struct{}{},
  1052  	{"riscv64", "internal/runtime/atomic", "CasRel"}:           struct{}{},
  1053  	{"riscv64", "internal/runtime/atomic", "Casint32"}:         struct{}{},
  1054  	{"riscv64", "internal/runtime/atomic", "Casint64"}:         struct{}{},
  1055  	{"riscv64", "internal/runtime/atomic", "Casp1"}:            struct{}{},
  1056  	{"riscv64", "internal/runtime/atomic", "Casuintptr"}:       struct{}{},
  1057  	{"riscv64", "internal/runtime/atomic", "Load"}:             struct{}{},
  1058  	{"riscv64", "internal/runtime/atomic", "Load64"}:           struct{}{},
  1059  	{"riscv64", "internal/runtime/atomic", "Load8"}:            struct{}{},
  1060  	{"riscv64", "internal/runtime/atomic", "LoadAcq"}:          struct{}{},
  1061  	{"riscv64", "internal/runtime/atomic", "LoadAcq64"}:        struct{}{},
  1062  	{"riscv64", "internal/runtime/atomic", "LoadAcquintptr"}:   struct{}{},
  1063  	{"riscv64", "internal/runtime/atomic", "Loadint32"}:        struct{}{},
  1064  	{"riscv64", "internal/runtime/atomic", "Loadint64"}:        struct{}{},
  1065  	{"riscv64", "internal/runtime/atomic", "Loadp"}:            struct{}{},
  1066  	{"riscv64", "internal/runtime/atomic", "Loaduint"}:         struct{}{},
  1067  	{"riscv64", "internal/runtime/atomic", "Loaduintptr"}:      struct{}{},
  1068  	{"riscv64", "internal/runtime/atomic", "Or"}:               struct{}{},
  1069  	{"riscv64", "internal/runtime/atomic", "Or8"}:              struct{}{},
  1070  	{"riscv64", "internal/runtime/atomic", "Store"}:            struct{}{},
  1071  	{"riscv64", "internal/runtime/atomic", "Store64"}:          struct{}{},
  1072  	{"riscv64", "internal/runtime/atomic", "Store8"}:           struct{}{},
  1073  	{"riscv64", "internal/runtime/atomic", "StoreRel"}:         struct{}{},
  1074  	{"riscv64", "internal/runtime/atomic", "StoreRel64"}:       struct{}{},
  1075  	{"riscv64", "internal/runtime/atomic", "StoreReluintptr"}:  struct{}{},
  1076  	{"riscv64", "internal/runtime/atomic", "Storeint32"}:       struct{}{},
  1077  	{"riscv64", "internal/runtime/atomic", "Storeint64"}:       struct{}{},
  1078  	{"riscv64", "internal/runtime/atomic", "StorepNoWB"}:       struct{}{},
  1079  	{"riscv64", "internal/runtime/atomic", "Storeuintptr"}:     struct{}{},
  1080  	{"riscv64", "internal/runtime/atomic", "Xadd"}:             struct{}{},
  1081  	{"riscv64", "internal/runtime/atomic", "Xadd64"}:           struct{}{},
  1082  	{"riscv64", "internal/runtime/atomic", "Xaddint32"}:        struct{}{},
  1083  	{"riscv64", "internal/runtime/atomic", "Xaddint64"}:        struct{}{},
  1084  	{"riscv64", "internal/runtime/atomic", "Xadduintptr"}:      struct{}{},
  1085  	{"riscv64", "internal/runtime/atomic", "Xchg"}:             struct{}{},
  1086  	{"riscv64", "internal/runtime/atomic", "Xchg64"}:           struct{}{},
  1087  	{"riscv64", "internal/runtime/atomic", "Xchgint32"}:        struct{}{},
  1088  	{"riscv64", "internal/runtime/atomic", "Xchgint64"}:        struct{}{},
  1089  	{"riscv64", "internal/runtime/atomic", "Xchguintptr"}:      struct{}{},
  1090  	{"riscv64", "internal/runtime/math", "Add64"}:              struct{}{},
  1091  	{"riscv64", "internal/runtime/math", "Mul64"}:              struct{}{},
  1092  	{"riscv64", "internal/runtime/math", "MulUintptr"}:         struct{}{},
  1093  	{"riscv64", "internal/runtime/sys", "GetCallerPC"}:         struct{}{},
  1094  	{"riscv64", "internal/runtime/sys", "GetCallerSP"}:         struct{}{},
  1095  	{"riscv64", "internal/runtime/sys", "GetClosurePtr"}:       struct{}{},
  1096  	{"riscv64", "math", "Abs"}:                                 struct{}{},
  1097  	{"riscv64", "math", "Copysign"}:                            struct{}{},
  1098  	{"riscv64", "math", "FMA"}:                                 struct{}{},
  1099  	{"riscv64", "math", "sqrt"}:                                struct{}{},
  1100  	{"riscv64", "math/big", "mulWW"}:                           struct{}{},
  1101  	{"riscv64", "math/bits", "Add"}:                            struct{}{},
  1102  	{"riscv64", "math/bits", "Add64"}:                          struct{}{},
  1103  	{"riscv64", "math/bits", "Mul"}:                            struct{}{},
  1104  	{"riscv64", "math/bits", "Mul64"}:                          struct{}{},
  1105  	{"riscv64", "math/bits", "RotateLeft"}:                     struct{}{},
  1106  	{"riscv64", "math/bits", "RotateLeft16"}:                   struct{}{},
  1107  	{"riscv64", "math/bits", "RotateLeft32"}:                   struct{}{},
  1108  	{"riscv64", "math/bits", "RotateLeft64"}:                   struct{}{},
  1109  	{"riscv64", "math/bits", "RotateLeft8"}:                    struct{}{},
  1110  	{"riscv64", "math/bits", "Sub"}:                            struct{}{},
  1111  	{"riscv64", "math/bits", "Sub64"}:                          struct{}{},
  1112  	{"riscv64", "runtime", "KeepAlive"}:                        struct{}{},
  1113  	{"riscv64", "runtime", "publicationBarrier"}:               struct{}{},
  1114  	{"riscv64", "runtime", "slicebytetostringtmp"}:             struct{}{},
  1115  	{"riscv64", "sync", "runtime_LoadAcquintptr"}:              struct{}{},
  1116  	{"riscv64", "sync", "runtime_StoreReluintptr"}:             struct{}{},
  1117  	{"riscv64", "sync/atomic", "AddInt32"}:                     struct{}{},
  1118  	{"riscv64", "sync/atomic", "AddInt64"}:                     struct{}{},
  1119  	{"riscv64", "sync/atomic", "AddUint32"}:                    struct{}{},
  1120  	{"riscv64", "sync/atomic", "AddUint64"}:                    struct{}{},
  1121  	{"riscv64", "sync/atomic", "AddUintptr"}:                   struct{}{},
  1122  	{"riscv64", "sync/atomic", "CompareAndSwapInt32"}:          struct{}{},
  1123  	{"riscv64", "sync/atomic", "CompareAndSwapInt64"}:          struct{}{},
  1124  	{"riscv64", "sync/atomic", "CompareAndSwapUint32"}:         struct{}{},
  1125  	{"riscv64", "sync/atomic", "CompareAndSwapUint64"}:         struct{}{},
  1126  	{"riscv64", "sync/atomic", "CompareAndSwapUintptr"}:        struct{}{},
  1127  	{"riscv64", "sync/atomic", "LoadInt32"}:                    struct{}{},
  1128  	{"riscv64", "sync/atomic", "LoadInt64"}:                    struct{}{},
  1129  	{"riscv64", "sync/atomic", "LoadPointer"}:                  struct{}{},
  1130  	{"riscv64", "sync/atomic", "LoadUint32"}:                   struct{}{},
  1131  	{"riscv64", "sync/atomic", "LoadUint64"}:                   struct{}{},
  1132  	{"riscv64", "sync/atomic", "LoadUintptr"}:                  struct{}{},
  1133  	{"riscv64", "sync/atomic", "StoreInt32"}:                   struct{}{},
  1134  	{"riscv64", "sync/atomic", "StoreInt64"}:                   struct{}{},
  1135  	{"riscv64", "sync/atomic", "StoreUint32"}:                  struct{}{},
  1136  	{"riscv64", "sync/atomic", "StoreUint64"}:                  struct{}{},
  1137  	{"riscv64", "sync/atomic", "StoreUintptr"}:                 struct{}{},
  1138  	{"riscv64", "sync/atomic", "SwapInt32"}:                    struct{}{},
  1139  	{"riscv64", "sync/atomic", "SwapInt64"}:                    struct{}{},
  1140  	{"riscv64", "sync/atomic", "SwapUint32"}:                   struct{}{},
  1141  	{"riscv64", "sync/atomic", "SwapUint64"}:                   struct{}{},
  1142  	{"riscv64", "sync/atomic", "SwapUintptr"}:                  struct{}{},
  1143  	{"s390x", "internal/runtime/atomic", "And"}:                struct{}{},
  1144  	{"s390x", "internal/runtime/atomic", "And8"}:               struct{}{},
  1145  	{"s390x", "internal/runtime/atomic", "Cas"}:                struct{}{},
  1146  	{"s390x", "internal/runtime/atomic", "Cas64"}:              struct{}{},
  1147  	{"s390x", "internal/runtime/atomic", "CasRel"}:             struct{}{},
  1148  	{"s390x", "internal/runtime/atomic", "Casint32"}:           struct{}{},
  1149  	{"s390x", "internal/runtime/atomic", "Casint64"}:           struct{}{},
  1150  	{"s390x", "internal/runtime/atomic", "Casp1"}:              struct{}{},
  1151  	{"s390x", "internal/runtime/atomic", "Casuintptr"}:         struct{}{},
  1152  	{"s390x", "internal/runtime/atomic", "Load"}:               struct{}{},
  1153  	{"s390x", "internal/runtime/atomic", "Load64"}:             struct{}{},
  1154  	{"s390x", "internal/runtime/atomic", "Load8"}:              struct{}{},
  1155  	{"s390x", "internal/runtime/atomic", "LoadAcq"}:            struct{}{},
  1156  	{"s390x", "internal/runtime/atomic", "LoadAcq64"}:          struct{}{},
  1157  	{"s390x", "internal/runtime/atomic", "LoadAcquintptr"}:     struct{}{},
  1158  	{"s390x", "internal/runtime/atomic", "Loadint32"}:          struct{}{},
  1159  	{"s390x", "internal/runtime/atomic", "Loadint64"}:          struct{}{},
  1160  	{"s390x", "internal/runtime/atomic", "Loadp"}:              struct{}{},
  1161  	{"s390x", "internal/runtime/atomic", "Loaduint"}:           struct{}{},
  1162  	{"s390x", "internal/runtime/atomic", "Loaduintptr"}:        struct{}{},
  1163  	{"s390x", "internal/runtime/atomic", "Or"}:                 struct{}{},
  1164  	{"s390x", "internal/runtime/atomic", "Or8"}:                struct{}{},
  1165  	{"s390x", "internal/runtime/atomic", "Store"}:              struct{}{},
  1166  	{"s390x", "internal/runtime/atomic", "Store64"}:            struct{}{},
  1167  	{"s390x", "internal/runtime/atomic", "Store8"}:             struct{}{},
  1168  	{"s390x", "internal/runtime/atomic", "StoreRel"}:           struct{}{},
  1169  	{"s390x", "internal/runtime/atomic", "StoreRel64"}:         struct{}{},
  1170  	{"s390x", "internal/runtime/atomic", "StoreReluintptr"}:    struct{}{},
  1171  	{"s390x", "internal/runtime/atomic", "Storeint32"}:         struct{}{},
  1172  	{"s390x", "internal/runtime/atomic", "Storeint64"}:         struct{}{},
  1173  	{"s390x", "internal/runtime/atomic", "StorepNoWB"}:         struct{}{},
  1174  	{"s390x", "internal/runtime/atomic", "Storeuintptr"}:       struct{}{},
  1175  	{"s390x", "internal/runtime/atomic", "Xadd"}:               struct{}{},
  1176  	{"s390x", "internal/runtime/atomic", "Xadd64"}:             struct{}{},
  1177  	{"s390x", "internal/runtime/atomic", "Xaddint32"}:          struct{}{},
  1178  	{"s390x", "internal/runtime/atomic", "Xaddint64"}:          struct{}{},
  1179  	{"s390x", "internal/runtime/atomic", "Xadduintptr"}:        struct{}{},
  1180  	{"s390x", "internal/runtime/atomic", "Xchg"}:               struct{}{},
  1181  	{"s390x", "internal/runtime/atomic", "Xchg64"}:             struct{}{},
  1182  	{"s390x", "internal/runtime/atomic", "Xchgint32"}:          struct{}{},
  1183  	{"s390x", "internal/runtime/atomic", "Xchgint64"}:          struct{}{},
  1184  	{"s390x", "internal/runtime/atomic", "Xchguintptr"}:        struct{}{},
  1185  	{"s390x", "internal/runtime/math", "Add64"}:                struct{}{},
  1186  	{"s390x", "internal/runtime/math", "Mul64"}:                struct{}{},
  1187  	{"s390x", "internal/runtime/sys", "Bswap32"}:               struct{}{},
  1188  	{"s390x", "internal/runtime/sys", "Bswap64"}:               struct{}{},
  1189  	{"s390x", "internal/runtime/sys", "GetCallerPC"}:           struct{}{},
  1190  	{"s390x", "internal/runtime/sys", "GetCallerSP"}:           struct{}{},
  1191  	{"s390x", "internal/runtime/sys", "GetClosurePtr"}:         struct{}{},
  1192  	{"s390x", "internal/runtime/sys", "Len64"}:                 struct{}{},
  1193  	{"s390x", "internal/runtime/sys", "Len8"}:                  struct{}{},
  1194  	{"s390x", "internal/runtime/sys", "OnesCount64"}:           struct{}{},
  1195  	{"s390x", "internal/runtime/sys", "TrailingZeros32"}:       struct{}{},
  1196  	{"s390x", "internal/runtime/sys", "TrailingZeros64"}:       struct{}{},
  1197  	{"s390x", "internal/runtime/sys", "TrailingZeros8"}:        struct{}{},
  1198  	{"s390x", "math", "Ceil"}:                                  struct{}{},
  1199  	{"s390x", "math", "FMA"}:                                   struct{}{},
  1200  	{"s390x", "math", "Floor"}:                                 struct{}{},
  1201  	{"s390x", "math", "Round"}:                                 struct{}{},
  1202  	{"s390x", "math", "RoundToEven"}:                           struct{}{},
  1203  	{"s390x", "math", "Trunc"}:                                 struct{}{},
  1204  	{"s390x", "math", "sqrt"}:                                  struct{}{},
  1205  	{"s390x", "math/big", "mulWW"}:                             struct{}{},
  1206  	{"s390x", "math/bits", "Add"}:                              struct{}{},
  1207  	{"s390x", "math/bits", "Add64"}:                            struct{}{},
  1208  	{"s390x", "math/bits", "Len"}:                              struct{}{},
  1209  	{"s390x", "math/bits", "Len16"}:                            struct{}{},
  1210  	{"s390x", "math/bits", "Len32"}:                            struct{}{},
  1211  	{"s390x", "math/bits", "Len64"}:                            struct{}{},
  1212  	{"s390x", "math/bits", "Len8"}:                             struct{}{},
  1213  	{"s390x", "math/bits", "Mul"}:                              struct{}{},
  1214  	{"s390x", "math/bits", "Mul64"}:                            struct{}{},
  1215  	{"s390x", "math/bits", "OnesCount16"}:                      struct{}{},
  1216  	{"s390x", "math/bits", "OnesCount32"}:                      struct{}{},
  1217  	{"s390x", "math/bits", "OnesCount64"}:                      struct{}{},
  1218  	{"s390x", "math/bits", "OnesCount8"}:                       struct{}{},
  1219  	{"s390x", "math/bits", "ReverseBytes32"}:                   struct{}{},
  1220  	{"s390x", "math/bits", "ReverseBytes64"}:                   struct{}{},
  1221  	{"s390x", "math/bits", "RotateLeft"}:                       struct{}{},
  1222  	{"s390x", "math/bits", "RotateLeft32"}:                     struct{}{},
  1223  	{"s390x", "math/bits", "RotateLeft64"}:                     struct{}{},
  1224  	{"s390x", "math/bits", "Sub"}:                              struct{}{},
  1225  	{"s390x", "math/bits", "Sub64"}:                            struct{}{},
  1226  	{"s390x", "math/bits", "TrailingZeros16"}:                  struct{}{},
  1227  	{"s390x", "math/bits", "TrailingZeros32"}:                  struct{}{},
  1228  	{"s390x", "math/bits", "TrailingZeros64"}:                  struct{}{},
  1229  	{"s390x", "math/bits", "TrailingZeros8"}:                   struct{}{},
  1230  	{"s390x", "runtime", "KeepAlive"}:                          struct{}{},
  1231  	{"s390x", "runtime", "slicebytetostringtmp"}:               struct{}{},
  1232  	{"s390x", "sync", "runtime_LoadAcquintptr"}:                struct{}{},
  1233  	{"s390x", "sync", "runtime_StoreReluintptr"}:               struct{}{},
  1234  	{"s390x", "sync/atomic", "AddInt32"}:                       struct{}{},
  1235  	{"s390x", "sync/atomic", "AddInt64"}:                       struct{}{},
  1236  	{"s390x", "sync/atomic", "AddUint32"}:                      struct{}{},
  1237  	{"s390x", "sync/atomic", "AddUint64"}:                      struct{}{},
  1238  	{"s390x", "sync/atomic", "AddUintptr"}:                     struct{}{},
  1239  	{"s390x", "sync/atomic", "CompareAndSwapInt32"}:            struct{}{},
  1240  	{"s390x", "sync/atomic", "CompareAndSwapInt64"}:            struct{}{},
  1241  	{"s390x", "sync/atomic", "CompareAndSwapUint32"}:           struct{}{},
  1242  	{"s390x", "sync/atomic", "CompareAndSwapUint64"}:           struct{}{},
  1243  	{"s390x", "sync/atomic", "CompareAndSwapUintptr"}:          struct{}{},
  1244  	{"s390x", "sync/atomic", "LoadInt32"}:                      struct{}{},
  1245  	{"s390x", "sync/atomic", "LoadInt64"}:                      struct{}{},
  1246  	{"s390x", "sync/atomic", "LoadPointer"}:                    struct{}{},
  1247  	{"s390x", "sync/atomic", "LoadUint32"}:                     struct{}{},
  1248  	{"s390x", "sync/atomic", "LoadUint64"}:                     struct{}{},
  1249  	{"s390x", "sync/atomic", "LoadUintptr"}:                    struct{}{},
  1250  	{"s390x", "sync/atomic", "StoreInt32"}:                     struct{}{},
  1251  	{"s390x", "sync/atomic", "StoreInt64"}:                     struct{}{},
  1252  	{"s390x", "sync/atomic", "StoreUint32"}:                    struct{}{},
  1253  	{"s390x", "sync/atomic", "StoreUint64"}:                    struct{}{},
  1254  	{"s390x", "sync/atomic", "StoreUintptr"}:                   struct{}{},
  1255  	{"s390x", "sync/atomic", "SwapInt32"}:                      struct{}{},
  1256  	{"s390x", "sync/atomic", "SwapInt64"}:                      struct{}{},
  1257  	{"s390x", "sync/atomic", "SwapUint32"}:                     struct{}{},
  1258  	{"s390x", "sync/atomic", "SwapUint64"}:                     struct{}{},
  1259  	{"s390x", "sync/atomic", "SwapUintptr"}:                    struct{}{},
  1260  	{"wasm", "internal/runtime/sys", "GetCallerPC"}:            struct{}{},
  1261  	{"wasm", "internal/runtime/sys", "GetCallerSP"}:            struct{}{},
  1262  	{"wasm", "internal/runtime/sys", "GetClosurePtr"}:          struct{}{},
  1263  	{"wasm", "internal/runtime/sys", "Len64"}:                  struct{}{},
  1264  	{"wasm", "internal/runtime/sys", "Len8"}:                   struct{}{},
  1265  	{"wasm", "internal/runtime/sys", "OnesCount64"}:            struct{}{},
  1266  	{"wasm", "internal/runtime/sys", "TrailingZeros32"}:        struct{}{},
  1267  	{"wasm", "internal/runtime/sys", "TrailingZeros64"}:        struct{}{},
  1268  	{"wasm", "internal/runtime/sys", "TrailingZeros8"}:         struct{}{},
  1269  	{"wasm", "math", "Abs"}:                                    struct{}{},
  1270  	{"wasm", "math", "Ceil"}:                                   struct{}{},
  1271  	{"wasm", "math", "Copysign"}:                               struct{}{},
  1272  	{"wasm", "math", "Floor"}:                                  struct{}{},
  1273  	{"wasm", "math", "RoundToEven"}:                            struct{}{},
  1274  	{"wasm", "math", "Trunc"}:                                  struct{}{},
  1275  	{"wasm", "math", "sqrt"}:                                   struct{}{},
  1276  	{"wasm", "math/bits", "Len"}:                               struct{}{},
  1277  	{"wasm", "math/bits", "Len16"}:                             struct{}{},
  1278  	{"wasm", "math/bits", "Len32"}:                             struct{}{},
  1279  	{"wasm", "math/bits", "Len64"}:                             struct{}{},
  1280  	{"wasm", "math/bits", "Len8"}:                              struct{}{},
  1281  	{"wasm", "math/bits", "OnesCount16"}:                       struct{}{},
  1282  	{"wasm", "math/bits", "OnesCount32"}:                       struct{}{},
  1283  	{"wasm", "math/bits", "OnesCount64"}:                       struct{}{},
  1284  	{"wasm", "math/bits", "OnesCount8"}:                        struct{}{},
  1285  	{"wasm", "math/bits", "RotateLeft"}:                        struct{}{},
  1286  	{"wasm", "math/bits", "RotateLeft32"}:                      struct{}{},
  1287  	{"wasm", "math/bits", "RotateLeft64"}:                      struct{}{},
  1288  	{"wasm", "math/bits", "TrailingZeros16"}:                   struct{}{},
  1289  	{"wasm", "math/bits", "TrailingZeros32"}:                   struct{}{},
  1290  	{"wasm", "math/bits", "TrailingZeros64"}:                   struct{}{},
  1291  	{"wasm", "math/bits", "TrailingZeros8"}:                    struct{}{},
  1292  	{"wasm", "runtime", "KeepAlive"}:                           struct{}{},
  1293  	{"wasm", "runtime", "slicebytetostringtmp"}:                struct{}{},
  1294  }
  1295  
  1296  func TestIntrinsics(t *testing.T) {
  1297  	cfg := &intrinsicBuildConfig{
  1298  		goppc64: 10,
  1299  	}
  1300  	initIntrinsics(cfg)
  1301  
  1302  	if *updateIntrinsics {
  1303  		var updatedIntrinsics []*testIntrinsicKey
  1304  		for ik, _ := range intrinsics {
  1305  			updatedIntrinsics = append(updatedIntrinsics, &testIntrinsicKey{ik.arch.Name, ik.pkg, ik.fn})
  1306  		}
  1307  		slices.SortFunc(updatedIntrinsics, func(a, b *testIntrinsicKey) int {
  1308  			if n := strings.Compare(a.archName, b.archName); n != 0 {
  1309  				return n
  1310  			}
  1311  			if n := strings.Compare(a.pkg, b.pkg); n != 0 {
  1312  				return n
  1313  			}
  1314  			return strings.Compare(a.fn, b.fn)
  1315  		})
  1316  		for _, tik := range updatedIntrinsics {
  1317  			fmt.Printf("\t{%q, %q, %q}: struct{}{},\n", tik.archName, tik.pkg, tik.fn)
  1318  		}
  1319  		return
  1320  	}
  1321  
  1322  	gotIntrinsics := make(map[testIntrinsicKey]struct{})
  1323  	for ik, _ := range intrinsics {
  1324  		gotIntrinsics[testIntrinsicKey{ik.arch.Name, ik.pkg, ik.fn}] = struct{}{}
  1325  	}
  1326  	for ik, _ := range gotIntrinsics {
  1327  		if _, found := wantIntrinsics[ik]; !found {
  1328  			t.Errorf("Got unwanted intrinsic %v %v.%v", ik.archName, ik.pkg, ik.fn)
  1329  		}
  1330  	}
  1331  
  1332  	for ik, _ := range wantIntrinsics {
  1333  		if _, found := gotIntrinsics[ik]; !found {
  1334  			t.Errorf("Want intrinsic %v %v.%v", ik.archName, ik.pkg, ik.fn)
  1335  		}
  1336  	}
  1337  }
  1338  
  1339  func TestIntrinsicBuilders(t *testing.T) {
  1340  	cfg := &intrinsicBuildConfig{}
  1341  	initIntrinsics(cfg)
  1342  
  1343  	for _, arch := range sys.Archs {
  1344  		if intrinsics.lookup(arch, "internal/runtime/sys", "GetCallerSP") == nil {
  1345  			t.Errorf("No intrinsic for internal/runtime/sys.GetCallerSP on arch %v", arch)
  1346  		}
  1347  	}
  1348  
  1349  	if intrinsics.lookup(sys.ArchAMD64, "runtime", "slicebytetostringtmp") == nil {
  1350  		t.Error("No intrinsic for runtime.slicebytetostringtmp")
  1351  	}
  1352  
  1353  	if intrinsics.lookup(sys.ArchRISCV64, "runtime", "publicationBarrier") == nil {
  1354  		t.Errorf("No intrinsic for runtime.publicationBarrier on arch %v", sys.ArchRISCV64)
  1355  	}
  1356  
  1357  	if intrinsics.lookup(sys.ArchAMD64, "internal/runtime/sys", "Bswap32") == nil {
  1358  		t.Errorf("No intrinsic for internal/runtime/sys.Bswap32 on arch %v", sys.ArchAMD64)
  1359  	}
  1360  	if intrinsics.lookup(sys.ArchAMD64, "internal/runtime/sys", "Bswap64") == nil {
  1361  		t.Errorf("No intrinsic for internal/runtime/sys.Bswap64 on arch %v", sys.ArchAMD64)
  1362  	}
  1363  
  1364  	if intrinsics.lookup(sys.ArchPPC64, "internal/runtime/sys", "Bswap64") != nil {
  1365  		t.Errorf("Found intrinsic for internal/runtime/sys.Bswap64 on arch %v", sys.ArchPPC64)
  1366  	}
  1367  
  1368  	cfg.goppc64 = 10
  1369  	cfg.instrumenting = true
  1370  
  1371  	initIntrinsics(cfg)
  1372  
  1373  	if intrinsics.lookup(sys.ArchAMD64, "runtime", "slicebytetostringtmp") != nil {
  1374  		t.Error("Intrinsic incorrectly exists for runtime.slicebytetostringtmp")
  1375  	}
  1376  
  1377  	if intrinsics.lookup(sys.ArchPPC64, "internal/runtime/sys", "Bswap64") == nil {
  1378  		t.Errorf("No intrinsic for internal/runtime/sys.Bswap64 on arch %v", sys.ArchPPC64)
  1379  	}
  1380  }
  1381  

View as plain text