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