Text file src/cmd/compile/internal/ssa/_gen/simdARM64.rules

     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  (VFCVTL4S (VDUPDextr [1] x)) => (VFCVTL2_4S x)
     4  (VMOVDins0 [1] dst (VDUPDextr [0] (VFCVTN2D y))) => (VFCVTN2_2D dst y)
     5  (VMOVDins0 [1] dst (VDUPDextr [0] (VSHRN2D [c] y))) => (VSHRN2_2D dst [c] y)
     6  (VMOVDins0 [1] dst (VDUPDextr [0] (VSHRN4S [c] y))) => (VSHRN2_4S dst [c] y)
     7  (VMOVDins0 [1] dst (VDUPDextr [0] (VSHRN8H [c] y))) => (VSHRN2_8H dst [c] y)
     8  (VMOVDins0 [1] dst (VDUPDextr [0] (VSQXTN2D y))) => (VSQXTN2_2D dst y)
     9  (VMOVDins0 [1] dst (VDUPDextr [0] (VSQXTN4S y))) => (VSQXTN2_4S dst y)
    10  (VMOVDins0 [1] dst (VDUPDextr [0] (VSQXTN8H y))) => (VSQXTN2_8H dst y)
    11  (VMOVDins0 [1] dst (VDUPDextr [0] (VSQXTUN2D y))) => (VSQXTUN2_2D dst y)
    12  (VMOVDins0 [1] dst (VDUPDextr [0] (VSQXTUN4S y))) => (VSQXTUN2_4S dst y)
    13  (VMOVDins0 [1] dst (VDUPDextr [0] (VSQXTUN8H y))) => (VSQXTUN2_8H dst y)
    14  (VMOVDins0 [1] dst (VDUPDextr [0] (VUQXTN2D y))) => (VUQXTN2_2D dst y)
    15  (VMOVDins0 [1] dst (VDUPDextr [0] (VUQXTN4S y))) => (VUQXTN2_4S dst y)
    16  (VMOVDins0 [1] dst (VDUPDextr [0] (VUQXTN8H y))) => (VUQXTN2_8H dst y)
    17  (VMOVDins0 [1] dst (VDUPDextr [0] (VXTN2D y))) => (VXTN2_2D dst y)
    18  (VMOVDins0 [1] dst (VDUPDextr [0] (VXTN4S y))) => (VXTN2_4S dst y)
    19  (VMOVDins0 [1] dst (VDUPDextr [0] (VXTN8H y))) => (VXTN2_8H dst y)
    20  (VSMULL16B (VDUPDextr [1] x) (VDUPDextr [1] y)) => (VSMULL2_16B x y)
    21  (VSMULL4S (VDUPDextr [1] x) (VDUPDextr [1] y)) => (VSMULL2_4S x y)
    22  (VSMULL8H (VDUPDextr [1] x) (VDUPDextr [1] y)) => (VSMULL2_8H x y)
    23  (VSSHLL16B [a] (VDUPDextr [1] x)) => (VSSHLL2_16B [a] x)
    24  (VSSHLL4S [a] (VDUPDextr [1] x)) => (VSSHLL2_4S [a] x)
    25  (VSSHLL8H [a] (VDUPDextr [1] x)) => (VSSHLL2_8H [a] x)
    26  (VSXTL16B (VDUPDextr [1] x)) => (VSXTL2_16B x)
    27  (VSXTL4S (VDUPDextr [1] x)) => (VSXTL2_4S x)
    28  (VSXTL8H (VDUPDextr [1] x)) => (VSXTL2_8H x)
    29  (VUMULL16B (VDUPDextr [1] x) (VDUPDextr [1] y)) => (VUMULL2_16B x y)
    30  (VUMULL4S (VDUPDextr [1] x) (VDUPDextr [1] y)) => (VUMULL2_4S x y)
    31  (VUMULL8H (VDUPDextr [1] x) (VDUPDextr [1] y)) => (VUMULL2_8H x y)
    32  (VUSHLL16B [a] (VDUPDextr [1] x)) => (VUSHLL2_16B [a] x)
    33  (VUSHLL4S [a] (VDUPDextr [1] x)) => (VUSHLL2_4S [a] x)
    34  (VUSHLL8H [a] (VDUPDextr [1] x)) => (VUSHLL2_8H [a] x)
    35  (VUXTL16B (VDUPDextr [1] x)) => (VUXTL2_16B x)
    36  (VUXTL4S (VDUPDextr [1] x)) => (VUXTL2_4S x)
    37  (VUXTL8H (VDUPDextr [1] x)) => (VUXTL2_8H x)
    38  (AbsFloat32x4 ...) => (VFABS4S ...) // pureVreg
    39  (AbsFloat64x2 ...) => (VFABS2D ...) // pureVreg
    40  (AbsInt8x16 ...) => (VABS16B ...) // pureVreg
    41  (AbsInt16x8 ...) => (VABS8H ...) // pureVreg
    42  (AbsInt32x4 ...) => (VABS4S ...) // pureVreg
    43  (AbsInt64x2 ...) => (VABS2D ...) // pureVreg
    44  (AddFloat32x4 ...) => (VFADD4S ...) // pureVreg
    45  (AddFloat64x2 ...) => (VFADD2D ...) // pureVreg
    46  (AddInt8x16 ...) => (VADD16B ...) // pureVreg
    47  (AddInt16x8 ...) => (VADD8H ...) // pureVreg
    48  (AddInt32x4 ...) => (VADD4S ...) // pureVreg
    49  (AddInt64x2 ...) => (VADD2D ...) // pureVreg
    50  (AddUint8x16 ...) => (VADD16B ...) // pureVreg
    51  (AddUint16x8 ...) => (VADD8H ...) // pureVreg
    52  (AddUint32x4 ...) => (VADD4S ...) // pureVreg
    53  (AddUint64x2 ...) => (VADD2D ...) // pureVreg
    54  (AddSaturatedInt8x16 ...) => (VSQADD16B ...) // pureVreg
    55  (AddSaturatedInt16x8 ...) => (VSQADD8H ...) // pureVreg
    56  (AddSaturatedInt32x4 ...) => (VSQADD4S ...) // pureVreg
    57  (AddSaturatedInt64x2 ...) => (VSQADD2D ...) // pureVreg
    58  (AddSaturatedUint8x16 ...) => (VUQADD16B ...) // pureVreg
    59  (AddSaturatedUint16x8 ...) => (VUQADD8H ...) // pureVreg
    60  (AddSaturatedUint32x4 ...) => (VUQADD4S ...) // pureVreg
    61  (AddSaturatedUint64x2 ...) => (VUQADD2D ...) // pureVreg
    62  (AndInt8x16 ...) => (VAND16B ...) // pureVreg
    63  (AndInt16x8 ...) => (VAND16B ...) // pureVreg
    64  (AndInt32x4 ...) => (VAND16B ...) // pureVreg
    65  (AndInt64x2 ...) => (VAND16B ...) // pureVreg
    66  (AndUint8x16 ...) => (VAND16B ...) // pureVreg
    67  (AndUint16x8 ...) => (VAND16B ...) // pureVreg
    68  (AndUint32x4 ...) => (VAND16B ...) // pureVreg
    69  (AndUint64x2 ...) => (VAND16B ...) // pureVreg
    70  (AndNotInt8x16 ...) => (VBIC16B ...) // pureVreg
    71  (AndNotInt16x8 ...) => (VBIC16B ...) // pureVreg
    72  (AndNotInt32x4 ...) => (VBIC16B ...) // pureVreg
    73  (AndNotInt64x2 ...) => (VBIC16B ...) // pureVreg
    74  (AndNotUint8x16 ...) => (VBIC16B ...) // pureVreg
    75  (AndNotUint16x8 ...) => (VBIC16B ...) // pureVreg
    76  (AndNotUint32x4 ...) => (VBIC16B ...) // pureVreg
    77  (AndNotUint64x2 ...) => (VBIC16B ...) // pureVreg
    78  (AverageInt8x16 ...) => (VSRHADD16B ...) // pureVreg
    79  (AverageInt16x8 ...) => (VSRHADD8H ...) // pureVreg
    80  (AverageInt32x4 ...) => (VSRHADD4S ...) // pureVreg
    81  (AverageUint8x16 ...) => (VURHADD16B ...) // pureVreg
    82  (AverageUint16x8 ...) => (VURHADD8H ...) // pureVreg
    83  (AverageUint32x4 ...) => (VURHADD4S ...) // pureVreg
    84  (CeilFloat32x4 ...) => (VFRINTP4S ...) // pureVreg
    85  (CeilFloat64x2 ...) => (VFRINTP2D ...) // pureVreg
    86  (ConcatAddPairsFloat32x4 ...) => (VFADDP4S ...) // pureVreg
    87  (ConcatAddPairsFloat64x2 ...) => (VFADDP2D ...) // pureVreg
    88  (ConcatAddPairsInt16x8 ...) => (VADDP8H ...) // pureVreg
    89  (ConcatAddPairsInt32x4 ...) => (VADDP4S ...) // pureVreg
    90  (ConcatAddPairsInt64x2 ...) => (VADDP2D ...) // pureVreg
    91  (ConcatAddPairsUint16x8 ...) => (VADDP8H ...) // pureVreg
    92  (ConcatAddPairsUint32x4 ...) => (VADDP4S ...) // pureVreg
    93  (ConcatAddPairsUint64x2 ...) => (VADDP2D ...) // pureVreg
    94  (ConcatShiftBytesRightUint8x16 ...) => (VEXT16B ...) // pureVreg
    95  (ConvertLo2ToFloat64Float32x4 ...) => (VFCVTL4S ...) // pureVreg
    96  (ConvertToFloat32Float64x2 ...) => (VFCVTN2D ...) // pureVreg
    97  (ConvertToFloat32Int32x4 ...) => (VSCVTF4S ...) // pureVreg
    98  (ConvertToFloat32Uint32x4 ...) => (VUCVTF4S ...) // pureVreg
    99  (ConvertToFloat64Int64x2 ...) => (VSCVTF2D ...) // pureVreg
   100  (ConvertToFloat64Uint64x2 ...) => (VUCVTF2D ...) // pureVreg
   101  (ConvertToInt32Float32x4 ...) => (VFCVTZS4S ...) // pureVreg
   102  (ConvertToInt64Float64x2 ...) => (VFCVTZS2D ...) // pureVreg
   103  (ConvertToUint32Float32x4 ...) => (VFCVTZU4S ...) // pureVreg
   104  (ConvertToUint64Float64x2 ...) => (VFCVTZU2D ...) // pureVreg
   105  (DeinterleaveEvenInt8x16 ...) => (VUZP116B ...) // pureVreg
   106  (DeinterleaveEvenInt16x8 ...) => (VUZP18H ...) // pureVreg
   107  (DeinterleaveEvenInt32x4 ...) => (VUZP14S ...) // pureVreg
   108  (DeinterleaveEvenInt64x2 ...) => (VUZP12D ...) // pureVreg
   109  (DeinterleaveEvenUint8x16 ...) => (VUZP116B ...) // pureVreg
   110  (DeinterleaveEvenUint16x8 ...) => (VUZP18H ...) // pureVreg
   111  (DeinterleaveEvenUint32x4 ...) => (VUZP14S ...) // pureVreg
   112  (DeinterleaveEvenUint64x2 ...) => (VUZP12D ...) // pureVreg
   113  (DeinterleaveOddInt8x16 ...) => (VUZP216B ...) // pureVreg
   114  (DeinterleaveOddInt16x8 ...) => (VUZP28H ...) // pureVreg
   115  (DeinterleaveOddInt32x4 ...) => (VUZP24S ...) // pureVreg
   116  (DeinterleaveOddInt64x2 ...) => (VUZP22D ...) // pureVreg
   117  (DeinterleaveOddUint8x16 ...) => (VUZP216B ...) // pureVreg
   118  (DeinterleaveOddUint16x8 ...) => (VUZP28H ...) // pureVreg
   119  (DeinterleaveOddUint32x4 ...) => (VUZP24S ...) // pureVreg
   120  (DeinterleaveOddUint64x2 ...) => (VUZP22D ...) // pureVreg
   121  (DivFloat32x4 ...) => (VFDIV4S ...) // pureVreg
   122  (DivFloat64x2 ...) => (VFDIV2D ...) // pureVreg
   123  (EqualFloat32x4 ...) => (VFCMEQ4S ...) // pureVreg
   124  (EqualFloat64x2 ...) => (VFCMEQ2D ...) // pureVreg
   125  (EqualInt8x16 ...) => (VCMEQ16B ...) // pureVreg
   126  (EqualInt16x8 ...) => (VCMEQ8H ...) // pureVreg
   127  (EqualInt32x4 ...) => (VCMEQ4S ...) // pureVreg
   128  (EqualInt64x2 ...) => (VCMEQ2D ...) // pureVreg
   129  (EqualUint8x16 ...) => (VCMEQ16B ...) // pureVreg
   130  (EqualUint16x8 ...) => (VCMEQ8H ...) // pureVreg
   131  (EqualUint32x4 ...) => (VCMEQ4S ...) // pureVreg
   132  (EqualUint64x2 ...) => (VCMEQ2D ...) // pureVreg
   133  (ExtendLo2ToInt64Int32x4 ...) => (VSXTL4S ...) // pureVreg
   134  (ExtendLo2ToUint64Uint32x4 ...) => (VUXTL4S ...) // pureVreg
   135  (ExtendLo4ToInt32Int16x8 ...) => (VSXTL8H ...) // pureVreg
   136  (ExtendLo4ToUint32Uint16x8 ...) => (VUXTL8H ...) // pureVreg
   137  (ExtendLo8ToInt16Int8x16 ...) => (VSXTL16B ...) // pureVreg
   138  (ExtendLo8ToUint16Uint8x16 ...) => (VUXTL16B ...) // pureVreg
   139  (FloorFloat32x4 ...) => (VFRINTM4S ...) // pureVreg
   140  (FloorFloat64x2 ...) => (VFRINTM2D ...) // pureVreg
   141  (GetElemFloat32x4 ...) => (VDUPSextr ...) // pureVreg
   142  (GetElemFloat64x2 ...) => (VDUPDextr ...) // pureVreg
   143  (GetElemInt8x16 ...) => (VMOVBextr ...) // pureVreg
   144  (GetElemInt16x8 ...) => (VMOVHextr ...) // pureVreg
   145  (GetElemInt32x4 ...) => (VMOVSextr ...) // pureVreg
   146  (GetElemInt64x2 ...) => (VMOVDextr ...) // pureVreg
   147  (GetElemUint8x16 ...) => (VMOVBextr ...) // pureVreg
   148  (GetElemUint16x8 ...) => (VMOVHextr ...) // pureVreg
   149  (GetElemUint32x4 ...) => (VMOVSextr ...) // pureVreg
   150  (GetElemUint64x2 ...) => (VMOVDextr ...) // pureVreg
   151  (GreaterFloat32x4 ...) => (VFCMGT4S ...) // pureVreg
   152  (GreaterFloat64x2 ...) => (VFCMGT2D ...) // pureVreg
   153  (GreaterInt8x16 ...) => (VCMGT16B ...) // pureVreg
   154  (GreaterInt16x8 ...) => (VCMGT8H ...) // pureVreg
   155  (GreaterInt32x4 ...) => (VCMGT4S ...) // pureVreg
   156  (GreaterInt64x2 ...) => (VCMGT2D ...) // pureVreg
   157  (GreaterUint8x16 ...) => (VCMHI16B ...) // pureVreg
   158  (GreaterUint16x8 ...) => (VCMHI8H ...) // pureVreg
   159  (GreaterUint32x4 ...) => (VCMHI4S ...) // pureVreg
   160  (GreaterUint64x2 ...) => (VCMHI2D ...) // pureVreg
   161  (GreaterEqualFloat32x4 ...) => (VFCMGE4S ...) // pureVreg
   162  (GreaterEqualFloat64x2 ...) => (VFCMGE2D ...) // pureVreg
   163  (GreaterEqualInt8x16 ...) => (VCMGE16B ...) // pureVreg
   164  (GreaterEqualInt16x8 ...) => (VCMGE8H ...) // pureVreg
   165  (GreaterEqualInt32x4 ...) => (VCMGE4S ...) // pureVreg
   166  (GreaterEqualInt64x2 ...) => (VCMGE2D ...) // pureVreg
   167  (GreaterEqualUint8x16 ...) => (VCMHS16B ...) // pureVreg
   168  (GreaterEqualUint16x8 ...) => (VCMHS8H ...) // pureVreg
   169  (GreaterEqualUint32x4 ...) => (VCMHS4S ...) // pureVreg
   170  (GreaterEqualUint64x2 ...) => (VCMHS2D ...) // pureVreg
   171  (InterleaveHiInt8x16 ...) => (VZIP216B ...) // pureVreg
   172  (InterleaveHiInt16x8 ...) => (VZIP28H ...) // pureVreg
   173  (InterleaveHiInt32x4 ...) => (VZIP24S ...) // pureVreg
   174  (InterleaveHiInt64x2 ...) => (VZIP22D ...) // pureVreg
   175  (InterleaveHiUint8x16 ...) => (VZIP216B ...) // pureVreg
   176  (InterleaveHiUint16x8 ...) => (VZIP28H ...) // pureVreg
   177  (InterleaveHiUint32x4 ...) => (VZIP24S ...) // pureVreg
   178  (InterleaveHiUint64x2 ...) => (VZIP22D ...) // pureVreg
   179  (InterleaveLoInt8x16 ...) => (VZIP116B ...) // pureVreg
   180  (InterleaveLoInt16x8 ...) => (VZIP18H ...) // pureVreg
   181  (InterleaveLoInt32x4 ...) => (VZIP14S ...) // pureVreg
   182  (InterleaveLoInt64x2 ...) => (VZIP12D ...) // pureVreg
   183  (InterleaveLoUint8x16 ...) => (VZIP116B ...) // pureVreg
   184  (InterleaveLoUint16x8 ...) => (VZIP18H ...) // pureVreg
   185  (InterleaveLoUint32x4 ...) => (VZIP14S ...) // pureVreg
   186  (InterleaveLoUint64x2 ...) => (VZIP12D ...) // pureVreg
   187  (LeadingSignBitsInt8x16 ...) => (VCLS16B ...) // pureVreg
   188  (LeadingSignBitsInt16x8 ...) => (VCLS8H ...) // pureVreg
   189  (LeadingSignBitsInt32x4 ...) => (VCLS4S ...) // pureVreg
   190  (LeadingSignBitsUint8x16 ...) => (VCLS16B ...) // pureVreg
   191  (LeadingSignBitsUint16x8 ...) => (VCLS8H ...) // pureVreg
   192  (LeadingSignBitsUint32x4 ...) => (VCLS4S ...) // pureVreg
   193  (LeadingZerosInt8x16 ...) => (VCLZ16B ...) // pureVreg
   194  (LeadingZerosInt16x8 ...) => (VCLZ8H ...) // pureVreg
   195  (LeadingZerosInt32x4 ...) => (VCLZ4S ...) // pureVreg
   196  (LeadingZerosUint8x16 ...) => (VCLZ16B ...) // pureVreg
   197  (LeadingZerosUint16x8 ...) => (VCLZ8H ...) // pureVreg
   198  (LeadingZerosUint32x4 ...) => (VCLZ4S ...) // pureVreg
   199  (LookupOrKeepInt8x16 ...) => (VTBX16B ...) // pureVreg
   200  (LookupOrKeepUint8x16 ...) => (VTBX16B ...) // pureVreg
   201  (LookupOrZeroInt8x16 ...) => (VTBL16B ...) // pureVreg
   202  (LookupOrZeroUint8x16 ...) => (VTBL16B ...) // pureVreg
   203  (MaxFloat32x4 ...) => (VFMAX4S ...) // pureVreg
   204  (MaxFloat64x2 ...) => (VFMAX2D ...) // pureVreg
   205  (MaxInt8x16 ...) => (VSMAX16B ...) // pureVreg
   206  (MaxInt16x8 ...) => (VSMAX8H ...) // pureVreg
   207  (MaxInt32x4 ...) => (VSMAX4S ...) // pureVreg
   208  (MaxUint8x16 ...) => (VUMAX16B ...) // pureVreg
   209  (MaxUint16x8 ...) => (VUMAX8H ...) // pureVreg
   210  (MaxUint32x4 ...) => (VUMAX4S ...) // pureVreg
   211  (MinFloat32x4 ...) => (VFMIN4S ...) // pureVreg
   212  (MinFloat64x2 ...) => (VFMIN2D ...) // pureVreg
   213  (MinInt8x16 ...) => (VSMIN16B ...) // pureVreg
   214  (MinInt16x8 ...) => (VSMIN8H ...) // pureVreg
   215  (MinInt32x4 ...) => (VSMIN4S ...) // pureVreg
   216  (MinUint8x16 ...) => (VUMIN16B ...) // pureVreg
   217  (MinUint16x8 ...) => (VUMIN8H ...) // pureVreg
   218  (MinUint32x4 ...) => (VUMIN4S ...) // pureVreg
   219  (MulFloat32x4 ...) => (VFMUL4S ...) // pureVreg
   220  (MulFloat64x2 ...) => (VFMUL2D ...) // pureVreg
   221  (MulInt8x16 ...) => (VMUL16B ...) // pureVreg
   222  (MulInt16x8 ...) => (VMUL8H ...) // pureVreg
   223  (MulInt32x4 ...) => (VMUL4S ...) // pureVreg
   224  (MulUint8x16 ...) => (VMUL16B ...) // pureVreg
   225  (MulUint16x8 ...) => (VMUL8H ...) // pureVreg
   226  (MulUint32x4 ...) => (VMUL4S ...) // pureVreg
   227  (MulAddFloat32x4 x y z)  => (VFMLA4S z x y) // earlyMatchRule
   228  (MulAddFloat64x2 x y z)  => (VFMLA2D z x y) // earlyMatchRule
   229  (MulAddInt8x16 x y z)  => (VMLA16B z x y) // earlyMatchRule
   230  (MulAddInt16x8 x y z)  => (VMLA8H z x y) // earlyMatchRule
   231  (MulAddInt32x4 x y z)  => (VMLA4S z x y) // earlyMatchRule
   232  (MulAddUint8x16 x y z)  => (VMLA16B z x y) // earlyMatchRule
   233  (MulAddUint16x8 x y z)  => (VMLA8H z x y) // earlyMatchRule
   234  (MulAddUint32x4 x y z)  => (VMLA4S z x y) // earlyMatchRule
   235  (MulLoLongInt8x16 ...) => (VSMULL16B ...) // pureVreg
   236  (MulLoLongInt16x8 ...) => (VSMULL8H ...) // pureVreg
   237  (MulLoLongInt32x4 ...) => (VSMULL4S ...) // pureVreg
   238  (MulLoLongUint8x16 ...) => (VUMULL16B ...) // pureVreg
   239  (MulLoLongUint16x8 ...) => (VUMULL8H ...) // pureVreg
   240  (MulLoLongUint32x4 ...) => (VUMULL4S ...) // pureVreg
   241  (NegFloat32x4 ...) => (VFNEG4S ...) // pureVreg
   242  (NegFloat64x2 ...) => (VFNEG2D ...) // pureVreg
   243  (NegInt8x16 ...) => (VNEG16B ...) // pureVreg
   244  (NegInt16x8 ...) => (VNEG8H ...) // pureVreg
   245  (NegInt32x4 ...) => (VNEG4S ...) // pureVreg
   246  (NegInt64x2 ...) => (VNEG2D ...) // pureVreg
   247  (NotInt8x16 ...) => (VNOT16B ...) // pureVreg
   248  (NotInt16x8 ...) => (VNOT16B ...) // pureVreg
   249  (NotInt32x4 ...) => (VNOT16B ...) // pureVreg
   250  (NotInt64x2 ...) => (VNOT16B ...) // pureVreg
   251  (NotUint8x16 ...) => (VNOT16B ...) // pureVreg
   252  (NotUint16x8 ...) => (VNOT16B ...) // pureVreg
   253  (NotUint32x4 ...) => (VNOT16B ...) // pureVreg
   254  (NotUint64x2 ...) => (VNOT16B ...) // pureVreg
   255  (OnesCountInt8x16 ...) => (VCNT16B ...) // pureVreg
   256  (OnesCountUint8x16 ...) => (VCNT16B ...) // pureVreg
   257  (OrInt8x16 ...) => (VORR16B ...) // pureVreg
   258  (OrInt16x8 ...) => (VORR16B ...) // pureVreg
   259  (OrInt32x4 ...) => (VORR16B ...) // pureVreg
   260  (OrInt64x2 ...) => (VORR16B ...) // pureVreg
   261  (OrUint8x16 ...) => (VORR16B ...) // pureVreg
   262  (OrUint16x8 ...) => (VORR16B ...) // pureVreg
   263  (OrUint32x4 ...) => (VORR16B ...) // pureVreg
   264  (OrUint64x2 ...) => (VORR16B ...) // pureVreg
   265  (OrNotInt8x16 ...) => (VORN16B ...) // pureVreg
   266  (OrNotInt16x8 ...) => (VORN16B ...) // pureVreg
   267  (OrNotInt32x4 ...) => (VORN16B ...) // pureVreg
   268  (OrNotInt64x2 ...) => (VORN16B ...) // pureVreg
   269  (OrNotUint8x16 ...) => (VORN16B ...) // pureVreg
   270  (OrNotUint16x8 ...) => (VORN16B ...) // pureVreg
   271  (OrNotUint32x4 ...) => (VORN16B ...) // pureVreg
   272  (OrNotUint64x2 ...) => (VORN16B ...) // pureVreg
   273  (ReduceMaxFloat32x4 ...) => (VFMAXV4S ...) // pureVreg
   274  (ReduceMaxInt8x16 ...) => (VSMAXV16B ...) // pureVreg
   275  (ReduceMaxInt16x8 ...) => (VSMAXV8H ...) // pureVreg
   276  (ReduceMaxInt32x4 ...) => (VSMAXV4S ...) // pureVreg
   277  (ReduceMaxUint8x16 ...) => (VUMAXV16B ...) // pureVreg
   278  (ReduceMaxUint16x8 ...) => (VUMAXV8H ...) // pureVreg
   279  (ReduceMaxUint32x4 ...) => (VUMAXV4S ...) // pureVreg
   280  (ReduceMinFloat32x4 ...) => (VFMINV4S ...) // pureVreg
   281  (ReduceMinInt8x16 ...) => (VSMINV16B ...) // pureVreg
   282  (ReduceMinInt16x8 ...) => (VSMINV8H ...) // pureVreg
   283  (ReduceMinInt32x4 ...) => (VSMINV4S ...) // pureVreg
   284  (ReduceMinUint8x16 ...) => (VUMINV16B ...) // pureVreg
   285  (ReduceMinUint16x8 ...) => (VUMINV8H ...) // pureVreg
   286  (ReduceMinUint32x4 ...) => (VUMINV4S ...) // pureVreg
   287  (ReduceSumInt8x16 ...) => (VADDV16B ...) // pureVreg
   288  (ReduceSumInt16x8 ...) => (VADDV8H ...) // pureVreg
   289  (ReduceSumInt32x4 ...) => (VADDV4S ...) // pureVreg
   290  (ReduceSumUint8x16 ...) => (VADDV16B ...) // pureVreg
   291  (ReduceSumUint16x8 ...) => (VADDV8H ...) // pureVreg
   292  (ReduceSumUint32x4 ...) => (VADDV4S ...) // pureVreg
   293  (RoundFloat32x4 ...) => (VFRINTN4S ...) // pureVreg
   294  (RoundFloat64x2 ...) => (VFRINTN2D ...) // pureVreg
   295  (SaturateToInt8Int16x8 ...) => (VSQXTN8H ...) // pureVreg
   296  (SaturateToInt16Int32x4 ...) => (VSQXTN4S ...) // pureVreg
   297  (SaturateToInt32Int64x2 ...) => (VSQXTN2D ...) // pureVreg
   298  (SaturateToUint8Int16x8 ...) => (VSQXTUN8H ...) // pureVreg
   299  (SaturateToUint8Uint16x8 ...) => (VUQXTN8H ...) // pureVreg
   300  (SaturateToUint16Int32x4 ...) => (VSQXTUN4S ...) // pureVreg
   301  (SaturateToUint16Uint32x4 ...) => (VUQXTN4S ...) // pureVreg
   302  (SaturateToUint32Int64x2 ...) => (VSQXTUN2D ...) // pureVreg
   303  (SaturateToUint32Uint64x2 ...) => (VUQXTN2D ...) // pureVreg
   304  (SetElemFloat32x4 ...) => (VMOVSins0 ...) // pureVreg
   305  (VMOVSins0 [0] (VMOVI16B [0]) y:(VDUPSextr [i] _))  => y // argsMatchRule
   306  (SetElemFloat64x2 ...) => (VMOVDins0 ...) // pureVreg
   307  (VMOVDins0 [0] (VMOVI16B [0]) y:(VDUPDextr [i] _))  => y // argsMatchRule
   308  (SetElemInt8x16 ...) => (VMOVBins ...) // pureVreg
   309  (SetElemInt16x8 ...) => (VMOVHins ...) // pureVreg
   310  (SetElemInt32x4 ...) => (VMOVSins ...) // pureVreg
   311  (SetElemInt64x2 ...) => (VMOVDins ...) // pureVreg
   312  (SetElemUint8x16 ...) => (VMOVBins ...) // pureVreg
   313  (SetElemUint16x8 ...) => (VMOVHins ...) // pureVreg
   314  (SetElemUint32x4 ...) => (VMOVSins ...) // pureVreg
   315  (SetElemUint64x2 ...) => (VMOVDins ...) // pureVreg
   316  (ShiftInt8x16 ...) => (VSSHL16B ...) // pureVreg
   317  (ShiftInt16x8 ...) => (VSSHL8H ...) // pureVreg
   318  (ShiftInt32x4 ...) => (VSSHL4S ...) // pureVreg
   319  (ShiftInt64x2 ...) => (VSSHL2D ...) // pureVreg
   320  (ShiftUint8x16 ...) => (VUSHL16B ...) // pureVreg
   321  (ShiftUint16x8 ...) => (VUSHL8H ...) // pureVreg
   322  (ShiftUint32x4 ...) => (VUSHL4S ...) // pureVreg
   323  (ShiftUint64x2 ...) => (VUSHL2D ...) // pureVreg
   324  (ShiftAllLeftInt8x16 x y)  => (VSSHL16B x (VDUPBbcast [0] (VMOVBins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   325  (ShiftAllLeftInt16x8 x y)  => (VSSHL8H x (VDUPHbcast [0] (VMOVHins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   326  (ShiftAllLeftInt32x4 x y)  => (VSSHL4S x (VDUPSbcast [0] (VMOVSins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   327  (ShiftAllLeftInt64x2 x y)  => (VSSHL2D x (VDUPDbcast [0] (VMOVDins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   328  (ShiftAllLeftUint8x16 x y)  => (VUSHL16B x (VDUPBbcast [0] (VMOVBins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   329  (ShiftAllLeftUint16x8 x y)  => (VUSHL8H x (VDUPHbcast [0] (VMOVHins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   330  (ShiftAllLeftUint32x4 x y)  => (VUSHL4S x (VDUPSbcast [0] (VMOVSins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   331  (ShiftAllLeftUint64x2 x y)  => (VUSHL2D x (VDUPDbcast [0] (VMOVDins [0] x (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y))))) // earlyMatchRule
   332  (ShiftAllRightInt8x16 x y)  => (VSSHL16B x (VDUPBbcast [0] (VMOVBins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   333  (ShiftAllRightInt16x8 x y)  => (VSSHL8H x (VDUPHbcast [0] (VMOVHins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   334  (ShiftAllRightInt32x4 x y)  => (VSSHL4S x (VDUPSbcast [0] (VMOVSins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   335  (ShiftAllRightInt64x2 x y)  => (VSSHL2D x (VDUPDbcast [0] (VMOVDins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   336  (ShiftAllRightUint8x16 x y)  => (VUSHL16B x (VDUPBbcast [0] (VMOVBins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   337  (ShiftAllRightUint16x8 x y)  => (VUSHL8H x (VDUPHbcast [0] (VMOVHins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   338  (ShiftAllRightUint32x4 x y)  => (VUSHL4S x (VDUPSbcast [0] (VMOVSins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   339  (ShiftAllRightUint64x2 x y)  => (VUSHL2D x (VDUPDbcast [0] (VMOVDins [0] x (NEG <typ.Int64> (CSEL <typ.UInt64> [OpARM64LessThanU] y (MOVDconst [127]) (CMPconst [127] y)))))) // earlyMatchRule
   340  (ShiftLeftConstInt8x16 ...) => (VSHL16B ...) // pureVreg
   341  (VSHL16B [a] x) && a==0 => x // asmRule
   342  (ShiftLeftConstInt16x8 ...) => (VSHL8H ...) // pureVreg
   343  (VSHL8H [a] x) && a==0 => x // asmRule
   344  (ShiftLeftConstInt32x4 ...) => (VSHL4S ...) // pureVreg
   345  (VSHL4S [a] x) && a==0 => x // asmRule
   346  (ShiftLeftConstInt64x2 ...) => (VSHL2D ...) // pureVreg
   347  (VSHL2D [a] x) && a==0 => x // asmRule
   348  (ShiftLeftConstUint8x16 ...) => (VSHL16B ...) // pureVreg
   349  (ShiftLeftConstUint16x8 ...) => (VSHL8H ...) // pureVreg
   350  (ShiftLeftConstUint32x4 ...) => (VSHL4S ...) // pureVreg
   351  (ShiftLeftConstUint64x2 ...) => (VSHL2D ...) // pureVreg
   352  (ShiftLeftLoLongConstInt8x16 ...) => (VSSHLL16B ...) // pureVreg
   353  (ShiftLeftLoLongConstInt16x8 ...) => (VSSHLL8H ...) // pureVreg
   354  (ShiftLeftLoLongConstInt32x4 ...) => (VSSHLL4S ...) // pureVreg
   355  (ShiftLeftLoLongConstUint8x16 ...) => (VUSHLL16B ...) // pureVreg
   356  (ShiftLeftLoLongConstUint16x8 ...) => (VUSHLL8H ...) // pureVreg
   357  (ShiftLeftLoLongConstUint32x4 ...) => (VUSHLL4S ...) // pureVreg
   358  (ShiftLeftSaturatedConstInt8x16 ...) => (VSQSHL16Bconst ...) // pureVreg
   359  (VSQSHL16Bconst [a] x) && a==0 => x // asmRule
   360  (ShiftLeftSaturatedConstInt16x8 ...) => (VSQSHL8Hconst ...) // pureVreg
   361  (VSQSHL8Hconst [a] x) && a==0 => x // asmRule
   362  (ShiftLeftSaturatedConstInt32x4 ...) => (VSQSHL4Sconst ...) // pureVreg
   363  (VSQSHL4Sconst [a] x) && a==0 => x // asmRule
   364  (ShiftLeftSaturatedConstInt64x2 ...) => (VSQSHL2Dconst ...) // pureVreg
   365  (VSQSHL2Dconst [a] x) && a==0 => x // asmRule
   366  (ShiftLeftSaturatedConstUint8x16 ...) => (VUQSHL16Bconst ...) // pureVreg
   367  (VUQSHL16Bconst [a] x) && a==0 => x // asmRule
   368  (ShiftLeftSaturatedConstUint16x8 ...) => (VUQSHL8Hconst ...) // pureVreg
   369  (VUQSHL8Hconst [a] x) && a==0 => x // asmRule
   370  (ShiftLeftSaturatedConstUint32x4 ...) => (VUQSHL4Sconst ...) // pureVreg
   371  (VUQSHL4Sconst [a] x) && a==0 => x // asmRule
   372  (ShiftLeftSaturatedConstUint64x2 ...) => (VUQSHL2Dconst ...) // pureVreg
   373  (VUQSHL2Dconst [a] x) && a==0 => x // asmRule
   374  (ShiftRightConstInt8x16 ...) => (VSSHR16B ...) // pureVreg
   375  (VSSHR16B [a] x) && a==0 => x // asmRule
   376  (ShiftRightConstInt16x8 ...) => (VSSHR8H ...) // pureVreg
   377  (VSSHR8H [a] x) && a==0 => x // asmRule
   378  (ShiftRightConstInt32x4 ...) => (VSSHR4S ...) // pureVreg
   379  (VSSHR4S [a] x) && a==0 => x // asmRule
   380  (ShiftRightConstInt64x2 ...) => (VSSHR2D ...) // pureVreg
   381  (VSSHR2D [a] x) && a==0 => x // asmRule
   382  (ShiftRightConstUint8x16 ...) => (VUSHR16B ...) // pureVreg
   383  (VUSHR16B [a] x) && a==0 => x // asmRule
   384  (ShiftRightConstUint16x8 ...) => (VUSHR8H ...) // pureVreg
   385  (VUSHR8H [a] x) && a==0 => x // asmRule
   386  (ShiftRightConstUint32x4 ...) => (VUSHR4S ...) // pureVreg
   387  (VUSHR4S [a] x) && a==0 => x // asmRule
   388  (ShiftRightConstUint64x2 ...) => (VUSHR2D ...) // pureVreg
   389  (VUSHR2D [a] x) && a==0 => x // asmRule
   390  (ShiftRightNarrowConstUint16x8 ...) => (VSHRN8H ...) // pureVreg
   391  (VSHRN8H [0] x)  => (VXTN8H x) // argsMatchRule
   392  (ShiftRightNarrowConstUint32x4 ...) => (VSHRN4S ...) // pureVreg
   393  (VSHRN4S [0] x)  => (VXTN4S x) // argsMatchRule
   394  (ShiftRightNarrowConstUint64x2 ...) => (VSHRN2D ...) // pureVreg
   395  (VSHRN2D [0] x)  => (VXTN2D x) // argsMatchRule
   396  (ShiftSaturatedInt8x16 ...) => (VSQSHL16B ...) // pureVreg
   397  (ShiftSaturatedInt16x8 ...) => (VSQSHL8H ...) // pureVreg
   398  (ShiftSaturatedInt32x4 ...) => (VSQSHL4S ...) // pureVreg
   399  (ShiftSaturatedInt64x2 ...) => (VSQSHL2D ...) // pureVreg
   400  (ShiftSaturatedUint8x16 ...) => (VUQSHL16B ...) // pureVreg
   401  (ShiftSaturatedUint16x8 ...) => (VUQSHL8H ...) // pureVreg
   402  (ShiftSaturatedUint32x4 ...) => (VUQSHL4S ...) // pureVreg
   403  (ShiftSaturatedUint64x2 ...) => (VUQSHL2D ...) // pureVreg
   404  (SqrtFloat32x4 ...) => (VFSQRT4S ...) // pureVreg
   405  (SqrtFloat64x2 ...) => (VFSQRT2D ...) // pureVreg
   406  (SubFloat32x4 ...) => (VFSUB4S ...) // pureVreg
   407  (SubFloat64x2 ...) => (VFSUB2D ...) // pureVreg
   408  (SubInt8x16 ...) => (VSUB16B ...) // pureVreg
   409  (SubInt16x8 ...) => (VSUB8H ...) // pureVreg
   410  (SubInt32x4 ...) => (VSUB4S ...) // pureVreg
   411  (SubInt64x2 ...) => (VSUB2D ...) // pureVreg
   412  (SubUint8x16 ...) => (VSUB16B ...) // pureVreg
   413  (SubUint16x8 ...) => (VSUB8H ...) // pureVreg
   414  (SubUint32x4 ...) => (VSUB4S ...) // pureVreg
   415  (SubUint64x2 ...) => (VSUB2D ...) // pureVreg
   416  (SubSaturatedInt8x16 ...) => (VSQSUB16B ...) // pureVreg
   417  (SubSaturatedInt16x8 ...) => (VSQSUB8H ...) // pureVreg
   418  (SubSaturatedInt32x4 ...) => (VSQSUB4S ...) // pureVreg
   419  (SubSaturatedInt64x2 ...) => (VSQSUB2D ...) // pureVreg
   420  (SubSaturatedUint8x16 ...) => (VUQSUB16B ...) // pureVreg
   421  (SubSaturatedUint16x8 ...) => (VUQSUB8H ...) // pureVreg
   422  (SubSaturatedUint32x4 ...) => (VUQSUB4S ...) // pureVreg
   423  (SubSaturatedUint64x2 ...) => (VUQSUB2D ...) // pureVreg
   424  (TransposeEvenInt8x16 ...) => (VTRN116B ...) // pureVreg
   425  (TransposeEvenInt16x8 ...) => (VTRN18H ...) // pureVreg
   426  (TransposeEvenInt32x4 ...) => (VTRN14S ...) // pureVreg
   427  (TransposeEvenInt64x2 ...) => (VTRN12D ...) // pureVreg
   428  (TransposeEvenUint8x16 ...) => (VTRN116B ...) // pureVreg
   429  (TransposeEvenUint16x8 ...) => (VTRN18H ...) // pureVreg
   430  (TransposeEvenUint32x4 ...) => (VTRN14S ...) // pureVreg
   431  (TransposeEvenUint64x2 ...) => (VTRN12D ...) // pureVreg
   432  (TransposeOddInt8x16 ...) => (VTRN216B ...) // pureVreg
   433  (TransposeOddInt16x8 ...) => (VTRN28H ...) // pureVreg
   434  (TransposeOddInt32x4 ...) => (VTRN24S ...) // pureVreg
   435  (TransposeOddInt64x2 ...) => (VTRN22D ...) // pureVreg
   436  (TransposeOddUint8x16 ...) => (VTRN216B ...) // pureVreg
   437  (TransposeOddUint16x8 ...) => (VTRN28H ...) // pureVreg
   438  (TransposeOddUint32x4 ...) => (VTRN24S ...) // pureVreg
   439  (TransposeOddUint64x2 ...) => (VTRN22D ...) // pureVreg
   440  (TruncFloat32x4 ...) => (VFRINTZ4S ...) // pureVreg
   441  (TruncFloat64x2 ...) => (VFRINTZ2D ...) // pureVreg
   442  (TruncToInt8Int16x8 ...) => (VXTN8H ...) // pureVreg
   443  (TruncToInt16Int32x4 ...) => (VXTN4S ...) // pureVreg
   444  (TruncToInt32Int64x2 ...) => (VXTN2D ...) // pureVreg
   445  (TruncToUint8Uint16x8 ...) => (VXTN8H ...) // pureVreg
   446  (TruncToUint16Uint32x4 ...) => (VXTN4S ...) // pureVreg
   447  (TruncToUint32Uint64x2 ...) => (VXTN2D ...) // pureVreg
   448  (XorInt8x16 ...) => (VEOR16B ...) // pureVreg
   449  (XorInt16x8 ...) => (VEOR16B ...) // pureVreg
   450  (XorInt32x4 ...) => (VEOR16B ...) // pureVreg
   451  (XorInt64x2 ...) => (VEOR16B ...) // pureVreg
   452  (XorUint8x16 ...) => (VEOR16B ...) // pureVreg
   453  (XorUint16x8 ...) => (VEOR16B ...) // pureVreg
   454  (XorUint32x4 ...) => (VEOR16B ...) // pureVreg
   455  (XorUint64x2 ...) => (VEOR16B ...) // pureVreg
   456  (bitSelectInt8x16 ...) => (VBIT16B ...) // pureVreg
   457  (VBIT16B x y (VNOT16B mask))  => (VBIF16B x y mask) // argsMatchRule
   458  (bitSelectNotInt8x16 ...) => (VBIF16B ...) // pureVreg
   459  (VBIF16B x y (VNOT16B mask))  => (VBIT16B x y mask) // argsMatchRule
   460  (broadcast1To2Float64x2 x) => (VDUPDbcast [0] x) // pureVreg
   461  (broadcast1To2Int64x2 x) => (VDUPDbcast [0] x) // pureVreg
   462  (broadcast1To2Uint64x2 x) => (VDUPDbcast [0] x) // pureVreg
   463  (broadcast1To4Float32x4 x) => (VDUPSbcast [0] x) // pureVreg
   464  (broadcast1To4Int32x4 x) => (VDUPSbcast [0] x) // pureVreg
   465  (broadcast1To4Uint32x4 x) => (VDUPSbcast [0] x) // pureVreg
   466  (broadcast1To8Int16x8 x) => (VDUPHbcast [0] x) // pureVreg
   467  (broadcast1To8Uint16x8 x) => (VDUPHbcast [0] x) // pureVreg
   468  (broadcast1To16Int8x16 x) => (VDUPBbcast [0] x) // pureVreg
   469  (VDUPBbcast [i] (VMOVBins [j] _ (MOVDconst [c]))) && i == j && c>=-128 && c<=255 => (VMOVI16B [uint8(c)]) // argsMatchRule
   470  (broadcast1To16Uint8x16 x) => (VDUPBbcast [0] x) // pureVreg
   471  

View as plain text