blob: 6a8726b3a2ac270dd8d775e9bbfb10a2ac7faa08 [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:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000011; SSE2-SSSE3-NEXT: # kill: def $edi killed $edi def $rdi
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:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000024; AVX1-NEXT: # kill: def $edi killed $edi def $rdi
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:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000035; AVX2-NEXT: # kill: def $edi killed $edi def $rdi
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:
Craig Topper876ec0b2017-12-31 07:38:41 +000046; AVX512-NEXT: kmovd %edi, %k1
Craig Topper55cf8802017-12-28 19:46:11 +000047; AVX512-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
48; AVX512-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000049; AVX512-NEXT: retq
50 %1 = bitcast i2 %a0 to <2 x i1>
51 ret <2 x i1> %1
52}
53
54define <4 x i1> @bitcast_i4_4i1(i4 zeroext %a0) {
55; SSE2-SSSE3-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000056; SSE2-SSSE3: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000057; SSE2-SSSE3-NEXT: movd %edi, %xmm0
58; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
59; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8]
60; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
61; SSE2-SSSE3-NEXT: pcmpeqd %xmm1, %xmm0
62; SSE2-SSSE3-NEXT: psrld $31, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000063; SSE2-SSSE3-NEXT: retq
64;
65; AVX1-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000066; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000067; AVX1-NEXT: vmovd %edi, %xmm0
68; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
69; AVX1-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8]
70; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
71; AVX1-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
72; AVX1-NEXT: vpsrld $31, %xmm0, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000073; AVX1-NEXT: retq
74;
75; AVX2-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000076; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000077; AVX2-NEXT: vmovd %edi, %xmm0
78; AVX2-NEXT: vpbroadcastd %xmm0, %xmm0
79; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8]
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000080; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
Simon Pilgrima705db92017-09-24 13:42:31 +000081; AVX2-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
82; AVX2-NEXT: vpsrld $31, %xmm0, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000083; AVX2-NEXT: retq
84;
85; AVX512-LABEL: bitcast_i4_4i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000086; AVX512: # %bb.0:
Craig Topper876ec0b2017-12-31 07:38:41 +000087; AVX512-NEXT: kmovd %edi, %k1
Craig Topper55cf8802017-12-28 19:46:11 +000088; AVX512-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
89; AVX512-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
Simon Pilgrima80cb1d2017-07-06 19:33:10 +000090; AVX512-NEXT: retq
91 %1 = bitcast i4 %a0 to <4 x i1>
92 ret <4 x i1> %1
93}
94
95define <8 x i1> @bitcast_i8_8i1(i8 zeroext %a0) {
96; SSE2-SSSE3-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000097; SSE2-SSSE3: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +000098; SSE2-SSSE3-NEXT: movd %edi, %xmm0
Simon Pilgrimc7015962017-12-29 14:41:50 +000099; SSE2-SSSE3-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,2,3,4,5,6,7]
100; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
Simon Pilgrima705db92017-09-24 13:42:31 +0000101; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128]
102; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
103; SSE2-SSSE3-NEXT: pcmpeqw %xmm1, %xmm0
104; SSE2-SSSE3-NEXT: psrlw $15, %xmm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000105; SSE2-SSSE3-NEXT: retq
106;
Simon Pilgrima705db92017-09-24 13:42:31 +0000107; AVX1-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000108; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000109; AVX1-NEXT: vmovd %edi, %xmm0
Simon Pilgrimc7015962017-12-29 14:41:50 +0000110; AVX1-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,2,3,4,5,6,7]
111; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
Simon Pilgrima705db92017-09-24 13:42:31 +0000112; AVX1-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128]
113; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
114; AVX1-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
115; AVX1-NEXT: vpsrlw $15, %xmm0, %xmm0
116; AVX1-NEXT: retq
117;
118; AVX2-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000119; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000120; AVX2-NEXT: vmovd %edi, %xmm0
121; AVX2-NEXT: vpbroadcastw %xmm0, %xmm0
122; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128]
123; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
124; AVX2-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
125; AVX2-NEXT: vpsrlw $15, %xmm0, %xmm0
126; AVX2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000127;
128; AVX512-LABEL: bitcast_i8_8i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000129; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000130; AVX512-NEXT: kmovd %edi, %k0
131; AVX512-NEXT: vpmovm2w %k0, %xmm0
132; AVX512-NEXT: retq
133 %1 = bitcast i8 %a0 to <8 x i1>
134 ret <8 x i1> %1
135}
136
137define <16 x i1> @bitcast_i16_16i1(i16 zeroext %a0) {
Simon Pilgrima705db92017-09-24 13:42:31 +0000138; SSE2-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000139; SSE2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000140; SSE2-NEXT: movd %edi, %xmm0
141; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
142; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,1,1,4,5,6,7]
143; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
144; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
145; SSE2-NEXT: pand %xmm1, %xmm0
146; SSE2-NEXT: pcmpeqb %xmm1, %xmm0
147; SSE2-NEXT: psrlw $7, %xmm0
148; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
149; SSE2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000150;
Simon Pilgrima705db92017-09-24 13:42:31 +0000151; SSSE3-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000152; SSSE3: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000153; SSSE3-NEXT: movd %edi, %xmm0
154; SSSE3-NEXT: pshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]
155; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
156; SSSE3-NEXT: pand %xmm1, %xmm0
157; SSSE3-NEXT: pcmpeqb %xmm1, %xmm0
158; SSSE3-NEXT: psrlw $7, %xmm0
159; SSSE3-NEXT: pand {{.*}}(%rip), %xmm0
160; SSSE3-NEXT: retq
161;
162; AVX1-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000163; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000164; AVX1-NEXT: vmovd %edi, %xmm0
165; AVX1-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]
Craig Topper67177942018-10-15 01:51:53 +0000166; AVX1-NEXT: vmovddup {{.*#+}} xmm1 = [-1.7939930131212661E-307,-1.7939930131212661E-307]
167; AVX1-NEXT: # xmm1 = mem[0,0]
Simon Pilgrima705db92017-09-24 13:42:31 +0000168; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
169; AVX1-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
170; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
171; AVX1-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
172; AVX1-NEXT: retq
173;
174; AVX2-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000175; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000176; AVX2-NEXT: vmovd %edi, %xmm0
177; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]
178; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm1 = [9241421688590303745,9241421688590303745]
179; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
180; AVX2-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
181; AVX2-NEXT: vpsrlw $7, %xmm0, %xmm0
182; AVX2-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
183; AVX2-NEXT: retq
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000184;
185; AVX512-LABEL: bitcast_i16_16i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000186; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000187; AVX512-NEXT: kmovd %edi, %k0
188; AVX512-NEXT: vpmovm2b %k0, %xmm0
189; AVX512-NEXT: retq
190 %1 = bitcast i16 %a0 to <16 x i1>
191 ret <16 x i1> %1
192}
193
194define <32 x i1> @bitcast_i32_32i1(i32 %a0) {
195; SSE2-SSSE3-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000196; SSE2-SSSE3: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000197; SSE2-SSSE3-NEXT: movq %rdi, %rax
Simon Pilgrim2d0f20c2018-09-19 18:59:08 +0000198; SSE2-SSSE3-NEXT: movl %esi, (%rdi)
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000199; SSE2-SSSE3-NEXT: retq
200;
201; AVX1-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000202; AVX1: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000203; AVX1-NEXT: vmovd %edi, %xmm0
204; AVX1-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
205; AVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,0,1,1,4,5,6,7]
206; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
207; AVX1-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,2,3,3,4,5,6,7]
208; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000209; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
Simon Pilgrima705db92017-09-24 13:42:31 +0000210; AVX1-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
211; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm1
212; AVX1-NEXT: vpxor %xmm2, %xmm2, %xmm2
213; AVX1-NEXT: vpcmpeqb %xmm2, %xmm1, %xmm1
214; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3
215; AVX1-NEXT: vpxor %xmm3, %xmm1, %xmm1
216; AVX1-NEXT: vpsrlw $7, %xmm1, %xmm1
217; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
218; AVX1-NEXT: vpand %xmm4, %xmm1, %xmm1
219; AVX1-NEXT: vpcmpeqb %xmm2, %xmm0, %xmm0
220; AVX1-NEXT: vpxor %xmm3, %xmm0, %xmm0
221; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
222; AVX1-NEXT: vpand %xmm4, %xmm0, %xmm0
223; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000224; AVX1-NEXT: retq
225;
226; AVX2-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000227; AVX2: # %bb.0:
Simon Pilgrima705db92017-09-24 13:42:31 +0000228; AVX2-NEXT: vmovd %edi, %xmm0
Simon Pilgrimeb806d52018-10-21 17:07:50 +0000229; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
230; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19]
Simon Pilgrima705db92017-09-24 13:42:31 +0000231; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9241421688590303745,9241421688590303745,9241421688590303745,9241421688590303745]
232; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
233; AVX2-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm0
234; AVX2-NEXT: vpsrlw $7, %ymm0, %ymm0
235; AVX2-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000236; AVX2-NEXT: retq
237;
238; AVX512-LABEL: bitcast_i32_32i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000239; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000240; AVX512-NEXT: kmovd %edi, %k0
241; AVX512-NEXT: vpmovm2b %k0, %ymm0
242; AVX512-NEXT: retq
243 %1 = bitcast i32 %a0 to <32 x i1>
244 ret <32 x i1> %1
245}
246
247define <64 x i1> @bitcast_i64_64i1(i64 %a0) {
248; SSE2-SSSE3-LABEL: bitcast_i64_64i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000249; SSE2-SSSE3: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000250; SSE2-SSSE3-NEXT: movq %rdi, %rax
Simon Pilgrim2d0f20c2018-09-19 18:59:08 +0000251; SSE2-SSSE3-NEXT: movq %rsi, (%rdi)
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000252; SSE2-SSSE3-NEXT: retq
253;
254; AVX12-LABEL: bitcast_i64_64i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000255; AVX12: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000256; AVX12-NEXT: movq %rdi, %rax
Simon Pilgrim2d0f20c2018-09-19 18:59:08 +0000257; AVX12-NEXT: movq %rsi, (%rdi)
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000258; AVX12-NEXT: retq
259;
260; AVX512-LABEL: bitcast_i64_64i1:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +0000261; AVX512: # %bb.0:
Simon Pilgrima80cb1d2017-07-06 19:33:10 +0000262; AVX512-NEXT: kmovq %rdi, %k0
263; AVX512-NEXT: vpmovm2b %k0, %zmm0
264; AVX512-NEXT: retq
265 %1 = bitcast i64 %a0 to <64 x i1>
266 ret <64 x i1> %1
267}