| !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" | |
| documentation: !string |- | |
| // NAME performs a fused (x * y) + z. | |
| in: | |
| - &fma_op | |
| go: $t | |
| base: float | |
| - *fma_op | |
| - *fma_op | |
| out: | |
| - *fma_op | |
| - go: MulAddEvenSubOdd | |
| asm: "VFMSUBADD213PS|VFMSUBADD213PD" | |
| in: | |
| - *fma_op | |
| - *fma_op | |
| - *fma_op | |
| out: | |
| - *fma_op | |
| - go: MulAddOddSubEven | |
| asm: "VFMADDSUB213PS|VFMADDSUB213PD" | |
| in: | |
| - *fma_op | |
| - *fma_op | |
| - *fma_op | |
| out: | |
| - *fma_op | |
| - go: SumOf8AbsDiff | |
| asm: "VPSADBW" | |
| in: | |
| - go: $t | |
| base: uint | |
| - go: $t | |
| base: uint | |
| out: | |
| - base: uint | |
| overwriteElementBits: 64 |