Source file src/cmd/compile/internal/ssa/_gen/simdARM64ops.go

     1  // Code generated by 'simdgen -o godefs -goroot $GOROOT -arch arm64 -arm64Path $ARM64_ISA_PATH go_arm64.yaml types.yaml categories.yaml'; DO NOT EDIT.
     2  
     3  package main
     4  
     5  func simdARM64Ops(v11, v21, v31, vgp, vgpv, vfpv regInfo) []opData {
     6  	return []opData{
     7  		{name: "VABS2D", argLength: 1, reg: v11, asm: "VABS", typ: "Vec128"},
     8  		{name: "VABS4S", argLength: 1, reg: v11, asm: "VABS", typ: "Vec128"},
     9  		{name: "VABS8H", argLength: 1, reg: v11, asm: "VABS", typ: "Vec128"},
    10  		{name: "VABS16B", argLength: 1, reg: v11, asm: "VABS", typ: "Vec128"},
    11  		{name: "VADD2D", argLength: 2, reg: v21, asm: "VADD", commutative: true, typ: "Vec128"},
    12  		{name: "VADD4S", argLength: 2, reg: v21, asm: "VADD", commutative: true, typ: "Vec128"},
    13  		{name: "VADD8H", argLength: 2, reg: v21, asm: "VADD", commutative: true, typ: "Vec128"},
    14  		{name: "VADD16B", argLength: 2, reg: v21, asm: "VADD", commutative: true, typ: "Vec128"},
    15  		{name: "VADDP2D", argLength: 2, reg: v21, asm: "VADDP", typ: "Vec128"},
    16  		{name: "VADDP4S", argLength: 2, reg: v21, asm: "VADDP", typ: "Vec128"},
    17  		{name: "VADDP8H", argLength: 2, reg: v21, asm: "VADDP", typ: "Vec128"},
    18  		{name: "VADDV4S", argLength: 1, reg: v11, asm: "VADDV", typ: "Vec128"},
    19  		{name: "VADDV8H", argLength: 1, reg: v11, asm: "VADDV", typ: "Vec128"},
    20  		{name: "VADDV16B", argLength: 1, reg: v11, asm: "VADDV", typ: "Vec128"},
    21  		{name: "VAND16B", argLength: 2, reg: v21, asm: "VAND", commutative: true, typ: "Vec128"},
    22  		{name: "VBIC16B", argLength: 2, reg: v21, asm: "VBIC", typ: "Vec128"},
    23  		{name: "VBIF16B", argLength: 3, reg: v31, asm: "VBIF", typ: "Vec128", resultInArg0: true},
    24  		{name: "VBIT16B", argLength: 3, reg: v31, asm: "VBIT", typ: "Vec128", resultInArg0: true},
    25  		{name: "VCLS4S", argLength: 1, reg: v11, asm: "VCLS", typ: "Vec128"},
    26  		{name: "VCLS8H", argLength: 1, reg: v11, asm: "VCLS", typ: "Vec128"},
    27  		{name: "VCLS16B", argLength: 1, reg: v11, asm: "VCLS", typ: "Vec128"},
    28  		{name: "VCLZ4S", argLength: 1, reg: v11, asm: "VCLZ", typ: "Vec128"},
    29  		{name: "VCLZ8H", argLength: 1, reg: v11, asm: "VCLZ", typ: "Vec128"},
    30  		{name: "VCLZ16B", argLength: 1, reg: v11, asm: "VCLZ", typ: "Vec128"},
    31  		{name: "VCMEQ2D", argLength: 2, reg: v21, asm: "VCMEQ", commutative: true, typ: "Vec128"},
    32  		{name: "VCMEQ4S", argLength: 2, reg: v21, asm: "VCMEQ", commutative: true, typ: "Vec128"},
    33  		{name: "VCMEQ8H", argLength: 2, reg: v21, asm: "VCMEQ", commutative: true, typ: "Vec128"},
    34  		{name: "VCMEQ16B", argLength: 2, reg: v21, asm: "VCMEQ", commutative: true, typ: "Vec128"},
    35  		{name: "VCMGE2D", argLength: 2, reg: v21, asm: "VCMGE", typ: "Vec128"},
    36  		{name: "VCMGE4S", argLength: 2, reg: v21, asm: "VCMGE", typ: "Vec128"},
    37  		{name: "VCMGE8H", argLength: 2, reg: v21, asm: "VCMGE", typ: "Vec128"},
    38  		{name: "VCMGE16B", argLength: 2, reg: v21, asm: "VCMGE", typ: "Vec128"},
    39  		{name: "VCMGT2D", argLength: 2, reg: v21, asm: "VCMGT", typ: "Vec128"},
    40  		{name: "VCMGT4S", argLength: 2, reg: v21, asm: "VCMGT", typ: "Vec128"},
    41  		{name: "VCMGT8H", argLength: 2, reg: v21, asm: "VCMGT", typ: "Vec128"},
    42  		{name: "VCMGT16B", argLength: 2, reg: v21, asm: "VCMGT", typ: "Vec128"},
    43  		{name: "VCMHI2D", argLength: 2, reg: v21, asm: "VCMHI", typ: "Vec128"},
    44  		{name: "VCMHI4S", argLength: 2, reg: v21, asm: "VCMHI", typ: "Vec128"},
    45  		{name: "VCMHI8H", argLength: 2, reg: v21, asm: "VCMHI", typ: "Vec128"},
    46  		{name: "VCMHI16B", argLength: 2, reg: v21, asm: "VCMHI", typ: "Vec128"},
    47  		{name: "VCMHS2D", argLength: 2, reg: v21, asm: "VCMHS", typ: "Vec128"},
    48  		{name: "VCMHS4S", argLength: 2, reg: v21, asm: "VCMHS", typ: "Vec128"},
    49  		{name: "VCMHS8H", argLength: 2, reg: v21, asm: "VCMHS", typ: "Vec128"},
    50  		{name: "VCMHS16B", argLength: 2, reg: v21, asm: "VCMHS", typ: "Vec128"},
    51  		{name: "VCNT16B", argLength: 1, reg: v11, asm: "VCNT", typ: "Vec128"},
    52  		{name: "VEOR16B", argLength: 2, reg: v21, asm: "VEOR", commutative: true, typ: "Vec128"},
    53  		{name: "VFABS2D", argLength: 1, reg: v11, asm: "VFABS", typ: "Vec128"},
    54  		{name: "VFABS4S", argLength: 1, reg: v11, asm: "VFABS", typ: "Vec128"},
    55  		{name: "VFADD2D", argLength: 2, reg: v21, asm: "VFADD", commutative: true, typ: "Vec128"},
    56  		{name: "VFADD4S", argLength: 2, reg: v21, asm: "VFADD", commutative: true, typ: "Vec128"},
    57  		{name: "VFADDP2D", argLength: 2, reg: v21, asm: "VFADDP", typ: "Vec128"},
    58  		{name: "VFADDP4S", argLength: 2, reg: v21, asm: "VFADDP", typ: "Vec128"},
    59  		{name: "VFCMEQ2D", argLength: 2, reg: v21, asm: "VFCMEQ", commutative: true, typ: "Vec128"},
    60  		{name: "VFCMEQ4S", argLength: 2, reg: v21, asm: "VFCMEQ", commutative: true, typ: "Vec128"},
    61  		{name: "VFCMGE2D", argLength: 2, reg: v21, asm: "VFCMGE", typ: "Vec128"},
    62  		{name: "VFCMGE4S", argLength: 2, reg: v21, asm: "VFCMGE", typ: "Vec128"},
    63  		{name: "VFCMGT2D", argLength: 2, reg: v21, asm: "VFCMGT", typ: "Vec128"},
    64  		{name: "VFCMGT4S", argLength: 2, reg: v21, asm: "VFCMGT", typ: "Vec128"},
    65  		{name: "VFCVTL2_4S", argLength: 1, reg: v11, asm: "VFCVTL2", typ: "Vec128"},
    66  		{name: "VFCVTL4S", argLength: 1, reg: v11, asm: "VFCVTL", typ: "Vec128"},
    67  		{name: "VFCVTN2D", argLength: 1, reg: v11, asm: "VFCVTN", typ: "Vec128"},
    68  		{name: "VFCVTN2_2D", argLength: 2, reg: v21, asm: "VFCVTN2", typ: "Vec128", resultInArg0: true},
    69  		{name: "VFCVTZS2D", argLength: 1, reg: v11, asm: "VFCVTZS", typ: "Vec128"},
    70  		{name: "VFCVTZS4S", argLength: 1, reg: v11, asm: "VFCVTZS", typ: "Vec128"},
    71  		{name: "VFCVTZU2D", argLength: 1, reg: v11, asm: "VFCVTZU", typ: "Vec128"},
    72  		{name: "VFCVTZU4S", argLength: 1, reg: v11, asm: "VFCVTZU", typ: "Vec128"},
    73  		{name: "VFDIV2D", argLength: 2, reg: v21, asm: "VFDIV", typ: "Vec128"},
    74  		{name: "VFDIV4S", argLength: 2, reg: v21, asm: "VFDIV", typ: "Vec128"},
    75  		{name: "VFMAX2D", argLength: 2, reg: v21, asm: "VFMAX", commutative: true, typ: "Vec128"},
    76  		{name: "VFMAX4S", argLength: 2, reg: v21, asm: "VFMAX", commutative: true, typ: "Vec128"},
    77  		{name: "VFMAXV4S", argLength: 1, reg: v11, asm: "VFMAXV", typ: "Vec128"},
    78  		{name: "VFMIN2D", argLength: 2, reg: v21, asm: "VFMIN", commutative: true, typ: "Vec128"},
    79  		{name: "VFMIN4S", argLength: 2, reg: v21, asm: "VFMIN", commutative: true, typ: "Vec128"},
    80  		{name: "VFMINV4S", argLength: 1, reg: v11, asm: "VFMINV", typ: "Vec128"},
    81  		{name: "VFMLA2D", argLength: 3, reg: v31, asm: "VFMLA", typ: "Vec128", resultInArg0: true},
    82  		{name: "VFMLA4S", argLength: 3, reg: v31, asm: "VFMLA", typ: "Vec128", resultInArg0: true},
    83  		{name: "VFMUL2D", argLength: 2, reg: v21, asm: "VFMUL", commutative: true, typ: "Vec128"},
    84  		{name: "VFMUL4S", argLength: 2, reg: v21, asm: "VFMUL", commutative: true, typ: "Vec128"},
    85  		{name: "VFNEG2D", argLength: 1, reg: v11, asm: "VFNEG", typ: "Vec128"},
    86  		{name: "VFNEG4S", argLength: 1, reg: v11, asm: "VFNEG", typ: "Vec128"},
    87  		{name: "VFRINTM2D", argLength: 1, reg: v11, asm: "VFRINTM", typ: "Vec128"},
    88  		{name: "VFRINTM4S", argLength: 1, reg: v11, asm: "VFRINTM", typ: "Vec128"},
    89  		{name: "VFRINTN2D", argLength: 1, reg: v11, asm: "VFRINTN", typ: "Vec128"},
    90  		{name: "VFRINTN4S", argLength: 1, reg: v11, asm: "VFRINTN", typ: "Vec128"},
    91  		{name: "VFRINTP2D", argLength: 1, reg: v11, asm: "VFRINTP", typ: "Vec128"},
    92  		{name: "VFRINTP4S", argLength: 1, reg: v11, asm: "VFRINTP", typ: "Vec128"},
    93  		{name: "VFRINTZ2D", argLength: 1, reg: v11, asm: "VFRINTZ", typ: "Vec128"},
    94  		{name: "VFRINTZ4S", argLength: 1, reg: v11, asm: "VFRINTZ", typ: "Vec128"},
    95  		{name: "VFSQRT2D", argLength: 1, reg: v11, asm: "VFSQRT", typ: "Vec128"},
    96  		{name: "VFSQRT4S", argLength: 1, reg: v11, asm: "VFSQRT", typ: "Vec128"},
    97  		{name: "VFSUB2D", argLength: 2, reg: v21, asm: "VFSUB", typ: "Vec128"},
    98  		{name: "VFSUB4S", argLength: 2, reg: v21, asm: "VFSUB", typ: "Vec128"},
    99  		{name: "VMLA4S", argLength: 3, reg: v31, asm: "VMLA", typ: "Vec128", resultInArg0: true},
   100  		{name: "VMLA8H", argLength: 3, reg: v31, asm: "VMLA", typ: "Vec128", resultInArg0: true},
   101  		{name: "VMLA16B", argLength: 3, reg: v31, asm: "VMLA", typ: "Vec128", resultInArg0: true},
   102  		{name: "VMUL4S", argLength: 2, reg: v21, asm: "VMUL", commutative: true, typ: "Vec128"},
   103  		{name: "VMUL8H", argLength: 2, reg: v21, asm: "VMUL", commutative: true, typ: "Vec128"},
   104  		{name: "VMUL16B", argLength: 2, reg: v21, asm: "VMUL", commutative: true, typ: "Vec128"},
   105  		{name: "VNEG2D", argLength: 1, reg: v11, asm: "VNEG", typ: "Vec128"},
   106  		{name: "VNEG4S", argLength: 1, reg: v11, asm: "VNEG", typ: "Vec128"},
   107  		{name: "VNEG8H", argLength: 1, reg: v11, asm: "VNEG", typ: "Vec128"},
   108  		{name: "VNEG16B", argLength: 1, reg: v11, asm: "VNEG", typ: "Vec128"},
   109  		{name: "VNOT16B", argLength: 1, reg: v11, asm: "VNOT", typ: "Vec128"},
   110  		{name: "VORN16B", argLength: 2, reg: v21, asm: "VORN", typ: "Vec128"},
   111  		{name: "VORR16B", argLength: 2, reg: v21, asm: "VORR", commutative: true, typ: "Vec128"},
   112  		{name: "VSCVTF2D", argLength: 1, reg: v11, asm: "VSCVTF", typ: "Vec128"},
   113  		{name: "VSCVTF4S", argLength: 1, reg: v11, asm: "VSCVTF", typ: "Vec128"},
   114  		{name: "VSMAX4S", argLength: 2, reg: v21, asm: "VSMAX", commutative: true, typ: "Vec128"},
   115  		{name: "VSMAX8H", argLength: 2, reg: v21, asm: "VSMAX", commutative: true, typ: "Vec128"},
   116  		{name: "VSMAX16B", argLength: 2, reg: v21, asm: "VSMAX", commutative: true, typ: "Vec128"},
   117  		{name: "VSMAXV4S", argLength: 1, reg: v11, asm: "VSMAXV", typ: "Vec128"},
   118  		{name: "VSMAXV8H", argLength: 1, reg: v11, asm: "VSMAXV", typ: "Vec128"},
   119  		{name: "VSMAXV16B", argLength: 1, reg: v11, asm: "VSMAXV", typ: "Vec128"},
   120  		{name: "VSMIN4S", argLength: 2, reg: v21, asm: "VSMIN", commutative: true, typ: "Vec128"},
   121  		{name: "VSMIN8H", argLength: 2, reg: v21, asm: "VSMIN", commutative: true, typ: "Vec128"},
   122  		{name: "VSMIN16B", argLength: 2, reg: v21, asm: "VSMIN", commutative: true, typ: "Vec128"},
   123  		{name: "VSMINV4S", argLength: 1, reg: v11, asm: "VSMINV", typ: "Vec128"},
   124  		{name: "VSMINV8H", argLength: 1, reg: v11, asm: "VSMINV", typ: "Vec128"},
   125  		{name: "VSMINV16B", argLength: 1, reg: v11, asm: "VSMINV", typ: "Vec128"},
   126  		{name: "VSMULL2_4S", argLength: 2, reg: v21, asm: "VSMULL2", commutative: true, typ: "Vec128"},
   127  		{name: "VSMULL2_8H", argLength: 2, reg: v21, asm: "VSMULL2", commutative: true, typ: "Vec128"},
   128  		{name: "VSMULL2_16B", argLength: 2, reg: v21, asm: "VSMULL2", commutative: true, typ: "Vec128"},
   129  		{name: "VSMULL4S", argLength: 2, reg: v21, asm: "VSMULL", commutative: true, typ: "Vec128"},
   130  		{name: "VSMULL8H", argLength: 2, reg: v21, asm: "VSMULL", commutative: true, typ: "Vec128"},
   131  		{name: "VSMULL16B", argLength: 2, reg: v21, asm: "VSMULL", commutative: true, typ: "Vec128"},
   132  		{name: "VSQADD2D", argLength: 2, reg: v21, asm: "VSQADD", commutative: true, typ: "Vec128"},
   133  		{name: "VSQADD4S", argLength: 2, reg: v21, asm: "VSQADD", commutative: true, typ: "Vec128"},
   134  		{name: "VSQADD8H", argLength: 2, reg: v21, asm: "VSQADD", commutative: true, typ: "Vec128"},
   135  		{name: "VSQADD16B", argLength: 2, reg: v21, asm: "VSQADD", commutative: true, typ: "Vec128"},
   136  		{name: "VSQSHL2D", argLength: 2, reg: v21, asm: "VSQSHL", typ: "Vec128"},
   137  		{name: "VSQSHL4S", argLength: 2, reg: v21, asm: "VSQSHL", typ: "Vec128"},
   138  		{name: "VSQSHL8H", argLength: 2, reg: v21, asm: "VSQSHL", typ: "Vec128"},
   139  		{name: "VSQSHL16B", argLength: 2, reg: v21, asm: "VSQSHL", typ: "Vec128"},
   140  		{name: "VSQSUB2D", argLength: 2, reg: v21, asm: "VSQSUB", typ: "Vec128"},
   141  		{name: "VSQSUB4S", argLength: 2, reg: v21, asm: "VSQSUB", typ: "Vec128"},
   142  		{name: "VSQSUB8H", argLength: 2, reg: v21, asm: "VSQSUB", typ: "Vec128"},
   143  		{name: "VSQSUB16B", argLength: 2, reg: v21, asm: "VSQSUB", typ: "Vec128"},
   144  		{name: "VSQXTN2D", argLength: 1, reg: v11, asm: "VSQXTN", typ: "Vec128"},
   145  		{name: "VSQXTN2_2D", argLength: 2, reg: v21, asm: "VSQXTN2", typ: "Vec128", resultInArg0: true},
   146  		{name: "VSQXTN2_4S", argLength: 2, reg: v21, asm: "VSQXTN2", typ: "Vec128", resultInArg0: true},
   147  		{name: "VSQXTN2_8H", argLength: 2, reg: v21, asm: "VSQXTN2", typ: "Vec128", resultInArg0: true},
   148  		{name: "VSQXTN4S", argLength: 1, reg: v11, asm: "VSQXTN", typ: "Vec128"},
   149  		{name: "VSQXTN8H", argLength: 1, reg: v11, asm: "VSQXTN", typ: "Vec128"},
   150  		{name: "VSQXTUN2D", argLength: 1, reg: v11, asm: "VSQXTUN", typ: "Vec128"},
   151  		{name: "VSQXTUN2_2D", argLength: 2, reg: v21, asm: "VSQXTUN2", typ: "Vec128", resultInArg0: true},
   152  		{name: "VSQXTUN2_4S", argLength: 2, reg: v21, asm: "VSQXTUN2", typ: "Vec128", resultInArg0: true},
   153  		{name: "VSQXTUN2_8H", argLength: 2, reg: v21, asm: "VSQXTUN2", typ: "Vec128", resultInArg0: true},
   154  		{name: "VSQXTUN4S", argLength: 1, reg: v11, asm: "VSQXTUN", typ: "Vec128"},
   155  		{name: "VSQXTUN8H", argLength: 1, reg: v11, asm: "VSQXTUN", typ: "Vec128"},
   156  		{name: "VSRHADD4S", argLength: 2, reg: v21, asm: "VSRHADD", commutative: true, typ: "Vec128"},
   157  		{name: "VSRHADD8H", argLength: 2, reg: v21, asm: "VSRHADD", commutative: true, typ: "Vec128"},
   158  		{name: "VSRHADD16B", argLength: 2, reg: v21, asm: "VSRHADD", commutative: true, typ: "Vec128"},
   159  		{name: "VSSHL2D", argLength: 2, reg: v21, asm: "VSSHL", typ: "Vec128"},
   160  		{name: "VSSHL4S", argLength: 2, reg: v21, asm: "VSSHL", typ: "Vec128"},
   161  		{name: "VSSHL8H", argLength: 2, reg: v21, asm: "VSSHL", typ: "Vec128"},
   162  		{name: "VSSHL16B", argLength: 2, reg: v21, asm: "VSSHL", typ: "Vec128"},
   163  		{name: "VSUB2D", argLength: 2, reg: v21, asm: "VSUB", typ: "Vec128"},
   164  		{name: "VSUB4S", argLength: 2, reg: v21, asm: "VSUB", typ: "Vec128"},
   165  		{name: "VSUB8H", argLength: 2, reg: v21, asm: "VSUB", typ: "Vec128"},
   166  		{name: "VSUB16B", argLength: 2, reg: v21, asm: "VSUB", typ: "Vec128"},
   167  		{name: "VSXTL2_4S", argLength: 1, reg: v11, asm: "VSXTL2", typ: "Vec128"},
   168  		{name: "VSXTL2_8H", argLength: 1, reg: v11, asm: "VSXTL2", typ: "Vec128"},
   169  		{name: "VSXTL2_16B", argLength: 1, reg: v11, asm: "VSXTL2", typ: "Vec128"},
   170  		{name: "VSXTL4S", argLength: 1, reg: v11, asm: "VSXTL", typ: "Vec128"},
   171  		{name: "VSXTL8H", argLength: 1, reg: v11, asm: "VSXTL", typ: "Vec128"},
   172  		{name: "VSXTL16B", argLength: 1, reg: v11, asm: "VSXTL", typ: "Vec128"},
   173  		{name: "VTBL16B", argLength: 2, reg: v21, asm: "VTBL", typ: "Vec128"},
   174  		{name: "VTBX16B", argLength: 3, reg: v31, asm: "VTBX", typ: "Vec128", resultInArg0: true},
   175  		{name: "VTRN12D", argLength: 2, reg: v21, asm: "VTRN1", typ: "Vec128"},
   176  		{name: "VTRN14S", argLength: 2, reg: v21, asm: "VTRN1", typ: "Vec128"},
   177  		{name: "VTRN18H", argLength: 2, reg: v21, asm: "VTRN1", typ: "Vec128"},
   178  		{name: "VTRN22D", argLength: 2, reg: v21, asm: "VTRN2", typ: "Vec128"},
   179  		{name: "VTRN24S", argLength: 2, reg: v21, asm: "VTRN2", typ: "Vec128"},
   180  		{name: "VTRN28H", argLength: 2, reg: v21, asm: "VTRN2", typ: "Vec128"},
   181  		{name: "VTRN116B", argLength: 2, reg: v21, asm: "VTRN1", typ: "Vec128"},
   182  		{name: "VTRN216B", argLength: 2, reg: v21, asm: "VTRN2", typ: "Vec128"},
   183  		{name: "VUCVTF2D", argLength: 1, reg: v11, asm: "VUCVTF", typ: "Vec128"},
   184  		{name: "VUCVTF4S", argLength: 1, reg: v11, asm: "VUCVTF", typ: "Vec128"},
   185  		{name: "VUMAX4S", argLength: 2, reg: v21, asm: "VUMAX", commutative: true, typ: "Vec128"},
   186  		{name: "VUMAX8H", argLength: 2, reg: v21, asm: "VUMAX", commutative: true, typ: "Vec128"},
   187  		{name: "VUMAX16B", argLength: 2, reg: v21, asm: "VUMAX", commutative: true, typ: "Vec128"},
   188  		{name: "VUMAXV4S", argLength: 1, reg: v11, asm: "VUMAXV", typ: "Vec128"},
   189  		{name: "VUMAXV8H", argLength: 1, reg: v11, asm: "VUMAXV", typ: "Vec128"},
   190  		{name: "VUMAXV16B", argLength: 1, reg: v11, asm: "VUMAXV", typ: "Vec128"},
   191  		{name: "VUMIN4S", argLength: 2, reg: v21, asm: "VUMIN", commutative: true, typ: "Vec128"},
   192  		{name: "VUMIN8H", argLength: 2, reg: v21, asm: "VUMIN", commutative: true, typ: "Vec128"},
   193  		{name: "VUMIN16B", argLength: 2, reg: v21, asm: "VUMIN", commutative: true, typ: "Vec128"},
   194  		{name: "VUMINV4S", argLength: 1, reg: v11, asm: "VUMINV", typ: "Vec128"},
   195  		{name: "VUMINV8H", argLength: 1, reg: v11, asm: "VUMINV", typ: "Vec128"},
   196  		{name: "VUMINV16B", argLength: 1, reg: v11, asm: "VUMINV", typ: "Vec128"},
   197  		{name: "VUMULL2_4S", argLength: 2, reg: v21, asm: "VUMULL2", commutative: true, typ: "Vec128"},
   198  		{name: "VUMULL2_8H", argLength: 2, reg: v21, asm: "VUMULL2", commutative: true, typ: "Vec128"},
   199  		{name: "VUMULL2_16B", argLength: 2, reg: v21, asm: "VUMULL2", commutative: true, typ: "Vec128"},
   200  		{name: "VUMULL4S", argLength: 2, reg: v21, asm: "VUMULL", commutative: true, typ: "Vec128"},
   201  		{name: "VUMULL8H", argLength: 2, reg: v21, asm: "VUMULL", commutative: true, typ: "Vec128"},
   202  		{name: "VUMULL16B", argLength: 2, reg: v21, asm: "VUMULL", commutative: true, typ: "Vec128"},
   203  		{name: "VUQADD2D", argLength: 2, reg: v21, asm: "VUQADD", commutative: true, typ: "Vec128"},
   204  		{name: "VUQADD4S", argLength: 2, reg: v21, asm: "VUQADD", commutative: true, typ: "Vec128"},
   205  		{name: "VUQADD8H", argLength: 2, reg: v21, asm: "VUQADD", commutative: true, typ: "Vec128"},
   206  		{name: "VUQADD16B", argLength: 2, reg: v21, asm: "VUQADD", commutative: true, typ: "Vec128"},
   207  		{name: "VUQSHL2D", argLength: 2, reg: v21, asm: "VUQSHL", typ: "Vec128"},
   208  		{name: "VUQSHL4S", argLength: 2, reg: v21, asm: "VUQSHL", typ: "Vec128"},
   209  		{name: "VUQSHL8H", argLength: 2, reg: v21, asm: "VUQSHL", typ: "Vec128"},
   210  		{name: "VUQSHL16B", argLength: 2, reg: v21, asm: "VUQSHL", typ: "Vec128"},
   211  		{name: "VUQSUB2D", argLength: 2, reg: v21, asm: "VUQSUB", typ: "Vec128"},
   212  		{name: "VUQSUB4S", argLength: 2, reg: v21, asm: "VUQSUB", typ: "Vec128"},
   213  		{name: "VUQSUB8H", argLength: 2, reg: v21, asm: "VUQSUB", typ: "Vec128"},
   214  		{name: "VUQSUB16B", argLength: 2, reg: v21, asm: "VUQSUB", typ: "Vec128"},
   215  		{name: "VUQXTN2D", argLength: 1, reg: v11, asm: "VUQXTN", typ: "Vec128"},
   216  		{name: "VUQXTN2_2D", argLength: 2, reg: v21, asm: "VUQXTN2", typ: "Vec128", resultInArg0: true},
   217  		{name: "VUQXTN2_4S", argLength: 2, reg: v21, asm: "VUQXTN2", typ: "Vec128", resultInArg0: true},
   218  		{name: "VUQXTN2_8H", argLength: 2, reg: v21, asm: "VUQXTN2", typ: "Vec128", resultInArg0: true},
   219  		{name: "VUQXTN4S", argLength: 1, reg: v11, asm: "VUQXTN", typ: "Vec128"},
   220  		{name: "VUQXTN8H", argLength: 1, reg: v11, asm: "VUQXTN", typ: "Vec128"},
   221  		{name: "VURHADD4S", argLength: 2, reg: v21, asm: "VURHADD", commutative: true, typ: "Vec128"},
   222  		{name: "VURHADD8H", argLength: 2, reg: v21, asm: "VURHADD", commutative: true, typ: "Vec128"},
   223  		{name: "VURHADD16B", argLength: 2, reg: v21, asm: "VURHADD", commutative: true, typ: "Vec128"},
   224  		{name: "VUSHL2D", argLength: 2, reg: v21, asm: "VUSHL", typ: "Vec128"},
   225  		{name: "VUSHL4S", argLength: 2, reg: v21, asm: "VUSHL", typ: "Vec128"},
   226  		{name: "VUSHL8H", argLength: 2, reg: v21, asm: "VUSHL", typ: "Vec128"},
   227  		{name: "VUSHL16B", argLength: 2, reg: v21, asm: "VUSHL", typ: "Vec128"},
   228  		{name: "VUXTL2_4S", argLength: 1, reg: v11, asm: "VUXTL2", typ: "Vec128"},
   229  		{name: "VUXTL2_8H", argLength: 1, reg: v11, asm: "VUXTL2", typ: "Vec128"},
   230  		{name: "VUXTL2_16B", argLength: 1, reg: v11, asm: "VUXTL2", typ: "Vec128"},
   231  		{name: "VUXTL4S", argLength: 1, reg: v11, asm: "VUXTL", typ: "Vec128"},
   232  		{name: "VUXTL8H", argLength: 1, reg: v11, asm: "VUXTL", typ: "Vec128"},
   233  		{name: "VUXTL16B", argLength: 1, reg: v11, asm: "VUXTL", typ: "Vec128"},
   234  		{name: "VUZP12D", argLength: 2, reg: v21, asm: "VUZP1", typ: "Vec128"},
   235  		{name: "VUZP14S", argLength: 2, reg: v21, asm: "VUZP1", typ: "Vec128"},
   236  		{name: "VUZP18H", argLength: 2, reg: v21, asm: "VUZP1", typ: "Vec128"},
   237  		{name: "VUZP22D", argLength: 2, reg: v21, asm: "VUZP2", typ: "Vec128"},
   238  		{name: "VUZP24S", argLength: 2, reg: v21, asm: "VUZP2", typ: "Vec128"},
   239  		{name: "VUZP28H", argLength: 2, reg: v21, asm: "VUZP2", typ: "Vec128"},
   240  		{name: "VUZP116B", argLength: 2, reg: v21, asm: "VUZP1", typ: "Vec128"},
   241  		{name: "VUZP216B", argLength: 2, reg: v21, asm: "VUZP2", typ: "Vec128"},
   242  		{name: "VXTN2D", argLength: 1, reg: v11, asm: "VXTN", typ: "Vec128"},
   243  		{name: "VXTN2_2D", argLength: 2, reg: v21, asm: "VXTN2", typ: "Vec128", resultInArg0: true},
   244  		{name: "VXTN2_4S", argLength: 2, reg: v21, asm: "VXTN2", typ: "Vec128", resultInArg0: true},
   245  		{name: "VXTN2_8H", argLength: 2, reg: v21, asm: "VXTN2", typ: "Vec128", resultInArg0: true},
   246  		{name: "VXTN4S", argLength: 1, reg: v11, asm: "VXTN", typ: "Vec128"},
   247  		{name: "VXTN8H", argLength: 1, reg: v11, asm: "VXTN", typ: "Vec128"},
   248  		{name: "VZIP12D", argLength: 2, reg: v21, asm: "VZIP1", typ: "Vec128"},
   249  		{name: "VZIP14S", argLength: 2, reg: v21, asm: "VZIP1", typ: "Vec128"},
   250  		{name: "VZIP18H", argLength: 2, reg: v21, asm: "VZIP1", typ: "Vec128"},
   251  		{name: "VZIP22D", argLength: 2, reg: v21, asm: "VZIP2", typ: "Vec128"},
   252  		{name: "VZIP24S", argLength: 2, reg: v21, asm: "VZIP2", typ: "Vec128"},
   253  		{name: "VZIP28H", argLength: 2, reg: v21, asm: "VZIP2", typ: "Vec128"},
   254  		{name: "VZIP116B", argLength: 2, reg: v21, asm: "VZIP1", typ: "Vec128"},
   255  		{name: "VZIP216B", argLength: 2, reg: v21, asm: "VZIP2", typ: "Vec128"},
   256  		{name: "VDUPBbcast", argLength: 1, reg: v11, asm: "VDUP", aux: "UInt8", typ: "Vec128"},
   257  		{name: "VDUPDbcast", argLength: 1, reg: v11, asm: "VDUP", aux: "UInt8", typ: "Vec128"},
   258  		{name: "VDUPDextr", argLength: 1, reg: v11, asm: "VDUP", aux: "UInt8", typ: "Vec128"},
   259  		{name: "VDUPHbcast", argLength: 1, reg: v11, asm: "VDUP", aux: "UInt8", typ: "Vec128"},
   260  		{name: "VDUPSbcast", argLength: 1, reg: v11, asm: "VDUP", aux: "UInt8", typ: "Vec128"},
   261  		{name: "VDUPSextr", argLength: 1, reg: v11, asm: "VDUP", aux: "UInt8", typ: "Vec128"},
   262  		{name: "VEXT16B", argLength: 2, reg: v21, asm: "VEXT", aux: "UInt8", typ: "Vec128"},
   263  		{name: "VMOVBextr", argLength: 1, reg: vgp, asm: "VMOV", aux: "UInt8", typ: "int8"},
   264  		{name: "VMOVBins", argLength: 2, reg: vgpv, asm: "VMOV", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   265  		{name: "VMOVDextr", argLength: 1, reg: vgp, asm: "VMOV", aux: "UInt8", typ: "int64"},
   266  		{name: "VMOVDins", argLength: 2, reg: vgpv, asm: "VMOV", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   267  		{name: "VMOVDins0", argLength: 2, reg: vfpv, asm: "VMOV", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   268  		{name: "VMOVHextr", argLength: 1, reg: vgp, asm: "VMOV", aux: "UInt8", typ: "int16"},
   269  		{name: "VMOVHins", argLength: 2, reg: vgpv, asm: "VMOV", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   270  		{name: "VMOVSextr", argLength: 1, reg: vgp, asm: "VMOV", aux: "UInt8", typ: "int32"},
   271  		{name: "VMOVSins", argLength: 2, reg: vgpv, asm: "VMOV", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   272  		{name: "VMOVSins0", argLength: 2, reg: vfpv, asm: "VMOV", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   273  		{name: "VSHL2D", argLength: 1, reg: v11, asm: "VSHL", aux: "UInt8", typ: "Vec128"},
   274  		{name: "VSHL4S", argLength: 1, reg: v11, asm: "VSHL", aux: "UInt8", typ: "Vec128"},
   275  		{name: "VSHL8H", argLength: 1, reg: v11, asm: "VSHL", aux: "UInt8", typ: "Vec128"},
   276  		{name: "VSHL16B", argLength: 1, reg: v11, asm: "VSHL", aux: "UInt8", typ: "Vec128"},
   277  		{name: "VSHRN2D", argLength: 1, reg: v11, asm: "VSHRN", aux: "UInt8", typ: "Vec128"},
   278  		{name: "VSHRN2_2D", argLength: 2, reg: v21, asm: "VSHRN2", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   279  		{name: "VSHRN2_4S", argLength: 2, reg: v21, asm: "VSHRN2", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   280  		{name: "VSHRN2_8H", argLength: 2, reg: v21, asm: "VSHRN2", aux: "UInt8", typ: "Vec128", resultInArg0: true},
   281  		{name: "VSHRN4S", argLength: 1, reg: v11, asm: "VSHRN", aux: "UInt8", typ: "Vec128"},
   282  		{name: "VSHRN8H", argLength: 1, reg: v11, asm: "VSHRN", aux: "UInt8", typ: "Vec128"},
   283  		{name: "VSQSHL2Dconst", argLength: 1, reg: v11, asm: "VSQSHL", aux: "UInt8", typ: "Vec128"},
   284  		{name: "VSQSHL4Sconst", argLength: 1, reg: v11, asm: "VSQSHL", aux: "UInt8", typ: "Vec128"},
   285  		{name: "VSQSHL8Hconst", argLength: 1, reg: v11, asm: "VSQSHL", aux: "UInt8", typ: "Vec128"},
   286  		{name: "VSQSHL16Bconst", argLength: 1, reg: v11, asm: "VSQSHL", aux: "UInt8", typ: "Vec128"},
   287  		{name: "VSSHLL2_4S", argLength: 1, reg: v11, asm: "VSSHLL2", aux: "UInt8", typ: "Vec128"},
   288  		{name: "VSSHLL2_8H", argLength: 1, reg: v11, asm: "VSSHLL2", aux: "UInt8", typ: "Vec128"},
   289  		{name: "VSSHLL2_16B", argLength: 1, reg: v11, asm: "VSSHLL2", aux: "UInt8", typ: "Vec128"},
   290  		{name: "VSSHLL4S", argLength: 1, reg: v11, asm: "VSSHLL", aux: "UInt8", typ: "Vec128"},
   291  		{name: "VSSHLL8H", argLength: 1, reg: v11, asm: "VSSHLL", aux: "UInt8", typ: "Vec128"},
   292  		{name: "VSSHLL16B", argLength: 1, reg: v11, asm: "VSSHLL", aux: "UInt8", typ: "Vec128"},
   293  		{name: "VSSHR2D", argLength: 1, reg: v11, asm: "VSSHR", aux: "UInt8", typ: "Vec128"},
   294  		{name: "VSSHR4S", argLength: 1, reg: v11, asm: "VSSHR", aux: "UInt8", typ: "Vec128"},
   295  		{name: "VSSHR8H", argLength: 1, reg: v11, asm: "VSSHR", aux: "UInt8", typ: "Vec128"},
   296  		{name: "VSSHR16B", argLength: 1, reg: v11, asm: "VSSHR", aux: "UInt8", typ: "Vec128"},
   297  		{name: "VUQSHL2Dconst", argLength: 1, reg: v11, asm: "VUQSHL", aux: "UInt8", typ: "Vec128"},
   298  		{name: "VUQSHL4Sconst", argLength: 1, reg: v11, asm: "VUQSHL", aux: "UInt8", typ: "Vec128"},
   299  		{name: "VUQSHL8Hconst", argLength: 1, reg: v11, asm: "VUQSHL", aux: "UInt8", typ: "Vec128"},
   300  		{name: "VUQSHL16Bconst", argLength: 1, reg: v11, asm: "VUQSHL", aux: "UInt8", typ: "Vec128"},
   301  		{name: "VUSHLL2_4S", argLength: 1, reg: v11, asm: "VUSHLL2", aux: "UInt8", typ: "Vec128"},
   302  		{name: "VUSHLL2_8H", argLength: 1, reg: v11, asm: "VUSHLL2", aux: "UInt8", typ: "Vec128"},
   303  		{name: "VUSHLL2_16B", argLength: 1, reg: v11, asm: "VUSHLL2", aux: "UInt8", typ: "Vec128"},
   304  		{name: "VUSHLL4S", argLength: 1, reg: v11, asm: "VUSHLL", aux: "UInt8", typ: "Vec128"},
   305  		{name: "VUSHLL8H", argLength: 1, reg: v11, asm: "VUSHLL", aux: "UInt8", typ: "Vec128"},
   306  		{name: "VUSHLL16B", argLength: 1, reg: v11, asm: "VUSHLL", aux: "UInt8", typ: "Vec128"},
   307  		{name: "VUSHR2D", argLength: 1, reg: v11, asm: "VUSHR", aux: "UInt8", typ: "Vec128"},
   308  		{name: "VUSHR4S", argLength: 1, reg: v11, asm: "VUSHR", aux: "UInt8", typ: "Vec128"},
   309  		{name: "VUSHR8H", argLength: 1, reg: v11, asm: "VUSHR", aux: "UInt8", typ: "Vec128"},
   310  		{name: "VUSHR16B", argLength: 1, reg: v11, asm: "VUSHR", aux: "UInt8", typ: "Vec128"},
   311  	}
   312  }
   313  

View as plain text