blob: 508939495448ef2f85dd69d86c9efff13358430c [file] [log] [blame]
Simon Pilgrima80cb1d2017-07-06 19:33:10 +00001; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE2-SSSE3,SSE2
3; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE2-SSSE3,SSSE3
4; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX12,AVX1
5; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX12,AVX2
6; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512
7
8define <2 x i1> @bitcast_i2_2i1(i2 zeroext %a0) {
9; SSE2-SSSE3-LABEL: bitcast_i2_2i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000010; SSE2-SSSE3: # %bb.0:
Francis Visoiu Mistrih9d7bb0c2017-11-28 17:15:09 +000011; SSE2-SSSE3-NEXT: # kill: %edi<def> %edi<kill> %rdi<def>
Simon Pilgrima705db92017-09-24 13:42:31 +000012; SSE2-SSSE3-NEXT: movq %rdi, %xmm0
13; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,1,0,1]
14; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [1,2]
15; SSE2-SSSE3-NEXT: pand %xmm0, %xmm1
16; SSE2-SSSE3-NEXT: pcmpeqd %xmm0, %xmm1
17; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,0,3,2]
18; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
19; SSE2-SSSE3-NEXT: psrlq $63, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000020; SSE2-SSSE3-NEXT: retq
21;
Simon Pilgrima705db92017-09-24 13:42:31 +000022; AVX1-LABEL: bitcast_i2_2i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000023; AVX1: # %bb.0:
Francis Visoiu Mistrih9d7bb0c2017-11-28 17:15:09 +000024; AVX1-NEXT: # kill: %edi<def> %edi<kill> %rdi<def>
Simon Pilgrima705db92017-09-24 13:42:31 +000025; AVX1-NEXT: vmovq %rdi, %xmm0
26; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
27; AVX1-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2]
28; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
29; AVX1-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0
30; AVX1-NEXT: vpsrlq $63, %xmm0, %xmm0
31; AVX1-NEXT: retq
32;
33; AVX2-LABEL: bitcast_i2_2i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000034; AVX2: # %bb.0:
Francis Visoiu Mistrih9d7bb0c2017-11-28 17:15:09 +000035; AVX2-NEXT: # kill: %edi<def> %edi<kill> %rdi<def>
Simon Pilgrima705db92017-09-24 13:42:31 +000036; AVX2-NEXT: vmovq %rdi, %xmm0
37; AVX2-NEXT: vpbroadcastq %xmm0, %xmm0
38; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2]
39; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
40; AVX2-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0
41; AVX2-NEXT: vpsrlq $63, %xmm0, %xmm0
42; AVX2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000043;
44; AVX512-LABEL: bitcast_i2_2i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000045; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000046; AVX512-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
47; AVX512-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
48; AVX512-NEXT: kmovd %eax, %k1
49; AVX512-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
Francis Visoiu Mistrih9d7bb0c2017-11-28 17:15:09 +000050; AVX512-NEXT: # kill: %xmm0<def> %xmm0<kill> %zmm0<kill>
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000051; AVX512-NEXT: vzeroupper
52; AVX512-NEXT: retq
53 %1 = bitcast i2 %a0 to <2 x i1>
54 ret <2 x i1> %1
55}
56
57define <4 x i1> @bitcast_i4_4i1(i4 zeroext %a0) {
58; SSE2-SSSE3-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000059; SSE2-SSSE3: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000060; SSE2-SSSE3-NEXT: movd %edi, %xmm0
61; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
62; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8]
63; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
64; SSE2-SSSE3-NEXT: pcmpeqd %xmm1, %xmm0
65; SSE2-SSSE3-NEXT: psrld $31, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000066; SSE2-SSSE3-NEXT: retq
67;
68; AVX1-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000069; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000070; AVX1-NEXT: vmovd %edi, %xmm0
71; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
72; AVX1-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8]
73; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
74; AVX1-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
75; AVX1-NEXT: vpsrld $31, %xmm0, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000076; AVX1-NEXT: retq
77;
78; AVX2-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000079; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000080; AVX2-NEXT: vmovd %edi, %xmm0
81; AVX2-NEXT: vpbroadcastd %xmm0, %xmm0
82; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8]
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000083; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
Simon Pilgrima705db92017-09-24 13:42:31 +000084; AVX2-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
85; AVX2-NEXT: vpsrld $31, %xmm0, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000086; AVX2-NEXT: retq
87;
88; AVX512-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000089; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000090; AVX512-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
91; AVX512-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
92; AVX512-NEXT: kmovd %eax, %k1
93; AVX512-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0
94; AVX512-NEXT: vmovdqa32 %ymm0, %ymm0 {%k1} {z}
Francis Visoiu Mistrih9d7bb0c2017-11-28 17:15:09 +000095; AVX512-NEXT: # kill: %xmm0<def> %xmm0<kill> %ymm0<kill>
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000096; AVX512-NEXT: vzeroupper
97; AVX512-NEXT: retq
98 %1 = bitcast i4 %a0 to <4 x i1>
99 ret <4 x i1> %1
100}
101
102define <8 x i1> @bitcast_i8_8i1(i8 zeroext %a0) {
103; SSE2-SSSE3-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000104; SSE2-SSSE3: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000105; SSE2-SSSE3-NEXT: movd %edi, %xmm0
106; SSE2-SSSE3-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
107; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
108; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128]
109; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
110; SSE2-SSSE3-NEXT: pcmpeqw %xmm1, %xmm0
111; SSE2-SSSE3-NEXT: psrlw $15, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000112; SSE2-SSSE3-NEXT: retq
113;
Simon Pilgrima705db92017-09-24 13:42:31 +0000114; AVX1-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000115; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000116; AVX1-NEXT: vmovd %edi, %xmm0
117; AVX1-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
118; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
119; AVX1-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128]
120; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
121; AVX1-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
122; AVX1-NEXT: vpsrlw $15, %xmm0, %xmm0
123; AVX1-NEXT: retq
124;
125; AVX2-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000126; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000127; AVX2-NEXT: vmovd %edi, %xmm0
128; AVX2-NEXT: vpbroadcastw %xmm0, %xmm0
129; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128]
130; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
131; AVX2-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
132; AVX2-NEXT: vpsrlw $15, %xmm0, %xmm0
133; AVX2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000134;
135; AVX512-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000136; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000137; AVX512-NEXT: kmovd %edi, %k0
138; AVX512-NEXT: vpmovm2w %k0, %xmm0
139; AVX512-NEXT: retq
140 %1 = bitcast i8 %a0 to <8 x i1>
141 ret <8 x i1> %1
142}
143
144define <16 x i1> @bitcast_i16_16i1(i16 zeroext %a0) {
Simon Pilgrima705db92017-09-24 13:42:31 +0000145; SSE2-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000146; SSE2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000147; SSE2-NEXT: movd %edi, %xmm0
148; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
149; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,1,1,4,5,6,7]
150; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
151; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
152; SSE2-NEXT: pand %xmm1, %xmm0
153; SSE2-NEXT: pcmpeqb %xmm1, %xmm0
154; SSE2-NEXT: psrlw $7, %xmm0
155; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
156; SSE2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000157;
Simon Pilgrima705db92017-09-24 13:42:31 +0000158; SSSE3-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000159; SSSE3: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000160; SSSE3-NEXT: movd %edi, %xmm0
161; SSSE3-NEXT: pshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]
162; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
163; SSSE3-NEXT: pand %xmm1, %xmm0
164; SSSE3-NEXT: pcmpeqb %xmm1, %xmm0
165; SSSE3-NEXT: psrlw $7, %xmm0
166; SSSE3-NEXT: pand {{.*}}(%rip), %xmm0
167; SSSE3-NEXT: retq
168;
169; AVX1-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000170; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000171; AVX1-NEXT: vmovd %edi, %xmm0
172; AVX1-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]
173; AVX1-NEXT: vmovddup {{.*#+}} xmm1 = mem[0,0]
174; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
175; AVX1-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
176; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
177; AVX1-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
178; AVX1-NEXT: retq
179;
180; AVX2-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000181; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000182; AVX2-NEXT: vmovd %edi, %xmm0
183; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]
184; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm1 = [9241421688590303745,9241421688590303745]
185; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
186; AVX2-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
187; AVX2-NEXT: vpsrlw $7, %xmm0, %xmm0
188; AVX2-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
189; AVX2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000190;
191; AVX512-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000192; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000193; AVX512-NEXT: kmovd %edi, %k0
194; AVX512-NEXT: vpmovm2b %k0, %xmm0
195; AVX512-NEXT: retq
196 %1 = bitcast i16 %a0 to <16 x i1>
197 ret <16 x i1> %1
198}
199
200define <32 x i1> @bitcast_i32_32i1(i32 %a0) {
201; SSE2-SSSE3-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000202; SSE2-SSSE3: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000203; SSE2-SSSE3-NEXT: movl %esi, (%rdi)
204; SSE2-SSSE3-NEXT: movq %rdi, %rax
205; SSE2-SSSE3-NEXT: retq
206;
207; AVX1-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000208; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000209; AVX1-NEXT: vmovd %edi, %xmm0
210; AVX1-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
211; AVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,0,1,1,4,5,6,7]
212; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
213; AVX1-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,2,3,3,4,5,6,7]
214; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000215; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
Simon Pilgrima705db92017-09-24 13:42:31 +0000216; AVX1-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
217; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm1
218; AVX1-NEXT: vpxor %xmm2, %xmm2, %xmm2
219; AVX1-NEXT: vpcmpeqb %xmm2, %xmm1, %xmm1
220; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3
221; AVX1-NEXT: vpxor %xmm3, %xmm1, %xmm1
222; AVX1-NEXT: vpsrlw $7, %xmm1, %xmm1
223; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
224; AVX1-NEXT: vpand %xmm4, %xmm1, %xmm1
225; AVX1-NEXT: vpcmpeqb %xmm2, %xmm0, %xmm0
226; AVX1-NEXT: vpxor %xmm3, %xmm0, %xmm0
227; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
228; AVX1-NEXT: vpand %xmm4, %xmm0, %xmm0
229; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000230; AVX1-NEXT: retq
231;
232; AVX2-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000233; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000234; AVX2-NEXT: vmovd %edi, %xmm0
235; AVX2-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
236; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,0,1,1,4,5,6,7]
237; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
238; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,2,3,3,4,5,6,7]
239; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000240; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
Simon Pilgrima705db92017-09-24 13:42:31 +0000241; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9241421688590303745,9241421688590303745,9241421688590303745,9241421688590303745]
242; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
243; AVX2-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm0
244; AVX2-NEXT: vpsrlw $7, %ymm0, %ymm0
245; AVX2-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000246; AVX2-NEXT: retq
247;
248; AVX512-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000249; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000250; AVX512-NEXT: kmovd %edi, %k0
251; AVX512-NEXT: vpmovm2b %k0, %ymm0
252; AVX512-NEXT: retq
253 %1 = bitcast i32 %a0 to <32 x i1>
254 ret <32 x i1> %1
255}
256
257define <64 x i1> @bitcast_i64_64i1(i64 %a0) {
258; SSE2-SSSE3-LABEL: bitcast_i64_64i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000259; SSE2-SSSE3: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000260; SSE2-SSSE3-NEXT: movq %rsi, (%rdi)
261; SSE2-SSSE3-NEXT: movq %rdi, %rax
262; SSE2-SSSE3-NEXT: retq
263;
264; AVX12-LABEL: bitcast_i64_64i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000265; AVX12: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000266; AVX12-NEXT: movq %rsi, (%rdi)
267; AVX12-NEXT: movq %rdi, %rax
268; AVX12-NEXT: retq
269;
270; AVX512-LABEL: bitcast_i64_64i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000271; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000272; AVX512-NEXT: kmovq %rdi, %k0
273; AVX512-NEXT: vpmovm2b %k0, %zmm0
274; AVX512-NEXT: retq
275 %1 = bitcast i64 %a0 to <64 x i1>
276 ret <64 x i1> %1
277}