Text file src/simd/_gen/simdgen/ops/ShiftRotate/categories.yaml

     1  !sum
     2  - go: ShiftAllLeft
     3    nameAndSizeCheck: true
     4    specialLower: sftimm
     5    commutative: false
     6    documentation: !string |-
     7      // NAME shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
     8  - go: ShiftAllRight
     9    signed: false
    10    nameAndSizeCheck: true
    11    specialLower: sftimm
    12    commutative: false
    13    documentation: !string |-
    14      // NAME shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
    15  - go: ShiftAllRight
    16    signed: true
    17    specialLower: sftimm
    18    nameAndSizeCheck: true
    19    commutative: false
    20    documentation: !string |-
    21      // NAME shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
    22  - go: shiftAllLeftConst # no APIs, only ssa ops.
    23    noTypes: "true"
    24    noGenericOps: "true"
    25    SSAVariant: "const" # to avoid its name colliding with reg version of this instruction, amend this to its ssa op name.
    26    nameAndSizeCheck: true
    27    commutative: false
    28  - go: shiftAllRightConst # no APIs, only ssa ops.
    29    noTypes: "true"
    30    noGenericOps: "true"
    31    SSAVariant: "const"
    32    signed: false
    33    nameAndSizeCheck: true
    34    commutative: false
    35  - go: shiftAllRightConst # no APIs, only ssa ops.
    36    noTypes: "true"
    37    noGenericOps: "true"
    38    SSAVariant: "const"
    39    signed: true
    40    nameAndSizeCheck: true
    41    commutative: false
    42  
    43  - go: ShiftLeft
    44    nameAndSizeCheck: true
    45    commutative: false
    46    documentation: !string |-
    47      // NAME shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
    48  - go: ShiftRight
    49    signed: false
    50    nameAndSizeCheck: true
    51    commutative: false
    52    documentation: !string |-
    53      // NAME shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
    54  - go: ShiftRight
    55    signed: true
    56    nameAndSizeCheck: true
    57    commutative: false
    58    documentation: !string |-
    59      // NAME shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
    60  - go: RotateAllLeft
    61    nameAndSizeCheck: true
    62    commutative: false
    63    documentation: !string |-
    64      // NAME rotates each element to the left by the number of bits specified by the immediate.
    65  - go: RotateLeft
    66    nameAndSizeCheck: true
    67    commutative: false
    68    documentation: !string |-
    69      // NAME rotates each element in x to the left by the number of bits specified by y's corresponding elements.
    70  - go: RotateAllRight
    71    nameAndSizeCheck: true
    72    commutative: false
    73    documentation: !string |-
    74      // NAME rotates each element to the right by the number of bits specified by the immediate.
    75  - go: RotateRight
    76    nameAndSizeCheck: true
    77    commutative: false
    78    documentation: !string |-
    79      // NAME rotates each element in x to the right by the number of bits specified by y's corresponding elements.
    80  - go: ShiftAllLeftConcat
    81    nameAndSizeCheck: true
    82    commutative: false
    83    documentation: !string |-
    84      // NAME shifts each element of x to the left by the number of bits specified by the
    85      // immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
    86  - go: ShiftAllRightConcat
    87    nameAndSizeCheck: true
    88    commutative: false
    89    documentation: !string |-
    90      // NAME shifts each element of x to the right by the number of bits specified by the
    91      // immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
    92  - go: ShiftLeftConcat
    93    nameAndSizeCheck: true
    94    commutative: false
    95    documentation: !string |-
    96      // NAME shifts each element of x to the left by the number of bits specified by the
    97      // corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
    98  - go: ShiftRightConcat
    99    nameAndSizeCheck: true
   100    commutative: false
   101    documentation: !string |-
   102      // NAME shifts each element of x to the right by the number of bits specified by the
   103      // corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
   104  

View as plain text