Skip to content

Commit c6bf59f

Browse files
committed
[X86] Add test coverage for #109272
1 parent e64673d commit c6bf59f

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,18 @@ define <64 x i8> @combine_permi2q_pshufb_as_permi2d_mask(<8 x i64> %a0, <8 x i64
146146
%res2 = call <64 x i8> @llvm.x86.avx512.mask.pshuf.b.512(<64 x i8> %res1, <64 x i8> <i8 0, i8 1, i8 2, i8 3, i8 0, i8 1, i8 2, i8 3, i8 0, i8 1, i8 2, i8 3, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 4, i8 5, i8 6, i8 7, i8 4, i8 5, i8 6, i8 7, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 8, i8 9, i8 10, i8 11, i8 8, i8 9, i8 10, i8 11, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15, i8 12, i8 13, i8 14, i8 15, i8 12, i8 13, i8 14, i8 15, i8 12, i8 13, i8 14, i8 15>, <64 x i8> zeroinitializer, i64 %m)
147147
ret <64 x i8> %res2
148148
}
149+
150+
; PR109272
151+
define <64 x i8> @combine_vpermi2var_v64i8_with_mask(<64 x i8> %a0, <64 x i8> %a1, <64 x i8> %a2) {
152+
; CHECK-LABEL: combine_vpermi2var_v64i8_with_mask:
153+
; CHECK: # %bb.0:
154+
; CHECK-NEXT: vpermt2b %zmm2, %zmm1, %zmm0
155+
; CHECK-NEXT: vpmovb2m %zmm1, %k0
156+
; CHECK-NEXT: vpmovm2b %k0, %zmm1
157+
; CHECK-NEXT: vpandnq %zmm0, %zmm1, %zmm0
158+
; CHECK-NEXT: ret{{[l|q]}}
159+
%perm = tail call <64 x i8> @llvm.x86.avx512.vpermi2var.qi.512(<64 x i8> %a0, <64 x i8> %a1, <64 x i8> %a2)
160+
%cmp = icmp slt <64 x i8> %a1, zeroinitializer
161+
%sel = select <64 x i1> %cmp, <64 x i8> zeroinitializer, <64 x i8> %perm
162+
ret <64 x i8> %sel
163+
}

0 commit comments

Comments
 (0)