...
Run Format

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

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

     1!sum
     2# "Normal" multiplication is only available for floats.
     3# This only covers the single and double precision.
     4- go: Mul
     5  asm: "VMULP[SD]"
     6  in:
     7  - &fp
     8    go: $t
     9    base: float
    10  - *fp
    11  out:
    12  - *fp
    13
    14# Integer multiplications.
    15
    16# MulEvenWiden
    17# Dword only.
    18- go: MulEvenWiden
    19  asm: "VPMULDQ"
    20  in:
    21  - &intNot64
    22    go: $t
    23    elemBits: 8|16|32
    24    base: int
    25  - *intNot64
    26  out:
    27  - &int2
    28    go: $t2
    29    base: int
    30- go: MulEvenWiden
    31  asm: "VPMULUDQ"
    32  in:
    33  - &uintNot64
    34    go: $t
    35    elemBits: 8|16|32
    36    base: uint
    37  - *uintNot64
    38  out:
    39  - &uint2
    40    go: $t2
    41    base: uint
    42
    43# MulHigh
    44# Word only.
    45- go: MulHigh
    46  asm: "VPMULHW"
    47  in:
    48  - &int
    49    go: $t
    50    base: int
    51  - *int
    52  out:
    53  - *int
    54- go: MulHigh
    55  asm: "VPMULHUW"
    56  in:
    57  - &uint
    58    go: $t
    59    base: uint
    60  - *uint
    61  out:
    62  - *uint
    63
    64# MulLow
    65# signed and unsigned are the same for lower bits.
    66- go: Mul
    67  asm: "VPMULL[WDQ]"
    68  in:
    69  - &any
    70    go: $t
    71  - *any
    72  out:
    73  - *any

View as plain text