# Check 32bit AVX512VBMI2 instructions

	.text
vbmi2:
	vpcompressb	%zmm6, (%ecx){%k7}	 # AVX512VBMI2
	vpcompressb	%zmm6, -123456(%esp,%esi,8)	 # AVX512VBMI2
	vpcompressb	%zmm6, 126(%edx)	 # AVX512VBMI2 Disp8
	vpcompressb	%zmm5, %zmm6	 # AVX512VBMI2
	vpcompressb	%zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpcompressb	%zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2

	vpcompressw	%zmm6, (%ecx){%k7}	 # AVX512VBMI2
	vpcompressw	%zmm6, -123456(%esp,%esi,8)	 # AVX512VBMI2
	vpcompressw	%zmm6, 128(%edx)	 # AVX512VBMI2 Disp8
	vpcompressw	%zmm5, %zmm6	 # AVX512VBMI2
	vpcompressw	%zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpcompressw	%zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2

	vpexpandb	(%ecx), %zmm6{%k7}	 # AVX512VBMI2
	vpexpandb	(%ecx), %zmm6{%k7}{z}	 # AVX512VBMI2
	vpexpandb	-123456(%esp,%esi,8), %zmm6	 # AVX512VBMI2
	vpexpandb	126(%edx), %zmm6	 # AVX512VBMI2 Disp8
	vpexpandb	%zmm5, %zmm6	 # AVX512VBMI2
	vpexpandb	%zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpexpandb	%zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2

	vpexpandw	(%ecx), %zmm6{%k7}	 # AVX512VBMI2
	vpexpandw	(%ecx), %zmm6{%k7}{z}	 # AVX512VBMI2
	vpexpandw	-123456(%esp,%esi,8), %zmm6	 # AVX512VBMI2
	vpexpandw	128(%edx), %zmm6	 # AVX512VBMI2 Disp8
	vpexpandw	%zmm5, %zmm6	 # AVX512VBMI2
	vpexpandw	%zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpexpandw	%zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2

	vpshldvw	%zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshldvw	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshldvw	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshldvw	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshldvw	128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshldvd	%zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshldvd	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshldvd	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshldvd	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshldvd	128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshldvd	508(%edx){1to16}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshldvq	%zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshldvq	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshldvq	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshldvq	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshldvq	128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshldvq	1016(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshrdvw	%zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdvw	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshrdvw	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshrdvw	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdvw	128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshrdvd	%zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdvd	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshrdvd	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshrdvd	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdvd	128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshrdvd	508(%edx){1to16}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshrdvq	%zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdvq	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshrdvq	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshrdvq	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdvq	128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshrdvq	1016(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshldw	$0xab, %zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshldw	$0xab, %zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshldw	$123, %zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshldw	$123, -123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshldw	$123, 128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshldd	$0xab, %zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshldd	$0xab, %zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshldd	$123, %zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshldd	$123, -123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshldd	$123, 128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshldd	$123, 508(%edx){1to16}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshldq	$0xab, %zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshldq	$0xab, %zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshldq	$123, -123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshldq	$123, 128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshldq	$123, 1016(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshrdw	$0xab, %zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdw	$0xab, %zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshrdw	$0xab, %zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshrdw	$123, -123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdw	$123, 128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshrdd	$0xab, %zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdd	$0xab, %zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshrdd	$0xab, %zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshrdd	$123, -123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdd	$123, 128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshrdd	$123, 508(%edx){1to16}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	vpshrdq	$0xab, %zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI2
	vpshrdq	$0xab, %zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI2
	vpshrdq	$123, %zmm4, %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdq	$123, -123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI2
	vpshrdq	$123, 128(%edx), %zmm5, %zmm6	 # AVX512VBMI2 Disp8
	vpshrdq	$123, 1016(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI2 Disp8

	.intel_syntax noprefix
	vpcompressb	ZMMWORD PTR [ecx]{k7}, zmm6	 # AVX512VBMI2
	vpcompressb	ZMMWORD PTR [esp+esi*8-123456], zmm6	 # AVX512VBMI2
	vpcompressb	ZMMWORD PTR [edx+126], zmm6	 # AVX512VBMI2 Disp8
	vpcompressb	zmm6, zmm5	 # AVX512VBMI2
	vpcompressb	zmm6{k7}, zmm5	 # AVX512VBMI2
	vpcompressb	zmm6{k7}{z}, zmm5	 # AVX512VBMI2

	vpcompressw	ZMMWORD PTR [ecx]{k7}, zmm6	 # AVX512VBMI2
	vpcompressw	ZMMWORD PTR [esp+esi*8-123456], zmm6	 # AVX512VBMI2
	vpcompressw	ZMMWORD PTR [edx+128], zmm6	 # AVX512VBMI2 Disp8
	vpcompressw	zmm6, zmm5	 # AVX512VBMI2
	vpcompressw	zmm6{k7}, zmm5	 # AVX512VBMI2
	vpcompressw	zmm6{k7}{z}, zmm5	 # AVX512VBMI2

	vpexpandb	zmm6{k7}, ZMMWORD PTR [ecx]	 # AVX512VBMI2
	vpexpandb	zmm6{k7}{z}, ZMMWORD PTR [ecx]	 # AVX512VBMI2
	vpexpandb	zmm6, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpexpandb	zmm6, ZMMWORD PTR [edx+126]	 # AVX512VBMI2 Disp8
	vpexpandb	zmm6, zmm5	 # AVX512VBMI2
	vpexpandb	zmm6{k7}, zmm5	 # AVX512VBMI2
	vpexpandb	zmm6{k7}{z}, zmm5	 # AVX512VBMI2

	vpexpandw	zmm6{k7}, ZMMWORD PTR [ecx]	 # AVX512VBMI2
	vpexpandw	zmm6{k7}{z}, ZMMWORD PTR [ecx]	 # AVX512VBMI2
	vpexpandw	zmm6, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpexpandw	zmm6, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8
	vpexpandw	zmm6, zmm5	 # AVX512VBMI2
	vpexpandw	zmm6{k7}, zmm5	 # AVX512VBMI2
	vpexpandw	zmm6{k7}{z}, zmm5	 # AVX512VBMI2

	vpshldvw	zmm6, zmm5, zmm4	 # AVX512VBMI2
	vpshldvw	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI2
	vpshldvw	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI2
	vpshldvw	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpshldvw	zmm6, zmm5, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8

	vpshldvd	zmm6, zmm5, zmm4	 # AVX512VBMI2
	vpshldvd	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI2
	vpshldvd	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI2
	vpshldvd	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpshldvd	zmm6, zmm5, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8
	vpshldvd	zmm6, zmm5, [edx+508]{1to16}	 # AVX512VBMI2 Disp8

	vpshldvq	zmm6, zmm5, zmm4	 # AVX512VBMI2
	vpshldvq	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI2
	vpshldvq	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI2
	vpshldvq	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpshldvq	zmm6, zmm5, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8
	vpshldvq	zmm6, zmm5, [edx+1016]{1to8}	 # AVX512VBMI2 Disp8

	vpshrdvw	zmm6, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvw	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvw	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvw	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpshrdvw	zmm6, zmm5, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8

	vpshrdvd	zmm6, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvd	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvd	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvd	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpshrdvd	zmm6, zmm5, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8
	vpshrdvd	zmm6, zmm5, [edx+508]{1to16}	 # AVX512VBMI2 Disp8

	vpshrdvq	zmm6, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvq	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvq	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI2
	vpshrdvq	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI2
	vpshrdvq	zmm6, zmm5, ZMMWORD PTR [edx+128]	 # AVX512VBMI2 Disp8
	vpshrdvq	zmm6, zmm5, [edx+1016]{1to8}	 # AVX512VBMI2 Disp8

	vpshldw	zmm6, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldw	zmm6{k7}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldw	zmm6{k7}{z}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldw	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456], 123	 # AVX512VBMI2
	vpshldw	zmm6, zmm5, ZMMWORD PTR [edx+128], 123	 # AVX512VBMI2 Disp8

	vpshldd	zmm6, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldd	zmm6{k7}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldd	zmm6{k7}{z}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldd	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456], 123	 # AVX512VBMI2
	vpshldd	zmm6, zmm5, ZMMWORD PTR [edx+128], 123	 # AVX512VBMI2 Disp8
	vpshldd	zmm6, zmm5, [edx+508]{1to16}, 123	 # AVX512VBMI2 Disp8

	vpshldq	zmm6, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldq	zmm6{k7}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldq	zmm6{k7}{z}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshldq	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456], 123	 # AVX512VBMI2
	vpshldq	zmm6, zmm5, ZMMWORD PTR [edx+128], 123	 # AVX512VBMI2 Disp8
	vpshldq	zmm6, zmm5, [edx+1016]{1to8}, 123	 # AVX512VBMI2 Disp8

	vpshrdw	zmm6, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdw	zmm6{k7}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdw	zmm6{k7}{z}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdw	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456], 123	 # AVX512VBMI2
	vpshrdw	zmm6, zmm5, ZMMWORD PTR [edx+128], 123	 # AVX512VBMI2 Disp8

	vpshrdd	zmm6, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdd	zmm6{k7}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdd	zmm6{k7}{z}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdd	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456], 123	 # AVX512VBMI2
	vpshrdd	zmm6, zmm5, ZMMWORD PTR [edx+128], 123	 # AVX512VBMI2 Disp8
	vpshrdd	zmm6, zmm5, [edx+508]{1to16}, 123	 # AVX512VBMI2 Disp8

	vpshrdq	zmm6, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdq	zmm6{k7}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdq	zmm6{k7}{z}, zmm5, zmm4, 0xab	 # AVX512VBMI2
	vpshrdq	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456], 123	 # AVX512VBMI2
	vpshrdq	zmm6, zmm5, ZMMWORD PTR [edx+128], 123	 # AVX512VBMI2 Disp8
	vpshrdq	zmm6, zmm5, [edx+1016]{1to8}, 123	 # AVX512VBMI2 Disp8
