xref: /aosp_15_r20/external/llvm/test/Analysis/CostModel/X86/sitofp.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+sse2 -cost-model -analyze < %s | FileCheck --check-prefix=SSE --check-prefix=SSE2 %s
2*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx  -cost-model -analyze < %s | FileCheck --check-prefix=AVX --check-prefix=AVX1 %s
3*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx2 -cost-model -analyze < %s | FileCheck --check-prefix=AVX --check-prefix=AVX2 %s
4*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx512f -cost-model -analyze < %s | FileCheck --check-prefix=AVX512F %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @sitofpv2i8v2double(<2 x i8> %a) {
7*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i8v2double
8*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 20 {{.*}} sitofp
9*9880d681SAndroid Build Coastguard Worker  ;
10*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i8v2double
11*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
12*9880d681SAndroid Build Coastguard Worker  ;
13*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i8v2double
14*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
15*9880d681SAndroid Build Coastguard Worker  ;
16*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i8v2double
17*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
18*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i8> %a to <2 x double>
19*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %1
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @sitofpv4i8v4double(<4 x i8> %a) {
23*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i8v4double
24*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 40 {{.*}} sitofp
25*9880d681SAndroid Build Coastguard Worker  ;
26*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i8v4double
27*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 3 {{.*}} sitofp
28*9880d681SAndroid Build Coastguard Worker  ;
29*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i8v4double
30*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 3 {{.*}} sitofp
31*9880d681SAndroid Build Coastguard Worker  ;
32*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i8v4double
33*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
34*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i8> %a to <4 x double>
35*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %1
36*9880d681SAndroid Build Coastguard Worker}
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @sitofpv8i8v8double(<8 x i8> %a) {
39*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i8v8double
40*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 80 {{.*}} sitofp
41*9880d681SAndroid Build Coastguard Worker  ;
42*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i8v8double
43*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 7 {{.*}} sitofp
44*9880d681SAndroid Build Coastguard Worker  ;
45*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i8v8double
46*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 7 {{.*}} sitofp
47*9880d681SAndroid Build Coastguard Worker  ;
48*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i8v8double
49*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 2 {{.*}} sitofp
50*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i8> %a to <8 x double>
51*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %1
52*9880d681SAndroid Build Coastguard Worker}
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @sitofpv16i8v16double(<16 x i8> %a) {
55*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i8v16double
56*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 160 {{.*}} sitofp
57*9880d681SAndroid Build Coastguard Worker  ;
58*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i8v16double
59*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 15 {{.*}} sitofp
60*9880d681SAndroid Build Coastguard Worker  ;
61*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i8v16double
62*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 15 {{.*}} sitofp
63*9880d681SAndroid Build Coastguard Worker  ;
64*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i8v16double
65*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 5 {{.*}} sitofp
66*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i8> %a to <16 x double>
67*9880d681SAndroid Build Coastguard Worker  ret <16 x double> %1
68*9880d681SAndroid Build Coastguard Worker}
69*9880d681SAndroid Build Coastguard Worker
70*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @sitofpv32i8v32double(<32 x i8> %a) {
71*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i8v32double
72*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 320 {{.*}} sitofp
73*9880d681SAndroid Build Coastguard Worker  ;
74*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i8v32double
75*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 31 {{.*}} sitofp
76*9880d681SAndroid Build Coastguard Worker  ;
77*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i8v32double
78*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 31 {{.*}} sitofp
79*9880d681SAndroid Build Coastguard Worker  ;
80*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i8v32double
81*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 11 {{.*}} sitofp
82*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i8> %a to <32 x double>
83*9880d681SAndroid Build Coastguard Worker  ret <32 x double> %1
84*9880d681SAndroid Build Coastguard Worker}
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @sitofpv2i16v2double(<2 x i16> %a) {
87*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i16v2double
88*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 20 {{.*}} sitofp
89*9880d681SAndroid Build Coastguard Worker  ;
90*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i16v2double
91*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
92*9880d681SAndroid Build Coastguard Worker  ;
93*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i16v2double
94*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
95*9880d681SAndroid Build Coastguard Worker  ;
96*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i16v2double
97*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
98*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i16> %a to <2 x double>
99*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %1
100*9880d681SAndroid Build Coastguard Worker}
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @sitofpv4i16v4double(<4 x i16> %a) {
103*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i16v4double
104*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 40 {{.*}} sitofp
105*9880d681SAndroid Build Coastguard Worker  ;
106*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i16v4double
107*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 3 {{.*}} sitofp
108*9880d681SAndroid Build Coastguard Worker  ;
109*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i16v4double
110*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 3 {{.*}} sitofp
111*9880d681SAndroid Build Coastguard Worker  ;
112*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i16v4double
113*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
114*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i16> %a to <4 x double>
115*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %1
116*9880d681SAndroid Build Coastguard Worker}
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @sitofpv8i16v8double(<8 x i16> %a) {
119*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i16v8double
120*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 80 {{.*}} sitofp
121*9880d681SAndroid Build Coastguard Worker  ;
122*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i16v8double
123*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 7 {{.*}} sitofp
124*9880d681SAndroid Build Coastguard Worker  ;
125*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i16v8double
126*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 7 {{.*}} sitofp
127*9880d681SAndroid Build Coastguard Worker  ;
128*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i16v8double
129*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 2 {{.*}} sitofp
130*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i16> %a to <8 x double>
131*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %1
132*9880d681SAndroid Build Coastguard Worker}
133*9880d681SAndroid Build Coastguard Worker
134*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @sitofpv16i16v16double(<16 x i16> %a) {
135*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i16v16double
136*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 160 {{.*}} sitofp
137*9880d681SAndroid Build Coastguard Worker  ;
138*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i16v16double
139*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 15 {{.*}} sitofp
140*9880d681SAndroid Build Coastguard Worker  ;
141*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i16v16double
142*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 15 {{.*}} sitofp
143*9880d681SAndroid Build Coastguard Worker  ;
144*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i16v16double
145*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 5 {{.*}} sitofp
146*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i16> %a to <16 x double>
147*9880d681SAndroid Build Coastguard Worker  ret <16 x double> %1
148*9880d681SAndroid Build Coastguard Worker}
149*9880d681SAndroid Build Coastguard Worker
150*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @sitofpv32i16v32double(<32 x i16> %a) {
151*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i16v32double
152*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 320 {{.*}} sitofp
153*9880d681SAndroid Build Coastguard Worker  ;
154*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i16v32double
155*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 31 {{.*}} sitofp
156*9880d681SAndroid Build Coastguard Worker  ;
157*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i16v32double
158*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 31 {{.*}} sitofp
159*9880d681SAndroid Build Coastguard Worker  ;
160*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i16v32double
161*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 11 {{.*}} sitofp
162*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i16> %a to <32 x double>
163*9880d681SAndroid Build Coastguard Worker  ret <32 x double> %1
164*9880d681SAndroid Build Coastguard Worker}
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @sitofpv2i32v2double(<2 x i32> %a) {
167*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i32v2double
168*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 20 {{.*}} sitofp
169*9880d681SAndroid Build Coastguard Worker  ;
170*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i32v2double
171*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
172*9880d681SAndroid Build Coastguard Worker  ;
173*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i32v2double
174*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
175*9880d681SAndroid Build Coastguard Worker  ;
176*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i32v2double
177*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
178*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i32> %a to <2 x double>
179*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %1
180*9880d681SAndroid Build Coastguard Worker}
181*9880d681SAndroid Build Coastguard Worker
182*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @sitofpv4i32v4double(<4 x i32> %a) {
183*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i32v4double
184*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 40 {{.*}} sitofp
185*9880d681SAndroid Build Coastguard Worker  ;
186*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i32v4double
187*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 1 {{.*}} sitofp
188*9880d681SAndroid Build Coastguard Worker  ;
189*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i32v4double
190*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 1 {{.*}} sitofp
191*9880d681SAndroid Build Coastguard Worker  ;
192*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i32v4double
193*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 1 {{.*}} sitofp
194*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i32> %a to <4 x double>
195*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %1
196*9880d681SAndroid Build Coastguard Worker}
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @sitofpv8i32v8double(<8 x i32> %a) {
199*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i32v8double
200*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 80 {{.*}} sitofp
201*9880d681SAndroid Build Coastguard Worker  ;
202*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i32v8double
203*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 3 {{.*}} sitofp
204*9880d681SAndroid Build Coastguard Worker  ;
205*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i32v8double
206*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 3 {{.*}} sitofp
207*9880d681SAndroid Build Coastguard Worker  ;
208*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i32v8double
209*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 1 {{.*}} sitofp
210*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i32> %a to <8 x double>
211*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %1
212*9880d681SAndroid Build Coastguard Worker}
213*9880d681SAndroid Build Coastguard Worker
214*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @sitofpv16i32v16double(<16 x i32> %a) {
215*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i32v16double
216*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 160 {{.*}} sitofp
217*9880d681SAndroid Build Coastguard Worker  ;
218*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i32v16double
219*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 7 {{.*}} sitofp
220*9880d681SAndroid Build Coastguard Worker  ;
221*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i32v16double
222*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 7 {{.*}} sitofp
223*9880d681SAndroid Build Coastguard Worker  ;
224*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i32v16double
225*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
226*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i32> %a to <16 x double>
227*9880d681SAndroid Build Coastguard Worker  ret <16 x double> %1
228*9880d681SAndroid Build Coastguard Worker}
229*9880d681SAndroid Build Coastguard Worker
230*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @sitofpv32i32v32double(<32 x i32> %a) {
231*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i32v32double
232*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 320 {{.*}} sitofp
233*9880d681SAndroid Build Coastguard Worker  ;
234*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i32v32double
235*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 15 {{.*}} sitofp
236*9880d681SAndroid Build Coastguard Worker  ;
237*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i32v32double
238*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 15 {{.*}} sitofp
239*9880d681SAndroid Build Coastguard Worker  ;
240*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i32v32double
241*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 7 {{.*}} sitofp
242*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i32> %a to <32 x double>
243*9880d681SAndroid Build Coastguard Worker  ret <32 x double> %1
244*9880d681SAndroid Build Coastguard Worker}
245*9880d681SAndroid Build Coastguard Worker
246*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @sitofpv2i64v2double(<2 x i64> %a) {
247*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i64v2double
248*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 20 {{.*}} sitofp
249*9880d681SAndroid Build Coastguard Worker  ;
250*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i64v2double
251*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 20 {{.*}} sitofp
252*9880d681SAndroid Build Coastguard Worker  ;
253*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i64v2double
254*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 20 {{.*}} sitofp
255*9880d681SAndroid Build Coastguard Worker  ;
256*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i64v2double
257*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 20 {{.*}} sitofp
258*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i64> %a to <2 x double>
259*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %1
260*9880d681SAndroid Build Coastguard Worker}
261*9880d681SAndroid Build Coastguard Worker
262*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @sitofpv4i64v4double(<4 x i64> %a) {
263*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i64v4double
264*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 40 {{.*}} sitofp
265*9880d681SAndroid Build Coastguard Worker  ;
266*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i64v4double
267*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 13 {{.*}} sitofp
268*9880d681SAndroid Build Coastguard Worker  ;
269*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i64v4double
270*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 13 {{.*}} sitofp
271*9880d681SAndroid Build Coastguard Worker  ;
272*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i64v4double
273*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 13 {{.*}} sitofp
274*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i64> %a to <4 x double>
275*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %1
276*9880d681SAndroid Build Coastguard Worker}
277*9880d681SAndroid Build Coastguard Worker
278*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @sitofpv8i64v8double(<8 x i64> %a) {
279*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i64v8double
280*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 80 {{.*}} sitofp
281*9880d681SAndroid Build Coastguard Worker  ;
282*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i64v8double
283*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 27 {{.*}} sitofp
284*9880d681SAndroid Build Coastguard Worker  ;
285*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i64v8double
286*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 27 {{.*}} sitofp
287*9880d681SAndroid Build Coastguard Worker  ;
288*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i64v8double
289*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 22 {{.*}} sitofp
290*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i64> %a to <8 x double>
291*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %1
292*9880d681SAndroid Build Coastguard Worker}
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @sitofpv16i64v16double(<16 x i64> %a) {
295*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i64v16double
296*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 160 {{.*}} sitofp
297*9880d681SAndroid Build Coastguard Worker  ;
298*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i64v16double
299*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 55 {{.*}} sitofp
300*9880d681SAndroid Build Coastguard Worker  ;
301*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i64v16double
302*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 55 {{.*}} sitofp
303*9880d681SAndroid Build Coastguard Worker  ;
304*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i64v16double
305*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 45 {{.*}} sitofp
306*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i64> %a to <16 x double>
307*9880d681SAndroid Build Coastguard Worker  ret <16 x double> %1
308*9880d681SAndroid Build Coastguard Worker}
309*9880d681SAndroid Build Coastguard Worker
310*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @sitofpv32i64v32double(<32 x i64> %a) {
311*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i64v32double
312*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 320 {{.*}} sitofp
313*9880d681SAndroid Build Coastguard Worker  ;
314*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i64v32double
315*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 111 {{.*}} sitofp
316*9880d681SAndroid Build Coastguard Worker  ;
317*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i64v32double
318*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 111 {{.*}} sitofp
319*9880d681SAndroid Build Coastguard Worker  ;
320*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i64v32double
321*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 91 {{.*}} sitofp
322*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i64> %a to <32 x double>
323*9880d681SAndroid Build Coastguard Worker  ret <32 x double> %1
324*9880d681SAndroid Build Coastguard Worker}
325*9880d681SAndroid Build Coastguard Worker
326*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @sitofpv2i8v2float(<2 x i8> %a) {
327*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i8v2float
328*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 15 {{.*}} sitofp
329*9880d681SAndroid Build Coastguard Worker  ;
330*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i8v2float
331*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
332*9880d681SAndroid Build Coastguard Worker  ;
333*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i8v2float
334*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
335*9880d681SAndroid Build Coastguard Worker  ;
336*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i8v2float
337*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
338*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i8> %a to <2 x float>
339*9880d681SAndroid Build Coastguard Worker  ret <2 x float> %1
340*9880d681SAndroid Build Coastguard Worker}
341*9880d681SAndroid Build Coastguard Worker
342*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @sitofpv4i8v4float(<4 x i8> %a) {
343*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i8v4float
344*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 5 {{.*}} sitofp
345*9880d681SAndroid Build Coastguard Worker  ;
346*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i8v4float
347*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 3 {{.*}} sitofp
348*9880d681SAndroid Build Coastguard Worker  ;
349*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i8v4float
350*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 3 {{.*}} sitofp
351*9880d681SAndroid Build Coastguard Worker  ;
352*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i8v4float
353*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
354*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i8> %a to <4 x float>
355*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %1
356*9880d681SAndroid Build Coastguard Worker}
357*9880d681SAndroid Build Coastguard Worker
358*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @sitofpv8i8v8float(<8 x i8> %a) {
359*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i8v8float
360*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 15 {{.*}} sitofp
361*9880d681SAndroid Build Coastguard Worker  ;
362*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i8v8float
363*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 8 {{.*}} sitofp
364*9880d681SAndroid Build Coastguard Worker  ;
365*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i8v8float
366*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 8 {{.*}} sitofp
367*9880d681SAndroid Build Coastguard Worker  ;
368*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i8v8float
369*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 8 {{.*}} sitofp
370*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i8> %a to <8 x float>
371*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %1
372*9880d681SAndroid Build Coastguard Worker}
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @sitofpv16i8v16float(<16 x i8> %a) {
375*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i8v16float
376*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 8 {{.*}} sitofp
377*9880d681SAndroid Build Coastguard Worker  ;
378*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i8v16float
379*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 17 {{.*}} sitofp
380*9880d681SAndroid Build Coastguard Worker  ;
381*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i8v16float
382*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 17 {{.*}} sitofp
383*9880d681SAndroid Build Coastguard Worker  ;
384*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i8v16float
385*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 2 {{.*}} sitofp
386*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i8> %a to <16 x float>
387*9880d681SAndroid Build Coastguard Worker  ret <16 x float> %1
388*9880d681SAndroid Build Coastguard Worker}
389*9880d681SAndroid Build Coastguard Worker
390*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @sitofpv32i8v32float(<32 x i8> %a) {
391*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i8v32float
392*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 16 {{.*}} sitofp
393*9880d681SAndroid Build Coastguard Worker  ;
394*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i8v32float
395*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 35 {{.*}} sitofp
396*9880d681SAndroid Build Coastguard Worker  ;
397*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i8v32float
398*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 35 {{.*}} sitofp
399*9880d681SAndroid Build Coastguard Worker  ;
400*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i8v32float
401*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 5 {{.*}} sitofp
402*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i8> %a to <32 x float>
403*9880d681SAndroid Build Coastguard Worker  ret <32 x float> %1
404*9880d681SAndroid Build Coastguard Worker}
405*9880d681SAndroid Build Coastguard Worker
406*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @sitofpv2i16v2float(<2 x i16> %a) {
407*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i16v2float
408*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 15 {{.*}} sitofp
409*9880d681SAndroid Build Coastguard Worker  ;
410*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i16v2float
411*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
412*9880d681SAndroid Build Coastguard Worker  ;
413*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i16v2float
414*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
415*9880d681SAndroid Build Coastguard Worker  ;
416*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i16v2float
417*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
418*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i16> %a to <2 x float>
419*9880d681SAndroid Build Coastguard Worker  ret <2 x float> %1
420*9880d681SAndroid Build Coastguard Worker}
421*9880d681SAndroid Build Coastguard Worker
422*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @sitofpv4i16v4float(<4 x i16> %a) {
423*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i16v4float
424*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 5 {{.*}} sitofp
425*9880d681SAndroid Build Coastguard Worker  ;
426*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i16v4float
427*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 3 {{.*}} sitofp
428*9880d681SAndroid Build Coastguard Worker  ;
429*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i16v4float
430*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 3 {{.*}} sitofp
431*9880d681SAndroid Build Coastguard Worker  ;
432*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i16v4float
433*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
434*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i16> %a to <4 x float>
435*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %1
436*9880d681SAndroid Build Coastguard Worker}
437*9880d681SAndroid Build Coastguard Worker
438*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @sitofpv8i16v8float(<8 x i16> %a) {
439*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i16v8float
440*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 15 {{.*}} sitofp
441*9880d681SAndroid Build Coastguard Worker  ;
442*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i16v8float
443*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 5 {{.*}} sitofp
444*9880d681SAndroid Build Coastguard Worker  ;
445*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i16v8float
446*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 5 {{.*}} sitofp
447*9880d681SAndroid Build Coastguard Worker  ;
448*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i16v8float
449*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 5 {{.*}} sitofp
450*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i16> %a to <8 x float>
451*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %1
452*9880d681SAndroid Build Coastguard Worker}
453*9880d681SAndroid Build Coastguard Worker
454*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @sitofpv16i16v16float(<16 x i16> %a) {
455*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i16v16float
456*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 30 {{.*}} sitofp
457*9880d681SAndroid Build Coastguard Worker  ;
458*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i16v16float
459*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 11 {{.*}} sitofp
460*9880d681SAndroid Build Coastguard Worker  ;
461*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i16v16float
462*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 11 {{.*}} sitofp
463*9880d681SAndroid Build Coastguard Worker  ;
464*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i16v16float
465*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 2 {{.*}} sitofp
466*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i16> %a to <16 x float>
467*9880d681SAndroid Build Coastguard Worker  ret <16 x float> %1
468*9880d681SAndroid Build Coastguard Worker}
469*9880d681SAndroid Build Coastguard Worker
470*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @sitofpv32i16v32float(<32 x i16> %a) {
471*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i16v32float
472*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 60 {{.*}} sitofp
473*9880d681SAndroid Build Coastguard Worker  ;
474*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i16v32float
475*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 23 {{.*}} sitofp
476*9880d681SAndroid Build Coastguard Worker  ;
477*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i16v32float
478*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 23 {{.*}} sitofp
479*9880d681SAndroid Build Coastguard Worker  ;
480*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i16v32float
481*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 5 {{.*}} sitofp
482*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i16> %a to <32 x float>
483*9880d681SAndroid Build Coastguard Worker  ret <32 x float> %1
484*9880d681SAndroid Build Coastguard Worker}
485*9880d681SAndroid Build Coastguard Worker
486*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @sitofpv2i32v2float(<2 x i32> %a) {
487*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i32v2float
488*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 15 {{.*}} sitofp
489*9880d681SAndroid Build Coastguard Worker  ;
490*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i32v2float
491*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
492*9880d681SAndroid Build Coastguard Worker  ;
493*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i32v2float
494*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
495*9880d681SAndroid Build Coastguard Worker  ;
496*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i32v2float
497*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
498*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i32> %a to <2 x float>
499*9880d681SAndroid Build Coastguard Worker  ret <2 x float> %1
500*9880d681SAndroid Build Coastguard Worker}
501*9880d681SAndroid Build Coastguard Worker
502*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @sitofpv4i32v4float(<4 x i32> %a) {
503*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i32v4float
504*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 5 {{.*}} sitofp
505*9880d681SAndroid Build Coastguard Worker  ;
506*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i32v4float
507*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 1 {{.*}} sitofp
508*9880d681SAndroid Build Coastguard Worker  ;
509*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i32v4float
510*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 1 {{.*}} sitofp
511*9880d681SAndroid Build Coastguard Worker  ;
512*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i32v4float
513*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 1 {{.*}} sitofp
514*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i32> %a to <4 x float>
515*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %1
516*9880d681SAndroid Build Coastguard Worker}
517*9880d681SAndroid Build Coastguard Worker
518*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @sitofpv8i32v8float(<8 x i32> %a) {
519*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i32v8float
520*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 10 {{.*}} sitofp
521*9880d681SAndroid Build Coastguard Worker  ;
522*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i32v8float
523*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 1 {{.*}} sitofp
524*9880d681SAndroid Build Coastguard Worker  ;
525*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i32v8float
526*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 1 {{.*}} sitofp
527*9880d681SAndroid Build Coastguard Worker  ;
528*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i32v8float
529*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 1 {{.*}} sitofp
530*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i32> %a to <8 x float>
531*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %1
532*9880d681SAndroid Build Coastguard Worker}
533*9880d681SAndroid Build Coastguard Worker
534*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @sitofpv16i32v16float(<16 x i32> %a) {
535*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i32v16float
536*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 20 {{.*}} sitofp
537*9880d681SAndroid Build Coastguard Worker  ;
538*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i32v16float
539*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 3 {{.*}} sitofp
540*9880d681SAndroid Build Coastguard Worker  ;
541*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i32v16float
542*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 3 {{.*}} sitofp
543*9880d681SAndroid Build Coastguard Worker  ;
544*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i32v16float
545*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 1 {{.*}} sitofp
546*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i32> %a to <16 x float>
547*9880d681SAndroid Build Coastguard Worker  ret <16 x float> %1
548*9880d681SAndroid Build Coastguard Worker}
549*9880d681SAndroid Build Coastguard Worker
550*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @sitofpv32i32v32float(<32 x i32> %a) {
551*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i32v32float
552*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 40 {{.*}} sitofp
553*9880d681SAndroid Build Coastguard Worker  ;
554*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i32v32float
555*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 7 {{.*}} sitofp
556*9880d681SAndroid Build Coastguard Worker  ;
557*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i32v32float
558*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 7 {{.*}} sitofp
559*9880d681SAndroid Build Coastguard Worker  ;
560*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i32v32float
561*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
562*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i32> %a to <32 x float>
563*9880d681SAndroid Build Coastguard Worker  ret <32 x float> %1
564*9880d681SAndroid Build Coastguard Worker}
565*9880d681SAndroid Build Coastguard Worker
566*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @sitofpv2i64v2float(<2 x i64> %a) {
567*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv2i64v2float
568*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 15 {{.*}} sitofp
569*9880d681SAndroid Build Coastguard Worker  ;
570*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv2i64v2float
571*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 4 {{.*}} sitofp
572*9880d681SAndroid Build Coastguard Worker  ;
573*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv2i64v2float
574*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 4 {{.*}} sitofp
575*9880d681SAndroid Build Coastguard Worker  ;
576*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv2i64v2float
577*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
578*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <2 x i64> %a to <2 x float>
579*9880d681SAndroid Build Coastguard Worker  ret <2 x float> %1
580*9880d681SAndroid Build Coastguard Worker}
581*9880d681SAndroid Build Coastguard Worker
582*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @sitofpv4i64v4float(<4 x i64> %a) {
583*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv4i64v4float
584*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 30 {{.*}} sitofp
585*9880d681SAndroid Build Coastguard Worker  ;
586*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv4i64v4float
587*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 10 {{.*}} sitofp
588*9880d681SAndroid Build Coastguard Worker  ;
589*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv4i64v4float
590*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 10 {{.*}} sitofp
591*9880d681SAndroid Build Coastguard Worker  ;
592*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv4i64v4float
593*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 10 {{.*}} sitofp
594*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <4 x i64> %a to <4 x float>
595*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %1
596*9880d681SAndroid Build Coastguard Worker}
597*9880d681SAndroid Build Coastguard Worker
598*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @sitofpv8i64v8float(<8 x i64> %a) {
599*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i64v8float
600*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 60 {{.*}} sitofp
601*9880d681SAndroid Build Coastguard Worker  ;
602*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i64v8float
603*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 21 {{.*}} sitofp
604*9880d681SAndroid Build Coastguard Worker  ;
605*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i64v8float
606*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 21 {{.*}} sitofp
607*9880d681SAndroid Build Coastguard Worker  ;
608*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i64v8float
609*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 22 {{.*}} sitofp
610*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i64> %a to <8 x float>
611*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %1
612*9880d681SAndroid Build Coastguard Worker}
613*9880d681SAndroid Build Coastguard Worker
614*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @sitofpv16i64v16float(<16 x i64> %a) {
615*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i64v16float
616*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 120 {{.*}} sitofp
617*9880d681SAndroid Build Coastguard Worker  ;
618*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i64v16float
619*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 43 {{.*}} sitofp
620*9880d681SAndroid Build Coastguard Worker  ;
621*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i64v16float
622*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 43 {{.*}} sitofp
623*9880d681SAndroid Build Coastguard Worker  ;
624*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i64v16float
625*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 45 {{.*}} sitofp
626*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i64> %a to <16 x float>
627*9880d681SAndroid Build Coastguard Worker  ret <16 x float> %1
628*9880d681SAndroid Build Coastguard Worker}
629*9880d681SAndroid Build Coastguard Worker
630*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @sitofpv32i64v32float(<32 x i64> %a) {
631*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv32i64v32float
632*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 240 {{.*}} sitofp
633*9880d681SAndroid Build Coastguard Worker  ;
634*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv32i64v32float
635*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 87 {{.*}} sitofp
636*9880d681SAndroid Build Coastguard Worker  ;
637*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv32i64v32float
638*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 87 {{.*}} sitofp
639*9880d681SAndroid Build Coastguard Worker  ;
640*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv32i64v32float
641*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 91 {{.*}} sitofp
642*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <32 x i64> %a to <32 x float>
643*9880d681SAndroid Build Coastguard Worker  ret <32 x float> %1
644*9880d681SAndroid Build Coastguard Worker}
645*9880d681SAndroid Build Coastguard Worker
646*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @sitofpv8i1v8double(<8 x double> %a) {
647*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv8i1v8double
648*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 80 {{.*}} sitofp
649*9880d681SAndroid Build Coastguard Worker  ;
650*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv8i1v8double
651*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 7 {{.*}} sitofp
652*9880d681SAndroid Build Coastguard Worker  ;
653*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv8i1v8double
654*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 7 {{.*}} sitofp
655*9880d681SAndroid Build Coastguard Worker  ;
656*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv8i1v8double
657*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 4 {{.*}} sitofp
658*9880d681SAndroid Build Coastguard Worker  %cmpres = fcmp ogt <8 x double> %a, zeroinitializer
659*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i1> %cmpres to <8 x double>
660*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %1
661*9880d681SAndroid Build Coastguard Worker}
662*9880d681SAndroid Build Coastguard Worker
663*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @sitofpv16i1v16float(<16 x float> %a) {
664*9880d681SAndroid Build Coastguard Worker  ; SSE2-LABEL: sitofpv16i1v16float
665*9880d681SAndroid Build Coastguard Worker  ; SSE2: cost of 8 {{.*}} sitofp
666*9880d681SAndroid Build Coastguard Worker  ;
667*9880d681SAndroid Build Coastguard Worker  ; AVX1-LABEL: sitofpv16i1v16float
668*9880d681SAndroid Build Coastguard Worker  ; AVX1: cost of 17 {{.*}} sitofp
669*9880d681SAndroid Build Coastguard Worker  ;
670*9880d681SAndroid Build Coastguard Worker  ; AVX2-LABEL: sitofpv16i1v16float
671*9880d681SAndroid Build Coastguard Worker  ; AVX2: cost of 17 {{.*}} sitofp
672*9880d681SAndroid Build Coastguard Worker  ;
673*9880d681SAndroid Build Coastguard Worker  ; AVX512F-LABEL: sitofpv16i1v16float
674*9880d681SAndroid Build Coastguard Worker  ; AVX512F: cost of 3 {{.*}} sitofp
675*9880d681SAndroid Build Coastguard Worker  %cmpres = fcmp ogt <16 x float> %a, zeroinitializer
676*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <16 x i1> %cmpres to <16 x float>
677*9880d681SAndroid Build Coastguard Worker  ret <16 x float> %1
678*9880d681SAndroid Build Coastguard Worker}
679