...

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

Documentation: simd/archsimd/_gen/simdgen/ops/GaloisField

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

View as plain text