...
Run Format

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

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

     1!sum
     2# Average (unsigned byte, unsigned word)
     3# Instructions: VPAVGB, VPAVGW
     4- go: Average
     5  asm: "VPAVG[BW]" # Matches VPAVGB (byte) and VPAVGW (word)
     6  in:
     7  - &uint_t # $t will be Uint8xN for VPAVGB, Uint16xN for VPAVGW
     8    go: $t
     9    base: uint
    10  - *uint_t
    11  out:
    12  - *uint_t
    13
    14# Absolute Value (signed byte, word, dword, qword)
    15# Instructions: VPABSB, VPABSW, VPABSD, VPABSQ
    16- go: Abs
    17  asm: "VPABS[BWDQ]" # Matches VPABSB, VPABSW, VPABSD, VPABSQ
    18  in:
    19  - &int_t # $t will be Int8xN, Int16xN, Int32xN, Int64xN
    20    go: $t
    21    base: int
    22  out:
    23  - *int_t # Output is magnitude, fits in the same signed type
    24
    25# Sign Operation (signed byte, word, dword)
    26# Applies sign of second operand to the first.
    27# Instructions: VPSIGNB, VPSIGNW, VPSIGND
    28- go: CopySign
    29  asm: "VPSIGN[BWD]" # Matches VPSIGNB, VPSIGNW, VPSIGND
    30  in:
    31  - *int_t # value to apply sign to
    32  - *int_t # value from which to take the sign
    33  out:
    34  - *int_t
    35
    36# Population Count (count set bits in each element)
    37# Instructions: VPOPCNTB, VPOPCNTW (AVX512_BITALG)
    38#               VPOPCNTD, VPOPCNTQ (AVX512_VPOPCNTDQ)
    39- go: OnesCount
    40  asm: "VPOPCNT[BWDQ]"
    41  in:
    42  - &any
    43    go: $t
    44  out:
    45  - *any

View as plain text