!sum
- go: DotProductPairs
  asm: VPMADDWD
  in:
  - &int
    go: $t
    base: int
  - *int
  out:
  - &int2 # The elemBits are different
    go: $t2
    base: int
- go: DotProductPairsSaturated
  asm: VPMADDUBSW
  in:
  - &uint
    go: $t
    base: uint
    overwriteElementBits: 8
  - &int3
    go: $t3
    base: int
    overwriteElementBits: 8
  out:
  - *int2
# - go: DotProductBroadcast
#   asm: VDPP[SD]
#   in:
#   - &dpb_src
#     go: $t
#   - *dpb_src
#   - class: immediate
#     const: 127
#   out:
#   - *dpb_src
- go: AddDotProductPairs
  asm: "VPDPWSSD"
  in:
  - &pdpa_acc
    go: $t_acc
    base: int
    elemBits: 32
  - &pdpa_src1
    go: $t_src1
    base: int
    overwriteElementBits: 16
  - &pdpa_src2
    go: $t_src2
    base: int
    overwriteElementBits: 16
  out:
  - *pdpa_acc
- go: MulAdd
  asm: "VFMADD213PS|VFMADD213PD"
  in:
  - &fma_op
   go: $t
   base: float
  - *fma_op
  - *fma_op
  out:
  - *fma_op
- go: MulAddSub
  asm: "VFMADDSUB213PS|VFMADDSUB213PD"
  in:
  - *fma_op
  - *fma_op
  - *fma_op
  out:
  - *fma_op
- go: MulSubAdd
  asm: "VFMSUBADD213PS|VFMSUBADD213PD"
  in:
  - *fma_op
  - *fma_op
  - *fma_op
  out:
  - *fma_op
- go: SumAbsDiff
  asm: "VPSADBW"
  in:
  - go: $t
    base: uint
  - go: $t
    base: uint
  out:
  - go: $t2
    base: uint