Text file src/simd/archsimd/_gen/simdgen/ops/GaloisField/go.yaml

     1  !sum
     2  - go: GaloisFieldAffineTransform
     3    asm: VGF2P8AFFINEQB
     4    operandOrder: 2I # 2nd operand, then immediate
     5    in: &AffineArgs
     6    - &uint8
     7      go: $t
     8      base: uint
     9    - &uint8x8
    10      go: $t2
    11      base: uint
    12    - &pureImmVar
    13      class: immediate
    14      immOffset: 0
    15      name: b
    16    out:
    17    - *uint8
    18  
    19  - go: GaloisFieldAffineTransformInverse
    20    asm: VGF2P8AFFINEINVQB
    21    operandOrder: 2I # 2nd operand, then immediate
    22    in: *AffineArgs
    23    out:
    24    - *uint8
    25  
    26  - go: GaloisFieldMul
    27    asm: VGF2P8MULB
    28    in:
    29    - *uint8
    30    - *uint8
    31    out:
    32    - *uint8
    33  
    34  - go: carrylessMultiply
    35    documentation: !string |-
    36      // NAME computes one of four possible Galois polynomial
    37      // products of selected high and low halves of x and y,
    38      // depending on the value of xyHiLo, returning the 128-bit
    39      // product in the concatenated two elements of the result.
    40      // Bit 0 selects the low (0) or high (1) element of x and
    41      // bit 4 selects the low (0x00) or high (0x10) element of y.
    42    asm: V?PCLMULQDQ
    43    in:
    44    - go: Uint64x2
    45    - go: Uint64x2
    46    - class: immediate
    47      immOffset: 0
    48      name: xyHiLo
    49    out:
    50    - go: Uint64x2
    51      overwriteElementBits: 64
    52    hideMaskMethods: true
    53  
    54  - go: carrylessMultiply
    55    documentation: !string |-
    56      // NAME computes one of two possible Galois polynomial
    57      // products of selected high and low halves of each of the two
    58      // 128-bit lanes of x and y, depending on the value of xyHiLo,
    59      // and returns the four 128-bit products in the result's lanes.
    60      // Bit 0 selects the low (0) or high (1) elements of x's lanes and
    61      // bit 4 selects the low (0x00) or high (0x10) elements of y's lanes.
    62    asm: V?PCLMULQDQ
    63    in:
    64    - go: Uint64x4
    65    - go: Uint64x4
    66    - class: immediate
    67      immOffset: 0
    68      name: xyHiLo
    69    out:
    70    - go: Uint64x4
    71      overwriteElementBits: 64
    72    hideMaskMethods: true
    73  
    74  - go: carrylessMultiply
    75    documentation: !string |-
    76      // NAME computes one of four possible Galois polynomial
    77      // products of selected high and low halves of each of the four
    78      // 128-bit lanes of x and y, depending on the value of xyHiLo,
    79      // and returns the four 128-bit products in the result's lanes.
    80      // Bit 0 selects the low (0) or high (1) elements of x's lanes and
    81      // bit 4 selects the low (0x00) or high (0x10) elements of y's lanes.
    82    asm: V?PCLMULQDQ
    83    in:
    84    - go: Uint64x8
    85    - go: Uint64x8
    86    - class: immediate
    87      immOffset: 0
    88      name: xyHiLo
    89    out:
    90    - go: Uint64x8
    91      overwriteElementBits: 64
    92    hideMaskMethods: true
    93  

View as plain text