blob: c0205a689975d79e322345926f4e5ffc96fb8b41 [file] [log] [blame]
!sum
# "Normal" multiplication is only available for floats.
# This only covers the single and double precision.
- go: Mul
asm: "VMULP[SD]"
in:
- &fp
go: $t
base: float
- *fp
out:
- *fp
# Integer multiplications.
# MulEvenWiden
# Dword only.
- go: MulEvenWiden
asm: "VPMULDQ"
in:
- &intNot64
go: $t
elemBits: 8|16|32
base: int
- *intNot64
out:
- &int2
go: $t2
base: int
- go: MulEvenWiden
asm: "VPMULUDQ"
in:
- &uintNot64
go: $t
elemBits: 8|16|32
base: uint
- *uintNot64
out:
- &uint2
go: $t2
base: uint
# MulHigh
# Word only.
- go: MulHigh
asm: "VPMULHW"
in:
- &int
go: $t
base: int
- *int
out:
- *int
- go: MulHigh
asm: "VPMULHUW"
in:
- &uint
go: $t
base: uint
- *uint
out:
- *uint
# MulLow
# signed and unsigned are the same for lower bits.
- go: Mul
asm: "VPMULL[WDQ]"
in:
- &any
go: $t
- *any
out:
- *any