blob: c1ea2061729c6d31e94653dc26799feff0501baf [file]
!sum
# Ints
- go: Equal
asm: "V?PCMPEQ[BWDQ]"
in:
- &any
go: $t
- *any
out:
- &anyvregToMask
go: $t
overwriteBase: int
overwriteClass: mask
- go: Greater
asm: "V?PCMPGT[BWDQ]"
in:
- &int
go: $t
base: int
- *int
out:
- *anyvregToMask
# 256-bit VCMPGTQ's output elemBits is marked 32-bit in the XED data, we
# believe this is an error, so add this definition to overwrite.
- go: Greater
asm: "VPCMPGTQ"
in:
- &int64
go: $t
base: int
elemBits: 64
- *int64
out:
- base: int
elemBits: 32
overwriteElementBits: 64
overwriteClass: mask
overwriteBase: int
- go: EqualMasked
asm: "V?PCMPEQ[BWDQ]"
in:
- class: mask
- *any
- *any
out:
- class: mask
- go: GreaterMasked
asm: "V?PCMPGT[BWDQ]"
in:
- class: mask
- *int
- *int
out:
- class: mask
# The const imm predicated compares after AVX512, please see categories.yaml
# for const imm specification.
- go: (Equal|Greater|Less|LessEqual|GreaterEqual|NotEqual)Masked
asm: "VPCMP[BWDQ]"
in:
- class: mask
- *int
- *int
- class: immediate
const: 0 # Just a placeholder, will be overwritten by const imm porting.
out:
- class: mask
- go: (Equal|Greater|Less|LessEqual|GreaterEqual|NotEqual)Masked
asm: "VPCMPU[BWDQ]"
in:
- class: mask
- &uint
go: $t
base: uint
- *uint
- class: immediate
const: 0
out:
- class: mask
# Floats
- go: Equal|Greater|Less|LessEqual|GreaterEqual|NotEqual|IsNan
asm: "VCMPP[SD]"
in:
- &float
go: $t
base: float
- *float
- class: immediate
const: 0
out:
- go: $t
overwriteBase: int
overwriteClass: mask
- go: (Equal|Greater|Less|LessEqual|GreaterEqual|NotEqual|IsNan)Masked
asm: "VCMPP[SD]"
in:
- class: mask
- *float
- *float
- class: immediate
const: 0
out:
- class: mask