Skip to content

[X86] missed CompressEVEX opportunity #216774

Description

@Andarwinux

noticed from #216716

https://godbolt.org/z/s5vfPcP5c

define i16 @cmp_sge_v16i8(<16 x i8> %x) {
  %c = icmp sge <16 x i8> %x, splat (i8 0)
  %r = bitcast <16 x i1> %c to i16
  ret i16 %r
}


define i16 @cmp_sgt_neg1_v16i8(<16 x i8> %x) {
  %c = icmp sgt <16 x i8> %x, splat (i8 -1)
  %r = bitcast <16 x i1> %c to i16
  ret i16 %r
}

avx:

cmp_sge_v16i8: # @cmp_sge_v16i8
  vpmovmskb %xmm0, %eax
  notl %eax
  retq
cmp_sgt_neg1_v16i8: # @cmp_sgt_neg1_v16i8
  vpmovmskb %xmm0, %eax
  notl %eax
  retq

avx512:

cmp_sge_v16i8: # @cmp_sge_v16i8
  vpxor %xmm1, %xmm1, %xmm1
  vpcmpnltb %xmm1, %xmm0, %k0
  kmovd %k0, %eax
  retq
cmp_sgt_neg1_v16i8: # @cmp_sgt_neg1_v16i8
  vpcmpeqd %xmm1, %xmm1, %xmm1
  vpcmpgtb %xmm1, %xmm0, %k0
  kmovd %k0, %eax
  retq

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions