]> git.proxmox.com Git - rustc.git/blame - src/librustc_platform_intrinsics/x86.rs
Imported Upstream version 1.9.0+dfsg1
[rustc.git] / src / librustc_platform_intrinsics / x86.rs
CommitLineData
e9174d1e
SL
1// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
11// DO NOT EDIT: autogenerated by etc/platform-intrinsics/generator.py
12// ignore-tidy-linelength
13
14#![allow(unused_imports)]
15
54a0048b 16use {Intrinsic, Type};
e9174d1e 17use IntrinsicDef::Named;
e9174d1e
SL
18
19// The default inlining settings trigger a pathological behaviour in
20// LLVM, which causes makes compilation very slow. See #28273.
21#[inline(never)]
54a0048b 22pub fn find(name: &str) -> Option<Intrinsic> {
e9174d1e
SL
23 if !name.starts_with("x86_mm") { return None }
24 Some(match &name["x86_mm".len()..] {
25 "_movemask_ps" => Intrinsic {
54a0048b
SL
26 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
27 output: &::I32,
e9174d1e
SL
28 definition: Named("llvm.x86.sse.movmsk.ps")
29 },
30 "_max_ps" => Intrinsic {
54a0048b
SL
31 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
32 output: &::F32x4,
e9174d1e
SL
33 definition: Named("llvm.x86.sse.max.ps")
34 },
35 "_min_ps" => Intrinsic {
54a0048b
SL
36 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
37 output: &::F32x4,
e9174d1e
SL
38 definition: Named("llvm.x86.sse.min.ps")
39 },
40 "_rsqrt_ps" => Intrinsic {
54a0048b
SL
41 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
42 output: &::F32x4,
e9174d1e
SL
43 definition: Named("llvm.x86.sse.rsqrt.ps")
44 },
45 "_rcp_ps" => Intrinsic {
54a0048b
SL
46 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
47 output: &::F32x4,
e9174d1e
SL
48 definition: Named("llvm.x86.sse.rcp.ps")
49 },
50 "_sqrt_ps" => Intrinsic {
54a0048b
SL
51 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
52 output: &::F32x4,
e9174d1e
SL
53 definition: Named("llvm.sqrt.v4f32")
54 },
55 "_storeu_ps" => Intrinsic {
54a0048b
SL
56 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), false); &PTR }, &::F32x4]; &INPUTS },
57 output: &::VOID,
e9174d1e
SL
58 definition: Named("llvm.x86.sse.storeu.ps")
59 },
60 "_adds_epi8" => Intrinsic {
54a0048b
SL
61 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
62 output: &::I8x16,
e9174d1e
SL
63 definition: Named("llvm.x86.sse2.padds.b")
64 },
65 "_adds_epu8" => Intrinsic {
54a0048b
SL
66 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
67 output: &::U8x16,
e9174d1e
SL
68 definition: Named("llvm.x86.sse2.paddus.b")
69 },
70 "_adds_epi16" => Intrinsic {
54a0048b
SL
71 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
72 output: &::I16x8,
e9174d1e
SL
73 definition: Named("llvm.x86.sse2.padds.w")
74 },
75 "_adds_epu16" => Intrinsic {
54a0048b
SL
76 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
77 output: &::U16x8,
e9174d1e
SL
78 definition: Named("llvm.x86.sse2.paddus.w")
79 },
80 "_avg_epu8" => Intrinsic {
54a0048b
SL
81 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
82 output: &::U8x16,
e9174d1e
SL
83 definition: Named("llvm.x86.sse2.pavg.b")
84 },
85 "_avg_epu16" => Intrinsic {
54a0048b
SL
86 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
87 output: &::U16x8,
e9174d1e
SL
88 definition: Named("llvm.x86.sse2.pavg.w")
89 },
90 "_lfence" => Intrinsic {
54a0048b
SL
91 inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS },
92 output: &::VOID,
e9174d1e
SL
93 definition: Named("llvm.x86.sse2.lfence")
94 },
95 "_madd_epi16" => Intrinsic {
54a0048b
SL
96 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
97 output: &::I32x4,
e9174d1e
SL
98 definition: Named("llvm.x86.sse2.pmadd.wd")
99 },
100 "_maskmoveu_si128" => Intrinsic {
54a0048b
SL
101 inputs: { static INPUTS: [&'static Type; 3] = [&::U8x16, &::U8x16, { static PTR: Type = Type::Pointer(&::U8, None, false); &PTR }]; &INPUTS },
102 output: &::VOID,
e9174d1e
SL
103 definition: Named("llvm.x86.sse2.maskmov.dqu")
104 },
105 "_max_epi16" => Intrinsic {
54a0048b
SL
106 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
107 output: &::I16x8,
e9174d1e
SL
108 definition: Named("llvm.x86.sse2.pmaxs.w")
109 },
110 "_max_epu8" => Intrinsic {
54a0048b
SL
111 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
112 output: &::U8x16,
e9174d1e
SL
113 definition: Named("llvm.x86.sse2.pmaxu.b")
114 },
115 "_max_pd" => Intrinsic {
54a0048b
SL
116 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
117 output: &::F64x2,
e9174d1e
SL
118 definition: Named("llvm.x86.sse2.max.pd")
119 },
120 "_mfence" => Intrinsic {
54a0048b
SL
121 inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS },
122 output: &::VOID,
e9174d1e
SL
123 definition: Named("llvm.x86.sse2.fence")
124 },
125 "_min_epi16" => Intrinsic {
54a0048b
SL
126 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
127 output: &::I16x8,
e9174d1e
SL
128 definition: Named("llvm.x86.sse2.pmins.w")
129 },
130 "_min_epu8" => Intrinsic {
54a0048b
SL
131 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
132 output: &::U8x16,
e9174d1e
SL
133 definition: Named("llvm.x86.sse2.pminu.b")
134 },
135 "_min_pd" => Intrinsic {
54a0048b
SL
136 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
137 output: &::F64x2,
e9174d1e
SL
138 definition: Named("llvm.x86.sse2.min.pd")
139 },
140 "_movemask_pd" => Intrinsic {
54a0048b
SL
141 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x2]; &INPUTS },
142 output: &::I32,
e9174d1e
SL
143 definition: Named("llvm.x86.sse2.movmsk.pd")
144 },
145 "_movemask_epi8" => Intrinsic {
54a0048b
SL
146 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
147 output: &::I32,
e9174d1e
SL
148 definition: Named("llvm.x86.sse2.pmovmskb.128")
149 },
150 "_mul_epu32" => Intrinsic {
54a0048b
SL
151 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
152 output: &::U64x2,
e9174d1e
SL
153 definition: Named("llvm.x86.sse2.pmulu.dq")
154 },
155 "_mulhi_epi16" => Intrinsic {
54a0048b
SL
156 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
157 output: &::I16x8,
e9174d1e
SL
158 definition: Named("llvm.x86.sse2.pmulh.w")
159 },
160 "_mulhi_epu16" => Intrinsic {
54a0048b
SL
161 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
162 output: &::U16x8,
e9174d1e
SL
163 definition: Named("llvm.x86.sse2.pmulhu.w")
164 },
165 "_packs_epi16" => Intrinsic {
54a0048b
SL
166 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
167 output: &::I8x16,
e9174d1e
SL
168 definition: Named("llvm.x86.sse2.packsswb.128")
169 },
170 "_packs_epi32" => Intrinsic {
54a0048b
SL
171 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
172 output: &::I16x8,
e9174d1e
SL
173 definition: Named("llvm.x86.sse2.packssdw.128")
174 },
175 "_packus_epi16" => Intrinsic {
54a0048b
SL
176 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
177 output: &::U8x16,
e9174d1e
SL
178 definition: Named("llvm.x86.sse2.packuswb.128")
179 },
180 "_sad_epu8" => Intrinsic {
54a0048b
SL
181 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
182 output: &::U64x2,
e9174d1e
SL
183 definition: Named("llvm.x86.sse2.psad.bw")
184 },
185 "_sfence" => Intrinsic {
54a0048b
SL
186 inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS },
187 output: &::VOID,
e9174d1e
SL
188 definition: Named("llvm.x86.sse2.sfence")
189 },
190 "_sqrt_pd" => Intrinsic {
54a0048b
SL
191 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x2]; &INPUTS },
192 output: &::F64x2,
e9174d1e
SL
193 definition: Named("llvm.sqrt.v2f64")
194 },
195 "_storeu_pd" => Intrinsic {
54a0048b
SL
196 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::U8), false); &PTR }, &::F64x2]; &INPUTS },
197 output: &::VOID,
e9174d1e
SL
198 definition: Named("llvm.x86.sse2.storeu.pd")
199 },
200 "_storeu_si128" => Intrinsic {
54a0048b
SL
201 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::U8x16, Some(&::U8), false); &PTR }, &::U8x16]; &INPUTS },
202 output: &::VOID,
e9174d1e
SL
203 definition: Named("llvm.x86.sse2.storeu.dq")
204 },
205 "_subs_epi8" => Intrinsic {
54a0048b
SL
206 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
207 output: &::I8x16,
e9174d1e
SL
208 definition: Named("llvm.x86.sse2.psubs.b")
209 },
210 "_subs_epu8" => Intrinsic {
54a0048b
SL
211 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::U8x16]; &INPUTS },
212 output: &::U8x16,
e9174d1e
SL
213 definition: Named("llvm.x86.sse2.psubus.b")
214 },
215 "_subs_epi16" => Intrinsic {
54a0048b
SL
216 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
217 output: &::I16x8,
e9174d1e
SL
218 definition: Named("llvm.x86.sse2.psubs.w")
219 },
220 "_subs_epu16" => Intrinsic {
54a0048b
SL
221 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
222 output: &::U16x8,
e9174d1e
SL
223 definition: Named("llvm.x86.sse2.psubus.w")
224 },
225 "_addsub_ps" => Intrinsic {
54a0048b
SL
226 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
227 output: &::F32x4,
e9174d1e
SL
228 definition: Named("llvm.x86.sse3.addsub.ps")
229 },
230 "_addsub_pd" => Intrinsic {
54a0048b
SL
231 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
232 output: &::F64x2,
e9174d1e
SL
233 definition: Named("llvm.x86.sse3.addsub.pd")
234 },
235 "_hadd_ps" => Intrinsic {
54a0048b
SL
236 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
237 output: &::F32x4,
e9174d1e
SL
238 definition: Named("llvm.x86.sse3.hadd.ps")
239 },
240 "_hadd_pd" => Intrinsic {
54a0048b
SL
241 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
242 output: &::F64x2,
e9174d1e
SL
243 definition: Named("llvm.x86.sse3.hadd.pd")
244 },
245 "_hsub_ps" => Intrinsic {
54a0048b
SL
246 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
247 output: &::F32x4,
e9174d1e
SL
248 definition: Named("llvm.x86.sse3.hsub.ps")
249 },
250 "_hsub_pd" => Intrinsic {
54a0048b
SL
251 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
252 output: &::F64x2,
e9174d1e
SL
253 definition: Named("llvm.x86.sse3.hsub.pd")
254 },
255 "_lddqu_si128" => Intrinsic {
54a0048b
SL
256 inputs: { static INPUTS: [&'static Type; 1] = [{ static PTR: Type = Type::Pointer(&::U8x16, Some(&::I8), true); &PTR }]; &INPUTS },
257 output: &::U8x16,
e9174d1e
SL
258 definition: Named("llvm.x86.sse3.ldu.dq")
259 },
260 "_abs_epi8" => Intrinsic {
54a0048b
SL
261 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x16]; &INPUTS },
262 output: &::I8x16,
e9174d1e
SL
263 definition: Named("llvm.x86.ssse3.pabs.b.128")
264 },
265 "_abs_epi16" => Intrinsic {
54a0048b
SL
266 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x8]; &INPUTS },
267 output: &::I16x8,
e9174d1e
SL
268 definition: Named("llvm.x86.ssse3.pabs.w.128")
269 },
270 "_abs_epi32" => Intrinsic {
54a0048b
SL
271 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
272 output: &::I32x4,
e9174d1e
SL
273 definition: Named("llvm.x86.ssse3.pabs.d.128")
274 },
275 "_hadd_epi16" => Intrinsic {
54a0048b
SL
276 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
277 output: &::I16x8,
e9174d1e
SL
278 definition: Named("llvm.x86.ssse3.phadd.w.128")
279 },
280 "_hadd_epi32" => Intrinsic {
54a0048b
SL
281 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
282 output: &::I32x4,
e9174d1e
SL
283 definition: Named("llvm.x86.ssse3.phadd.d.128")
284 },
285 "_hadds_epi16" => Intrinsic {
54a0048b
SL
286 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
287 output: &::I16x8,
e9174d1e
SL
288 definition: Named("llvm.x86.ssse3.phadd.sw.128")
289 },
290 "_hsub_epi16" => Intrinsic {
54a0048b
SL
291 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
292 output: &::I16x8,
e9174d1e
SL
293 definition: Named("llvm.x86.ssse3.phsub.w.128")
294 },
295 "_hsub_epi32" => Intrinsic {
54a0048b
SL
296 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
297 output: &::I32x4,
e9174d1e
SL
298 definition: Named("llvm.x86.ssse3.phsub.d.128")
299 },
300 "_hsubs_epi16" => Intrinsic {
54a0048b
SL
301 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
302 output: &::I16x8,
e9174d1e
SL
303 definition: Named("llvm.x86.ssse3.phsub.sw.128")
304 },
305 "_maddubs_epi16" => Intrinsic {
54a0048b
SL
306 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x16, &::I8x16]; &INPUTS },
307 output: &::I16x8,
e9174d1e
SL
308 definition: Named("llvm.x86.ssse3.pmadd.ub.sw.128")
309 },
310 "_mulhrs_epi16" => Intrinsic {
54a0048b
SL
311 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
312 output: &::I16x8,
e9174d1e
SL
313 definition: Named("llvm.x86.ssse3.pmul.hr.sw.128")
314 },
315 "_shuffle_epi8" => Intrinsic {
54a0048b
SL
316 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
317 output: &::I8x16,
e9174d1e
SL
318 definition: Named("llvm.x86.ssse3.pshuf.b.128")
319 },
320 "_sign_epi8" => Intrinsic {
54a0048b
SL
321 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
322 output: &::I8x16,
e9174d1e
SL
323 definition: Named("llvm.x86.ssse3.psign.b.128")
324 },
325 "_sign_epi16" => Intrinsic {
54a0048b
SL
326 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x8, &::I16x8]; &INPUTS },
327 output: &::I16x8,
e9174d1e
SL
328 definition: Named("llvm.x86.ssse3.psign.w.128")
329 },
330 "_sign_epi32" => Intrinsic {
54a0048b
SL
331 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
332 output: &::I32x4,
e9174d1e
SL
333 definition: Named("llvm.x86.ssse3.psign.d.128")
334 },
335 "_dp_ps" => Intrinsic {
54a0048b
SL
336 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::I32_8]; &INPUTS },
337 output: &::F32x4,
e9174d1e
SL
338 definition: Named("llvm.x86.sse41.dpps")
339 },
340 "_dp_pd" => Intrinsic {
54a0048b
SL
341 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::I32_8]; &INPUTS },
342 output: &::F64x2,
e9174d1e
SL
343 definition: Named("llvm.x86.sse41.dppd")
344 },
345 "_max_epi8" => Intrinsic {
54a0048b
SL
346 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
347 output: &::I8x16,
e9174d1e
SL
348 definition: Named("llvm.x86.sse41.pmaxsb")
349 },
350 "_max_epu16" => Intrinsic {
54a0048b
SL
351 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
352 output: &::U16x8,
e9174d1e
SL
353 definition: Named("llvm.x86.sse41.pmaxuw")
354 },
355 "_max_epi32" => Intrinsic {
54a0048b
SL
356 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
357 output: &::I32x4,
e9174d1e
SL
358 definition: Named("llvm.x86.sse41.pmaxsd")
359 },
360 "_max_epu32" => Intrinsic {
54a0048b
SL
361 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
362 output: &::U32x4,
e9174d1e
SL
363 definition: Named("llvm.x86.sse41.pmaxud")
364 },
365 "_min_epi8" => Intrinsic {
54a0048b
SL
366 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x16, &::I8x16]; &INPUTS },
367 output: &::I8x16,
e9174d1e
SL
368 definition: Named("llvm.x86.sse41.pminsb")
369 },
370 "_min_epu16" => Intrinsic {
54a0048b
SL
371 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x8, &::U16x8]; &INPUTS },
372 output: &::U16x8,
e9174d1e
SL
373 definition: Named("llvm.x86.sse41.pminuw")
374 },
375 "_min_epi32" => Intrinsic {
54a0048b
SL
376 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
377 output: &::I32x4,
e9174d1e
SL
378 definition: Named("llvm.x86.sse41.pminsd")
379 },
380 "_min_epu32" => Intrinsic {
54a0048b
SL
381 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x4, &::U32x4]; &INPUTS },
382 output: &::U32x4,
e9174d1e
SL
383 definition: Named("llvm.x86.sse41.pminud")
384 },
385 "_minpos_epu16" => Intrinsic {
54a0048b
SL
386 inputs: { static INPUTS: [&'static Type; 1] = [&::U16x8]; &INPUTS },
387 output: &::U16x8,
e9174d1e
SL
388 definition: Named("llvm.x86.sse41.phminposuw")
389 },
390 "_mpsadbw_epu8" => Intrinsic {
54a0048b
SL
391 inputs: { static INPUTS: [&'static Type; 3] = [&::U8x16, &::U8x16, &::I32_8]; &INPUTS },
392 output: &::U16x8,
e9174d1e
SL
393 definition: Named("llvm.x86.sse41.mpsadbw")
394 },
395 "_mul_epi32" => Intrinsic {
54a0048b
SL
396 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
397 output: &::I64x2,
e9174d1e
SL
398 definition: Named("llvm.x86.sse41.pmuldq")
399 },
400 "_packus_epi32" => Intrinsic {
54a0048b
SL
401 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x4, &::I32x4]; &INPUTS },
402 output: &::U16x8,
e9174d1e
SL
403 definition: Named("llvm.x86.sse41.packusdw")
404 },
405 "_testc_si128" => Intrinsic {
54a0048b
SL
406 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
407 output: &::I32,
e9174d1e
SL
408 definition: Named("llvm.x86.sse41.ptestc")
409 },
410 "_testnzc_si128" => Intrinsic {
54a0048b
SL
411 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
412 output: &::I32,
e9174d1e
SL
413 definition: Named("llvm.x86.sse41.ptestnzc")
414 },
415 "_testz_si128" => Intrinsic {
54a0048b
SL
416 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x2, &::U64x2]; &INPUTS },
417 output: &::I32,
e9174d1e
SL
418 definition: Named("llvm.x86.sse41.ptestz")
419 },
420 "_cmpestra" => Intrinsic {
54a0048b
SL
421 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
422 output: &::I32,
e9174d1e
SL
423 definition: Named("llvm.x86.sse42.pcmpestria128")
424 },
425 "_cmpestrc" => Intrinsic {
54a0048b
SL
426 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
427 output: &::I32,
e9174d1e
SL
428 definition: Named("llvm.x86.sse42.pcmpestric128")
429 },
430 "_cmpestri" => Intrinsic {
54a0048b
SL
431 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
432 output: &::I32,
e9174d1e
SL
433 definition: Named("llvm.x86.sse42.pcmpestri128")
434 },
435 "_cmpestrm" => Intrinsic {
54a0048b
SL
436 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
437 output: &::I8x16,
e9174d1e
SL
438 definition: Named("llvm.x86.sse42.pcmpestrm128")
439 },
440 "_cmpestro" => Intrinsic {
54a0048b
SL
441 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
442 output: &::I32,
e9174d1e
SL
443 definition: Named("llvm.x86.sse42.pcmpestrio128")
444 },
445 "_cmpestrs" => Intrinsic {
54a0048b
SL
446 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
447 output: &::I32,
e9174d1e
SL
448 definition: Named("llvm.x86.sse42.pcmpestris128")
449 },
450 "_cmpestrz" => Intrinsic {
54a0048b
SL
451 inputs: { static INPUTS: [&'static Type; 5] = [&::I8x16, &::I32, &::I8x16, &::I32, &::I32_8]; &INPUTS },
452 output: &::I32,
e9174d1e
SL
453 definition: Named("llvm.x86.sse42.pcmpestriz128")
454 },
455 "_cmpistra" => Intrinsic {
54a0048b
SL
456 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
457 output: &::I32,
e9174d1e
SL
458 definition: Named("llvm.x86.sse42.pcmpistria128")
459 },
460 "_cmpistrc" => Intrinsic {
54a0048b
SL
461 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
462 output: &::I32,
e9174d1e
SL
463 definition: Named("llvm.x86.sse42.pcmpistric128")
464 },
465 "_cmpistri" => Intrinsic {
54a0048b
SL
466 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
467 output: &::I32,
e9174d1e
SL
468 definition: Named("llvm.x86.sse42.pcmpistri128")
469 },
470 "_cmpistrm" => Intrinsic {
54a0048b
SL
471 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
472 output: &::I8x16,
e9174d1e
SL
473 definition: Named("llvm.x86.sse42.pcmpistrm128")
474 },
475 "_cmpistro" => Intrinsic {
54a0048b
SL
476 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
477 output: &::I32,
e9174d1e
SL
478 definition: Named("llvm.x86.sse42.pcmpistrio128")
479 },
480 "_cmpistrs" => Intrinsic {
54a0048b
SL
481 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
482 output: &::I32,
e9174d1e
SL
483 definition: Named("llvm.x86.sse42.pcmpistris128")
484 },
485 "_cmpistrz" => Intrinsic {
54a0048b
SL
486 inputs: { static INPUTS: [&'static Type; 3] = [&::I8x16, &::I8x16, &::I32_8]; &INPUTS },
487 output: &::I32,
e9174d1e
SL
488 definition: Named("llvm.x86.sse42.pcmpistriz128")
489 },
490 "256_addsub_ps" => Intrinsic {
54a0048b
SL
491 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
492 output: &::F32x8,
e9174d1e
SL
493 definition: Named("llvm.x86.avx.addsub.ps.256")
494 },
495 "256_addsub_pd" => Intrinsic {
54a0048b
SL
496 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
497 output: &::F64x4,
e9174d1e
SL
498 definition: Named("llvm.x86.avx.addsub.pd.256")
499 },
54a0048b
SL
500 "256_blendv_ps" => Intrinsic {
501 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
502 output: &::F32x8,
503 definition: Named("llvm.x86.avx.blendv.ps.256")
504 },
505 "256_blendv_pd" => Intrinsic {
506 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
507 output: &::F64x4,
508 definition: Named("llvm.x86.avx.blendv.pd.256")
509 },
510 "256_broadcast_ps" => Intrinsic {
511 inputs: { static INPUTS: [&'static Type; 1] = [{ static PTR: Type = Type::Pointer(&::I8, None, true); &PTR }]; &INPUTS },
512 output: &::F32x8,
513 definition: Named("llvm.x86.avx.vbroadcastf128.ps.256")
514 },
515 "256_broadcast_pd" => Intrinsic {
516 inputs: { static INPUTS: [&'static Type; 1] = [{ static PTR: Type = Type::Pointer(&::I8, None, true); &PTR }]; &INPUTS },
517 output: &::F64x4,
518 definition: Named("llvm.x86.avx.vbroadcastf128.pd.256")
519 },
520 "256_cmp_ps" => Intrinsic {
521 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::I8]; &INPUTS },
522 output: &::F32x8,
523 definition: Named("llvm.x86.avx.cmp.ps.256")
524 },
525 "256_cmp_pd" => Intrinsic {
526 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::I8]; &INPUTS },
527 output: &::F64x4,
528 definition: Named("llvm.x86.avx.cmp.pd.256")
529 },
530 "256_cvtepi32_pd" => Intrinsic {
531 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x4]; &INPUTS },
532 output: &::F64x4,
533 definition: Named("llvm.x86.avx.cvtdq2.pd.256")
534 },
535 "256_cvtepi32_ps" => Intrinsic {
536 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x8]; &INPUTS },
537 output: &::F32x8,
538 definition: Named("llvm.x86.avx.cvtdq2.ps.256")
539 },
540 "256_cvtpd_epi32" => Intrinsic {
541 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS },
542 output: &::I32x4,
543 definition: Named("llvm.x86.avx.cvt.pd2dq.256")
544 },
545 "256_cvtpd_ps" => Intrinsic {
546 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS },
547 output: &::F32x4,
548 definition: Named("llvm.x86.avx.cvt.pd2.ps.256")
549 },
550 "256_cvtps_epi32" => Intrinsic {
551 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS },
552 output: &::I32x8,
553 definition: Named("llvm.x86.avx.cvt.ps2dq.256")
554 },
555 "256_cvtps_pd" => Intrinsic {
556 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x4]; &INPUTS },
557 output: &::F64x4,
558 definition: Named("llvm.x86.avx.cvt.ps2.pd.256")
559 },
560 "256_cvttpd_epi32" => Intrinsic {
561 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS },
562 output: &::I32x4,
563 definition: Named("llvm.x86.avx.cvtt.pd2dq.256")
564 },
565 "256_cvttps_epi32" => Intrinsic {
566 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS },
567 output: &::I32x8,
568 definition: Named("llvm.x86.avx.cvtt.ps2dq.256")
569 },
e9174d1e 570 "256_dp_ps" => Intrinsic {
54a0048b
SL
571 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::I32_8]; &INPUTS },
572 output: &::F32x8,
e9174d1e
SL
573 definition: Named("llvm.x86.avx.dp.ps.256")
574 },
575 "256_hadd_ps" => Intrinsic {
54a0048b
SL
576 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
577 output: &::F32x8,
e9174d1e
SL
578 definition: Named("llvm.x86.avx.hadd.ps.256")
579 },
580 "256_hadd_pd" => Intrinsic {
54a0048b
SL
581 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
582 output: &::F64x4,
e9174d1e
SL
583 definition: Named("llvm.x86.avx.hadd.pd.256")
584 },
585 "256_hsub_ps" => Intrinsic {
54a0048b
SL
586 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
587 output: &::F32x8,
e9174d1e
SL
588 definition: Named("llvm.x86.avx.hsub.ps.256")
589 },
590 "256_hsub_pd" => Intrinsic {
54a0048b
SL
591 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
592 output: &::F64x4,
e9174d1e
SL
593 definition: Named("llvm.x86.avx.hsub.pd.256")
594 },
595 "256_max_ps" => Intrinsic {
54a0048b
SL
596 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
597 output: &::F32x8,
e9174d1e
SL
598 definition: Named("llvm.x86.avx.max.ps.256")
599 },
600 "256_max_pd" => Intrinsic {
54a0048b
SL
601 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
602 output: &::F64x4,
e9174d1e
SL
603 definition: Named("llvm.x86.avx.max.pd.256")
604 },
605 "_maskload_ps" => Intrinsic {
54a0048b
SL
606 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x4_F32]; &INPUTS },
607 output: &::F32x4,
e9174d1e
SL
608 definition: Named("llvm.x86.avx.maskload.ps")
609 },
610 "_maskload_pd" => Intrinsic {
54a0048b
SL
611 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x2_F64]; &INPUTS },
612 output: &::F64x2,
e9174d1e
SL
613 definition: Named("llvm.x86.avx.maskload.pd")
614 },
615 "256_maskload_ps" => Intrinsic {
54a0048b
SL
616 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x8_F32]; &INPUTS },
617 output: &::F32x8,
e9174d1e
SL
618 definition: Named("llvm.x86.avx.maskload.ps.256")
619 },
620 "256_maskload_pd" => Intrinsic {
54a0048b
SL
621 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x4_F64]; &INPUTS },
622 output: &::F64x4,
e9174d1e
SL
623 definition: Named("llvm.x86.avx.maskload.pd.256")
624 },
625 "_maskstore_ps" => Intrinsic {
54a0048b
SL
626 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), false); &PTR }, &::I32x4_F32, &::F32x4]; &INPUTS },
627 output: &::VOID,
e9174d1e
SL
628 definition: Named("llvm.x86.avx.maskstore.ps")
629 },
630 "_maskstore_pd" => Intrinsic {
54a0048b
SL
631 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), false); &PTR }, &::I64x2_F64, &::F64x2]; &INPUTS },
632 output: &::VOID,
e9174d1e
SL
633 definition: Named("llvm.x86.avx.maskstore.pd")
634 },
635 "256_maskstore_ps" => Intrinsic {
54a0048b
SL
636 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F32, Some(&::I8), false); &PTR }, &::I32x8_F32, &::F32x8]; &INPUTS },
637 output: &::VOID,
e9174d1e
SL
638 definition: Named("llvm.x86.avx.maskstore.ps.256")
639 },
640 "256_maskstore_pd" => Intrinsic {
54a0048b
SL
641 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::F64, Some(&::I8), false); &PTR }, &::I64x4_F64, &::F64x4]; &INPUTS },
642 output: &::VOID,
e9174d1e
SL
643 definition: Named("llvm.x86.avx.maskstore.pd.256")
644 },
645 "256_min_ps" => Intrinsic {
54a0048b
SL
646 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
647 output: &::F32x8,
e9174d1e
SL
648 definition: Named("llvm.x86.avx.min.ps.256")
649 },
650 "256_min_pd" => Intrinsic {
54a0048b
SL
651 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
652 output: &::F64x4,
e9174d1e
SL
653 definition: Named("llvm.x86.avx.min.pd.256")
654 },
655 "256_movemask_ps" => Intrinsic {
54a0048b
SL
656 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS },
657 output: &::I32,
e9174d1e
SL
658 definition: Named("llvm.x86.avx.movmsk.ps.256")
659 },
660 "256_movemask_pd" => Intrinsic {
54a0048b
SL
661 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS },
662 output: &::I32,
e9174d1e
SL
663 definition: Named("llvm.x86.avx.movmsk.pd.256")
664 },
665 "_permutevar_ps" => Intrinsic {
54a0048b
SL
666 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::I32x4]; &INPUTS },
667 output: &::F32x4,
e9174d1e
SL
668 definition: Named("llvm.x86.avx.vpermilvar.ps")
669 },
670 "_permutevar_pd" => Intrinsic {
54a0048b
SL
671 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::I64x2]; &INPUTS },
672 output: &::F64x2,
e9174d1e
SL
673 definition: Named("llvm.x86.avx.vpermilvar.pd")
674 },
675 "256_permutevar_ps" => Intrinsic {
54a0048b
SL
676 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::I32x8]; &INPUTS },
677 output: &::F32x8,
e9174d1e
SL
678 definition: Named("llvm.x86.avx.vpermilvar.ps.256")
679 },
680 "256_permutevar_pd" => Intrinsic {
54a0048b
SL
681 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::I64x4]; &INPUTS },
682 output: &::F64x4,
e9174d1e
SL
683 definition: Named("llvm.x86.avx.vpermilvar.pd.256")
684 },
685 "256_rcp_ps" => Intrinsic {
54a0048b
SL
686 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS },
687 output: &::F32x8,
e9174d1e
SL
688 definition: Named("llvm.x86.avx.rcp.ps.256")
689 },
690 "256_rsqrt_ps" => Intrinsic {
54a0048b
SL
691 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS },
692 output: &::F32x8,
e9174d1e
SL
693 definition: Named("llvm.x86.avx.rsqrt.ps.256")
694 },
695 "256_storeu_ps" => Intrinsic {
54a0048b
SL
696 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F32x8, Some(&::U8), false); &PTR }, &::F32x8]; &INPUTS },
697 output: &::VOID,
e9174d1e
SL
698 definition: Named("llvm.x86.avx.storeu.ps.256")
699 },
700 "256_storeu_pd" => Intrinsic {
54a0048b
SL
701 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::F64x4, Some(&::U8), false); &PTR }, &::F64x4]; &INPUTS },
702 output: &::VOID,
e9174d1e
SL
703 definition: Named("llvm.x86.avx.storeu.ps.256")
704 },
705 "256_storeu_si256" => Intrinsic {
54a0048b
SL
706 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::U8x32, Some(&::U8), false); &PTR }, &::U8x32]; &INPUTS },
707 output: &::VOID,
e9174d1e
SL
708 definition: Named("llvm.x86.avx.storeu.dq.256")
709 },
710 "256_sqrt_ps" => Intrinsic {
54a0048b
SL
711 inputs: { static INPUTS: [&'static Type; 1] = [&::F32x8]; &INPUTS },
712 output: &::F32x8,
e9174d1e
SL
713 definition: Named("llvm.sqrt.v8f32")
714 },
715 "256_sqrt_pd" => Intrinsic {
54a0048b
SL
716 inputs: { static INPUTS: [&'static Type; 1] = [&::F64x4]; &INPUTS },
717 output: &::F64x4,
e9174d1e
SL
718 definition: Named("llvm.sqrt.v4f64")
719 },
720 "_testc_ps" => Intrinsic {
54a0048b
SL
721 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
722 output: &::I32,
e9174d1e
SL
723 definition: Named("llvm.x86.avx.vtestc.ps")
724 },
725 "256_testc_ps" => Intrinsic {
54a0048b
SL
726 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
727 output: &::I32,
e9174d1e
SL
728 definition: Named("llvm.x86.avx.vtestc.ps.256")
729 },
730 "_testc_pd" => Intrinsic {
54a0048b
SL
731 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
732 output: &::I32,
e9174d1e
SL
733 definition: Named("llvm.x86.avx.vtestc.pd")
734 },
735 "256_testc_pd" => Intrinsic {
54a0048b
SL
736 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
737 output: &::I32,
e9174d1e
SL
738 definition: Named("llvm.x86.avx.vtestc.pd.256")
739 },
740 "256_testc_si256" => Intrinsic {
54a0048b
SL
741 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x4, &::U64x4]; &INPUTS },
742 output: &::I32,
e9174d1e
SL
743 definition: Named("llvm.x86.avx.ptestc.256")
744 },
745 "_testnzc_ps" => Intrinsic {
54a0048b
SL
746 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
747 output: &::I32,
e9174d1e
SL
748 definition: Named("llvm.x86.avx.vtestnzc.ps")
749 },
750 "256_testnzc_ps" => Intrinsic {
54a0048b
SL
751 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
752 output: &::I32,
e9174d1e
SL
753 definition: Named("llvm.x86.avx.vtestnzc.ps.256")
754 },
755 "_testnzc_pd" => Intrinsic {
54a0048b
SL
756 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
757 output: &::I32,
e9174d1e
SL
758 definition: Named("llvm.x86.avx.vtestnzc.pd")
759 },
760 "256_testnzc_pd" => Intrinsic {
54a0048b
SL
761 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
762 output: &::I32,
e9174d1e
SL
763 definition: Named("llvm.x86.avx.vtestnzc.pd.256")
764 },
765 "256_testnzc_si256" => Intrinsic {
54a0048b
SL
766 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x4, &::U64x4]; &INPUTS },
767 output: &::I32,
e9174d1e
SL
768 definition: Named("llvm.x86.avx.ptestnzc.256")
769 },
770 "_testz_ps" => Intrinsic {
54a0048b
SL
771 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x4, &::F32x4]; &INPUTS },
772 output: &::I32,
e9174d1e
SL
773 definition: Named("llvm.x86.avx.vtestz.ps")
774 },
775 "256_testz_ps" => Intrinsic {
54a0048b
SL
776 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::F32x8]; &INPUTS },
777 output: &::I32,
e9174d1e
SL
778 definition: Named("llvm.x86.avx.vtestz.ps.256")
779 },
780 "_testz_pd" => Intrinsic {
54a0048b
SL
781 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x2, &::F64x2]; &INPUTS },
782 output: &::I32,
e9174d1e
SL
783 definition: Named("llvm.x86.avx.vtestz.pd")
784 },
785 "256_testz_pd" => Intrinsic {
54a0048b
SL
786 inputs: { static INPUTS: [&'static Type; 2] = [&::F64x4, &::F64x4]; &INPUTS },
787 output: &::I32,
e9174d1e
SL
788 definition: Named("llvm.x86.avx.vtestz.pd.256")
789 },
790 "256_testz_si256" => Intrinsic {
54a0048b
SL
791 inputs: { static INPUTS: [&'static Type; 2] = [&::U64x4, &::U64x4]; &INPUTS },
792 output: &::I32,
e9174d1e
SL
793 definition: Named("llvm.x86.avx.ptestz.256")
794 },
795 "256_zeroall" => Intrinsic {
54a0048b
SL
796 inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS },
797 output: &::VOID,
e9174d1e
SL
798 definition: Named("llvm.x86.avx.vzeroall")
799 },
800 "256_zeroupper" => Intrinsic {
54a0048b
SL
801 inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS },
802 output: &::VOID,
e9174d1e
SL
803 definition: Named("llvm.x86.avx.vzeroupper")
804 },
805 "256_abs_epi8" => Intrinsic {
54a0048b
SL
806 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x32]; &INPUTS },
807 output: &::I8x32,
e9174d1e
SL
808 definition: Named("llvm.x86.avx2.pabs.b")
809 },
810 "256_abs_epi16" => Intrinsic {
54a0048b
SL
811 inputs: { static INPUTS: [&'static Type; 1] = [&::I16x16]; &INPUTS },
812 output: &::I16x16,
e9174d1e
SL
813 definition: Named("llvm.x86.avx2.pabs.w")
814 },
815 "256_abs_epi32" => Intrinsic {
54a0048b
SL
816 inputs: { static INPUTS: [&'static Type; 1] = [&::I32x8]; &INPUTS },
817 output: &::I32x8,
e9174d1e
SL
818 definition: Named("llvm.x86.avx2.pabs.d")
819 },
820 "256_adds_epi8" => Intrinsic {
54a0048b
SL
821 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
822 output: &::I8x32,
e9174d1e
SL
823 definition: Named("llvm.x86.avx2.padds.b")
824 },
825 "256_adds_epu8" => Intrinsic {
54a0048b
SL
826 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS },
827 output: &::U8x32,
e9174d1e
SL
828 definition: Named("llvm.x86.avx2.paddus.b")
829 },
830 "256_adds_epi16" => Intrinsic {
54a0048b
SL
831 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
832 output: &::I16x16,
e9174d1e
SL
833 definition: Named("llvm.x86.avx2.padds.w")
834 },
835 "256_adds_epu16" => Intrinsic {
54a0048b
SL
836 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS },
837 output: &::U16x16,
e9174d1e
SL
838 definition: Named("llvm.x86.avx2.paddus.w")
839 },
840 "256_avg_epu8" => Intrinsic {
54a0048b
SL
841 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS },
842 output: &::U8x32,
e9174d1e
SL
843 definition: Named("llvm.x86.avx2.pavg.b")
844 },
845 "256_avg_epu16" => Intrinsic {
54a0048b
SL
846 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS },
847 output: &::U16x16,
e9174d1e
SL
848 definition: Named("llvm.x86.avx2.pavg.w")
849 },
850 "256_hadd_epi16" => Intrinsic {
54a0048b
SL
851 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
852 output: &::I16x16,
e9174d1e
SL
853 definition: Named("llvm.x86.avx2.phadd.w")
854 },
855 "256_hadd_epi32" => Intrinsic {
54a0048b
SL
856 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
857 output: &::I32x8,
e9174d1e
SL
858 definition: Named("llvm.x86.avx2.phadd.d")
859 },
860 "256_hadds_epi16" => Intrinsic {
54a0048b
SL
861 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
862 output: &::I16x16,
e9174d1e
SL
863 definition: Named("llvm.x86.avx2.phadd.sw")
864 },
865 "256_hsub_epi16" => Intrinsic {
54a0048b
SL
866 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
867 output: &::I16x16,
e9174d1e
SL
868 definition: Named("llvm.x86.avx2.phsub.w")
869 },
870 "256_hsub_epi32" => Intrinsic {
54a0048b
SL
871 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
872 output: &::I32x8,
e9174d1e
SL
873 definition: Named("llvm.x86.avx2.phsub.d")
874 },
875 "256_hsubs_epi16" => Intrinsic {
54a0048b
SL
876 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
877 output: &::I16x16,
e9174d1e
SL
878 definition: Named("llvm.x86.avx2.phsub.sw")
879 },
880 "256_madd_epi16" => Intrinsic {
54a0048b
SL
881 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
882 output: &::I32x8,
e9174d1e
SL
883 definition: Named("llvm.x86.avx2.pmadd.wd")
884 },
885 "256_maddubs_epi16" => Intrinsic {
54a0048b
SL
886 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
887 output: &::I16x16,
e9174d1e
SL
888 definition: Named("llvm.x86.avx2.pmadd.ub.sw")
889 },
890 "_mask_i32gather_epi32" => Intrinsic {
54a0048b
SL
891 inputs: { static INPUTS: [&'static Type; 5] = [&::I32x4, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I32x4, &::I32x4, &::I32_8]; &INPUTS },
892 output: &::I32x4,
e9174d1e
SL
893 definition: Named("llvm.x86.avx2.gather.d.d")
894 },
895 "_mask_i32gather_ps" => Intrinsic {
54a0048b
SL
896 inputs: { static INPUTS: [&'static Type; 5] = [&::F32x4, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x4, &::I32x4_F32, &::I32_8]; &INPUTS },
897 output: &::F32x4,
e9174d1e
SL
898 definition: Named("llvm.x86.avx2.gather.d.ps")
899 },
900 "256_mask_i32gather_epi32" => Intrinsic {
54a0048b
SL
901 inputs: { static INPUTS: [&'static Type; 5] = [&::I32x8, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I32x8, &::I32x8, &::I32_8]; &INPUTS },
902 output: &::I32x8,
e9174d1e
SL
903 definition: Named("llvm.x86.avx2.gather.d.d.256")
904 },
905 "256_mask_i32gather_ps" => Intrinsic {
54a0048b
SL
906 inputs: { static INPUTS: [&'static Type; 5] = [&::F32x8, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I32x8, &::I32x8_F32, &::I32_8]; &INPUTS },
907 output: &::F32x8,
e9174d1e
SL
908 definition: Named("llvm.x86.avx2.gather.d.ps.256")
909 },
910 "_mask_i32gather_epi64" => Intrinsic {
54a0048b
SL
911 inputs: { static INPUTS: [&'static Type; 5] = [&::I64x2, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x2, &::I32_8]; &INPUTS },
912 output: &::I64x2,
e9174d1e
SL
913 definition: Named("llvm.x86.avx2.gather.d.q")
914 },
915 "_mask_i32gather_pd" => Intrinsic {
54a0048b
SL
916 inputs: { static INPUTS: [&'static Type; 5] = [&::F64x2, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x2_F64, &::I32_8]; &INPUTS },
917 output: &::F64x2,
e9174d1e
SL
918 definition: Named("llvm.x86.avx2.gather.d.pd")
919 },
920 "256_mask_i32gather_epi64" => Intrinsic {
54a0048b
SL
921 inputs: { static INPUTS: [&'static Type; 5] = [&::I64x4, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x4, &::I32_8]; &INPUTS },
922 output: &::I64x4,
e9174d1e
SL
923 definition: Named("llvm.x86.avx2.gather.d.q.256")
924 },
925 "256_mask_i32gather_pd" => Intrinsic {
54a0048b
SL
926 inputs: { static INPUTS: [&'static Type; 5] = [&::F64x4, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I32x4, &::I64x4_F64, &::I32_8]; &INPUTS },
927 output: &::F64x4,
e9174d1e
SL
928 definition: Named("llvm.x86.avx2.gather.d.pd.256")
929 },
930 "_mask_i64gather_epi32" => Intrinsic {
54a0048b
SL
931 inputs: { static INPUTS: [&'static Type; 5] = [&::I32x4, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I64x2, &::I32x4, &::I32_8]; &INPUTS },
932 output: &::I32x4,
e9174d1e
SL
933 definition: Named("llvm.x86.avx2.gather.q.d")
934 },
935 "_mask_i64gather_ps" => Intrinsic {
54a0048b
SL
936 inputs: { static INPUTS: [&'static Type; 5] = [&::F32x4, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I64x2, &::I32x4_F32, &::I32_8]; &INPUTS },
937 output: &::F32x4,
e9174d1e
SL
938 definition: Named("llvm.x86.avx2.gather.q.ps")
939 },
940 "256_mask_i64gather_epi32" => Intrinsic {
54a0048b
SL
941 inputs: { static INPUTS: [&'static Type; 5] = [&::I32x4, { static PTR: Type = Type::Pointer(&::I32, Some(&::I8), true); &PTR }, &::I64x4, &::I32x4, &::I32_8]; &INPUTS },
942 output: &::I32x4,
e9174d1e
SL
943 definition: Named("llvm.x86.avx2.gather.q.d")
944 },
945 "256_mask_i64gather_ps" => Intrinsic {
54a0048b
SL
946 inputs: { static INPUTS: [&'static Type; 5] = [&::F32x4, { static PTR: Type = Type::Pointer(&::F32, Some(&::I8), true); &PTR }, &::I64x4, &::I32x4_F32, &::I32_8]; &INPUTS },
947 output: &::F32x4,
e9174d1e
SL
948 definition: Named("llvm.x86.avx2.gather.q.ps")
949 },
950 "_mask_i64gather_epi64" => Intrinsic {
54a0048b
SL
951 inputs: { static INPUTS: [&'static Type; 5] = [&::I64x2, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I64x2, &::I64x2, &::I32_8]; &INPUTS },
952 output: &::I64x2,
e9174d1e
SL
953 definition: Named("llvm.x86.avx2.gather.q.q")
954 },
955 "_mask_i64gather_pd" => Intrinsic {
54a0048b
SL
956 inputs: { static INPUTS: [&'static Type; 5] = [&::F64x2, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x2, &::I64x2_F64, &::I32_8]; &INPUTS },
957 output: &::F64x2,
e9174d1e
SL
958 definition: Named("llvm.x86.avx2.gather.q.pd")
959 },
960 "256_mask_i64gather_epi64" => Intrinsic {
54a0048b
SL
961 inputs: { static INPUTS: [&'static Type; 5] = [&::I64x4, { static PTR: Type = Type::Pointer(&::I64, Some(&::I8), true); &PTR }, &::I64x4, &::I64x4, &::I32_8]; &INPUTS },
962 output: &::I64x4,
e9174d1e
SL
963 definition: Named("llvm.x86.avx2.gather.q.q.256")
964 },
965 "256_mask_i64gather_pd" => Intrinsic {
54a0048b
SL
966 inputs: { static INPUTS: [&'static Type; 5] = [&::F64x4, { static PTR: Type = Type::Pointer(&::F64, Some(&::I8), true); &PTR }, &::I64x4, &::I64x4_F64, &::I32_8]; &INPUTS },
967 output: &::F64x4,
e9174d1e
SL
968 definition: Named("llvm.x86.avx2.gather.q.pd.256")
969 },
970 "_maskload_epi32" => Intrinsic {
54a0048b
SL
971 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I32x4, Some(&::I8), true); &PTR }, &::I32x4]; &INPUTS },
972 output: &::I32x4,
e9174d1e
SL
973 definition: Named("llvm.x86.avx2.maskload.d")
974 },
975 "_maskload_epi64" => Intrinsic {
54a0048b
SL
976 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I64x2, Some(&::I8), true); &PTR }, &::I64x2]; &INPUTS },
977 output: &::I64x2,
e9174d1e
SL
978 definition: Named("llvm.x86.avx2.maskload.q")
979 },
980 "256_maskload_epi32" => Intrinsic {
54a0048b
SL
981 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I32x8, Some(&::I8), true); &PTR }, &::I32x8]; &INPUTS },
982 output: &::I32x8,
e9174d1e
SL
983 definition: Named("llvm.x86.avx2.maskload.d.256")
984 },
985 "256_maskload_epi64" => Intrinsic {
54a0048b
SL
986 inputs: { static INPUTS: [&'static Type; 2] = [{ static PTR: Type = Type::Pointer(&::I64x4, Some(&::I8), true); &PTR }, &::I64x4]; &INPUTS },
987 output: &::I64x4,
e9174d1e
SL
988 definition: Named("llvm.x86.avx2.maskload.q.256")
989 },
990 "_maskstore_epi32" => Intrinsic {
54a0048b
SL
991 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I32, Some(&::I8), false); &PTR }, &::I32x4, &::I32x4]; &INPUTS },
992 output: &::VOID,
e9174d1e
SL
993 definition: Named("llvm.x86.avx2.maskstore.d")
994 },
995 "_maskstore_epi64" => Intrinsic {
54a0048b
SL
996 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I64, Some(&::I8), false); &PTR }, &::I64x2, &::I64x2]; &INPUTS },
997 output: &::VOID,
e9174d1e
SL
998 definition: Named("llvm.x86.avx2.maskstore.q")
999 },
1000 "256_maskstore_epi32" => Intrinsic {
54a0048b
SL
1001 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I32, Some(&::I8), false); &PTR }, &::I32x8, &::I32x8]; &INPUTS },
1002 output: &::VOID,
e9174d1e
SL
1003 definition: Named("llvm.x86.avx2.maskstore.d.256")
1004 },
1005 "256_maskstore_epi64" => Intrinsic {
54a0048b
SL
1006 inputs: { static INPUTS: [&'static Type; 3] = [{ static PTR: Type = Type::Pointer(&::I64, Some(&::I8), false); &PTR }, &::I64x4, &::I64x4]; &INPUTS },
1007 output: &::VOID,
e9174d1e
SL
1008 definition: Named("llvm.x86.avx2.maskstore.q.256")
1009 },
1010 "256_max_epi8" => Intrinsic {
54a0048b
SL
1011 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
1012 output: &::I8x32,
e9174d1e
SL
1013 definition: Named("llvm.x86.avx2.pmaxs.b")
1014 },
1015 "256_max_epu8" => Intrinsic {
54a0048b
SL
1016 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS },
1017 output: &::U8x32,
e9174d1e
SL
1018 definition: Named("llvm.x86.avx2.pmaxu.b")
1019 },
1020 "256_max_epi16" => Intrinsic {
54a0048b
SL
1021 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1022 output: &::I16x16,
e9174d1e
SL
1023 definition: Named("llvm.x86.avx2.pmaxs.w")
1024 },
1025 "256_max_epu16" => Intrinsic {
54a0048b
SL
1026 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS },
1027 output: &::U16x16,
e9174d1e
SL
1028 definition: Named("llvm.x86.avx2.pmaxu.w")
1029 },
1030 "256_max_epi32" => Intrinsic {
54a0048b
SL
1031 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1032 output: &::I32x8,
e9174d1e
SL
1033 definition: Named("llvm.x86.avx2.pmaxs.d")
1034 },
1035 "256_max_epu32" => Intrinsic {
54a0048b
SL
1036 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x8, &::U32x8]; &INPUTS },
1037 output: &::U32x8,
e9174d1e
SL
1038 definition: Named("llvm.x86.avx2.pmaxu.d")
1039 },
1040 "256_min_epi8" => Intrinsic {
54a0048b
SL
1041 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
1042 output: &::I8x32,
e9174d1e
SL
1043 definition: Named("llvm.x86.avx2.pmins.b")
1044 },
1045 "256_min_epu8" => Intrinsic {
54a0048b
SL
1046 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS },
1047 output: &::U8x32,
e9174d1e
SL
1048 definition: Named("llvm.x86.avx2.pminu.b")
1049 },
1050 "256_min_epi16" => Intrinsic {
54a0048b
SL
1051 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1052 output: &::I16x16,
e9174d1e
SL
1053 definition: Named("llvm.x86.avx2.pmins.w")
1054 },
1055 "256_min_epu16" => Intrinsic {
54a0048b
SL
1056 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS },
1057 output: &::U16x16,
e9174d1e
SL
1058 definition: Named("llvm.x86.avx2.pminu.w")
1059 },
1060 "256_min_epi32" => Intrinsic {
54a0048b
SL
1061 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1062 output: &::I32x8,
e9174d1e
SL
1063 definition: Named("llvm.x86.avx2.pmins.d")
1064 },
1065 "256_min_epu32" => Intrinsic {
54a0048b
SL
1066 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x8, &::U32x8]; &INPUTS },
1067 output: &::U32x8,
e9174d1e
SL
1068 definition: Named("llvm.x86.avx2.pminu.d")
1069 },
1070 "256_movemask_epi8" => Intrinsic {
54a0048b
SL
1071 inputs: { static INPUTS: [&'static Type; 1] = [&::I8x32]; &INPUTS },
1072 output: &::I32,
e9174d1e
SL
1073 definition: Named("llvm.x86.avx2.pmovmskb")
1074 },
1075 "256_mpsadbw_epu8" => Intrinsic {
54a0048b
SL
1076 inputs: { static INPUTS: [&'static Type; 3] = [&::U8x32, &::U8x32, &::I32_8]; &INPUTS },
1077 output: &::U16x16,
e9174d1e
SL
1078 definition: Named("llvm.x86.avx2.mpsadbw")
1079 },
1080 "256_mul_epi64" => Intrinsic {
54a0048b
SL
1081 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1082 output: &::I64x4,
e9174d1e
SL
1083 definition: Named("llvm.x86.avx2.pmulq.dq")
1084 },
1085 "256_mul_epu64" => Intrinsic {
54a0048b
SL
1086 inputs: { static INPUTS: [&'static Type; 2] = [&::U32x8, &::U32x8]; &INPUTS },
1087 output: &::U64x4,
e9174d1e
SL
1088 definition: Named("llvm.x86.avx2.pmulq.dq")
1089 },
1090 "256_mulhi_epi16" => Intrinsic {
54a0048b
SL
1091 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1092 output: &::I16x16,
e9174d1e
SL
1093 definition: Named("llvm.x86.avx2.pmulhw.w")
1094 },
1095 "256_mulhi_epu16" => Intrinsic {
54a0048b
SL
1096 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS },
1097 output: &::U16x16,
e9174d1e
SL
1098 definition: Named("llvm.x86.avx2.pmulhw.w")
1099 },
1100 "256_mulhrs_epi16" => Intrinsic {
54a0048b
SL
1101 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1102 output: &::I16x16,
e9174d1e
SL
1103 definition: Named("llvm.x86.avx2.pmul.hr.sw")
1104 },
1105 "256_packs_epi16" => Intrinsic {
54a0048b
SL
1106 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1107 output: &::I8x32,
e9174d1e
SL
1108 definition: Named("llvm.x86.avx2.packsswb")
1109 },
1110 "256_packus_epi16" => Intrinsic {
54a0048b
SL
1111 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1112 output: &::U8x32,
e9174d1e
SL
1113 definition: Named("llvm.x86.avx2.packuswb")
1114 },
1115 "256_packs_epi32" => Intrinsic {
54a0048b
SL
1116 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1117 output: &::I16x16,
e9174d1e
SL
1118 definition: Named("llvm.x86.avx2.packssdw")
1119 },
1120 "256_packus_epi32" => Intrinsic {
54a0048b
SL
1121 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1122 output: &::U16x16,
e9174d1e
SL
1123 definition: Named("llvm.x86.avx2.packusdw")
1124 },
1125 "256_permutevar8x32_epi32" => Intrinsic {
54a0048b
SL
1126 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1127 output: &::I32x8,
e9174d1e
SL
1128 definition: Named("llvm.x86.avx2.permd")
1129 },
1130 "256_permutevar8x32_ps" => Intrinsic {
54a0048b
SL
1131 inputs: { static INPUTS: [&'static Type; 2] = [&::F32x8, &::I32x8]; &INPUTS },
1132 output: &::F32x8,
e9174d1e
SL
1133 definition: Named("llvm.x86.avx2.permps")
1134 },
1135 "256_sad_epu8" => Intrinsic {
54a0048b
SL
1136 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS },
1137 output: &::U8x32,
e9174d1e
SL
1138 definition: Named("llvm.x86.avx2.psad.bw")
1139 },
1140 "256_shuffle_epi8" => Intrinsic {
54a0048b
SL
1141 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
1142 output: &::I8x32,
e9174d1e
SL
1143 definition: Named("llvm.x86.avx2.pshuf.b")
1144 },
1145 "256_sign_epi8" => Intrinsic {
54a0048b
SL
1146 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
1147 output: &::I8x32,
e9174d1e
SL
1148 definition: Named("llvm.x86.avx2.psign.b")
1149 },
1150 "256_sign_epi16" => Intrinsic {
54a0048b
SL
1151 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1152 output: &::I16x16,
e9174d1e
SL
1153 definition: Named("llvm.x86.avx2.psign.w")
1154 },
1155 "256_sign_epi32" => Intrinsic {
54a0048b
SL
1156 inputs: { static INPUTS: [&'static Type; 2] = [&::I32x8, &::I32x8]; &INPUTS },
1157 output: &::I32x8,
e9174d1e
SL
1158 definition: Named("llvm.x86.avx2.psign.d")
1159 },
1160 "256_subs_epi8" => Intrinsic {
54a0048b
SL
1161 inputs: { static INPUTS: [&'static Type; 2] = [&::I8x32, &::I8x32]; &INPUTS },
1162 output: &::I8x32,
e9174d1e
SL
1163 definition: Named("llvm.x86.avx2.psubs.b")
1164 },
1165 "256_subs_epu8" => Intrinsic {
54a0048b
SL
1166 inputs: { static INPUTS: [&'static Type; 2] = [&::U8x32, &::U8x32]; &INPUTS },
1167 output: &::U8x32,
e9174d1e
SL
1168 definition: Named("llvm.x86.avx2.psubus.b")
1169 },
1170 "256_subs_epi16" => Intrinsic {
54a0048b
SL
1171 inputs: { static INPUTS: [&'static Type; 2] = [&::I16x16, &::I16x16]; &INPUTS },
1172 output: &::I16x16,
e9174d1e
SL
1173 definition: Named("llvm.x86.avx2.psubs.w")
1174 },
1175 "256_subs_epu16" => Intrinsic {
54a0048b
SL
1176 inputs: { static INPUTS: [&'static Type; 2] = [&::U16x16, &::U16x16]; &INPUTS },
1177 output: &::U16x16,
e9174d1e
SL
1178 definition: Named("llvm.x86.avx2.psubus.w")
1179 },
54a0048b
SL
1180 "_fmadd_ps" => Intrinsic {
1181 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS },
1182 output: &::F32x4,
1183 definition: Named("llvm.x86.fma.vfmadd.ps")
1184 },
1185 "_fmadd_pd" => Intrinsic {
1186 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS },
1187 output: &::F64x2,
1188 definition: Named("llvm.x86.fma.vfmadd.pd")
1189 },
1190 "256_fmadd_ps" => Intrinsic {
1191 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
1192 output: &::F32x8,
1193 definition: Named("llvm.x86.fma.vfmadd.ps.256")
1194 },
1195 "256_fmadd_pd" => Intrinsic {
1196 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
1197 output: &::F64x4,
1198 definition: Named("llvm.x86.fma.vfmadd.pd.256")
1199 },
1200 "_fmaddsub_ps" => Intrinsic {
1201 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS },
1202 output: &::F32x4,
1203 definition: Named("llvm.x86.fma.vfmaddsub.ps")
1204 },
1205 "_fmaddsub_pd" => Intrinsic {
1206 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS },
1207 output: &::F64x2,
1208 definition: Named("llvm.x86.fma.vfmaddsub.pd")
1209 },
1210 "256_fmaddsub_ps" => Intrinsic {
1211 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
1212 output: &::F32x8,
1213 definition: Named("llvm.x86.fma.vfmaddsub.ps.256")
1214 },
1215 "256_fmaddsub_pd" => Intrinsic {
1216 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
1217 output: &::F64x4,
1218 definition: Named("llvm.x86.fma.vfmaddsub.pd.256")
1219 },
1220 "_fmsub_ps" => Intrinsic {
1221 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS },
1222 output: &::F32x4,
1223 definition: Named("llvm.x86.fma.vfmsub.ps")
1224 },
1225 "_fmsub_pd" => Intrinsic {
1226 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS },
1227 output: &::F64x2,
1228 definition: Named("llvm.x86.fma.vfmsub.pd")
1229 },
1230 "256_fmsub_ps" => Intrinsic {
1231 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
1232 output: &::F32x8,
1233 definition: Named("llvm.x86.fma.vfmsub.ps.256")
1234 },
1235 "256_fmsub_pd" => Intrinsic {
1236 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
1237 output: &::F64x4,
1238 definition: Named("llvm.x86.fma.vfmsub.pd.256")
1239 },
1240 "_fmsubadd_ps" => Intrinsic {
1241 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS },
1242 output: &::F32x4,
1243 definition: Named("llvm.x86.fma.vfmsubadd.ps")
1244 },
1245 "_fmsubadd_pd" => Intrinsic {
1246 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS },
1247 output: &::F64x2,
1248 definition: Named("llvm.x86.fma.vfmsubadd.pd")
1249 },
1250 "256_fmsubadd_ps" => Intrinsic {
1251 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
1252 output: &::F32x8,
1253 definition: Named("llvm.x86.fma.vfmsubadd.ps.256")
1254 },
1255 "256_fmsubadd_pd" => Intrinsic {
1256 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
1257 output: &::F64x4,
1258 definition: Named("llvm.x86.fma.vfmsubadd.pd.256")
1259 },
1260 "_fnmadd_ps" => Intrinsic {
1261 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS },
1262 output: &::F32x4,
1263 definition: Named("llvm.x86.fma.vfnmadd.ps")
1264 },
1265 "_fnmadd_pd" => Intrinsic {
1266 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS },
1267 output: &::F64x2,
1268 definition: Named("llvm.x86.fma.vfnmadd.pd")
1269 },
1270 "256_fnmadd_ps" => Intrinsic {
1271 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
1272 output: &::F32x8,
1273 definition: Named("llvm.x86.fma.vfnmadd.ps.256")
1274 },
1275 "256_fnmadd_pd" => Intrinsic {
1276 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
1277 output: &::F64x4,
1278 definition: Named("llvm.x86.fma.vfnmadd.pd.256")
1279 },
1280 "_fnmsub_ps" => Intrinsic {
1281 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x4, &::F32x4, &::F32x4]; &INPUTS },
1282 output: &::F32x4,
1283 definition: Named("llvm.x86.fma.vfnmsub.ps")
1284 },
1285 "_fnmsub_pd" => Intrinsic {
1286 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x2, &::F64x2, &::F64x2]; &INPUTS },
1287 output: &::F64x2,
1288 definition: Named("llvm.x86.fma.vfnmsub.pd")
1289 },
1290 "256_fnmsub_ps" => Intrinsic {
1291 inputs: { static INPUTS: [&'static Type; 3] = [&::F32x8, &::F32x8, &::F32x8]; &INPUTS },
1292 output: &::F32x8,
1293 definition: Named("llvm.x86.fma.vfnmsub.ps.256")
1294 },
1295 "256_fnmsub_pd" => Intrinsic {
1296 inputs: { static INPUTS: [&'static Type; 3] = [&::F64x4, &::F64x4, &::F64x4]; &INPUTS },
1297 output: &::F64x4,
1298 definition: Named("llvm.x86.fma.vfnmsub.pd.256")
1299 },
e9174d1e
SL
1300 _ => return None,
1301 })
1302}