Text file src/simd/_gen/simdgen/ops/MLOps/go.yaml

     1  !sum
     2  - go: DotProductPairs
     3    asm: VPMADDWD
     4    in:
     5    - &int
     6      go: $t
     7      base: int
     8    - *int
     9    out:
    10    - &int2 # The elemBits are different
    11      go: $t2
    12      base: int
    13  - go: DotProductPairsSaturated
    14    asm: VPMADDUBSW
    15    in:
    16    - &uint
    17      go: $t
    18      base: uint
    19      overwriteElementBits: 8
    20    - &int3
    21      go: $t3
    22      base: int
    23      overwriteElementBits: 8
    24    out:
    25    - *int2
    26  # - go: DotProductBroadcast
    27  #   asm: VDPP[SD]
    28  #   in:
    29  #   - &dpb_src
    30  #     go: $t
    31  #   - *dpb_src
    32  #   - class: immediate
    33  #     const: 127
    34  #   out:
    35  #   - *dpb_src
    36  - go: DotProductQuadruple
    37    asm: "VPDPBUSD"
    38    operandOrder: "31Zero3" # switch operand 3 and 1, and make 3 always 0
    39    in:
    40    - &qdpa_acc
    41      go: $t_acc
    42      base: int
    43      elemBits: 32
    44    - &qdpa_src1
    45      go: $t_src1
    46      base: uint
    47      overwriteElementBits: 8
    48    - &qdpa_src2
    49      go: $t_src2
    50      base: int
    51      overwriteElementBits: 8
    52    out:
    53    - *qdpa_acc
    54  - go: DotProductQuadrupleSaturated
    55    asm: "VPDPBUSDS"
    56    operandOrder: "31Zero3" # switch operand 3 and 1, and make 3 always 0
    57    in:
    58    - *qdpa_acc
    59    - *qdpa_src1
    60    - *qdpa_src2
    61    out:
    62    - *qdpa_acc
    63  - go: AddDotProductPairs
    64    asm: "VPDPWSSD"
    65    in:
    66    - &pdpa_acc
    67      go: $t_acc
    68      base: int
    69      elemBits: 32
    70    - &pdpa_src1
    71      go: $t_src1
    72      base: int
    73      overwriteElementBits: 16
    74    - &pdpa_src2
    75      go: $t_src2
    76      base: int
    77      overwriteElementBits: 16
    78    out:
    79    - *pdpa_acc
    80  - go: MulAdd
    81    asm: "VFMADD213PS|VFMADD213PD"
    82    in:
    83    - &fma_op
    84     go: $t
    85     base: float
    86    - *fma_op
    87    - *fma_op
    88    out:
    89    - *fma_op
    90  - go: MulAddSub
    91    asm: "VFMADDSUB213PS|VFMADDSUB213PD"
    92    in:
    93    - *fma_op
    94    - *fma_op
    95    - *fma_op
    96    out:
    97    - *fma_op
    98  - go: MulSubAdd
    99    asm: "VFMSUBADD213PS|VFMSUBADD213PD"
   100    in:
   101    - *fma_op
   102    - *fma_op
   103    - *fma_op
   104    out:
   105    - *fma_op
   106  - go: SumAbsDiff
   107    asm: "VPSADBW"
   108    in:
   109    - go: $t
   110      base: uint
   111    - go: $t
   112      base: uint
   113    out:
   114    - go: $t2
   115      base: uint

View as plain text