1 //===- IntrinsicsNVVM.td - Defines NVVM intrinsics ---------*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines all of the NVVM-specific intrinsics for use with NVPTX.
12 //===----------------------------------------------------------------------===//
14 // The following intrinsics were once defined here, but are now auto-upgraded
15 // to target-generic LLVM intrinsics.
17 // * llvm.nvvm.brev32 --> llvm.bitreverse.i32
18 // * llvm.nvvm.brev64 --> llvm.bitreverse.i64
19 // * llvm.nvvm.clz.i --> llvm.ctlz.i32
20 // * llvm.nvvm.clz.ll --> trunc i64 llvm.ctlz.i64(x) to i32
21 // * llvm.nvvm.popc.i --> llvm.ctpop.i32
22 // * llvm.nvvm.popc.ll --> trunc i64 llvm.ctpop.i64 to i32
23 // * llvm.nvvm.abs.i --> select(x >= -x, x, -x)
24 // * llvm.nvvm.abs.ll --> ibid.
25 // * llvm.nvvm.max.i --> select(x sge y, x, y)
26 // * llvm.nvvm.max.ll --> ibid.
27 // * llvm.nvvm.max.ui --> select(x uge y, x, y)
28 // * llvm.nvvm.max.ull --> ibid.
29 // * llvm.nvvm.max.i --> select(x sle y, x, y)
30 // * llvm.nvvm.max.ll --> ibid.
31 // * llvm.nvvm.max.ui --> select(x ule y, x, y)
32 // * llvm.nvvm.max.ull --> ibid.
33 // * llvm.nvvm.h2f --> llvm.convert.to.fp16.f32
35 def llvm_anyi64ptr_ty : LLVMAnyPointerType<llvm_i64_ty>; // (space)i64*
41 let TargetPrefix = "nvvm" in {
42 def int_nvvm_prmt : GCCBuiltin<"__nvvm_prmt">,
43 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
44 [IntrNoMem, Commutative]>;
50 def int_nvvm_fmin_f : GCCBuiltin<"__nvvm_fmin_f">,
51 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
52 [IntrNoMem, Commutative]>;
53 def int_nvvm_fmin_ftz_f : GCCBuiltin<"__nvvm_fmin_ftz_f">,
54 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
55 [IntrNoMem, Commutative]>;
57 def int_nvvm_fmax_f : GCCBuiltin<"__nvvm_fmax_f">,
58 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty]
59 , [IntrNoMem, Commutative]>;
60 def int_nvvm_fmax_ftz_f : GCCBuiltin<"__nvvm_fmax_ftz_f">,
61 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
62 [IntrNoMem, Commutative]>;
64 def int_nvvm_fmin_d : GCCBuiltin<"__nvvm_fmin_d">,
65 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
66 [IntrNoMem, Commutative]>;
67 def int_nvvm_fmax_d : GCCBuiltin<"__nvvm_fmax_d">,
68 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
69 [IntrNoMem, Commutative]>;
75 def int_nvvm_mulhi_i : GCCBuiltin<"__nvvm_mulhi_i">,
76 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
77 [IntrNoMem, Commutative]>;
78 def int_nvvm_mulhi_ui : GCCBuiltin<"__nvvm_mulhi_ui">,
79 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
80 [IntrNoMem, Commutative]>;
82 def int_nvvm_mulhi_ll : GCCBuiltin<"__nvvm_mulhi_ll">,
83 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
84 [IntrNoMem, Commutative]>;
85 def int_nvvm_mulhi_ull : GCCBuiltin<"__nvvm_mulhi_ull">,
86 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
87 [IntrNoMem, Commutative]>;
89 def int_nvvm_mul_rn_ftz_f : GCCBuiltin<"__nvvm_mul_rn_ftz_f">,
90 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
91 [IntrNoMem, Commutative]>;
92 def int_nvvm_mul_rn_f : GCCBuiltin<"__nvvm_mul_rn_f">,
93 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
94 [IntrNoMem, Commutative]>;
95 def int_nvvm_mul_rz_ftz_f : GCCBuiltin<"__nvvm_mul_rz_ftz_f">,
96 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
97 [IntrNoMem, Commutative]>;
98 def int_nvvm_mul_rz_f : GCCBuiltin<"__nvvm_mul_rz_f">,
99 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
100 [IntrNoMem, Commutative]>;
101 def int_nvvm_mul_rm_ftz_f : GCCBuiltin<"__nvvm_mul_rm_ftz_f">,
102 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
103 [IntrNoMem, Commutative]>;
104 def int_nvvm_mul_rm_f : GCCBuiltin<"__nvvm_mul_rm_f">,
105 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
106 [IntrNoMem, Commutative]>;
107 def int_nvvm_mul_rp_ftz_f : GCCBuiltin<"__nvvm_mul_rp_ftz_f">,
108 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
109 [IntrNoMem, Commutative]>;
110 def int_nvvm_mul_rp_f : GCCBuiltin<"__nvvm_mul_rp_f">,
111 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
112 [IntrNoMem, Commutative]>;
114 def int_nvvm_mul_rn_d : GCCBuiltin<"__nvvm_mul_rn_d">,
115 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
116 [IntrNoMem, Commutative]>;
117 def int_nvvm_mul_rz_d : GCCBuiltin<"__nvvm_mul_rz_d">,
118 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
119 [IntrNoMem, Commutative]>;
120 def int_nvvm_mul_rm_d : GCCBuiltin<"__nvvm_mul_rm_d">,
121 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
122 [IntrNoMem, Commutative]>;
123 def int_nvvm_mul_rp_d : GCCBuiltin<"__nvvm_mul_rp_d">,
124 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
125 [IntrNoMem, Commutative]>;
127 def int_nvvm_mul24_i : GCCBuiltin<"__nvvm_mul24_i">,
128 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
129 [IntrNoMem, Commutative]>;
130 def int_nvvm_mul24_ui : GCCBuiltin<"__nvvm_mul24_ui">,
131 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
132 [IntrNoMem, Commutative]>;
138 def int_nvvm_div_approx_ftz_f : GCCBuiltin<"__nvvm_div_approx_ftz_f">,
139 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
140 [IntrNoMem, Commutative]>;
141 def int_nvvm_div_approx_f : GCCBuiltin<"__nvvm_div_approx_f">,
142 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
143 [IntrNoMem, Commutative]>;
145 def int_nvvm_div_rn_ftz_f : GCCBuiltin<"__nvvm_div_rn_ftz_f">,
146 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
147 [IntrNoMem, Commutative]>;
148 def int_nvvm_div_rn_f : GCCBuiltin<"__nvvm_div_rn_f">,
149 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
150 [IntrNoMem, Commutative]>;
152 def int_nvvm_div_rz_ftz_f : GCCBuiltin<"__nvvm_div_rz_ftz_f">,
153 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
154 [IntrNoMem, Commutative]>;
155 def int_nvvm_div_rz_f : GCCBuiltin<"__nvvm_div_rz_f">,
156 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
157 [IntrNoMem, Commutative]>;
159 def int_nvvm_div_rm_ftz_f : GCCBuiltin<"__nvvm_div_rm_ftz_f">,
160 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
161 [IntrNoMem, Commutative]>;
162 def int_nvvm_div_rm_f : GCCBuiltin<"__nvvm_div_rm_f">,
163 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
164 [IntrNoMem, Commutative]>;
166 def int_nvvm_div_rp_ftz_f : GCCBuiltin<"__nvvm_div_rp_ftz_f">,
167 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
168 [IntrNoMem, Commutative]>;
169 def int_nvvm_div_rp_f : GCCBuiltin<"__nvvm_div_rp_f">,
170 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
171 [IntrNoMem, Commutative]>;
173 def int_nvvm_div_rn_d : GCCBuiltin<"__nvvm_div_rn_d">,
174 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
175 [IntrNoMem, Commutative]>;
176 def int_nvvm_div_rz_d : GCCBuiltin<"__nvvm_div_rz_d">,
177 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
178 [IntrNoMem, Commutative]>;
179 def int_nvvm_div_rm_d : GCCBuiltin<"__nvvm_div_rm_d">,
180 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
181 [IntrNoMem, Commutative]>;
182 def int_nvvm_div_rp_d : GCCBuiltin<"__nvvm_div_rp_d">,
183 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
184 [IntrNoMem, Commutative]>;
190 def int_nvvm_sad_i : GCCBuiltin<"__nvvm_sad_i">,
191 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
192 [IntrNoMem, Commutative]>;
193 def int_nvvm_sad_ui : GCCBuiltin<"__nvvm_sad_ui">,
194 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
195 [IntrNoMem, Commutative]>;
201 def int_nvvm_floor_ftz_f : GCCBuiltin<"__nvvm_floor_ftz_f">,
202 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
203 def int_nvvm_floor_f : GCCBuiltin<"__nvvm_floor_f">,
204 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
205 def int_nvvm_floor_d : GCCBuiltin<"__nvvm_floor_d">,
206 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
208 def int_nvvm_ceil_ftz_f : GCCBuiltin<"__nvvm_ceil_ftz_f">,
209 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
210 def int_nvvm_ceil_f : GCCBuiltin<"__nvvm_ceil_f">,
211 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
212 def int_nvvm_ceil_d : GCCBuiltin<"__nvvm_ceil_d">,
213 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
219 def int_nvvm_fabs_ftz_f : GCCBuiltin<"__nvvm_fabs_ftz_f">,
220 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
221 def int_nvvm_fabs_f : GCCBuiltin<"__nvvm_fabs_f">,
222 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
223 def int_nvvm_fabs_d : GCCBuiltin<"__nvvm_fabs_d">,
224 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
230 def int_nvvm_round_ftz_f : GCCBuiltin<"__nvvm_round_ftz_f">,
231 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
232 def int_nvvm_round_f : GCCBuiltin<"__nvvm_round_f">,
233 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
235 def int_nvvm_round_d : GCCBuiltin<"__nvvm_round_d">,
236 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
242 def int_nvvm_trunc_ftz_f : GCCBuiltin<"__nvvm_trunc_ftz_f">,
243 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
244 def int_nvvm_trunc_f : GCCBuiltin<"__nvvm_trunc_f">,
245 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
247 def int_nvvm_trunc_d : GCCBuiltin<"__nvvm_trunc_d">,
248 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
254 def int_nvvm_saturate_ftz_f : GCCBuiltin<"__nvvm_saturate_ftz_f">,
255 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
256 def int_nvvm_saturate_f : GCCBuiltin<"__nvvm_saturate_f">,
257 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
259 def int_nvvm_saturate_d : GCCBuiltin<"__nvvm_saturate_d">,
260 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
266 def int_nvvm_ex2_approx_ftz_f : GCCBuiltin<"__nvvm_ex2_approx_ftz_f">,
267 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
268 def int_nvvm_ex2_approx_f : GCCBuiltin<"__nvvm_ex2_approx_f">,
269 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
270 def int_nvvm_ex2_approx_d : GCCBuiltin<"__nvvm_ex2_approx_d">,
271 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
273 def int_nvvm_lg2_approx_ftz_f : GCCBuiltin<"__nvvm_lg2_approx_ftz_f">,
274 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
275 def int_nvvm_lg2_approx_f : GCCBuiltin<"__nvvm_lg2_approx_f">,
276 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
277 def int_nvvm_lg2_approx_d : GCCBuiltin<"__nvvm_lg2_approx_d">,
278 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
284 def int_nvvm_sin_approx_ftz_f : GCCBuiltin<"__nvvm_sin_approx_ftz_f">,
285 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
286 def int_nvvm_sin_approx_f : GCCBuiltin<"__nvvm_sin_approx_f">,
287 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
289 def int_nvvm_cos_approx_ftz_f : GCCBuiltin<"__nvvm_cos_approx_ftz_f">,
290 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
291 def int_nvvm_cos_approx_f : GCCBuiltin<"__nvvm_cos_approx_f">,
292 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
298 def int_nvvm_fma_rn_ftz_f : GCCBuiltin<"__nvvm_fma_rn_ftz_f">,
299 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
300 [IntrNoMem, Commutative]>;
301 def int_nvvm_fma_rn_f : GCCBuiltin<"__nvvm_fma_rn_f">,
302 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
303 [IntrNoMem, Commutative]>;
304 def int_nvvm_fma_rz_ftz_f : GCCBuiltin<"__nvvm_fma_rz_ftz_f">,
305 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
306 [IntrNoMem, Commutative]>;
307 def int_nvvm_fma_rz_f : GCCBuiltin<"__nvvm_fma_rz_f">,
308 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
309 [IntrNoMem, Commutative]>;
310 def int_nvvm_fma_rm_ftz_f : GCCBuiltin<"__nvvm_fma_rm_ftz_f">,
311 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
312 [IntrNoMem, Commutative]>;
313 def int_nvvm_fma_rm_f : GCCBuiltin<"__nvvm_fma_rm_f">,
314 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
315 [IntrNoMem, Commutative]>;
316 def int_nvvm_fma_rp_ftz_f : GCCBuiltin<"__nvvm_fma_rp_ftz_f">,
317 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
318 [IntrNoMem, Commutative]>;
319 def int_nvvm_fma_rp_f : GCCBuiltin<"__nvvm_fma_rp_f">,
320 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
321 [IntrNoMem, Commutative]>;
323 def int_nvvm_fma_rn_d : GCCBuiltin<"__nvvm_fma_rn_d">,
324 Intrinsic<[llvm_double_ty],
325 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
326 [IntrNoMem, Commutative]>;
327 def int_nvvm_fma_rz_d : GCCBuiltin<"__nvvm_fma_rz_d">,
328 Intrinsic<[llvm_double_ty],
329 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
330 [IntrNoMem, Commutative]>;
331 def int_nvvm_fma_rm_d : GCCBuiltin<"__nvvm_fma_rm_d">,
332 Intrinsic<[llvm_double_ty],
333 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
334 [IntrNoMem, Commutative]>;
335 def int_nvvm_fma_rp_d : GCCBuiltin<"__nvvm_fma_rp_d">,
336 Intrinsic<[llvm_double_ty],
337 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
338 [IntrNoMem, Commutative]>;
344 def int_nvvm_rcp_rn_ftz_f : GCCBuiltin<"__nvvm_rcp_rn_ftz_f">,
345 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
346 def int_nvvm_rcp_rn_f : GCCBuiltin<"__nvvm_rcp_rn_f">,
347 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
348 def int_nvvm_rcp_rz_ftz_f : GCCBuiltin<"__nvvm_rcp_rz_ftz_f">,
349 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
350 def int_nvvm_rcp_rz_f : GCCBuiltin<"__nvvm_rcp_rz_f">,
351 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
352 def int_nvvm_rcp_rm_ftz_f : GCCBuiltin<"__nvvm_rcp_rm_ftz_f">,
353 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
354 def int_nvvm_rcp_rm_f : GCCBuiltin<"__nvvm_rcp_rm_f">,
355 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
356 def int_nvvm_rcp_rp_ftz_f : GCCBuiltin<"__nvvm_rcp_rp_ftz_f">,
357 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
358 def int_nvvm_rcp_rp_f : GCCBuiltin<"__nvvm_rcp_rp_f">,
359 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
361 def int_nvvm_rcp_rn_d : GCCBuiltin<"__nvvm_rcp_rn_d">,
362 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
363 def int_nvvm_rcp_rz_d : GCCBuiltin<"__nvvm_rcp_rz_d">,
364 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
365 def int_nvvm_rcp_rm_d : GCCBuiltin<"__nvvm_rcp_rm_d">,
366 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
367 def int_nvvm_rcp_rp_d : GCCBuiltin<"__nvvm_rcp_rp_d">,
368 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
370 def int_nvvm_rcp_approx_ftz_d : GCCBuiltin<"__nvvm_rcp_approx_ftz_d">,
371 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
377 def int_nvvm_sqrt_f : GCCBuiltin<"__nvvm_sqrt_f">,
378 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
379 def int_nvvm_sqrt_rn_ftz_f : GCCBuiltin<"__nvvm_sqrt_rn_ftz_f">,
380 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
381 def int_nvvm_sqrt_rn_f : GCCBuiltin<"__nvvm_sqrt_rn_f">,
382 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
383 def int_nvvm_sqrt_rz_ftz_f : GCCBuiltin<"__nvvm_sqrt_rz_ftz_f">,
384 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
385 def int_nvvm_sqrt_rz_f : GCCBuiltin<"__nvvm_sqrt_rz_f">,
386 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
387 def int_nvvm_sqrt_rm_ftz_f : GCCBuiltin<"__nvvm_sqrt_rm_ftz_f">,
388 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
389 def int_nvvm_sqrt_rm_f : GCCBuiltin<"__nvvm_sqrt_rm_f">,
390 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
391 def int_nvvm_sqrt_rp_ftz_f : GCCBuiltin<"__nvvm_sqrt_rp_ftz_f">,
392 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
393 def int_nvvm_sqrt_rp_f : GCCBuiltin<"__nvvm_sqrt_rp_f">,
394 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
395 def int_nvvm_sqrt_approx_ftz_f : GCCBuiltin<"__nvvm_sqrt_approx_ftz_f">,
396 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
397 def int_nvvm_sqrt_approx_f : GCCBuiltin<"__nvvm_sqrt_approx_f">,
398 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
400 def int_nvvm_sqrt_rn_d : GCCBuiltin<"__nvvm_sqrt_rn_d">,
401 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
402 def int_nvvm_sqrt_rz_d : GCCBuiltin<"__nvvm_sqrt_rz_d">,
403 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
404 def int_nvvm_sqrt_rm_d : GCCBuiltin<"__nvvm_sqrt_rm_d">,
405 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
406 def int_nvvm_sqrt_rp_d : GCCBuiltin<"__nvvm_sqrt_rp_d">,
407 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
413 def int_nvvm_rsqrt_approx_ftz_f : GCCBuiltin<"__nvvm_rsqrt_approx_ftz_f">,
414 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
415 def int_nvvm_rsqrt_approx_f : GCCBuiltin<"__nvvm_rsqrt_approx_f">,
416 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
417 def int_nvvm_rsqrt_approx_d : GCCBuiltin<"__nvvm_rsqrt_approx_d">,
418 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
424 def int_nvvm_add_rn_ftz_f : GCCBuiltin<"__nvvm_add_rn_ftz_f">,
425 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
426 [IntrNoMem, Commutative]>;
427 def int_nvvm_add_rn_f : GCCBuiltin<"__nvvm_add_rn_f">,
428 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
429 [IntrNoMem, Commutative]>;
430 def int_nvvm_add_rz_ftz_f : GCCBuiltin<"__nvvm_add_rz_ftz_f">,
431 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
432 [IntrNoMem, Commutative]>;
433 def int_nvvm_add_rz_f : GCCBuiltin<"__nvvm_add_rz_f">,
434 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
435 [IntrNoMem, Commutative]>;
436 def int_nvvm_add_rm_ftz_f : GCCBuiltin<"__nvvm_add_rm_ftz_f">,
437 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
438 [IntrNoMem, Commutative]>;
439 def int_nvvm_add_rm_f : GCCBuiltin<"__nvvm_add_rm_f">,
440 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
441 [IntrNoMem, Commutative]>;
442 def int_nvvm_add_rp_ftz_f : GCCBuiltin<"__nvvm_add_rp_ftz_f">,
443 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
444 [IntrNoMem, Commutative]>;
445 def int_nvvm_add_rp_f : GCCBuiltin<"__nvvm_add_rp_f">,
446 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
447 [IntrNoMem, Commutative]>;
449 def int_nvvm_add_rn_d : GCCBuiltin<"__nvvm_add_rn_d">,
450 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
451 [IntrNoMem, Commutative]>;
452 def int_nvvm_add_rz_d : GCCBuiltin<"__nvvm_add_rz_d">,
453 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
454 [IntrNoMem, Commutative]>;
455 def int_nvvm_add_rm_d : GCCBuiltin<"__nvvm_add_rm_d">,
456 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
457 [IntrNoMem, Commutative]>;
458 def int_nvvm_add_rp_d : GCCBuiltin<"__nvvm_add_rp_d">,
459 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
460 [IntrNoMem, Commutative]>;
466 def int_nvvm_d2f_rn_ftz : GCCBuiltin<"__nvvm_d2f_rn_ftz">,
467 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
468 def int_nvvm_d2f_rn : GCCBuiltin<"__nvvm_d2f_rn">,
469 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
470 def int_nvvm_d2f_rz_ftz : GCCBuiltin<"__nvvm_d2f_rz_ftz">,
471 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
472 def int_nvvm_d2f_rz : GCCBuiltin<"__nvvm_d2f_rz">,
473 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
474 def int_nvvm_d2f_rm_ftz : GCCBuiltin<"__nvvm_d2f_rm_ftz">,
475 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
476 def int_nvvm_d2f_rm : GCCBuiltin<"__nvvm_d2f_rm">,
477 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
478 def int_nvvm_d2f_rp_ftz : GCCBuiltin<"__nvvm_d2f_rp_ftz">,
479 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
480 def int_nvvm_d2f_rp : GCCBuiltin<"__nvvm_d2f_rp">,
481 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
483 def int_nvvm_d2i_rn : GCCBuiltin<"__nvvm_d2i_rn">,
484 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
485 def int_nvvm_d2i_rz : GCCBuiltin<"__nvvm_d2i_rz">,
486 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
487 def int_nvvm_d2i_rm : GCCBuiltin<"__nvvm_d2i_rm">,
488 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
489 def int_nvvm_d2i_rp : GCCBuiltin<"__nvvm_d2i_rp">,
490 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
492 def int_nvvm_d2ui_rn : GCCBuiltin<"__nvvm_d2ui_rn">,
493 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
494 def int_nvvm_d2ui_rz : GCCBuiltin<"__nvvm_d2ui_rz">,
495 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
496 def int_nvvm_d2ui_rm : GCCBuiltin<"__nvvm_d2ui_rm">,
497 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
498 def int_nvvm_d2ui_rp : GCCBuiltin<"__nvvm_d2ui_rp">,
499 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
501 def int_nvvm_i2d_rn : GCCBuiltin<"__nvvm_i2d_rn">,
502 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
503 def int_nvvm_i2d_rz : GCCBuiltin<"__nvvm_i2d_rz">,
504 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
505 def int_nvvm_i2d_rm : GCCBuiltin<"__nvvm_i2d_rm">,
506 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
507 def int_nvvm_i2d_rp : GCCBuiltin<"__nvvm_i2d_rp">,
508 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
510 def int_nvvm_ui2d_rn : GCCBuiltin<"__nvvm_ui2d_rn">,
511 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
512 def int_nvvm_ui2d_rz : GCCBuiltin<"__nvvm_ui2d_rz">,
513 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
514 def int_nvvm_ui2d_rm : GCCBuiltin<"__nvvm_ui2d_rm">,
515 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
516 def int_nvvm_ui2d_rp : GCCBuiltin<"__nvvm_ui2d_rp">,
517 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
519 def int_nvvm_f2i_rn_ftz : GCCBuiltin<"__nvvm_f2i_rn_ftz">,
520 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
521 def int_nvvm_f2i_rn : GCCBuiltin<"__nvvm_f2i_rn">,
522 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
523 def int_nvvm_f2i_rz_ftz : GCCBuiltin<"__nvvm_f2i_rz_ftz">,
524 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
525 def int_nvvm_f2i_rz : GCCBuiltin<"__nvvm_f2i_rz">,
526 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
527 def int_nvvm_f2i_rm_ftz : GCCBuiltin<"__nvvm_f2i_rm_ftz">,
528 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
529 def int_nvvm_f2i_rm : GCCBuiltin<"__nvvm_f2i_rm">,
530 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
531 def int_nvvm_f2i_rp_ftz : GCCBuiltin<"__nvvm_f2i_rp_ftz">,
532 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
533 def int_nvvm_f2i_rp : GCCBuiltin<"__nvvm_f2i_rp">,
534 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
536 def int_nvvm_f2ui_rn_ftz : GCCBuiltin<"__nvvm_f2ui_rn_ftz">,
537 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
538 def int_nvvm_f2ui_rn : GCCBuiltin<"__nvvm_f2ui_rn">,
539 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
540 def int_nvvm_f2ui_rz_ftz : GCCBuiltin<"__nvvm_f2ui_rz_ftz">,
541 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
542 def int_nvvm_f2ui_rz : GCCBuiltin<"__nvvm_f2ui_rz">,
543 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
544 def int_nvvm_f2ui_rm_ftz : GCCBuiltin<"__nvvm_f2ui_rm_ftz">,
545 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
546 def int_nvvm_f2ui_rm : GCCBuiltin<"__nvvm_f2ui_rm">,
547 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
548 def int_nvvm_f2ui_rp_ftz : GCCBuiltin<"__nvvm_f2ui_rp_ftz">,
549 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
550 def int_nvvm_f2ui_rp : GCCBuiltin<"__nvvm_f2ui_rp">,
551 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
553 def int_nvvm_i2f_rn : GCCBuiltin<"__nvvm_i2f_rn">,
554 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
555 def int_nvvm_i2f_rz : GCCBuiltin<"__nvvm_i2f_rz">,
556 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
557 def int_nvvm_i2f_rm : GCCBuiltin<"__nvvm_i2f_rm">,
558 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
559 def int_nvvm_i2f_rp : GCCBuiltin<"__nvvm_i2f_rp">,
560 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
562 def int_nvvm_ui2f_rn : GCCBuiltin<"__nvvm_ui2f_rn">,
563 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
564 def int_nvvm_ui2f_rz : GCCBuiltin<"__nvvm_ui2f_rz">,
565 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
566 def int_nvvm_ui2f_rm : GCCBuiltin<"__nvvm_ui2f_rm">,
567 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
568 def int_nvvm_ui2f_rp : GCCBuiltin<"__nvvm_ui2f_rp">,
569 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
571 def int_nvvm_lohi_i2d : GCCBuiltin<"__nvvm_lohi_i2d">,
572 Intrinsic<[llvm_double_ty], [llvm_i32_ty, llvm_i32_ty],
573 [IntrNoMem, Commutative]>;
575 def int_nvvm_d2i_lo : GCCBuiltin<"__nvvm_d2i_lo">,
576 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
577 def int_nvvm_d2i_hi : GCCBuiltin<"__nvvm_d2i_hi">,
578 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
580 def int_nvvm_f2ll_rn_ftz : GCCBuiltin<"__nvvm_f2ll_rn_ftz">,
581 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
582 def int_nvvm_f2ll_rn : GCCBuiltin<"__nvvm_f2ll_rn">,
583 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
584 def int_nvvm_f2ll_rz_ftz : GCCBuiltin<"__nvvm_f2ll_rz_ftz">,
585 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
586 def int_nvvm_f2ll_rz : GCCBuiltin<"__nvvm_f2ll_rz">,
587 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
588 def int_nvvm_f2ll_rm_ftz : GCCBuiltin<"__nvvm_f2ll_rm_ftz">,
589 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
590 def int_nvvm_f2ll_rm : GCCBuiltin<"__nvvm_f2ll_rm">,
591 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
592 def int_nvvm_f2ll_rp_ftz : GCCBuiltin<"__nvvm_f2ll_rp_ftz">,
593 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
594 def int_nvvm_f2ll_rp : GCCBuiltin<"__nvvm_f2ll_rp">,
595 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
597 def int_nvvm_f2ull_rn_ftz : GCCBuiltin<"__nvvm_f2ull_rn_ftz">,
598 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
599 def int_nvvm_f2ull_rn : GCCBuiltin<"__nvvm_f2ull_rn">,
600 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
601 def int_nvvm_f2ull_rz_ftz : GCCBuiltin<"__nvvm_f2ull_rz_ftz">,
602 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
603 def int_nvvm_f2ull_rz : GCCBuiltin<"__nvvm_f2ull_rz">,
604 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
605 def int_nvvm_f2ull_rm_ftz : GCCBuiltin<"__nvvm_f2ull_rm_ftz">,
606 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
607 def int_nvvm_f2ull_rm : GCCBuiltin<"__nvvm_f2ull_rm">,
608 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
609 def int_nvvm_f2ull_rp_ftz : GCCBuiltin<"__nvvm_f2ull_rp_ftz">,
610 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
611 def int_nvvm_f2ull_rp : GCCBuiltin<"__nvvm_f2ull_rp">,
612 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
614 def int_nvvm_d2ll_rn : GCCBuiltin<"__nvvm_d2ll_rn">,
615 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
616 def int_nvvm_d2ll_rz : GCCBuiltin<"__nvvm_d2ll_rz">,
617 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
618 def int_nvvm_d2ll_rm : GCCBuiltin<"__nvvm_d2ll_rm">,
619 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
620 def int_nvvm_d2ll_rp : GCCBuiltin<"__nvvm_d2ll_rp">,
621 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
623 def int_nvvm_d2ull_rn : GCCBuiltin<"__nvvm_d2ull_rn">,
624 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
625 def int_nvvm_d2ull_rz : GCCBuiltin<"__nvvm_d2ull_rz">,
626 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
627 def int_nvvm_d2ull_rm : GCCBuiltin<"__nvvm_d2ull_rm">,
628 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
629 def int_nvvm_d2ull_rp : GCCBuiltin<"__nvvm_d2ull_rp">,
630 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
632 def int_nvvm_ll2f_rn : GCCBuiltin<"__nvvm_ll2f_rn">,
633 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
634 def int_nvvm_ll2f_rz : GCCBuiltin<"__nvvm_ll2f_rz">,
635 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
636 def int_nvvm_ll2f_rm : GCCBuiltin<"__nvvm_ll2f_rm">,
637 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
638 def int_nvvm_ll2f_rp : GCCBuiltin<"__nvvm_ll2f_rp">,
639 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
640 def int_nvvm_ull2f_rn : GCCBuiltin<"__nvvm_ull2f_rn">,
641 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
642 def int_nvvm_ull2f_rz : GCCBuiltin<"__nvvm_ull2f_rz">,
643 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
644 def int_nvvm_ull2f_rm : GCCBuiltin<"__nvvm_ull2f_rm">,
645 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
646 def int_nvvm_ull2f_rp : GCCBuiltin<"__nvvm_ull2f_rp">,
647 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
649 def int_nvvm_ll2d_rn : GCCBuiltin<"__nvvm_ll2d_rn">,
650 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
651 def int_nvvm_ll2d_rz : GCCBuiltin<"__nvvm_ll2d_rz">,
652 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
653 def int_nvvm_ll2d_rm : GCCBuiltin<"__nvvm_ll2d_rm">,
654 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
655 def int_nvvm_ll2d_rp : GCCBuiltin<"__nvvm_ll2d_rp">,
656 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
657 def int_nvvm_ull2d_rn : GCCBuiltin<"__nvvm_ull2d_rn">,
658 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
659 def int_nvvm_ull2d_rz : GCCBuiltin<"__nvvm_ull2d_rz">,
660 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
661 def int_nvvm_ull2d_rm : GCCBuiltin<"__nvvm_ull2d_rm">,
662 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
663 def int_nvvm_ull2d_rp : GCCBuiltin<"__nvvm_ull2d_rp">,
664 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
666 def int_nvvm_f2h_rn_ftz : GCCBuiltin<"__nvvm_f2h_rn_ftz">,
667 Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
668 def int_nvvm_f2h_rn : GCCBuiltin<"__nvvm_f2h_rn">,
669 Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
675 def int_nvvm_bitcast_f2i : GCCBuiltin<"__nvvm_bitcast_f2i">,
676 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
677 def int_nvvm_bitcast_i2f : GCCBuiltin<"__nvvm_bitcast_i2f">,
678 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
680 def int_nvvm_bitcast_ll2d : GCCBuiltin<"__nvvm_bitcast_ll2d">,
681 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
682 def int_nvvm_bitcast_d2ll : GCCBuiltin<"__nvvm_bitcast_d2ll">,
683 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
687 def int_nvvm_fns : GCCBuiltin<"__nvvm_fns">,
688 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
691 // Atomics not available as llvm intrinsics.
692 def int_nvvm_atomic_load_add_f32 : Intrinsic<[llvm_float_ty],
693 [LLVMAnyPointerType<llvm_float_ty>, llvm_float_ty],
694 [IntrArgMemOnly, NoCapture<0>]>;
695 // Atomic add of f64 requires sm_60.
696 def int_nvvm_atomic_load_add_f64 : Intrinsic<[llvm_double_ty],
697 [LLVMAnyPointerType<llvm_double_ty>, llvm_double_ty],
698 [IntrArgMemOnly, NoCapture<0>]>;
700 def int_nvvm_atomic_load_inc_32 : Intrinsic<[llvm_i32_ty],
701 [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty],
702 [IntrArgMemOnly, NoCapture<0>]>;
703 def int_nvvm_atomic_load_dec_32 : Intrinsic<[llvm_i32_ty],
704 [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty],
705 [IntrArgMemOnly, NoCapture<0>]>;
707 class SCOPED_ATOMIC2_impl<LLVMType elty>
709 [LLVMAnyPointerType<LLVMMatchType<0>>, LLVMMatchType<0>],
710 [IntrArgMemOnly, NoCapture<0>]>;
711 class SCOPED_ATOMIC3_impl<LLVMType elty>
713 [LLVMAnyPointerType<LLVMMatchType<0>>, LLVMMatchType<0>,
715 [IntrArgMemOnly, NoCapture<0>]>;
717 multiclass PTXAtomicWithScope2<LLVMType elty> {
718 def _cta : SCOPED_ATOMIC2_impl<elty>;
719 def _sys : SCOPED_ATOMIC2_impl<elty>;
721 multiclass PTXAtomicWithScope3<LLVMType elty> {
722 def _cta : SCOPED_ATOMIC3_impl<elty>;
723 def _sys : SCOPED_ATOMIC3_impl<elty>;
725 multiclass PTXAtomicWithScope2_fi {
726 defm _f: PTXAtomicWithScope2<llvm_anyfloat_ty>;
727 defm _i: PTXAtomicWithScope2<llvm_anyint_ty>;
729 defm int_nvvm_atomic_add_gen : PTXAtomicWithScope2_fi;
730 defm int_nvvm_atomic_inc_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
731 defm int_nvvm_atomic_dec_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
732 defm int_nvvm_atomic_exch_gen_i: PTXAtomicWithScope2<llvm_anyint_ty>;
733 defm int_nvvm_atomic_xor_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
734 defm int_nvvm_atomic_max_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
735 defm int_nvvm_atomic_min_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
736 defm int_nvvm_atomic_or_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
737 defm int_nvvm_atomic_and_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
738 defm int_nvvm_atomic_cas_gen_i : PTXAtomicWithScope3<llvm_anyint_ty>;
742 // The builtin for "bar.sync 0" is called __syncthreads. Unlike most of the
743 // intrinsics in this file, this one is a user-facing API.
744 def int_nvvm_barrier0 : GCCBuiltin<"__syncthreads">,
745 Intrinsic<[], [], [IntrConvergent]>;
746 // Synchronize all threads in the CTA at barrier 'n'.
747 def int_nvvm_barrier_n : GCCBuiltin<"__nvvm_bar_n">,
748 Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>;
749 // Synchronize 'm', a multiple of warp size, (arg 2) threads in
750 // the CTA at barrier 'n' (arg 1).
751 def int_nvvm_barrier : GCCBuiltin<"__nvvm_bar">,
752 Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [IntrConvergent]>;
753 def int_nvvm_barrier0_popc : GCCBuiltin<"__nvvm_bar0_popc">,
754 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>;
755 def int_nvvm_barrier0_and : GCCBuiltin<"__nvvm_bar0_and">,
756 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>;
757 def int_nvvm_barrier0_or : GCCBuiltin<"__nvvm_bar0_or">,
758 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>;
760 def int_nvvm_bar_sync :
761 Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>,
762 GCCBuiltin<"__nvvm_bar_sync">;
763 def int_nvvm_bar_warp_sync :
764 Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>,
765 GCCBuiltin<"__nvvm_bar_warp_sync">;
767 // barrier.sync id[, cnt]
768 def int_nvvm_barrier_sync :
769 Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>,
770 GCCBuiltin<"__nvvm_barrier_sync">;
771 def int_nvvm_barrier_sync_cnt :
772 Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [IntrConvergent]>,
773 GCCBuiltin<"__nvvm_barrier_sync_cnt">;
776 def int_nvvm_membar_cta : GCCBuiltin<"__nvvm_membar_cta">,
777 Intrinsic<[], [], []>;
778 def int_nvvm_membar_gl : GCCBuiltin<"__nvvm_membar_gl">,
779 Intrinsic<[], [], []>;
780 def int_nvvm_membar_sys : GCCBuiltin<"__nvvm_membar_sys">,
781 Intrinsic<[], [], []>;
783 // Generated within nvvm. Use for ldu on sm_20 or later. Second arg is the
784 // pointer's alignment.
785 def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty],
786 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
787 [IntrReadMem, IntrArgMemOnly, NoCapture<0>],
788 "llvm.nvvm.ldu.global.i">;
789 def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty],
790 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
791 [IntrReadMem, IntrArgMemOnly, NoCapture<0>],
792 "llvm.nvvm.ldu.global.f">;
793 def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty],
794 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
795 [IntrReadMem, IntrArgMemOnly, NoCapture<0>],
796 "llvm.nvvm.ldu.global.p">;
798 // Generated within nvvm. Use for ldg on sm_35 or later. Second arg is the
799 // pointer's alignment.
800 def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty],
801 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
802 [IntrReadMem, IntrArgMemOnly, NoCapture<0>],
803 "llvm.nvvm.ldg.global.i">;
804 def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty],
805 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
806 [IntrReadMem, IntrArgMemOnly, NoCapture<0>],
807 "llvm.nvvm.ldg.global.f">;
808 def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty],
809 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
810 [IntrReadMem, IntrArgMemOnly, NoCapture<0>],
811 "llvm.nvvm.ldg.global.p">;
813 // Use for generic pointers
814 // - These intrinsics are used to convert address spaces.
815 // - The input pointer and output pointer must have the same type, except for
816 // the address-space. (This restriction is not enforced here as there is
817 // currently no way to describe it).
818 // - This complements the llvm bitcast, which can be used to cast one type
819 // of pointer to another type of pointer, while the address space remains
821 def int_nvvm_ptr_local_to_gen: Intrinsic<[llvm_anyptr_ty],
822 [llvm_anyptr_ty], [IntrNoMem],
823 "llvm.nvvm.ptr.local.to.gen">;
824 def int_nvvm_ptr_shared_to_gen: Intrinsic<[llvm_anyptr_ty],
825 [llvm_anyptr_ty], [IntrNoMem],
826 "llvm.nvvm.ptr.shared.to.gen">;
827 def int_nvvm_ptr_global_to_gen: Intrinsic<[llvm_anyptr_ty],
828 [llvm_anyptr_ty], [IntrNoMem],
829 "llvm.nvvm.ptr.global.to.gen">;
830 def int_nvvm_ptr_constant_to_gen: Intrinsic<[llvm_anyptr_ty],
831 [llvm_anyptr_ty], [IntrNoMem],
832 "llvm.nvvm.ptr.constant.to.gen">;
834 def int_nvvm_ptr_gen_to_global: Intrinsic<[llvm_anyptr_ty],
835 [llvm_anyptr_ty], [IntrNoMem],
836 "llvm.nvvm.ptr.gen.to.global">;
837 def int_nvvm_ptr_gen_to_shared: Intrinsic<[llvm_anyptr_ty],
838 [llvm_anyptr_ty], [IntrNoMem],
839 "llvm.nvvm.ptr.gen.to.shared">;
840 def int_nvvm_ptr_gen_to_local: Intrinsic<[llvm_anyptr_ty],
841 [llvm_anyptr_ty], [IntrNoMem],
842 "llvm.nvvm.ptr.gen.to.local">;
843 def int_nvvm_ptr_gen_to_constant: Intrinsic<[llvm_anyptr_ty],
844 [llvm_anyptr_ty], [IntrNoMem],
845 "llvm.nvvm.ptr.gen.to.constant">;
847 // Used in nvvm internally to help address space opt and ptx code generation
848 // This is for params that are passed to kernel functions by pointer by-val.
849 def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty],
852 "llvm.nvvm.ptr.gen.to.param">;
854 // Move intrinsics, used in nvvm internally
856 def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem],
857 "llvm.nvvm.move.i16">;
858 def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem],
859 "llvm.nvvm.move.i32">;
860 def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem],
861 "llvm.nvvm.move.i64">;
862 def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty],
863 [IntrNoMem], "llvm.nvvm.move.float">;
864 def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty],
865 [IntrNoMem], "llvm.nvvm.move.double">;
866 def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty],
867 [IntrNoMem, NoCapture<0>], "llvm.nvvm.move.ptr">;
870 // For getting the handle from a texture or surface variable
871 def int_nvvm_texsurf_handle
872 : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_anyi64ptr_ty],
873 [IntrNoMem], "llvm.nvvm.texsurf.handle">;
874 def int_nvvm_texsurf_handle_internal
875 : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty],
876 [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">;
879 def int_nvvm_compiler_error :
880 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">;
881 def int_nvvm_compiler_warn :
882 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">;
884 def int_nvvm_reflect :
885 Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.reflect">;
887 // isspacep.{const, global, local, shared}
888 def int_nvvm_isspacep_const
889 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
890 "llvm.nvvm.isspacep.const">,
891 GCCBuiltin<"__nvvm_isspacep_const">;
892 def int_nvvm_isspacep_global
893 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
894 "llvm.nvvm.isspacep.global">,
895 GCCBuiltin<"__nvvm_isspacep_global">;
896 def int_nvvm_isspacep_local
897 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
898 "llvm.nvvm.isspacep.local">,
899 GCCBuiltin<"__nvvm_isspacep_local">;
900 def int_nvvm_isspacep_shared
901 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
902 "llvm.nvvm.isspacep.shared">,
903 GCCBuiltin<"__nvvm_isspacep_shared">;
905 // Environment register read
906 def int_nvvm_read_ptx_sreg_envreg0
907 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
908 "llvm.nvvm.read.ptx.sreg.envreg0">,
909 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">;
910 def int_nvvm_read_ptx_sreg_envreg1
911 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
912 "llvm.nvvm.read.ptx.sreg.envreg1">,
913 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">;
914 def int_nvvm_read_ptx_sreg_envreg2
915 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
916 "llvm.nvvm.read.ptx.sreg.envreg2">,
917 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">;
918 def int_nvvm_read_ptx_sreg_envreg3
919 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
920 "llvm.nvvm.read.ptx.sreg.envreg3">,
921 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">;
922 def int_nvvm_read_ptx_sreg_envreg4
923 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
924 "llvm.nvvm.read.ptx.sreg.envreg4">,
925 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">;
926 def int_nvvm_read_ptx_sreg_envreg5
927 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
928 "llvm.nvvm.read.ptx.sreg.envreg5">,
929 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">;
930 def int_nvvm_read_ptx_sreg_envreg6
931 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
932 "llvm.nvvm.read.ptx.sreg.envreg6">,
933 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">;
934 def int_nvvm_read_ptx_sreg_envreg7
935 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
936 "llvm.nvvm.read.ptx.sreg.envreg7">,
937 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">;
938 def int_nvvm_read_ptx_sreg_envreg8
939 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
940 "llvm.nvvm.read.ptx.sreg.envreg8">,
941 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">;
942 def int_nvvm_read_ptx_sreg_envreg9
943 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
944 "llvm.nvvm.read.ptx.sreg.envreg9">,
945 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">;
946 def int_nvvm_read_ptx_sreg_envreg10
947 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
948 "llvm.nvvm.read.ptx.sreg.envreg10">,
949 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">;
950 def int_nvvm_read_ptx_sreg_envreg11
951 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
952 "llvm.nvvm.read.ptx.sreg.envreg11">,
953 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">;
954 def int_nvvm_read_ptx_sreg_envreg12
955 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
956 "llvm.nvvm.read.ptx.sreg.envreg12">,
957 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">;
958 def int_nvvm_read_ptx_sreg_envreg13
959 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
960 "llvm.nvvm.read.ptx.sreg.envreg13">,
961 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">;
962 def int_nvvm_read_ptx_sreg_envreg14
963 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
964 "llvm.nvvm.read.ptx.sreg.envreg14">,
965 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">;
966 def int_nvvm_read_ptx_sreg_envreg15
967 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
968 "llvm.nvvm.read.ptx.sreg.envreg15">,
969 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">;
970 def int_nvvm_read_ptx_sreg_envreg16
971 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
972 "llvm.nvvm.read.ptx.sreg.envreg16">,
973 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">;
974 def int_nvvm_read_ptx_sreg_envreg17
975 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
976 "llvm.nvvm.read.ptx.sreg.envreg17">,
977 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">;
978 def int_nvvm_read_ptx_sreg_envreg18
979 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
980 "llvm.nvvm.read.ptx.sreg.envreg18">,
981 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">;
982 def int_nvvm_read_ptx_sreg_envreg19
983 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
984 "llvm.nvvm.read.ptx.sreg.envreg19">,
985 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">;
986 def int_nvvm_read_ptx_sreg_envreg20
987 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
988 "llvm.nvvm.read.ptx.sreg.envreg20">,
989 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">;
990 def int_nvvm_read_ptx_sreg_envreg21
991 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
992 "llvm.nvvm.read.ptx.sreg.envreg21">,
993 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">;
994 def int_nvvm_read_ptx_sreg_envreg22
995 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
996 "llvm.nvvm.read.ptx.sreg.envreg22">,
997 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">;
998 def int_nvvm_read_ptx_sreg_envreg23
999 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1000 "llvm.nvvm.read.ptx.sreg.envreg23">,
1001 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">;
1002 def int_nvvm_read_ptx_sreg_envreg24
1003 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1004 "llvm.nvvm.read.ptx.sreg.envreg24">,
1005 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">;
1006 def int_nvvm_read_ptx_sreg_envreg25
1007 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1008 "llvm.nvvm.read.ptx.sreg.envreg25">,
1009 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">;
1010 def int_nvvm_read_ptx_sreg_envreg26
1011 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1012 "llvm.nvvm.read.ptx.sreg.envreg26">,
1013 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">;
1014 def int_nvvm_read_ptx_sreg_envreg27
1015 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1016 "llvm.nvvm.read.ptx.sreg.envreg27">,
1017 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">;
1018 def int_nvvm_read_ptx_sreg_envreg28
1019 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1020 "llvm.nvvm.read.ptx.sreg.envreg28">,
1021 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">;
1022 def int_nvvm_read_ptx_sreg_envreg29
1023 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1024 "llvm.nvvm.read.ptx.sreg.envreg29">,
1025 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">;
1026 def int_nvvm_read_ptx_sreg_envreg30
1027 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1028 "llvm.nvvm.read.ptx.sreg.envreg30">,
1029 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">;
1030 def int_nvvm_read_ptx_sreg_envreg31
1031 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1032 "llvm.nvvm.read.ptx.sreg.envreg31">,
1033 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">;
1037 // texmode_independent
1038 def int_nvvm_tex_1d_v4f32_s32
1039 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1040 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1041 "llvm.nvvm.tex.1d.v4f32.s32">;
1042 def int_nvvm_tex_1d_v4f32_f32
1043 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1044 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1045 "llvm.nvvm.tex.1d.v4f32.f32">;
1046 def int_nvvm_tex_1d_level_v4f32_f32
1047 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1048 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1049 "llvm.nvvm.tex.1d.level.v4f32.f32">;
1050 def int_nvvm_tex_1d_grad_v4f32_f32
1051 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1052 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1054 "llvm.nvvm.tex.1d.grad.v4f32.f32">;
1055 def int_nvvm_tex_1d_v4s32_s32
1056 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1057 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1058 "llvm.nvvm.tex.1d.v4s32.s32">;
1059 def int_nvvm_tex_1d_v4s32_f32
1060 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1061 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1062 "llvm.nvvm.tex.1d.v4s32.f32">;
1063 def int_nvvm_tex_1d_level_v4s32_f32
1064 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1065 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1066 "llvm.nvvm.tex.1d.level.v4s32.f32">;
1067 def int_nvvm_tex_1d_grad_v4s32_f32
1068 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1069 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1071 "llvm.nvvm.tex.1d.grad.v4s32.f32">;
1072 def int_nvvm_tex_1d_v4u32_s32
1073 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1074 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1075 "llvm.nvvm.tex.1d.v4u32.s32">;
1076 def int_nvvm_tex_1d_v4u32_f32
1077 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1078 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1079 "llvm.nvvm.tex.1d.v4u32.f32">;
1080 def int_nvvm_tex_1d_level_v4u32_f32
1081 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1082 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1083 "llvm.nvvm.tex.1d.level.v4u32.f32">;
1084 def int_nvvm_tex_1d_grad_v4u32_f32
1085 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1086 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1088 "llvm.nvvm.tex.1d.grad.v4u32.f32">;
1090 def int_nvvm_tex_1d_array_v4f32_s32
1091 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1092 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1093 "llvm.nvvm.tex.1d.array.v4f32.s32">;
1094 def int_nvvm_tex_1d_array_v4f32_f32
1095 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1096 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1097 "llvm.nvvm.tex.1d.array.v4f32.f32">;
1098 def int_nvvm_tex_1d_array_level_v4f32_f32
1099 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1100 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1102 "llvm.nvvm.tex.1d.array.level.v4f32.f32">;
1103 def int_nvvm_tex_1d_array_grad_v4f32_f32
1104 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1105 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1106 llvm_float_ty, llvm_float_ty], [],
1107 "llvm.nvvm.tex.1d.array.grad.v4f32.f32">;
1108 def int_nvvm_tex_1d_array_v4s32_s32
1109 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1110 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1111 "llvm.nvvm.tex.1d.array.v4s32.s32">;
1112 def int_nvvm_tex_1d_array_v4s32_f32
1113 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1114 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1115 "llvm.nvvm.tex.1d.array.v4s32.f32">;
1116 def int_nvvm_tex_1d_array_level_v4s32_f32
1117 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1118 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1120 "llvm.nvvm.tex.1d.array.level.v4s32.f32">;
1121 def int_nvvm_tex_1d_array_grad_v4s32_f32
1122 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1123 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1124 llvm_float_ty, llvm_float_ty], [],
1125 "llvm.nvvm.tex.1d.array.grad.v4s32.f32">;
1126 def int_nvvm_tex_1d_array_v4u32_s32
1127 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1128 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1129 "llvm.nvvm.tex.1d.array.v4u32.s32">;
1130 def int_nvvm_tex_1d_array_v4u32_f32
1131 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1132 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1133 "llvm.nvvm.tex.1d.array.v4u32.f32">;
1134 def int_nvvm_tex_1d_array_level_v4u32_f32
1135 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1136 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1138 "llvm.nvvm.tex.1d.array.level.v4u32.f32">;
1139 def int_nvvm_tex_1d_array_grad_v4u32_f32
1140 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1141 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1142 llvm_float_ty, llvm_float_ty], [],
1143 "llvm.nvvm.tex.1d.array.grad.v4u32.f32">;
1145 def int_nvvm_tex_2d_v4f32_s32
1146 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1147 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1148 "llvm.nvvm.tex.2d.v4f32.s32">;
1149 def int_nvvm_tex_2d_v4f32_f32
1150 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1151 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1152 "llvm.nvvm.tex.2d.v4f32.f32">;
1153 def int_nvvm_tex_2d_level_v4f32_f32
1154 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1155 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1157 "llvm.nvvm.tex.2d.level.v4f32.f32">;
1158 def int_nvvm_tex_2d_grad_v4f32_f32
1159 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1160 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1161 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1162 "llvm.nvvm.tex.2d.grad.v4f32.f32">;
1163 def int_nvvm_tex_2d_v4s32_s32
1164 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1165 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1166 "llvm.nvvm.tex.2d.v4s32.s32">;
1167 def int_nvvm_tex_2d_v4s32_f32
1168 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1169 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1170 "llvm.nvvm.tex.2d.v4s32.f32">;
1171 def int_nvvm_tex_2d_level_v4s32_f32
1172 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1173 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1175 "llvm.nvvm.tex.2d.level.v4s32.f32">;
1176 def int_nvvm_tex_2d_grad_v4s32_f32
1177 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1178 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1179 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1180 "llvm.nvvm.tex.2d.grad.v4s32.f32">;
1181 def int_nvvm_tex_2d_v4u32_s32
1182 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1183 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1184 "llvm.nvvm.tex.2d.v4u32.s32">;
1185 def int_nvvm_tex_2d_v4u32_f32
1186 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1187 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1188 "llvm.nvvm.tex.2d.v4u32.f32">;
1189 def int_nvvm_tex_2d_level_v4u32_f32
1190 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1191 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1193 "llvm.nvvm.tex.2d.level.v4u32.f32">;
1194 def int_nvvm_tex_2d_grad_v4u32_f32
1195 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1196 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1197 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1198 "llvm.nvvm.tex.2d.grad.v4u32.f32">;
1200 def int_nvvm_tex_2d_array_v4f32_s32
1201 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1202 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1204 "llvm.nvvm.tex.2d.array.v4f32.s32">;
1205 def int_nvvm_tex_2d_array_v4f32_f32
1206 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1207 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1209 "llvm.nvvm.tex.2d.array.v4f32.f32">;
1210 def int_nvvm_tex_2d_array_level_v4f32_f32
1211 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1212 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1213 llvm_float_ty, llvm_float_ty], [],
1214 "llvm.nvvm.tex.2d.array.level.v4f32.f32">;
1215 def int_nvvm_tex_2d_array_grad_v4f32_f32
1216 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1217 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1218 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1220 "llvm.nvvm.tex.2d.array.grad.v4f32.f32">;
1221 def int_nvvm_tex_2d_array_v4s32_s32
1222 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1223 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1225 "llvm.nvvm.tex.2d.array.v4s32.s32">;
1226 def int_nvvm_tex_2d_array_v4s32_f32
1227 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1228 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1230 "llvm.nvvm.tex.2d.array.v4s32.f32">;
1231 def int_nvvm_tex_2d_array_level_v4s32_f32
1232 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1233 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1234 llvm_float_ty, llvm_float_ty], [],
1235 "llvm.nvvm.tex.2d.array.level.v4s32.f32">;
1236 def int_nvvm_tex_2d_array_grad_v4s32_f32
1237 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1238 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1239 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1241 "llvm.nvvm.tex.2d.array.grad.v4s32.f32">;
1242 def int_nvvm_tex_2d_array_v4u32_s32
1243 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1244 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1246 "llvm.nvvm.tex.2d.array.v4u32.s32">;
1247 def int_nvvm_tex_2d_array_v4u32_f32
1248 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1249 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1251 "llvm.nvvm.tex.2d.array.v4u32.f32">;
1252 def int_nvvm_tex_2d_array_level_v4u32_f32
1253 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1254 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1255 llvm_float_ty, llvm_float_ty], [],
1256 "llvm.nvvm.tex.2d.array.level.v4u32.f32">;
1257 def int_nvvm_tex_2d_array_grad_v4u32_f32
1258 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1259 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1260 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1262 "llvm.nvvm.tex.2d.array.grad.v4u32.f32">;
1264 def int_nvvm_tex_3d_v4f32_s32
1265 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1266 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1267 [], "llvm.nvvm.tex.3d.v4f32.s32">;
1268 def int_nvvm_tex_3d_v4f32_f32
1269 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1270 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1272 "llvm.nvvm.tex.3d.v4f32.f32">;
1273 def int_nvvm_tex_3d_level_v4f32_f32
1274 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1275 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1276 llvm_float_ty, llvm_float_ty], [],
1277 "llvm.nvvm.tex.3d.level.v4f32.f32">;
1278 def int_nvvm_tex_3d_grad_v4f32_f32
1279 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1280 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1281 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1282 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1283 "llvm.nvvm.tex.3d.grad.v4f32.f32">;
1284 def int_nvvm_tex_3d_v4s32_s32
1285 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1286 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1287 [], "llvm.nvvm.tex.3d.v4s32.s32">;
1288 def int_nvvm_tex_3d_v4s32_f32
1289 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1290 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1292 "llvm.nvvm.tex.3d.v4s32.f32">;
1293 def int_nvvm_tex_3d_level_v4s32_f32
1294 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1295 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1296 llvm_float_ty, llvm_float_ty], [],
1297 "llvm.nvvm.tex.3d.level.v4s32.f32">;
1298 def int_nvvm_tex_3d_grad_v4s32_f32
1299 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1300 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1301 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1302 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1303 "llvm.nvvm.tex.3d.grad.v4s32.f32">;
1304 def int_nvvm_tex_3d_v4u32_s32
1305 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1306 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1307 [], "llvm.nvvm.tex.3d.v4u32.s32">;
1308 def int_nvvm_tex_3d_v4u32_f32
1309 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1310 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1312 "llvm.nvvm.tex.3d.v4u32.f32">;
1313 def int_nvvm_tex_3d_level_v4u32_f32
1314 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1315 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1316 llvm_float_ty, llvm_float_ty], [],
1317 "llvm.nvvm.tex.3d.level.v4u32.f32">;
1318 def int_nvvm_tex_3d_grad_v4u32_f32
1319 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1320 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1321 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1322 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1323 "llvm.nvvm.tex.3d.grad.v4u32.f32">;
1325 def int_nvvm_tex_cube_v4f32_f32
1326 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1327 [llvm_i64_ty, llvm_i64_ty,
1328 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1329 "llvm.nvvm.tex.cube.v4f32.f32">;
1330 def int_nvvm_tex_cube_level_v4f32_f32
1331 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1332 [llvm_i64_ty, llvm_i64_ty,
1333 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1334 "llvm.nvvm.tex.cube.level.v4f32.f32">;
1335 def int_nvvm_tex_cube_v4s32_f32
1336 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1337 [llvm_i64_ty, llvm_i64_ty,
1338 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1339 "llvm.nvvm.tex.cube.v4s32.f32">;
1340 def int_nvvm_tex_cube_level_v4s32_f32
1341 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1342 [llvm_i64_ty, llvm_i64_ty,
1343 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1344 "llvm.nvvm.tex.cube.level.v4s32.f32">;
1345 def int_nvvm_tex_cube_v4u32_f32
1346 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1347 [llvm_i64_ty, llvm_i64_ty,
1348 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1349 "llvm.nvvm.tex.cube.v4u32.f32">;
1350 def int_nvvm_tex_cube_level_v4u32_f32
1351 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1352 [llvm_i64_ty, llvm_i64_ty,
1353 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1354 "llvm.nvvm.tex.cube.level.v4u32.f32">;
1356 def int_nvvm_tex_cube_array_v4f32_f32
1357 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1358 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1359 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1360 "llvm.nvvm.tex.cube.array.v4f32.f32">;
1361 def int_nvvm_tex_cube_array_level_v4f32_f32
1362 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1363 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1364 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1365 "llvm.nvvm.tex.cube.array.level.v4f32.f32">;
1366 def int_nvvm_tex_cube_array_v4s32_f32
1367 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1368 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1369 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1370 "llvm.nvvm.tex.cube.array.v4s32.f32">;
1371 def int_nvvm_tex_cube_array_level_v4s32_f32
1372 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1373 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1374 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1375 "llvm.nvvm.tex.cube.array.level.v4s32.f32">;
1376 def int_nvvm_tex_cube_array_v4u32_f32
1377 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1378 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1379 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1380 "llvm.nvvm.tex.cube.array.v4u32.f32">;
1381 def int_nvvm_tex_cube_array_level_v4u32_f32
1382 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1383 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1384 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1385 "llvm.nvvm.tex.cube.array.level.v4u32.f32">;
1387 def int_nvvm_tld4_r_2d_v4f32_f32
1388 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1389 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1390 "llvm.nvvm.tld4.r.2d.v4f32.f32">;
1391 def int_nvvm_tld4_g_2d_v4f32_f32
1392 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1393 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1394 "llvm.nvvm.tld4.g.2d.v4f32.f32">;
1395 def int_nvvm_tld4_b_2d_v4f32_f32
1396 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1397 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1398 "llvm.nvvm.tld4.b.2d.v4f32.f32">;
1399 def int_nvvm_tld4_a_2d_v4f32_f32
1400 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1401 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1402 "llvm.nvvm.tld4.a.2d.v4f32.f32">;
1403 def int_nvvm_tld4_r_2d_v4s32_f32
1404 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1405 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1406 "llvm.nvvm.tld4.r.2d.v4s32.f32">;
1407 def int_nvvm_tld4_g_2d_v4s32_f32
1408 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1409 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1410 "llvm.nvvm.tld4.g.2d.v4s32.f32">;
1411 def int_nvvm_tld4_b_2d_v4s32_f32
1412 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1413 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1414 "llvm.nvvm.tld4.b.2d.v4s32.f32">;
1415 def int_nvvm_tld4_a_2d_v4s32_f32
1416 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1417 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1418 "llvm.nvvm.tld4.a.2d.v4s32.f32">;
1419 def int_nvvm_tld4_r_2d_v4u32_f32
1420 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1421 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1422 "llvm.nvvm.tld4.r.2d.v4u32.f32">;
1423 def int_nvvm_tld4_g_2d_v4u32_f32
1424 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1425 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1426 "llvm.nvvm.tld4.g.2d.v4u32.f32">;
1427 def int_nvvm_tld4_b_2d_v4u32_f32
1428 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1429 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1430 "llvm.nvvm.tld4.b.2d.v4u32.f32">;
1431 def int_nvvm_tld4_a_2d_v4u32_f32
1432 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1433 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1434 "llvm.nvvm.tld4.a.2d.v4u32.f32">;
1438 def int_nvvm_tex_unified_1d_v4f32_s32
1439 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1440 [llvm_i64_ty, llvm_i32_ty], [],
1441 "llvm.nvvm.tex.unified.1d.v4f32.s32">;
1442 def int_nvvm_tex_unified_1d_v4f32_f32
1443 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1444 [llvm_i64_ty, llvm_float_ty], [],
1445 "llvm.nvvm.tex.unified.1d.v4f32.f32">;
1446 def int_nvvm_tex_unified_1d_level_v4f32_f32
1447 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1448 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1449 "llvm.nvvm.tex.unified.1d.level.v4f32.f32">;
1450 def int_nvvm_tex_unified_1d_grad_v4f32_f32
1451 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1452 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1454 "llvm.nvvm.tex.unified.1d.grad.v4f32.f32">;
1455 def int_nvvm_tex_unified_1d_v4s32_s32
1456 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1457 [llvm_i64_ty, llvm_i32_ty], [],
1458 "llvm.nvvm.tex.unified.1d.v4s32.s32">;
1459 def int_nvvm_tex_unified_1d_v4s32_f32
1460 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1461 [llvm_i64_ty, llvm_float_ty], [],
1462 "llvm.nvvm.tex.unified.1d.v4s32.f32">;
1463 def int_nvvm_tex_unified_1d_level_v4s32_f32
1464 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1465 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1466 "llvm.nvvm.tex.unified.1d.level.v4s32.f32">;
1467 def int_nvvm_tex_unified_1d_grad_v4s32_f32
1468 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1469 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1471 "llvm.nvvm.tex.unified.1d.grad.v4s32.f32">;
1472 def int_nvvm_tex_unified_1d_v4u32_s32
1473 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1474 [llvm_i64_ty, llvm_i32_ty], [],
1475 "llvm.nvvm.tex.unified.1d.v4u32.s32">;
1476 def int_nvvm_tex_unified_1d_v4u32_f32
1477 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1478 [llvm_i64_ty, llvm_float_ty], [],
1479 "llvm.nvvm.tex.unified.1d.v4u32.f32">;
1480 def int_nvvm_tex_unified_1d_level_v4u32_f32
1481 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1482 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1483 "llvm.nvvm.tex.unified.1d.level.v4u32.f32">;
1484 def int_nvvm_tex_unified_1d_grad_v4u32_f32
1485 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1486 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1488 "llvm.nvvm.tex.unified.1d.grad.v4u32.f32">;
1490 def int_nvvm_tex_unified_1d_array_v4f32_s32
1491 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1492 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1493 "llvm.nvvm.tex.unified.1d.array.v4f32.s32">;
1494 def int_nvvm_tex_unified_1d_array_v4f32_f32
1495 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1496 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1497 "llvm.nvvm.tex.unified.1d.array.v4f32.f32">;
1498 def int_nvvm_tex_unified_1d_array_level_v4f32_f32
1499 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1500 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1502 "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32">;
1503 def int_nvvm_tex_unified_1d_array_grad_v4f32_f32
1504 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1505 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1506 llvm_float_ty, llvm_float_ty], [],
1507 "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32">;
1508 def int_nvvm_tex_unified_1d_array_v4s32_s32
1509 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1510 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1511 "llvm.nvvm.tex.unified.1d.array.v4s32.s32">;
1512 def int_nvvm_tex_unified_1d_array_v4s32_f32
1513 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1514 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1515 "llvm.nvvm.tex.unified.1d.array.v4s32.f32">;
1516 def int_nvvm_tex_unified_1d_array_level_v4s32_f32
1517 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1518 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1520 "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32">;
1521 def int_nvvm_tex_unified_1d_array_grad_v4s32_f32
1522 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1523 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1524 llvm_float_ty, llvm_float_ty], [],
1525 "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32">;
1526 def int_nvvm_tex_unified_1d_array_v4u32_s32
1527 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1528 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1529 "llvm.nvvm.tex.unified.1d.array.v4u32.s32">;
1530 def int_nvvm_tex_unified_1d_array_v4u32_f32
1531 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1532 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1533 "llvm.nvvm.tex.unified.1d.array.v4u32.f32">;
1534 def int_nvvm_tex_unified_1d_array_level_v4u32_f32
1535 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1536 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1538 "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32">;
1539 def int_nvvm_tex_unified_1d_array_grad_v4u32_f32
1540 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1541 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1542 llvm_float_ty, llvm_float_ty], [],
1543 "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32">;
1545 def int_nvvm_tex_unified_2d_v4f32_s32
1546 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1547 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1548 "llvm.nvvm.tex.unified.2d.v4f32.s32">;
1549 def int_nvvm_tex_unified_2d_v4f32_f32
1550 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1551 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1552 "llvm.nvvm.tex.unified.2d.v4f32.f32">;
1553 def int_nvvm_tex_unified_2d_level_v4f32_f32
1554 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1555 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1557 "llvm.nvvm.tex.unified.2d.level.v4f32.f32">;
1558 def int_nvvm_tex_unified_2d_grad_v4f32_f32
1559 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1560 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1561 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1562 "llvm.nvvm.tex.unified.2d.grad.v4f32.f32">;
1563 def int_nvvm_tex_unified_2d_v4s32_s32
1564 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1565 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1566 "llvm.nvvm.tex.unified.2d.v4s32.s32">;
1567 def int_nvvm_tex_unified_2d_v4s32_f32
1568 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1569 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1570 "llvm.nvvm.tex.unified.2d.v4s32.f32">;
1571 def int_nvvm_tex_unified_2d_level_v4s32_f32
1572 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1573 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1575 "llvm.nvvm.tex.unified.2d.level.v4s32.f32">;
1576 def int_nvvm_tex_unified_2d_grad_v4s32_f32
1577 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1578 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1579 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1580 "llvm.nvvm.tex.unified.2d.grad.v4s32.f32">;
1581 def int_nvvm_tex_unified_2d_v4u32_s32
1582 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1583 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1584 "llvm.nvvm.tex.unified.2d.v4u32.s32">;
1585 def int_nvvm_tex_unified_2d_v4u32_f32
1586 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1587 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1588 "llvm.nvvm.tex.unified.2d.v4u32.f32">;
1589 def int_nvvm_tex_unified_2d_level_v4u32_f32
1590 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1591 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1593 "llvm.nvvm.tex.unified.2d.level.v4u32.f32">;
1594 def int_nvvm_tex_unified_2d_grad_v4u32_f32
1595 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1596 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1597 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1598 "llvm.nvvm.tex.unified.2d.grad.v4u32.f32">;
1600 def int_nvvm_tex_unified_2d_array_v4f32_s32
1601 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1602 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1604 "llvm.nvvm.tex.unified.2d.array.v4f32.s32">;
1605 def int_nvvm_tex_unified_2d_array_v4f32_f32
1606 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1607 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1609 "llvm.nvvm.tex.unified.2d.array.v4f32.f32">;
1610 def int_nvvm_tex_unified_2d_array_level_v4f32_f32
1611 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1612 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1613 llvm_float_ty, llvm_float_ty], [],
1614 "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32">;
1615 def int_nvvm_tex_unified_2d_array_grad_v4f32_f32
1616 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1617 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1618 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1620 "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32">;
1621 def int_nvvm_tex_unified_2d_array_v4s32_s32
1622 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1623 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1625 "llvm.nvvm.tex.unified.2d.array.v4s32.s32">;
1626 def int_nvvm_tex_unified_2d_array_v4s32_f32
1627 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1628 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1630 "llvm.nvvm.tex.unified.2d.array.v4s32.f32">;
1631 def int_nvvm_tex_unified_2d_array_level_v4s32_f32
1632 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1633 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1634 llvm_float_ty, llvm_float_ty], [],
1635 "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32">;
1636 def int_nvvm_tex_unified_2d_array_grad_v4s32_f32
1637 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1638 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1639 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1641 "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32">;
1642 def int_nvvm_tex_unified_2d_array_v4u32_s32
1643 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1644 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1646 "llvm.nvvm.tex.unified.2d.array.v4u32.s32">;
1647 def int_nvvm_tex_unified_2d_array_v4u32_f32
1648 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1649 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1651 "llvm.nvvm.tex.unified.2d.array.v4u32.f32">;
1652 def int_nvvm_tex_unified_2d_array_level_v4u32_f32
1653 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1654 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1655 llvm_float_ty, llvm_float_ty], [],
1656 "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32">;
1657 def int_nvvm_tex_unified_2d_array_grad_v4u32_f32
1658 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1659 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1660 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1662 "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32">;
1664 def int_nvvm_tex_unified_3d_v4f32_s32
1665 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1666 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1667 [], "llvm.nvvm.tex.unified.3d.v4f32.s32">;
1668 def int_nvvm_tex_unified_3d_v4f32_f32
1669 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1670 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1672 "llvm.nvvm.tex.unified.3d.v4f32.f32">;
1673 def int_nvvm_tex_unified_3d_level_v4f32_f32
1674 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1675 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1676 llvm_float_ty, llvm_float_ty], [],
1677 "llvm.nvvm.tex.unified.3d.level.v4f32.f32">;
1678 def int_nvvm_tex_unified_3d_grad_v4f32_f32
1679 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1680 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1681 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1682 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1683 "llvm.nvvm.tex.unified.3d.grad.v4f32.f32">;
1684 def int_nvvm_tex_unified_3d_v4s32_s32
1685 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1686 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1687 [], "llvm.nvvm.tex.unified.3d.v4s32.s32">;
1688 def int_nvvm_tex_unified_3d_v4s32_f32
1689 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1690 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1692 "llvm.nvvm.tex.unified.3d.v4s32.f32">;
1693 def int_nvvm_tex_unified_3d_level_v4s32_f32
1694 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1695 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1696 llvm_float_ty, llvm_float_ty], [],
1697 "llvm.nvvm.tex.unified.3d.level.v4s32.f32">;
1698 def int_nvvm_tex_unified_3d_grad_v4s32_f32
1699 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1700 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1701 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1702 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1703 "llvm.nvvm.tex.unified.3d.grad.v4s32.f32">;
1704 def int_nvvm_tex_unified_3d_v4u32_s32
1705 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1706 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1707 [], "llvm.nvvm.tex.unified.3d.v4u32.s32">;
1708 def int_nvvm_tex_unified_3d_v4u32_f32
1709 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1710 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1712 "llvm.nvvm.tex.unified.3d.v4u32.f32">;
1713 def int_nvvm_tex_unified_3d_level_v4u32_f32
1714 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1715 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1716 llvm_float_ty, llvm_float_ty], [],
1717 "llvm.nvvm.tex.unified.3d.level.v4u32.f32">;
1718 def int_nvvm_tex_unified_3d_grad_v4u32_f32
1719 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1720 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1721 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1722 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1723 "llvm.nvvm.tex.unified.3d.grad.v4u32.f32">;
1725 def int_nvvm_tex_unified_cube_v4f32_f32
1726 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1728 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1729 "llvm.nvvm.tex.unified.cube.v4f32.f32">;
1730 def int_nvvm_tex_unified_cube_level_v4f32_f32
1731 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1733 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1734 "llvm.nvvm.tex.unified.cube.level.v4f32.f32">;
1735 def int_nvvm_tex_unified_cube_v4s32_f32
1736 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1738 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1739 "llvm.nvvm.tex.unified.cube.v4s32.f32">;
1740 def int_nvvm_tex_unified_cube_level_v4s32_f32
1741 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1743 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1744 "llvm.nvvm.tex.unified.cube.level.v4s32.f32">;
1745 def int_nvvm_tex_unified_cube_v4u32_f32
1746 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1748 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1749 "llvm.nvvm.tex.unified.cube.v4u32.f32">;
1750 def int_nvvm_tex_unified_cube_level_v4u32_f32
1751 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1753 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1754 "llvm.nvvm.tex.unified.cube.level.v4u32.f32">;
1756 def int_nvvm_tex_unified_cube_array_v4f32_f32
1757 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1758 [llvm_i64_ty, llvm_i32_ty,
1759 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1760 "llvm.nvvm.tex.unified.cube.array.v4f32.f32">;
1761 def int_nvvm_tex_unified_cube_array_level_v4f32_f32
1762 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1763 [llvm_i64_ty, llvm_i32_ty,
1764 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1765 "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32">;
1766 def int_nvvm_tex_unified_cube_array_v4s32_f32
1767 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1768 [llvm_i64_ty, llvm_i32_ty,
1769 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1770 "llvm.nvvm.tex.unified.cube.array.v4s32.f32">;
1771 def int_nvvm_tex_unified_cube_array_level_v4s32_f32
1772 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1773 [llvm_i64_ty, llvm_i32_ty,
1774 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1775 "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32">;
1776 def int_nvvm_tex_unified_cube_array_v4u32_f32
1777 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1778 [llvm_i64_ty, llvm_i32_ty,
1779 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1780 "llvm.nvvm.tex.unified.cube.array.v4u32.f32">;
1781 def int_nvvm_tex_unified_cube_array_level_v4u32_f32
1782 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1783 [llvm_i64_ty, llvm_i32_ty,
1784 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1785 "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32">;
1787 def int_nvvm_tld4_unified_r_2d_v4f32_f32
1788 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1789 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1790 "llvm.nvvm.tld4.unified.r.2d.v4f32.f32">;
1791 def int_nvvm_tld4_unified_g_2d_v4f32_f32
1792 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1793 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1794 "llvm.nvvm.tld4.unified.g.2d.v4f32.f32">;
1795 def int_nvvm_tld4_unified_b_2d_v4f32_f32
1796 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1797 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1798 "llvm.nvvm.tld4.unified.b.2d.v4f32.f32">;
1799 def int_nvvm_tld4_unified_a_2d_v4f32_f32
1800 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1801 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1802 "llvm.nvvm.tld4.unified.a.2d.v4f32.f32">;
1803 def int_nvvm_tld4_unified_r_2d_v4s32_f32
1804 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1805 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1806 "llvm.nvvm.tld4.unified.r.2d.v4s32.f32">;
1807 def int_nvvm_tld4_unified_g_2d_v4s32_f32
1808 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1809 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1810 "llvm.nvvm.tld4.unified.g.2d.v4s32.f32">;
1811 def int_nvvm_tld4_unified_b_2d_v4s32_f32
1812 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1813 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1814 "llvm.nvvm.tld4.unified.b.2d.v4s32.f32">;
1815 def int_nvvm_tld4_unified_a_2d_v4s32_f32
1816 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1817 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1818 "llvm.nvvm.tld4.unified.a.2d.v4s32.f32">;
1819 def int_nvvm_tld4_unified_r_2d_v4u32_f32
1820 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1821 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1822 "llvm.nvvm.tld4.unified.r.2d.v4u32.f32">;
1823 def int_nvvm_tld4_unified_g_2d_v4u32_f32
1824 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1825 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1826 "llvm.nvvm.tld4.unified.g.2d.v4u32.f32">;
1827 def int_nvvm_tld4_unified_b_2d_v4u32_f32
1828 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1829 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1830 "llvm.nvvm.tld4.unified.b.2d.v4u32.f32">;
1831 def int_nvvm_tld4_unified_a_2d_v4u32_f32
1832 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1833 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1834 "llvm.nvvm.tld4.unified.a.2d.v4u32.f32">;
1839 def int_nvvm_suld_1d_i8_clamp
1840 : Intrinsic<[llvm_i16_ty],
1841 [llvm_i64_ty, llvm_i32_ty], [],
1842 "llvm.nvvm.suld.1d.i8.clamp">;
1843 def int_nvvm_suld_1d_i16_clamp
1844 : Intrinsic<[llvm_i16_ty],
1845 [llvm_i64_ty, llvm_i32_ty], [],
1846 "llvm.nvvm.suld.1d.i16.clamp">;
1847 def int_nvvm_suld_1d_i32_clamp
1848 : Intrinsic<[llvm_i32_ty],
1849 [llvm_i64_ty, llvm_i32_ty], [],
1850 "llvm.nvvm.suld.1d.i32.clamp">;
1851 def int_nvvm_suld_1d_i64_clamp
1852 : Intrinsic<[llvm_i64_ty],
1853 [llvm_i64_ty, llvm_i32_ty], [],
1854 "llvm.nvvm.suld.1d.i64.clamp">;
1855 def int_nvvm_suld_1d_v2i8_clamp
1856 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1857 [llvm_i64_ty, llvm_i32_ty], [],
1858 "llvm.nvvm.suld.1d.v2i8.clamp">;
1859 def int_nvvm_suld_1d_v2i16_clamp
1860 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1861 [llvm_i64_ty, llvm_i32_ty], [],
1862 "llvm.nvvm.suld.1d.v2i16.clamp">;
1863 def int_nvvm_suld_1d_v2i32_clamp
1864 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1865 [llvm_i64_ty, llvm_i32_ty], [],
1866 "llvm.nvvm.suld.1d.v2i32.clamp">;
1867 def int_nvvm_suld_1d_v2i64_clamp
1868 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
1869 [llvm_i64_ty, llvm_i32_ty], [],
1870 "llvm.nvvm.suld.1d.v2i64.clamp">;
1871 def int_nvvm_suld_1d_v4i8_clamp
1872 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1873 [llvm_i64_ty, llvm_i32_ty], [],
1874 "llvm.nvvm.suld.1d.v4i8.clamp">;
1875 def int_nvvm_suld_1d_v4i16_clamp
1876 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1877 [llvm_i64_ty, llvm_i32_ty], [],
1878 "llvm.nvvm.suld.1d.v4i16.clamp">;
1879 def int_nvvm_suld_1d_v4i32_clamp
1880 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1881 [llvm_i64_ty, llvm_i32_ty], [],
1882 "llvm.nvvm.suld.1d.v4i32.clamp">;
1884 def int_nvvm_suld_1d_array_i8_clamp
1885 : Intrinsic<[llvm_i16_ty],
1886 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1887 "llvm.nvvm.suld.1d.array.i8.clamp">;
1888 def int_nvvm_suld_1d_array_i16_clamp
1889 : Intrinsic<[llvm_i16_ty],
1890 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1891 "llvm.nvvm.suld.1d.array.i16.clamp">;
1892 def int_nvvm_suld_1d_array_i32_clamp
1893 : Intrinsic<[llvm_i32_ty],
1894 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1895 "llvm.nvvm.suld.1d.array.i32.clamp">;
1896 def int_nvvm_suld_1d_array_i64_clamp
1897 : Intrinsic<[llvm_i64_ty],
1898 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1899 "llvm.nvvm.suld.1d.array.i64.clamp">;
1900 def int_nvvm_suld_1d_array_v2i8_clamp
1901 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1902 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1903 "llvm.nvvm.suld.1d.array.v2i8.clamp">;
1904 def int_nvvm_suld_1d_array_v2i16_clamp
1905 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1906 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1907 "llvm.nvvm.suld.1d.array.v2i16.clamp">;
1908 def int_nvvm_suld_1d_array_v2i32_clamp
1909 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1910 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1911 "llvm.nvvm.suld.1d.array.v2i32.clamp">;
1912 def int_nvvm_suld_1d_array_v2i64_clamp
1913 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
1914 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1915 "llvm.nvvm.suld.1d.array.v2i64.clamp">;
1916 def int_nvvm_suld_1d_array_v4i8_clamp
1917 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1918 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1919 "llvm.nvvm.suld.1d.array.v4i8.clamp">;
1920 def int_nvvm_suld_1d_array_v4i16_clamp
1921 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1922 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1923 "llvm.nvvm.suld.1d.array.v4i16.clamp">;
1924 def int_nvvm_suld_1d_array_v4i32_clamp
1925 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1926 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1927 "llvm.nvvm.suld.1d.array.v4i32.clamp">;
1929 def int_nvvm_suld_2d_i8_clamp
1930 : Intrinsic<[llvm_i16_ty],
1931 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1932 "llvm.nvvm.suld.2d.i8.clamp">;
1933 def int_nvvm_suld_2d_i16_clamp
1934 : Intrinsic<[llvm_i16_ty],
1935 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1936 "llvm.nvvm.suld.2d.i16.clamp">;
1937 def int_nvvm_suld_2d_i32_clamp
1938 : Intrinsic<[llvm_i32_ty],
1939 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1940 "llvm.nvvm.suld.2d.i32.clamp">;
1941 def int_nvvm_suld_2d_i64_clamp
1942 : Intrinsic<[llvm_i64_ty],
1943 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1944 "llvm.nvvm.suld.2d.i64.clamp">;
1945 def int_nvvm_suld_2d_v2i8_clamp
1946 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1947 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1948 "llvm.nvvm.suld.2d.v2i8.clamp">;
1949 def int_nvvm_suld_2d_v2i16_clamp
1950 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1951 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1952 "llvm.nvvm.suld.2d.v2i16.clamp">;
1953 def int_nvvm_suld_2d_v2i32_clamp
1954 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1955 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1956 "llvm.nvvm.suld.2d.v2i32.clamp">;
1957 def int_nvvm_suld_2d_v2i64_clamp
1958 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
1959 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1960 "llvm.nvvm.suld.2d.v2i64.clamp">;
1961 def int_nvvm_suld_2d_v4i8_clamp
1962 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1963 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1964 "llvm.nvvm.suld.2d.v4i8.clamp">;
1965 def int_nvvm_suld_2d_v4i16_clamp
1966 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1967 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1968 "llvm.nvvm.suld.2d.v4i16.clamp">;
1969 def int_nvvm_suld_2d_v4i32_clamp
1970 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1971 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1972 "llvm.nvvm.suld.2d.v4i32.clamp">;
1974 def int_nvvm_suld_2d_array_i8_clamp
1975 : Intrinsic<[llvm_i16_ty],
1976 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1977 "llvm.nvvm.suld.2d.array.i8.clamp">;
1978 def int_nvvm_suld_2d_array_i16_clamp
1979 : Intrinsic<[llvm_i16_ty],
1980 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1981 "llvm.nvvm.suld.2d.array.i16.clamp">;
1982 def int_nvvm_suld_2d_array_i32_clamp
1983 : Intrinsic<[llvm_i32_ty],
1984 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1985 "llvm.nvvm.suld.2d.array.i32.clamp">;
1986 def int_nvvm_suld_2d_array_i64_clamp
1987 : Intrinsic<[llvm_i64_ty],
1988 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1989 "llvm.nvvm.suld.2d.array.i64.clamp">;
1990 def int_nvvm_suld_2d_array_v2i8_clamp
1991 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1992 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1993 "llvm.nvvm.suld.2d.array.v2i8.clamp">;
1994 def int_nvvm_suld_2d_array_v2i16_clamp
1995 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1996 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1997 "llvm.nvvm.suld.2d.array.v2i16.clamp">;
1998 def int_nvvm_suld_2d_array_v2i32_clamp
1999 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2000 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2001 "llvm.nvvm.suld.2d.array.v2i32.clamp">;
2002 def int_nvvm_suld_2d_array_v2i64_clamp
2003 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2004 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2005 "llvm.nvvm.suld.2d.array.v2i64.clamp">;
2006 def int_nvvm_suld_2d_array_v4i8_clamp
2007 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2008 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2009 "llvm.nvvm.suld.2d.array.v4i8.clamp">;
2010 def int_nvvm_suld_2d_array_v4i16_clamp
2011 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2012 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2013 "llvm.nvvm.suld.2d.array.v4i16.clamp">;
2014 def int_nvvm_suld_2d_array_v4i32_clamp
2015 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2016 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2017 "llvm.nvvm.suld.2d.array.v4i32.clamp">;
2019 def int_nvvm_suld_3d_i8_clamp
2020 : Intrinsic<[llvm_i16_ty],
2021 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2022 "llvm.nvvm.suld.3d.i8.clamp">;
2023 def int_nvvm_suld_3d_i16_clamp
2024 : Intrinsic<[llvm_i16_ty],
2025 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2026 "llvm.nvvm.suld.3d.i16.clamp">;
2027 def int_nvvm_suld_3d_i32_clamp
2028 : Intrinsic<[llvm_i32_ty],
2029 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2030 "llvm.nvvm.suld.3d.i32.clamp">;
2031 def int_nvvm_suld_3d_i64_clamp
2032 : Intrinsic<[llvm_i64_ty],
2033 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2034 "llvm.nvvm.suld.3d.i64.clamp">;
2035 def int_nvvm_suld_3d_v2i8_clamp
2036 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2037 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2038 "llvm.nvvm.suld.3d.v2i8.clamp">;
2039 def int_nvvm_suld_3d_v2i16_clamp
2040 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2041 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2042 "llvm.nvvm.suld.3d.v2i16.clamp">;
2043 def int_nvvm_suld_3d_v2i32_clamp
2044 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2045 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2046 "llvm.nvvm.suld.3d.v2i32.clamp">;
2047 def int_nvvm_suld_3d_v2i64_clamp
2048 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2049 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2050 "llvm.nvvm.suld.3d.v2i64.clamp">;
2051 def int_nvvm_suld_3d_v4i8_clamp
2052 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2053 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2054 "llvm.nvvm.suld.3d.v4i8.clamp">;
2055 def int_nvvm_suld_3d_v4i16_clamp
2056 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2057 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2058 "llvm.nvvm.suld.3d.v4i16.clamp">;
2059 def int_nvvm_suld_3d_v4i32_clamp
2060 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2061 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2062 "llvm.nvvm.suld.3d.v4i32.clamp">;
2065 def int_nvvm_suld_1d_i8_trap
2066 : Intrinsic<[llvm_i16_ty],
2067 [llvm_i64_ty, llvm_i32_ty], [],
2068 "llvm.nvvm.suld.1d.i8.trap">;
2069 def int_nvvm_suld_1d_i16_trap
2070 : Intrinsic<[llvm_i16_ty],
2071 [llvm_i64_ty, llvm_i32_ty], [],
2072 "llvm.nvvm.suld.1d.i16.trap">;
2073 def int_nvvm_suld_1d_i32_trap
2074 : Intrinsic<[llvm_i32_ty],
2075 [llvm_i64_ty, llvm_i32_ty], [],
2076 "llvm.nvvm.suld.1d.i32.trap">;
2077 def int_nvvm_suld_1d_i64_trap
2078 : Intrinsic<[llvm_i64_ty],
2079 [llvm_i64_ty, llvm_i32_ty], [],
2080 "llvm.nvvm.suld.1d.i64.trap">;
2081 def int_nvvm_suld_1d_v2i8_trap
2082 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2083 [llvm_i64_ty, llvm_i32_ty], [],
2084 "llvm.nvvm.suld.1d.v2i8.trap">;
2085 def int_nvvm_suld_1d_v2i16_trap
2086 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2087 [llvm_i64_ty, llvm_i32_ty], [],
2088 "llvm.nvvm.suld.1d.v2i16.trap">;
2089 def int_nvvm_suld_1d_v2i32_trap
2090 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2091 [llvm_i64_ty, llvm_i32_ty], [],
2092 "llvm.nvvm.suld.1d.v2i32.trap">;
2093 def int_nvvm_suld_1d_v2i64_trap
2094 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2095 [llvm_i64_ty, llvm_i32_ty], [],
2096 "llvm.nvvm.suld.1d.v2i64.trap">;
2097 def int_nvvm_suld_1d_v4i8_trap
2098 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2099 [llvm_i64_ty, llvm_i32_ty], [],
2100 "llvm.nvvm.suld.1d.v4i8.trap">;
2101 def int_nvvm_suld_1d_v4i16_trap
2102 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2103 [llvm_i64_ty, llvm_i32_ty], [],
2104 "llvm.nvvm.suld.1d.v4i16.trap">;
2105 def int_nvvm_suld_1d_v4i32_trap
2106 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2107 [llvm_i64_ty, llvm_i32_ty], [],
2108 "llvm.nvvm.suld.1d.v4i32.trap">;
2110 def int_nvvm_suld_1d_array_i8_trap
2111 : Intrinsic<[llvm_i16_ty],
2112 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2113 "llvm.nvvm.suld.1d.array.i8.trap">;
2114 def int_nvvm_suld_1d_array_i16_trap
2115 : Intrinsic<[llvm_i16_ty],
2116 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2117 "llvm.nvvm.suld.1d.array.i16.trap">;
2118 def int_nvvm_suld_1d_array_i32_trap
2119 : Intrinsic<[llvm_i32_ty],
2120 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2121 "llvm.nvvm.suld.1d.array.i32.trap">;
2122 def int_nvvm_suld_1d_array_i64_trap
2123 : Intrinsic<[llvm_i64_ty],
2124 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2125 "llvm.nvvm.suld.1d.array.i64.trap">;
2126 def int_nvvm_suld_1d_array_v2i8_trap
2127 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2128 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2129 "llvm.nvvm.suld.1d.array.v2i8.trap">;
2130 def int_nvvm_suld_1d_array_v2i16_trap
2131 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2132 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2133 "llvm.nvvm.suld.1d.array.v2i16.trap">;
2134 def int_nvvm_suld_1d_array_v2i32_trap
2135 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2136 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2137 "llvm.nvvm.suld.1d.array.v2i32.trap">;
2138 def int_nvvm_suld_1d_array_v2i64_trap
2139 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2140 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2141 "llvm.nvvm.suld.1d.array.v2i64.trap">;
2142 def int_nvvm_suld_1d_array_v4i8_trap
2143 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2144 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2145 "llvm.nvvm.suld.1d.array.v4i8.trap">;
2146 def int_nvvm_suld_1d_array_v4i16_trap
2147 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2148 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2149 "llvm.nvvm.suld.1d.array.v4i16.trap">;
2150 def int_nvvm_suld_1d_array_v4i32_trap
2151 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2152 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2153 "llvm.nvvm.suld.1d.array.v4i32.trap">;
2155 def int_nvvm_suld_2d_i8_trap
2156 : Intrinsic<[llvm_i16_ty],
2157 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2158 "llvm.nvvm.suld.2d.i8.trap">;
2159 def int_nvvm_suld_2d_i16_trap
2160 : Intrinsic<[llvm_i16_ty],
2161 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2162 "llvm.nvvm.suld.2d.i16.trap">;
2163 def int_nvvm_suld_2d_i32_trap
2164 : Intrinsic<[llvm_i32_ty],
2165 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2166 "llvm.nvvm.suld.2d.i32.trap">;
2167 def int_nvvm_suld_2d_i64_trap
2168 : Intrinsic<[llvm_i64_ty],
2169 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2170 "llvm.nvvm.suld.2d.i64.trap">;
2171 def int_nvvm_suld_2d_v2i8_trap
2172 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2173 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2174 "llvm.nvvm.suld.2d.v2i8.trap">;
2175 def int_nvvm_suld_2d_v2i16_trap
2176 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2177 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2178 "llvm.nvvm.suld.2d.v2i16.trap">;
2179 def int_nvvm_suld_2d_v2i32_trap
2180 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2181 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2182 "llvm.nvvm.suld.2d.v2i32.trap">;
2183 def int_nvvm_suld_2d_v2i64_trap
2184 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2185 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2186 "llvm.nvvm.suld.2d.v2i64.trap">;
2187 def int_nvvm_suld_2d_v4i8_trap
2188 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2189 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2190 "llvm.nvvm.suld.2d.v4i8.trap">;
2191 def int_nvvm_suld_2d_v4i16_trap
2192 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2193 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2194 "llvm.nvvm.suld.2d.v4i16.trap">;
2195 def int_nvvm_suld_2d_v4i32_trap
2196 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2197 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2198 "llvm.nvvm.suld.2d.v4i32.trap">;
2200 def int_nvvm_suld_2d_array_i8_trap
2201 : Intrinsic<[llvm_i16_ty],
2202 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2203 "llvm.nvvm.suld.2d.array.i8.trap">;
2204 def int_nvvm_suld_2d_array_i16_trap
2205 : Intrinsic<[llvm_i16_ty],
2206 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2207 "llvm.nvvm.suld.2d.array.i16.trap">;
2208 def int_nvvm_suld_2d_array_i32_trap
2209 : Intrinsic<[llvm_i32_ty],
2210 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2211 "llvm.nvvm.suld.2d.array.i32.trap">;
2212 def int_nvvm_suld_2d_array_i64_trap
2213 : Intrinsic<[llvm_i64_ty],
2214 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2215 "llvm.nvvm.suld.2d.array.i64.trap">;
2216 def int_nvvm_suld_2d_array_v2i8_trap
2217 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2218 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2219 "llvm.nvvm.suld.2d.array.v2i8.trap">;
2220 def int_nvvm_suld_2d_array_v2i16_trap
2221 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2222 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2223 "llvm.nvvm.suld.2d.array.v2i16.trap">;
2224 def int_nvvm_suld_2d_array_v2i32_trap
2225 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2226 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2227 "llvm.nvvm.suld.2d.array.v2i32.trap">;
2228 def int_nvvm_suld_2d_array_v2i64_trap
2229 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2230 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2231 "llvm.nvvm.suld.2d.array.v2i64.trap">;
2232 def int_nvvm_suld_2d_array_v4i8_trap
2233 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2234 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2235 "llvm.nvvm.suld.2d.array.v4i8.trap">;
2236 def int_nvvm_suld_2d_array_v4i16_trap
2237 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2238 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2239 "llvm.nvvm.suld.2d.array.v4i16.trap">;
2240 def int_nvvm_suld_2d_array_v4i32_trap
2241 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2242 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2243 "llvm.nvvm.suld.2d.array.v4i32.trap">;
2245 def int_nvvm_suld_3d_i8_trap
2246 : Intrinsic<[llvm_i16_ty],
2247 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2248 "llvm.nvvm.suld.3d.i8.trap">;
2249 def int_nvvm_suld_3d_i16_trap
2250 : Intrinsic<[llvm_i16_ty],
2251 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2252 "llvm.nvvm.suld.3d.i16.trap">;
2253 def int_nvvm_suld_3d_i32_trap
2254 : Intrinsic<[llvm_i32_ty],
2255 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2256 "llvm.nvvm.suld.3d.i32.trap">;
2257 def int_nvvm_suld_3d_i64_trap
2258 : Intrinsic<[llvm_i64_ty],
2259 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2260 "llvm.nvvm.suld.3d.i64.trap">;
2261 def int_nvvm_suld_3d_v2i8_trap
2262 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2263 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2264 "llvm.nvvm.suld.3d.v2i8.trap">;
2265 def int_nvvm_suld_3d_v2i16_trap
2266 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2267 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2268 "llvm.nvvm.suld.3d.v2i16.trap">;
2269 def int_nvvm_suld_3d_v2i32_trap
2270 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2271 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2272 "llvm.nvvm.suld.3d.v2i32.trap">;
2273 def int_nvvm_suld_3d_v2i64_trap
2274 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2275 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2276 "llvm.nvvm.suld.3d.v2i64.trap">;
2277 def int_nvvm_suld_3d_v4i8_trap
2278 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2279 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2280 "llvm.nvvm.suld.3d.v4i8.trap">;
2281 def int_nvvm_suld_3d_v4i16_trap
2282 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2283 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2284 "llvm.nvvm.suld.3d.v4i16.trap">;
2285 def int_nvvm_suld_3d_v4i32_trap
2286 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2287 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2288 "llvm.nvvm.suld.3d.v4i32.trap">;
2291 def int_nvvm_suld_1d_i8_zero
2292 : Intrinsic<[llvm_i16_ty],
2293 [llvm_i64_ty, llvm_i32_ty], [],
2294 "llvm.nvvm.suld.1d.i8.zero">;
2295 def int_nvvm_suld_1d_i16_zero
2296 : Intrinsic<[llvm_i16_ty],
2297 [llvm_i64_ty, llvm_i32_ty], [],
2298 "llvm.nvvm.suld.1d.i16.zero">;
2299 def int_nvvm_suld_1d_i32_zero
2300 : Intrinsic<[llvm_i32_ty],
2301 [llvm_i64_ty, llvm_i32_ty], [],
2302 "llvm.nvvm.suld.1d.i32.zero">;
2303 def int_nvvm_suld_1d_i64_zero
2304 : Intrinsic<[llvm_i64_ty],
2305 [llvm_i64_ty, llvm_i32_ty], [],
2306 "llvm.nvvm.suld.1d.i64.zero">;
2307 def int_nvvm_suld_1d_v2i8_zero
2308 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2309 [llvm_i64_ty, llvm_i32_ty], [],
2310 "llvm.nvvm.suld.1d.v2i8.zero">;
2311 def int_nvvm_suld_1d_v2i16_zero
2312 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2313 [llvm_i64_ty, llvm_i32_ty], [],
2314 "llvm.nvvm.suld.1d.v2i16.zero">;
2315 def int_nvvm_suld_1d_v2i32_zero
2316 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2317 [llvm_i64_ty, llvm_i32_ty], [],
2318 "llvm.nvvm.suld.1d.v2i32.zero">;
2319 def int_nvvm_suld_1d_v2i64_zero
2320 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2321 [llvm_i64_ty, llvm_i32_ty], [],
2322 "llvm.nvvm.suld.1d.v2i64.zero">;
2323 def int_nvvm_suld_1d_v4i8_zero
2324 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2325 [llvm_i64_ty, llvm_i32_ty], [],
2326 "llvm.nvvm.suld.1d.v4i8.zero">;
2327 def int_nvvm_suld_1d_v4i16_zero
2328 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2329 [llvm_i64_ty, llvm_i32_ty], [],
2330 "llvm.nvvm.suld.1d.v4i16.zero">;
2331 def int_nvvm_suld_1d_v4i32_zero
2332 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2333 [llvm_i64_ty, llvm_i32_ty], [],
2334 "llvm.nvvm.suld.1d.v4i32.zero">;
2336 def int_nvvm_suld_1d_array_i8_zero
2337 : Intrinsic<[llvm_i16_ty],
2338 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2339 "llvm.nvvm.suld.1d.array.i8.zero">;
2340 def int_nvvm_suld_1d_array_i16_zero
2341 : Intrinsic<[llvm_i16_ty],
2342 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2343 "llvm.nvvm.suld.1d.array.i16.zero">;
2344 def int_nvvm_suld_1d_array_i32_zero
2345 : Intrinsic<[llvm_i32_ty],
2346 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2347 "llvm.nvvm.suld.1d.array.i32.zero">;
2348 def int_nvvm_suld_1d_array_i64_zero
2349 : Intrinsic<[llvm_i64_ty],
2350 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2351 "llvm.nvvm.suld.1d.array.i64.zero">;
2352 def int_nvvm_suld_1d_array_v2i8_zero
2353 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2354 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2355 "llvm.nvvm.suld.1d.array.v2i8.zero">;
2356 def int_nvvm_suld_1d_array_v2i16_zero
2357 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2358 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2359 "llvm.nvvm.suld.1d.array.v2i16.zero">;
2360 def int_nvvm_suld_1d_array_v2i32_zero
2361 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2362 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2363 "llvm.nvvm.suld.1d.array.v2i32.zero">;
2364 def int_nvvm_suld_1d_array_v2i64_zero
2365 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2366 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2367 "llvm.nvvm.suld.1d.array.v2i64.zero">;
2368 def int_nvvm_suld_1d_array_v4i8_zero
2369 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2370 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2371 "llvm.nvvm.suld.1d.array.v4i8.zero">;
2372 def int_nvvm_suld_1d_array_v4i16_zero
2373 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2374 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2375 "llvm.nvvm.suld.1d.array.v4i16.zero">;
2376 def int_nvvm_suld_1d_array_v4i32_zero
2377 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2378 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2379 "llvm.nvvm.suld.1d.array.v4i32.zero">;
2381 def int_nvvm_suld_2d_i8_zero
2382 : Intrinsic<[llvm_i16_ty],
2383 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2384 "llvm.nvvm.suld.2d.i8.zero">;
2385 def int_nvvm_suld_2d_i16_zero
2386 : Intrinsic<[llvm_i16_ty],
2387 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2388 "llvm.nvvm.suld.2d.i16.zero">;
2389 def int_nvvm_suld_2d_i32_zero
2390 : Intrinsic<[llvm_i32_ty],
2391 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2392 "llvm.nvvm.suld.2d.i32.zero">;
2393 def int_nvvm_suld_2d_i64_zero
2394 : Intrinsic<[llvm_i64_ty],
2395 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2396 "llvm.nvvm.suld.2d.i64.zero">;
2397 def int_nvvm_suld_2d_v2i8_zero
2398 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2399 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2400 "llvm.nvvm.suld.2d.v2i8.zero">;
2401 def int_nvvm_suld_2d_v2i16_zero
2402 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2403 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2404 "llvm.nvvm.suld.2d.v2i16.zero">;
2405 def int_nvvm_suld_2d_v2i32_zero
2406 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2407 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2408 "llvm.nvvm.suld.2d.v2i32.zero">;
2409 def int_nvvm_suld_2d_v2i64_zero
2410 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2411 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2412 "llvm.nvvm.suld.2d.v2i64.zero">;
2413 def int_nvvm_suld_2d_v4i8_zero
2414 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2415 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2416 "llvm.nvvm.suld.2d.v4i8.zero">;
2417 def int_nvvm_suld_2d_v4i16_zero
2418 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2419 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2420 "llvm.nvvm.suld.2d.v4i16.zero">;
2421 def int_nvvm_suld_2d_v4i32_zero
2422 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2423 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2424 "llvm.nvvm.suld.2d.v4i32.zero">;
2426 def int_nvvm_suld_2d_array_i8_zero
2427 : Intrinsic<[llvm_i16_ty],
2428 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2429 "llvm.nvvm.suld.2d.array.i8.zero">;
2430 def int_nvvm_suld_2d_array_i16_zero
2431 : Intrinsic<[llvm_i16_ty],
2432 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2433 "llvm.nvvm.suld.2d.array.i16.zero">;
2434 def int_nvvm_suld_2d_array_i32_zero
2435 : Intrinsic<[llvm_i32_ty],
2436 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2437 "llvm.nvvm.suld.2d.array.i32.zero">;
2438 def int_nvvm_suld_2d_array_i64_zero
2439 : Intrinsic<[llvm_i64_ty],
2440 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2441 "llvm.nvvm.suld.2d.array.i64.zero">;
2442 def int_nvvm_suld_2d_array_v2i8_zero
2443 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2444 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2445 "llvm.nvvm.suld.2d.array.v2i8.zero">;
2446 def int_nvvm_suld_2d_array_v2i16_zero
2447 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2448 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2449 "llvm.nvvm.suld.2d.array.v2i16.zero">;
2450 def int_nvvm_suld_2d_array_v2i32_zero
2451 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2452 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2453 "llvm.nvvm.suld.2d.array.v2i32.zero">;
2454 def int_nvvm_suld_2d_array_v2i64_zero
2455 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2456 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2457 "llvm.nvvm.suld.2d.array.v2i64.zero">;
2458 def int_nvvm_suld_2d_array_v4i8_zero
2459 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2460 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2461 "llvm.nvvm.suld.2d.array.v4i8.zero">;
2462 def int_nvvm_suld_2d_array_v4i16_zero
2463 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2464 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2465 "llvm.nvvm.suld.2d.array.v4i16.zero">;
2466 def int_nvvm_suld_2d_array_v4i32_zero
2467 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2468 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2469 "llvm.nvvm.suld.2d.array.v4i32.zero">;
2471 def int_nvvm_suld_3d_i8_zero
2472 : Intrinsic<[llvm_i16_ty],
2473 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2474 "llvm.nvvm.suld.3d.i8.zero">;
2475 def int_nvvm_suld_3d_i16_zero
2476 : Intrinsic<[llvm_i16_ty],
2477 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2478 "llvm.nvvm.suld.3d.i16.zero">;
2479 def int_nvvm_suld_3d_i32_zero
2480 : Intrinsic<[llvm_i32_ty],
2481 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2482 "llvm.nvvm.suld.3d.i32.zero">;
2483 def int_nvvm_suld_3d_i64_zero
2484 : Intrinsic<[llvm_i64_ty],
2485 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2486 "llvm.nvvm.suld.3d.i64.zero">;
2487 def int_nvvm_suld_3d_v2i8_zero
2488 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2489 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2490 "llvm.nvvm.suld.3d.v2i8.zero">;
2491 def int_nvvm_suld_3d_v2i16_zero
2492 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2493 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2494 "llvm.nvvm.suld.3d.v2i16.zero">;
2495 def int_nvvm_suld_3d_v2i32_zero
2496 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2497 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2498 "llvm.nvvm.suld.3d.v2i32.zero">;
2499 def int_nvvm_suld_3d_v2i64_zero
2500 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2501 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2502 "llvm.nvvm.suld.3d.v2i64.zero">;
2503 def int_nvvm_suld_3d_v4i8_zero
2504 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2505 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2506 "llvm.nvvm.suld.3d.v4i8.zero">;
2507 def int_nvvm_suld_3d_v4i16_zero
2508 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2509 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2510 "llvm.nvvm.suld.3d.v4i16.zero">;
2511 def int_nvvm_suld_3d_v4i32_zero
2512 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2513 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2514 "llvm.nvvm.suld.3d.v4i32.zero">;
2516 //===- Texture Query ------------------------------------------------------===//
2518 def int_nvvm_txq_channel_order
2519 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2520 "llvm.nvvm.txq.channel.order">,
2521 GCCBuiltin<"__nvvm_txq_channel_order">;
2522 def int_nvvm_txq_channel_data_type
2523 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2524 "llvm.nvvm.txq.channel.data.type">,
2525 GCCBuiltin<"__nvvm_txq_channel_data_type">;
2526 def int_nvvm_txq_width
2527 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2528 "llvm.nvvm.txq.width">,
2529 GCCBuiltin<"__nvvm_txq_width">;
2530 def int_nvvm_txq_height
2531 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2532 "llvm.nvvm.txq.height">,
2533 GCCBuiltin<"__nvvm_txq_height">;
2534 def int_nvvm_txq_depth
2535 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2536 "llvm.nvvm.txq.depth">,
2537 GCCBuiltin<"__nvvm_txq_depth">;
2538 def int_nvvm_txq_array_size
2539 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2540 "llvm.nvvm.txq.array.size">,
2541 GCCBuiltin<"__nvvm_txq_array_size">;
2542 def int_nvvm_txq_num_samples
2543 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2544 "llvm.nvvm.txq.num.samples">,
2545 GCCBuiltin<"__nvvm_txq_num_samples">;
2546 def int_nvvm_txq_num_mipmap_levels
2547 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2548 "llvm.nvvm.txq.num.mipmap.levels">,
2549 GCCBuiltin<"__nvvm_txq_num_mipmap_levels">;
2551 //===- Surface Query ------------------------------------------------------===//
2553 def int_nvvm_suq_channel_order
2554 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2555 "llvm.nvvm.suq.channel.order">,
2556 GCCBuiltin<"__nvvm_suq_channel_order">;
2557 def int_nvvm_suq_channel_data_type
2558 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2559 "llvm.nvvm.suq.channel.data.type">,
2560 GCCBuiltin<"__nvvm_suq_channel_data_type">;
2561 def int_nvvm_suq_width
2562 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2563 "llvm.nvvm.suq.width">,
2564 GCCBuiltin<"__nvvm_suq_width">;
2565 def int_nvvm_suq_height
2566 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2567 "llvm.nvvm.suq.height">,
2568 GCCBuiltin<"__nvvm_suq_height">;
2569 def int_nvvm_suq_depth
2570 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2571 "llvm.nvvm.suq.depth">,
2572 GCCBuiltin<"__nvvm_suq_depth">;
2573 def int_nvvm_suq_array_size
2574 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2575 "llvm.nvvm.suq.array.size">,
2576 GCCBuiltin<"__nvvm_suq_array_size">;
2579 //===- Handle Query -------------------------------------------------------===//
2581 def int_nvvm_istypep_sampler
2582 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
2583 "llvm.nvvm.istypep.sampler">,
2584 GCCBuiltin<"__nvvm_istypep_sampler">;
2585 def int_nvvm_istypep_surface
2586 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
2587 "llvm.nvvm.istypep.surface">,
2588 GCCBuiltin<"__nvvm_istypep_surface">;
2589 def int_nvvm_istypep_texture
2590 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
2591 "llvm.nvvm.istypep.texture">,
2592 GCCBuiltin<"__nvvm_istypep_texture">;
2596 //===- Surface Stores -----------------------------------------------------===//
2600 def int_nvvm_sust_b_1d_i8_clamp
2601 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2602 "llvm.nvvm.sust.b.1d.i8.clamp">,
2603 GCCBuiltin<"__nvvm_sust_b_1d_i8_clamp">;
2604 def int_nvvm_sust_b_1d_i16_clamp
2605 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2606 "llvm.nvvm.sust.b.1d.i16.clamp">,
2607 GCCBuiltin<"__nvvm_sust_b_1d_i16_clamp">;
2608 def int_nvvm_sust_b_1d_i32_clamp
2609 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2610 "llvm.nvvm.sust.b.1d.i32.clamp">,
2611 GCCBuiltin<"__nvvm_sust_b_1d_i32_clamp">;
2612 def int_nvvm_sust_b_1d_i64_clamp
2613 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
2614 "llvm.nvvm.sust.b.1d.i64.clamp">,
2615 GCCBuiltin<"__nvvm_sust_b_1d_i64_clamp">;
2616 def int_nvvm_sust_b_1d_v2i8_clamp
2617 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2618 "llvm.nvvm.sust.b.1d.v2i8.clamp">,
2619 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_clamp">;
2620 def int_nvvm_sust_b_1d_v2i16_clamp
2621 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2622 "llvm.nvvm.sust.b.1d.v2i16.clamp">,
2623 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_clamp">;
2624 def int_nvvm_sust_b_1d_v2i32_clamp
2625 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2626 "llvm.nvvm.sust.b.1d.v2i32.clamp">,
2627 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_clamp">;
2628 def int_nvvm_sust_b_1d_v2i64_clamp
2629 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
2630 "llvm.nvvm.sust.b.1d.v2i64.clamp">,
2631 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_clamp">;
2632 def int_nvvm_sust_b_1d_v4i8_clamp
2633 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2634 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2635 "llvm.nvvm.sust.b.1d.v4i8.clamp">,
2636 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_clamp">;
2637 def int_nvvm_sust_b_1d_v4i16_clamp
2638 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2639 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2640 "llvm.nvvm.sust.b.1d.v4i16.clamp">,
2641 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_clamp">;
2642 def int_nvvm_sust_b_1d_v4i32_clamp
2643 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2644 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2645 "llvm.nvvm.sust.b.1d.v4i32.clamp">,
2646 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_clamp">;
2649 def int_nvvm_sust_b_1d_array_i8_clamp
2650 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2651 "llvm.nvvm.sust.b.1d.array.i8.clamp">,
2652 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_clamp">;
2653 def int_nvvm_sust_b_1d_array_i16_clamp
2654 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2655 "llvm.nvvm.sust.b.1d.array.i16.clamp">,
2656 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_clamp">;
2657 def int_nvvm_sust_b_1d_array_i32_clamp
2658 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2659 "llvm.nvvm.sust.b.1d.array.i32.clamp">,
2660 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_clamp">;
2661 def int_nvvm_sust_b_1d_array_i64_clamp
2662 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2663 "llvm.nvvm.sust.b.1d.array.i64.clamp">,
2664 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_clamp">;
2665 def int_nvvm_sust_b_1d_array_v2i8_clamp
2666 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2667 llvm_i16_ty, llvm_i16_ty], [],
2668 "llvm.nvvm.sust.b.1d.array.v2i8.clamp">,
2669 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_clamp">;
2670 def int_nvvm_sust_b_1d_array_v2i16_clamp
2671 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2672 llvm_i16_ty, llvm_i16_ty], [],
2673 "llvm.nvvm.sust.b.1d.array.v2i16.clamp">,
2674 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_clamp">;
2675 def int_nvvm_sust_b_1d_array_v2i32_clamp
2676 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2677 llvm_i32_ty, llvm_i32_ty], [],
2678 "llvm.nvvm.sust.b.1d.array.v2i32.clamp">,
2679 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_clamp">;
2680 def int_nvvm_sust_b_1d_array_v2i64_clamp
2681 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2682 llvm_i64_ty, llvm_i64_ty], [],
2683 "llvm.nvvm.sust.b.1d.array.v2i64.clamp">,
2684 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_clamp">;
2685 def int_nvvm_sust_b_1d_array_v4i8_clamp
2686 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2687 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2688 "llvm.nvvm.sust.b.1d.array.v4i8.clamp">,
2689 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_clamp">;
2690 def int_nvvm_sust_b_1d_array_v4i16_clamp
2691 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2692 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2693 "llvm.nvvm.sust.b.1d.array.v4i16.clamp">,
2694 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_clamp">;
2695 def int_nvvm_sust_b_1d_array_v4i32_clamp
2696 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2697 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2698 "llvm.nvvm.sust.b.1d.array.v4i32.clamp">,
2699 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_clamp">;
2702 def int_nvvm_sust_b_2d_i8_clamp
2703 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2704 "llvm.nvvm.sust.b.2d.i8.clamp">,
2705 GCCBuiltin<"__nvvm_sust_b_2d_i8_clamp">;
2706 def int_nvvm_sust_b_2d_i16_clamp
2707 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2708 "llvm.nvvm.sust.b.2d.i16.clamp">,
2709 GCCBuiltin<"__nvvm_sust_b_2d_i16_clamp">;
2710 def int_nvvm_sust_b_2d_i32_clamp
2711 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2712 "llvm.nvvm.sust.b.2d.i32.clamp">,
2713 GCCBuiltin<"__nvvm_sust_b_2d_i32_clamp">;
2714 def int_nvvm_sust_b_2d_i64_clamp
2715 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2716 "llvm.nvvm.sust.b.2d.i64.clamp">,
2717 GCCBuiltin<"__nvvm_sust_b_2d_i64_clamp">;
2718 def int_nvvm_sust_b_2d_v2i8_clamp
2719 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2720 llvm_i16_ty, llvm_i16_ty], [],
2721 "llvm.nvvm.sust.b.2d.v2i8.clamp">,
2722 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_clamp">;
2723 def int_nvvm_sust_b_2d_v2i16_clamp
2724 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2725 llvm_i16_ty, llvm_i16_ty], [],
2726 "llvm.nvvm.sust.b.2d.v2i16.clamp">,
2727 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_clamp">;
2728 def int_nvvm_sust_b_2d_v2i32_clamp
2729 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2730 llvm_i32_ty, llvm_i32_ty], [],
2731 "llvm.nvvm.sust.b.2d.v2i32.clamp">,
2732 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_clamp">;
2733 def int_nvvm_sust_b_2d_v2i64_clamp
2734 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2735 llvm_i64_ty, llvm_i64_ty], [],
2736 "llvm.nvvm.sust.b.2d.v2i64.clamp">,
2737 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_clamp">;
2738 def int_nvvm_sust_b_2d_v4i8_clamp
2739 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2740 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2741 "llvm.nvvm.sust.b.2d.v4i8.clamp">,
2742 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_clamp">;
2743 def int_nvvm_sust_b_2d_v4i16_clamp
2744 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2745 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2746 "llvm.nvvm.sust.b.2d.v4i16.clamp">,
2747 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_clamp">;
2748 def int_nvvm_sust_b_2d_v4i32_clamp
2749 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2750 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2751 "llvm.nvvm.sust.b.2d.v4i32.clamp">,
2752 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_clamp">;
2755 def int_nvvm_sust_b_2d_array_i8_clamp
2756 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2757 llvm_i32_ty, llvm_i16_ty], [],
2758 "llvm.nvvm.sust.b.2d.array.i8.clamp">,
2759 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_clamp">;
2760 def int_nvvm_sust_b_2d_array_i16_clamp
2761 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2762 llvm_i32_ty, llvm_i16_ty], [],
2763 "llvm.nvvm.sust.b.2d.array.i16.clamp">,
2764 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_clamp">;
2765 def int_nvvm_sust_b_2d_array_i32_clamp
2766 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2767 llvm_i32_ty, llvm_i32_ty], [],
2768 "llvm.nvvm.sust.b.2d.array.i32.clamp">,
2769 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_clamp">;
2770 def int_nvvm_sust_b_2d_array_i64_clamp
2771 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2772 llvm_i32_ty, llvm_i64_ty], [],
2773 "llvm.nvvm.sust.b.2d.array.i64.clamp">,
2774 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_clamp">;
2775 def int_nvvm_sust_b_2d_array_v2i8_clamp
2776 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2777 llvm_i16_ty, llvm_i16_ty], [],
2778 "llvm.nvvm.sust.b.2d.array.v2i8.clamp">,
2779 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_clamp">;
2780 def int_nvvm_sust_b_2d_array_v2i16_clamp
2781 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2782 llvm_i16_ty, llvm_i16_ty], [],
2783 "llvm.nvvm.sust.b.2d.array.v2i16.clamp">,
2784 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_clamp">;
2785 def int_nvvm_sust_b_2d_array_v2i32_clamp
2786 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2787 llvm_i32_ty, llvm_i32_ty], [],
2788 "llvm.nvvm.sust.b.2d.array.v2i32.clamp">,
2789 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_clamp">;
2790 def int_nvvm_sust_b_2d_array_v2i64_clamp
2791 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2792 llvm_i64_ty, llvm_i64_ty], [],
2793 "llvm.nvvm.sust.b.2d.array.v2i64.clamp">,
2794 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_clamp">;
2795 def int_nvvm_sust_b_2d_array_v4i8_clamp
2796 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2797 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2798 "llvm.nvvm.sust.b.2d.array.v4i8.clamp">,
2799 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_clamp">;
2800 def int_nvvm_sust_b_2d_array_v4i16_clamp
2801 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2802 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2803 "llvm.nvvm.sust.b.2d.array.v4i16.clamp">,
2804 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_clamp">;
2805 def int_nvvm_sust_b_2d_array_v4i32_clamp
2806 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2807 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2808 "llvm.nvvm.sust.b.2d.array.v4i32.clamp">,
2809 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_clamp">;
2812 def int_nvvm_sust_b_3d_i8_clamp
2813 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2814 llvm_i32_ty, llvm_i16_ty], [],
2815 "llvm.nvvm.sust.b.3d.i8.clamp">,
2816 GCCBuiltin<"__nvvm_sust_b_3d_i8_clamp">;
2817 def int_nvvm_sust_b_3d_i16_clamp
2818 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2819 llvm_i32_ty, llvm_i16_ty], [],
2820 "llvm.nvvm.sust.b.3d.i16.clamp">,
2821 GCCBuiltin<"__nvvm_sust_b_3d_i16_clamp">;
2822 def int_nvvm_sust_b_3d_i32_clamp
2823 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2824 llvm_i32_ty, llvm_i32_ty], [],
2825 "llvm.nvvm.sust.b.3d.i32.clamp">,
2826 GCCBuiltin<"__nvvm_sust_b_3d_i32_clamp">;
2827 def int_nvvm_sust_b_3d_i64_clamp
2828 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2829 llvm_i32_ty, llvm_i64_ty], [],
2830 "llvm.nvvm.sust.b.3d.i64.clamp">,
2831 GCCBuiltin<"__nvvm_sust_b_3d_i64_clamp">;
2832 def int_nvvm_sust_b_3d_v2i8_clamp
2833 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2834 llvm_i16_ty, llvm_i16_ty], [],
2835 "llvm.nvvm.sust.b.3d.v2i8.clamp">,
2836 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_clamp">;
2837 def int_nvvm_sust_b_3d_v2i16_clamp
2838 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2839 llvm_i16_ty, llvm_i16_ty], [],
2840 "llvm.nvvm.sust.b.3d.v2i16.clamp">,
2841 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_clamp">;
2842 def int_nvvm_sust_b_3d_v2i32_clamp
2843 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2844 llvm_i32_ty, llvm_i32_ty], [],
2845 "llvm.nvvm.sust.b.3d.v2i32.clamp">,
2846 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_clamp">;
2847 def int_nvvm_sust_b_3d_v2i64_clamp
2848 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2849 llvm_i64_ty, llvm_i64_ty], [],
2850 "llvm.nvvm.sust.b.3d.v2i64.clamp">,
2851 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_clamp">;
2852 def int_nvvm_sust_b_3d_v4i8_clamp
2853 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2854 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2855 "llvm.nvvm.sust.b.3d.v4i8.clamp">,
2856 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_clamp">;
2857 def int_nvvm_sust_b_3d_v4i16_clamp
2858 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2859 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2860 "llvm.nvvm.sust.b.3d.v4i16.clamp">,
2861 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_clamp">;
2862 def int_nvvm_sust_b_3d_v4i32_clamp
2863 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2864 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2865 "llvm.nvvm.sust.b.3d.v4i32.clamp">,
2866 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_clamp">;
2870 def int_nvvm_sust_b_1d_i8_trap
2871 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2872 "llvm.nvvm.sust.b.1d.i8.trap">,
2873 GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">;
2874 def int_nvvm_sust_b_1d_i16_trap
2875 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2876 "llvm.nvvm.sust.b.1d.i16.trap">,
2877 GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">;
2878 def int_nvvm_sust_b_1d_i32_trap
2879 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2880 "llvm.nvvm.sust.b.1d.i32.trap">,
2881 GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">;
2882 def int_nvvm_sust_b_1d_i64_trap
2883 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
2884 "llvm.nvvm.sust.b.1d.i64.trap">,
2885 GCCBuiltin<"__nvvm_sust_b_1d_i64_trap">;
2886 def int_nvvm_sust_b_1d_v2i8_trap
2887 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2888 "llvm.nvvm.sust.b.1d.v2i8.trap">,
2889 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">;
2890 def int_nvvm_sust_b_1d_v2i16_trap
2891 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2892 "llvm.nvvm.sust.b.1d.v2i16.trap">,
2893 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">;
2894 def int_nvvm_sust_b_1d_v2i32_trap
2895 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2896 "llvm.nvvm.sust.b.1d.v2i32.trap">,
2897 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">;
2898 def int_nvvm_sust_b_1d_v2i64_trap
2899 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
2900 "llvm.nvvm.sust.b.1d.v2i64.trap">,
2901 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_trap">;
2902 def int_nvvm_sust_b_1d_v4i8_trap
2903 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2904 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2905 "llvm.nvvm.sust.b.1d.v4i8.trap">,
2906 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">;
2907 def int_nvvm_sust_b_1d_v4i16_trap
2908 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2909 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2910 "llvm.nvvm.sust.b.1d.v4i16.trap">,
2911 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">;
2912 def int_nvvm_sust_b_1d_v4i32_trap
2913 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2914 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2915 "llvm.nvvm.sust.b.1d.v4i32.trap">,
2916 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">;
2919 def int_nvvm_sust_b_1d_array_i8_trap
2920 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2921 "llvm.nvvm.sust.b.1d.array.i8.trap">,
2922 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">;
2923 def int_nvvm_sust_b_1d_array_i16_trap
2924 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2925 "llvm.nvvm.sust.b.1d.array.i16.trap">,
2926 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">;
2927 def int_nvvm_sust_b_1d_array_i32_trap
2928 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2929 "llvm.nvvm.sust.b.1d.array.i32.trap">,
2930 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">;
2931 def int_nvvm_sust_b_1d_array_i64_trap
2932 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2933 "llvm.nvvm.sust.b.1d.array.i64.trap">,
2934 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_trap">;
2935 def int_nvvm_sust_b_1d_array_v2i8_trap
2936 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2937 llvm_i16_ty, llvm_i16_ty], [],
2938 "llvm.nvvm.sust.b.1d.array.v2i8.trap">,
2939 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">;
2940 def int_nvvm_sust_b_1d_array_v2i16_trap
2941 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2942 llvm_i16_ty, llvm_i16_ty], [],
2943 "llvm.nvvm.sust.b.1d.array.v2i16.trap">,
2944 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">;
2945 def int_nvvm_sust_b_1d_array_v2i32_trap
2946 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2947 llvm_i32_ty, llvm_i32_ty], [],
2948 "llvm.nvvm.sust.b.1d.array.v2i32.trap">,
2949 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">;
2950 def int_nvvm_sust_b_1d_array_v2i64_trap
2951 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2952 llvm_i64_ty, llvm_i64_ty], [],
2953 "llvm.nvvm.sust.b.1d.array.v2i64.trap">,
2954 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_trap">;
2955 def int_nvvm_sust_b_1d_array_v4i8_trap
2956 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2957 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2958 "llvm.nvvm.sust.b.1d.array.v4i8.trap">,
2959 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">;
2960 def int_nvvm_sust_b_1d_array_v4i16_trap
2961 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2962 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2963 "llvm.nvvm.sust.b.1d.array.v4i16.trap">,
2964 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">;
2965 def int_nvvm_sust_b_1d_array_v4i32_trap
2966 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2967 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2968 "llvm.nvvm.sust.b.1d.array.v4i32.trap">,
2969 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">;
2972 def int_nvvm_sust_b_2d_i8_trap
2973 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2974 "llvm.nvvm.sust.b.2d.i8.trap">,
2975 GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">;
2976 def int_nvvm_sust_b_2d_i16_trap
2977 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2978 "llvm.nvvm.sust.b.2d.i16.trap">,
2979 GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">;
2980 def int_nvvm_sust_b_2d_i32_trap
2981 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2982 "llvm.nvvm.sust.b.2d.i32.trap">,
2983 GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">;
2984 def int_nvvm_sust_b_2d_i64_trap
2985 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2986 "llvm.nvvm.sust.b.2d.i64.trap">,
2987 GCCBuiltin<"__nvvm_sust_b_2d_i64_trap">;
2988 def int_nvvm_sust_b_2d_v2i8_trap
2989 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2990 llvm_i16_ty, llvm_i16_ty], [],
2991 "llvm.nvvm.sust.b.2d.v2i8.trap">,
2992 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">;
2993 def int_nvvm_sust_b_2d_v2i16_trap
2994 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2995 llvm_i16_ty, llvm_i16_ty], [],
2996 "llvm.nvvm.sust.b.2d.v2i16.trap">,
2997 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">;
2998 def int_nvvm_sust_b_2d_v2i32_trap
2999 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3000 llvm_i32_ty, llvm_i32_ty], [],
3001 "llvm.nvvm.sust.b.2d.v2i32.trap">,
3002 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">;
3003 def int_nvvm_sust_b_2d_v2i64_trap
3004 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3005 llvm_i64_ty, llvm_i64_ty], [],
3006 "llvm.nvvm.sust.b.2d.v2i64.trap">,
3007 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_trap">;
3008 def int_nvvm_sust_b_2d_v4i8_trap
3009 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3010 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3011 "llvm.nvvm.sust.b.2d.v4i8.trap">,
3012 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">;
3013 def int_nvvm_sust_b_2d_v4i16_trap
3014 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3015 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3016 "llvm.nvvm.sust.b.2d.v4i16.trap">,
3017 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">;
3018 def int_nvvm_sust_b_2d_v4i32_trap
3019 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3020 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3021 "llvm.nvvm.sust.b.2d.v4i32.trap">,
3022 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">;
3025 def int_nvvm_sust_b_2d_array_i8_trap
3026 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3027 llvm_i32_ty, llvm_i16_ty], [],
3028 "llvm.nvvm.sust.b.2d.array.i8.trap">,
3029 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">;
3030 def int_nvvm_sust_b_2d_array_i16_trap
3031 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3032 llvm_i32_ty, llvm_i16_ty], [],
3033 "llvm.nvvm.sust.b.2d.array.i16.trap">,
3034 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">;
3035 def int_nvvm_sust_b_2d_array_i32_trap
3036 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3037 llvm_i32_ty, llvm_i32_ty], [],
3038 "llvm.nvvm.sust.b.2d.array.i32.trap">,
3039 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">;
3040 def int_nvvm_sust_b_2d_array_i64_trap
3041 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3042 llvm_i32_ty, llvm_i64_ty], [],
3043 "llvm.nvvm.sust.b.2d.array.i64.trap">,
3044 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_trap">;
3045 def int_nvvm_sust_b_2d_array_v2i8_trap
3046 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3047 llvm_i16_ty, llvm_i16_ty], [],
3048 "llvm.nvvm.sust.b.2d.array.v2i8.trap">,
3049 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">;
3050 def int_nvvm_sust_b_2d_array_v2i16_trap
3051 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3052 llvm_i16_ty, llvm_i16_ty], [],
3053 "llvm.nvvm.sust.b.2d.array.v2i16.trap">,
3054 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">;
3055 def int_nvvm_sust_b_2d_array_v2i32_trap
3056 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3057 llvm_i32_ty, llvm_i32_ty], [],
3058 "llvm.nvvm.sust.b.2d.array.v2i32.trap">,
3059 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">;
3060 def int_nvvm_sust_b_2d_array_v2i64_trap
3061 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3062 llvm_i64_ty, llvm_i64_ty], [],
3063 "llvm.nvvm.sust.b.2d.array.v2i64.trap">,
3064 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_trap">;
3065 def int_nvvm_sust_b_2d_array_v4i8_trap
3066 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3067 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3068 "llvm.nvvm.sust.b.2d.array.v4i8.trap">,
3069 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">;
3070 def int_nvvm_sust_b_2d_array_v4i16_trap
3071 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3072 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3073 "llvm.nvvm.sust.b.2d.array.v4i16.trap">,
3074 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">;
3075 def int_nvvm_sust_b_2d_array_v4i32_trap
3076 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3077 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3078 "llvm.nvvm.sust.b.2d.array.v4i32.trap">,
3079 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">;
3082 def int_nvvm_sust_b_3d_i8_trap
3083 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3084 llvm_i32_ty, llvm_i16_ty], [],
3085 "llvm.nvvm.sust.b.3d.i8.trap">,
3086 GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">;
3087 def int_nvvm_sust_b_3d_i16_trap
3088 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3089 llvm_i32_ty, llvm_i16_ty], [],
3090 "llvm.nvvm.sust.b.3d.i16.trap">,
3091 GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">;
3092 def int_nvvm_sust_b_3d_i32_trap
3093 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3094 llvm_i32_ty, llvm_i32_ty], [],
3095 "llvm.nvvm.sust.b.3d.i32.trap">,
3096 GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">;
3097 def int_nvvm_sust_b_3d_i64_trap
3098 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3099 llvm_i32_ty, llvm_i64_ty], [],
3100 "llvm.nvvm.sust.b.3d.i64.trap">,
3101 GCCBuiltin<"__nvvm_sust_b_3d_i64_trap">;
3102 def int_nvvm_sust_b_3d_v2i8_trap
3103 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3104 llvm_i16_ty, llvm_i16_ty], [],
3105 "llvm.nvvm.sust.b.3d.v2i8.trap">,
3106 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">;
3107 def int_nvvm_sust_b_3d_v2i16_trap
3108 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3109 llvm_i16_ty, llvm_i16_ty], [],
3110 "llvm.nvvm.sust.b.3d.v2i16.trap">,
3111 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">;
3112 def int_nvvm_sust_b_3d_v2i32_trap
3113 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3114 llvm_i32_ty, llvm_i32_ty], [],
3115 "llvm.nvvm.sust.b.3d.v2i32.trap">,
3116 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">;
3117 def int_nvvm_sust_b_3d_v2i64_trap
3118 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3119 llvm_i64_ty, llvm_i64_ty], [],
3120 "llvm.nvvm.sust.b.3d.v2i64.trap">,
3121 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_trap">;
3122 def int_nvvm_sust_b_3d_v4i8_trap
3123 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3124 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3125 "llvm.nvvm.sust.b.3d.v4i8.trap">,
3126 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">;
3127 def int_nvvm_sust_b_3d_v4i16_trap
3128 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3129 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3130 "llvm.nvvm.sust.b.3d.v4i16.trap">,
3131 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">;
3132 def int_nvvm_sust_b_3d_v4i32_trap
3133 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3134 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3135 "llvm.nvvm.sust.b.3d.v4i32.trap">,
3136 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">;
3140 def int_nvvm_sust_b_1d_i8_zero
3141 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3142 "llvm.nvvm.sust.b.1d.i8.zero">,
3143 GCCBuiltin<"__nvvm_sust_b_1d_i8_zero">;
3144 def int_nvvm_sust_b_1d_i16_zero
3145 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3146 "llvm.nvvm.sust.b.1d.i16.zero">,
3147 GCCBuiltin<"__nvvm_sust_b_1d_i16_zero">;
3148 def int_nvvm_sust_b_1d_i32_zero
3149 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
3150 "llvm.nvvm.sust.b.1d.i32.zero">,
3151 GCCBuiltin<"__nvvm_sust_b_1d_i32_zero">;
3152 def int_nvvm_sust_b_1d_i64_zero
3153 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
3154 "llvm.nvvm.sust.b.1d.i64.zero">,
3155 GCCBuiltin<"__nvvm_sust_b_1d_i64_zero">;
3156 def int_nvvm_sust_b_1d_v2i8_zero
3157 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3158 "llvm.nvvm.sust.b.1d.v2i8.zero">,
3159 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_zero">;
3160 def int_nvvm_sust_b_1d_v2i16_zero
3161 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3162 "llvm.nvvm.sust.b.1d.v2i16.zero">,
3163 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_zero">;
3164 def int_nvvm_sust_b_1d_v2i32_zero
3165 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3166 "llvm.nvvm.sust.b.1d.v2i32.zero">,
3167 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_zero">;
3168 def int_nvvm_sust_b_1d_v2i64_zero
3169 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
3170 "llvm.nvvm.sust.b.1d.v2i64.zero">,
3171 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_zero">;
3172 def int_nvvm_sust_b_1d_v4i8_zero
3173 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3174 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3175 "llvm.nvvm.sust.b.1d.v4i8.zero">,
3176 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_zero">;
3177 def int_nvvm_sust_b_1d_v4i16_zero
3178 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3179 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3180 "llvm.nvvm.sust.b.1d.v4i16.zero">,
3181 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_zero">;
3182 def int_nvvm_sust_b_1d_v4i32_zero
3183 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3184 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3185 "llvm.nvvm.sust.b.1d.v4i32.zero">,
3186 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_zero">;
3189 def int_nvvm_sust_b_1d_array_i8_zero
3190 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3191 "llvm.nvvm.sust.b.1d.array.i8.zero">,
3192 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_zero">;
3193 def int_nvvm_sust_b_1d_array_i16_zero
3194 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3195 "llvm.nvvm.sust.b.1d.array.i16.zero">,
3196 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_zero">;
3197 def int_nvvm_sust_b_1d_array_i32_zero
3198 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3199 "llvm.nvvm.sust.b.1d.array.i32.zero">,
3200 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_zero">;
3201 def int_nvvm_sust_b_1d_array_i64_zero
3202 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
3203 "llvm.nvvm.sust.b.1d.array.i64.zero">,
3204 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_zero">;
3205 def int_nvvm_sust_b_1d_array_v2i8_zero
3206 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3207 llvm_i16_ty, llvm_i16_ty], [],
3208 "llvm.nvvm.sust.b.1d.array.v2i8.zero">,
3209 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_zero">;
3210 def int_nvvm_sust_b_1d_array_v2i16_zero
3211 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3212 llvm_i16_ty, llvm_i16_ty], [],
3213 "llvm.nvvm.sust.b.1d.array.v2i16.zero">,
3214 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_zero">;
3215 def int_nvvm_sust_b_1d_array_v2i32_zero
3216 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3217 llvm_i32_ty, llvm_i32_ty], [],
3218 "llvm.nvvm.sust.b.1d.array.v2i32.zero">,
3219 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_zero">;
3220 def int_nvvm_sust_b_1d_array_v2i64_zero
3221 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3222 llvm_i64_ty, llvm_i64_ty], [],
3223 "llvm.nvvm.sust.b.1d.array.v2i64.zero">,
3224 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_zero">;
3225 def int_nvvm_sust_b_1d_array_v4i8_zero
3226 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3227 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3228 "llvm.nvvm.sust.b.1d.array.v4i8.zero">,
3229 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_zero">;
3230 def int_nvvm_sust_b_1d_array_v4i16_zero
3231 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3232 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3233 "llvm.nvvm.sust.b.1d.array.v4i16.zero">,
3234 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_zero">;
3235 def int_nvvm_sust_b_1d_array_v4i32_zero
3236 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3237 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3238 "llvm.nvvm.sust.b.1d.array.v4i32.zero">,
3239 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_zero">;
3242 def int_nvvm_sust_b_2d_i8_zero
3243 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3244 "llvm.nvvm.sust.b.2d.i8.zero">,
3245 GCCBuiltin<"__nvvm_sust_b_2d_i8_zero">;
3246 def int_nvvm_sust_b_2d_i16_zero
3247 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3248 "llvm.nvvm.sust.b.2d.i16.zero">,
3249 GCCBuiltin<"__nvvm_sust_b_2d_i16_zero">;
3250 def int_nvvm_sust_b_2d_i32_zero
3251 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3252 "llvm.nvvm.sust.b.2d.i32.zero">,
3253 GCCBuiltin<"__nvvm_sust_b_2d_i32_zero">;
3254 def int_nvvm_sust_b_2d_i64_zero
3255 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
3256 "llvm.nvvm.sust.b.2d.i64.zero">,
3257 GCCBuiltin<"__nvvm_sust_b_2d_i64_zero">;
3258 def int_nvvm_sust_b_2d_v2i8_zero
3259 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3260 llvm_i16_ty, llvm_i16_ty], [],
3261 "llvm.nvvm.sust.b.2d.v2i8.zero">,
3262 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_zero">;
3263 def int_nvvm_sust_b_2d_v2i16_zero
3264 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3265 llvm_i16_ty, llvm_i16_ty], [],
3266 "llvm.nvvm.sust.b.2d.v2i16.zero">,
3267 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_zero">;
3268 def int_nvvm_sust_b_2d_v2i32_zero
3269 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3270 llvm_i32_ty, llvm_i32_ty], [],
3271 "llvm.nvvm.sust.b.2d.v2i32.zero">,
3272 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_zero">;
3273 def int_nvvm_sust_b_2d_v2i64_zero
3274 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3275 llvm_i64_ty, llvm_i64_ty], [],
3276 "llvm.nvvm.sust.b.2d.v2i64.zero">,
3277 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_zero">;
3278 def int_nvvm_sust_b_2d_v4i8_zero
3279 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3280 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3281 "llvm.nvvm.sust.b.2d.v4i8.zero">,
3282 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_zero">;
3283 def int_nvvm_sust_b_2d_v4i16_zero
3284 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3285 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3286 "llvm.nvvm.sust.b.2d.v4i16.zero">,
3287 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_zero">;
3288 def int_nvvm_sust_b_2d_v4i32_zero
3289 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3290 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3291 "llvm.nvvm.sust.b.2d.v4i32.zero">,
3292 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_zero">;
3295 def int_nvvm_sust_b_2d_array_i8_zero
3296 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3297 llvm_i32_ty, llvm_i16_ty], [],
3298 "llvm.nvvm.sust.b.2d.array.i8.zero">,
3299 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_zero">;
3300 def int_nvvm_sust_b_2d_array_i16_zero
3301 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3302 llvm_i32_ty, llvm_i16_ty], [],
3303 "llvm.nvvm.sust.b.2d.array.i16.zero">,
3304 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_zero">;
3305 def int_nvvm_sust_b_2d_array_i32_zero
3306 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3307 llvm_i32_ty, llvm_i32_ty], [],
3308 "llvm.nvvm.sust.b.2d.array.i32.zero">,
3309 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_zero">;
3310 def int_nvvm_sust_b_2d_array_i64_zero
3311 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3312 llvm_i32_ty, llvm_i64_ty], [],
3313 "llvm.nvvm.sust.b.2d.array.i64.zero">,
3314 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_zero">;
3315 def int_nvvm_sust_b_2d_array_v2i8_zero
3316 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3317 llvm_i16_ty, llvm_i16_ty], [],
3318 "llvm.nvvm.sust.b.2d.array.v2i8.zero">,
3319 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_zero">;
3320 def int_nvvm_sust_b_2d_array_v2i16_zero
3321 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3322 llvm_i16_ty, llvm_i16_ty], [],
3323 "llvm.nvvm.sust.b.2d.array.v2i16.zero">,
3324 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_zero">;
3325 def int_nvvm_sust_b_2d_array_v2i32_zero
3326 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3327 llvm_i32_ty, llvm_i32_ty], [],
3328 "llvm.nvvm.sust.b.2d.array.v2i32.zero">,
3329 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_zero">;
3330 def int_nvvm_sust_b_2d_array_v2i64_zero
3331 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3332 llvm_i64_ty, llvm_i64_ty], [],
3333 "llvm.nvvm.sust.b.2d.array.v2i64.zero">,
3334 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_zero">;
3335 def int_nvvm_sust_b_2d_array_v4i8_zero
3336 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3337 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3338 "llvm.nvvm.sust.b.2d.array.v4i8.zero">,
3339 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_zero">;
3340 def int_nvvm_sust_b_2d_array_v4i16_zero
3341 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3342 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3343 "llvm.nvvm.sust.b.2d.array.v4i16.zero">,
3344 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_zero">;
3345 def int_nvvm_sust_b_2d_array_v4i32_zero
3346 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3347 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3348 "llvm.nvvm.sust.b.2d.array.v4i32.zero">,
3349 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_zero">;
3352 def int_nvvm_sust_b_3d_i8_zero
3353 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3354 llvm_i32_ty, llvm_i16_ty], [],
3355 "llvm.nvvm.sust.b.3d.i8.zero">,
3356 GCCBuiltin<"__nvvm_sust_b_3d_i8_zero">;
3357 def int_nvvm_sust_b_3d_i16_zero
3358 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3359 llvm_i32_ty, llvm_i16_ty], [],
3360 "llvm.nvvm.sust.b.3d.i16.zero">,
3361 GCCBuiltin<"__nvvm_sust_b_3d_i16_zero">;
3362 def int_nvvm_sust_b_3d_i32_zero
3363 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3364 llvm_i32_ty, llvm_i32_ty], [],
3365 "llvm.nvvm.sust.b.3d.i32.zero">,
3366 GCCBuiltin<"__nvvm_sust_b_3d_i32_zero">;
3367 def int_nvvm_sust_b_3d_i64_zero
3368 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3369 llvm_i32_ty, llvm_i64_ty], [],
3370 "llvm.nvvm.sust.b.3d.i64.zero">,
3371 GCCBuiltin<"__nvvm_sust_b_3d_i64_zero">;
3372 def int_nvvm_sust_b_3d_v2i8_zero
3373 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3374 llvm_i16_ty, llvm_i16_ty], [],
3375 "llvm.nvvm.sust.b.3d.v2i8.zero">,
3376 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_zero">;
3377 def int_nvvm_sust_b_3d_v2i16_zero
3378 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3379 llvm_i16_ty, llvm_i16_ty], [],
3380 "llvm.nvvm.sust.b.3d.v2i16.zero">,
3381 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_zero">;
3382 def int_nvvm_sust_b_3d_v2i32_zero
3383 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3384 llvm_i32_ty, llvm_i32_ty], [],
3385 "llvm.nvvm.sust.b.3d.v2i32.zero">,
3386 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_zero">;
3387 def int_nvvm_sust_b_3d_v2i64_zero
3388 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3389 llvm_i64_ty, llvm_i64_ty], [],
3390 "llvm.nvvm.sust.b.3d.v2i64.zero">,
3391 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_zero">;
3392 def int_nvvm_sust_b_3d_v4i8_zero
3393 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3394 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3395 "llvm.nvvm.sust.b.3d.v4i8.zero">,
3396 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_zero">;
3397 def int_nvvm_sust_b_3d_v4i16_zero
3398 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3399 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3400 "llvm.nvvm.sust.b.3d.v4i16.zero">,
3401 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_zero">;
3402 def int_nvvm_sust_b_3d_v4i32_zero
3403 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3404 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3405 "llvm.nvvm.sust.b.3d.v4i32.zero">,
3406 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_zero">;
3412 def int_nvvm_sust_p_1d_i8_trap
3413 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3414 "llvm.nvvm.sust.p.1d.i8.trap">,
3415 GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">;
3416 def int_nvvm_sust_p_1d_i16_trap
3417 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3418 "llvm.nvvm.sust.p.1d.i16.trap">,
3419 GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">;
3420 def int_nvvm_sust_p_1d_i32_trap
3421 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
3422 "llvm.nvvm.sust.p.1d.i32.trap">,
3423 GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">;
3424 def int_nvvm_sust_p_1d_v2i8_trap
3425 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3426 "llvm.nvvm.sust.p.1d.v2i8.trap">,
3427 GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">;
3428 def int_nvvm_sust_p_1d_v2i16_trap
3429 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3430 "llvm.nvvm.sust.p.1d.v2i16.trap">,
3431 GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">;
3432 def int_nvvm_sust_p_1d_v2i32_trap
3433 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3434 "llvm.nvvm.sust.p.1d.v2i32.trap">,
3435 GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">;
3436 def int_nvvm_sust_p_1d_v4i8_trap
3437 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3438 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3439 "llvm.nvvm.sust.p.1d.v4i8.trap">,
3440 GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">;
3441 def int_nvvm_sust_p_1d_v4i16_trap
3442 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3443 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3444 "llvm.nvvm.sust.p.1d.v4i16.trap">,
3445 GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">;
3446 def int_nvvm_sust_p_1d_v4i32_trap
3447 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3448 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3449 "llvm.nvvm.sust.p.1d.v4i32.trap">,
3450 GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">;
3453 def int_nvvm_sust_p_1d_array_i8_trap
3454 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3455 "llvm.nvvm.sust.p.1d.array.i8.trap">,
3456 GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">;
3457 def int_nvvm_sust_p_1d_array_i16_trap
3458 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3459 "llvm.nvvm.sust.p.1d.array.i16.trap">,
3460 GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">;
3461 def int_nvvm_sust_p_1d_array_i32_trap
3462 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3463 "llvm.nvvm.sust.p.1d.array.i32.trap">,
3464 GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">;
3465 def int_nvvm_sust_p_1d_array_v2i8_trap
3466 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3467 llvm_i16_ty, llvm_i16_ty], [],
3468 "llvm.nvvm.sust.p.1d.array.v2i8.trap">,
3469 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">;
3470 def int_nvvm_sust_p_1d_array_v2i16_trap
3471 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3472 llvm_i16_ty, llvm_i16_ty], [],
3473 "llvm.nvvm.sust.p.1d.array.v2i16.trap">,
3474 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">;
3475 def int_nvvm_sust_p_1d_array_v2i32_trap
3476 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3477 llvm_i32_ty, llvm_i32_ty], [],
3478 "llvm.nvvm.sust.p.1d.array.v2i32.trap">,
3479 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">;
3480 def int_nvvm_sust_p_1d_array_v4i8_trap
3481 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3482 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3483 "llvm.nvvm.sust.p.1d.array.v4i8.trap">,
3484 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">;
3485 def int_nvvm_sust_p_1d_array_v4i16_trap
3486 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3487 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3488 "llvm.nvvm.sust.p.1d.array.v4i16.trap">,
3489 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">;
3490 def int_nvvm_sust_p_1d_array_v4i32_trap
3491 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3492 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3493 "llvm.nvvm.sust.p.1d.array.v4i32.trap">,
3494 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">;
3497 def int_nvvm_sust_p_2d_i8_trap
3498 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3499 "llvm.nvvm.sust.p.2d.i8.trap">,
3500 GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">;
3501 def int_nvvm_sust_p_2d_i16_trap
3502 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3503 "llvm.nvvm.sust.p.2d.i16.trap">,
3504 GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">;
3505 def int_nvvm_sust_p_2d_i32_trap
3506 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3507 "llvm.nvvm.sust.p.2d.i32.trap">,
3508 GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">;
3509 def int_nvvm_sust_p_2d_v2i8_trap
3510 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3511 llvm_i16_ty, llvm_i16_ty], [],
3512 "llvm.nvvm.sust.p.2d.v2i8.trap">,
3513 GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">;
3514 def int_nvvm_sust_p_2d_v2i16_trap
3515 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3516 llvm_i16_ty, llvm_i16_ty], [],
3517 "llvm.nvvm.sust.p.2d.v2i16.trap">,
3518 GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">;
3519 def int_nvvm_sust_p_2d_v2i32_trap
3520 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3521 llvm_i32_ty, llvm_i32_ty], [],
3522 "llvm.nvvm.sust.p.2d.v2i32.trap">,
3523 GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">;
3524 def int_nvvm_sust_p_2d_v4i8_trap
3525 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3526 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3527 "llvm.nvvm.sust.p.2d.v4i8.trap">,
3528 GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">;
3529 def int_nvvm_sust_p_2d_v4i16_trap
3530 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3531 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3532 "llvm.nvvm.sust.p.2d.v4i16.trap">,
3533 GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">;
3534 def int_nvvm_sust_p_2d_v4i32_trap
3535 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3536 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3537 "llvm.nvvm.sust.p.2d.v4i32.trap">,
3538 GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">;
3541 def int_nvvm_sust_p_2d_array_i8_trap
3542 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3543 llvm_i32_ty, llvm_i16_ty], [],
3544 "llvm.nvvm.sust.p.2d.array.i8.trap">,
3545 GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">;
3546 def int_nvvm_sust_p_2d_array_i16_trap
3547 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3548 llvm_i32_ty, llvm_i16_ty], [],
3549 "llvm.nvvm.sust.p.2d.array.i16.trap">,
3550 GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">;
3551 def int_nvvm_sust_p_2d_array_i32_trap
3552 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3553 llvm_i32_ty, llvm_i32_ty], [],
3554 "llvm.nvvm.sust.p.2d.array.i32.trap">,
3555 GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">;
3556 def int_nvvm_sust_p_2d_array_v2i8_trap
3557 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3558 llvm_i16_ty, llvm_i16_ty], [],
3559 "llvm.nvvm.sust.p.2d.array.v2i8.trap">,
3560 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">;
3561 def int_nvvm_sust_p_2d_array_v2i16_trap
3562 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3563 llvm_i16_ty, llvm_i16_ty], [],
3564 "llvm.nvvm.sust.p.2d.array.v2i16.trap">,
3565 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">;
3566 def int_nvvm_sust_p_2d_array_v2i32_trap
3567 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3568 llvm_i32_ty, llvm_i32_ty], [],
3569 "llvm.nvvm.sust.p.2d.array.v2i32.trap">,
3570 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">;
3571 def int_nvvm_sust_p_2d_array_v4i8_trap
3572 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3573 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3574 "llvm.nvvm.sust.p.2d.array.v4i8.trap">,
3575 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">;
3576 def int_nvvm_sust_p_2d_array_v4i16_trap
3577 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3578 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3579 "llvm.nvvm.sust.p.2d.array.v4i16.trap">,
3580 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">;
3581 def int_nvvm_sust_p_2d_array_v4i32_trap
3582 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3583 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3584 "llvm.nvvm.sust.p.2d.array.v4i32.trap">,
3585 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">;
3588 def int_nvvm_sust_p_3d_i8_trap
3589 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3590 llvm_i32_ty, llvm_i16_ty], [],
3591 "llvm.nvvm.sust.p.3d.i8.trap">,
3592 GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">;
3593 def int_nvvm_sust_p_3d_i16_trap
3594 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3595 llvm_i32_ty, llvm_i16_ty], [],
3596 "llvm.nvvm.sust.p.3d.i16.trap">,
3597 GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">;
3598 def int_nvvm_sust_p_3d_i32_trap
3599 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3600 llvm_i32_ty, llvm_i32_ty], [],
3601 "llvm.nvvm.sust.p.3d.i32.trap">,
3602 GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">;
3603 def int_nvvm_sust_p_3d_v2i8_trap
3604 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3605 llvm_i16_ty, llvm_i16_ty], [],
3606 "llvm.nvvm.sust.p.3d.v2i8.trap">,
3607 GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">;
3608 def int_nvvm_sust_p_3d_v2i16_trap
3609 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3610 llvm_i16_ty, llvm_i16_ty], [],
3611 "llvm.nvvm.sust.p.3d.v2i16.trap">,
3612 GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">;
3613 def int_nvvm_sust_p_3d_v2i32_trap
3614 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3615 llvm_i32_ty, llvm_i32_ty], [],
3616 "llvm.nvvm.sust.p.3d.v2i32.trap">,
3617 GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">;
3618 def int_nvvm_sust_p_3d_v4i8_trap
3619 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3620 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3621 "llvm.nvvm.sust.p.3d.v4i8.trap">,
3622 GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">;
3623 def int_nvvm_sust_p_3d_v4i16_trap
3624 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3625 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3626 "llvm.nvvm.sust.p.3d.v4i16.trap">,
3627 GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">;
3628 def int_nvvm_sust_p_3d_v4i32_trap
3629 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3630 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3631 "llvm.nvvm.sust.p.3d.v4i32.trap">,
3632 GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">;
3635 def int_nvvm_rotate_b32
3636 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
3637 [IntrNoMem], "llvm.nvvm.rotate.b32">,
3638 GCCBuiltin<"__nvvm_rotate_b32">;
3640 def int_nvvm_rotate_b64
3641 :Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
3642 [IntrNoMem], "llvm.nvvm.rotate.b64">,
3643 GCCBuiltin<"__nvvm_rotate_b64">;
3645 def int_nvvm_rotate_right_b64
3646 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
3647 [IntrNoMem], "llvm.nvvm.rotate.right.b64">,
3648 GCCBuiltin<"__nvvm_rotate_right_b64">;
3650 def int_nvvm_swap_lo_hi_b64
3651 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty],
3652 [IntrNoMem], "llvm.nvvm.swap.lo.hi.b64">,
3653 GCCBuiltin<"__nvvm_swap_lo_hi_b64">;
3656 // Accessing special registers.
3657 multiclass PTXReadSRegIntrinsic_v4i32<string regname> {
3658 // FIXME: Do we need the 128-bit integer type version?
3659 // def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem]>;
3661 // FIXME: Enable this once v4i32 support is enabled in back-end.
3662 // def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>;
3664 def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3665 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_x">;
3666 def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3667 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_y">;
3668 def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3669 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_z">;
3670 def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3671 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_w">;
3674 class PTXReadSRegIntrinsic_r32<string name>
3675 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3676 GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>;
3678 class PTXReadSRegIntrinsic_r64<string name>
3679 : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>,
3680 GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>;
3682 defm int_nvvm_read_ptx_sreg_tid : PTXReadSRegIntrinsic_v4i32<"tid">;
3683 defm int_nvvm_read_ptx_sreg_ntid : PTXReadSRegIntrinsic_v4i32<"ntid">;
3685 def int_nvvm_read_ptx_sreg_laneid : PTXReadSRegIntrinsic_r32<"laneid">;
3686 def int_nvvm_read_ptx_sreg_warpid : PTXReadSRegIntrinsic_r32<"warpid">;
3687 def int_nvvm_read_ptx_sreg_nwarpid : PTXReadSRegIntrinsic_r32<"nwarpid">;
3689 defm int_nvvm_read_ptx_sreg_ctaid : PTXReadSRegIntrinsic_v4i32<"ctaid">;
3690 defm int_nvvm_read_ptx_sreg_nctaid : PTXReadSRegIntrinsic_v4i32<"nctaid">;
3692 def int_nvvm_read_ptx_sreg_smid : PTXReadSRegIntrinsic_r32<"smid">;
3693 def int_nvvm_read_ptx_sreg_nsmid : PTXReadSRegIntrinsic_r32<"nsmid">;
3694 def int_nvvm_read_ptx_sreg_gridid : PTXReadSRegIntrinsic_r32<"gridid">;
3696 def int_nvvm_read_ptx_sreg_lanemask_eq :
3697 PTXReadSRegIntrinsic_r32<"lanemask_eq">;
3698 def int_nvvm_read_ptx_sreg_lanemask_le :
3699 PTXReadSRegIntrinsic_r32<"lanemask_le">;
3700 def int_nvvm_read_ptx_sreg_lanemask_lt :
3701 PTXReadSRegIntrinsic_r32<"lanemask_lt">;
3702 def int_nvvm_read_ptx_sreg_lanemask_ge :
3703 PTXReadSRegIntrinsic_r32<"lanemask_ge">;
3704 def int_nvvm_read_ptx_sreg_lanemask_gt :
3705 PTXReadSRegIntrinsic_r32<"lanemask_gt">;
3707 def int_nvvm_read_ptx_sreg_clock : PTXReadSRegIntrinsic_r32<"clock">;
3708 def int_nvvm_read_ptx_sreg_clock64 : PTXReadSRegIntrinsic_r64<"clock64">;
3710 def int_nvvm_read_ptx_sreg_pm0 : PTXReadSRegIntrinsic_r32<"pm0">;
3711 def int_nvvm_read_ptx_sreg_pm1 : PTXReadSRegIntrinsic_r32<"pm1">;
3712 def int_nvvm_read_ptx_sreg_pm2 : PTXReadSRegIntrinsic_r32<"pm2">;
3713 def int_nvvm_read_ptx_sreg_pm3 : PTXReadSRegIntrinsic_r32<"pm3">;
3715 def int_nvvm_read_ptx_sreg_warpsize : PTXReadSRegIntrinsic_r32<"warpsize">;
3721 // shfl.down.b32 dest, val, offset, mask_and_clamp
3722 def int_nvvm_shfl_down_i32 :
3723 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3724 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.down.i32">,
3725 GCCBuiltin<"__nvvm_shfl_down_i32">;
3726 def int_nvvm_shfl_down_f32 :
3727 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3728 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.down.f32">,
3729 GCCBuiltin<"__nvvm_shfl_down_f32">;
3731 // shfl.up.b32 dest, val, offset, mask_and_clamp
3732 def int_nvvm_shfl_up_i32 :
3733 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3734 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.up.i32">,
3735 GCCBuiltin<"__nvvm_shfl_up_i32">;
3736 def int_nvvm_shfl_up_f32 :
3737 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3738 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.up.f32">,
3739 GCCBuiltin<"__nvvm_shfl_up_f32">;
3741 // shfl.bfly.b32 dest, val, offset, mask_and_clamp
3742 def int_nvvm_shfl_bfly_i32 :
3743 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3744 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.bfly.i32">,
3745 GCCBuiltin<"__nvvm_shfl_bfly_i32">;
3746 def int_nvvm_shfl_bfly_f32 :
3747 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3748 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.bfly.f32">,
3749 GCCBuiltin<"__nvvm_shfl_bfly_f32">;
3751 // shfl.idx.b32 dest, val, lane, mask_and_clamp
3752 def int_nvvm_shfl_idx_i32 :
3753 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3754 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.idx.i32">,
3755 GCCBuiltin<"__nvvm_shfl_idx_i32">;
3756 def int_nvvm_shfl_idx_f32 :
3757 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3758 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.idx.f32">,
3759 GCCBuiltin<"__nvvm_shfl_idx_f32">;
3761 // Synchronizing shfl variants available in CUDA-9.
3762 // On sm_70 these don't have to be convergent, so we may eventually want to
3763 // implement non-convergent variant of this intrinsic.
3765 // shfl.sync.down.b32 dest, threadmask, val, offset , mask_and_clamp
3766 def int_nvvm_shfl_sync_down_i32 :
3767 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3768 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.down.i32">,
3769 GCCBuiltin<"__nvvm_shfl_sync_down_i32">;
3770 def int_nvvm_shfl_sync_down_f32 :
3771 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3772 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.down.f32">,
3773 GCCBuiltin<"__nvvm_shfl_sync_down_f32">;
3775 // shfl.sync.up.b32 dest, threadmask, val, offset, mask_and_clamp
3776 def int_nvvm_shfl_sync_up_i32 :
3777 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3778 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.up.i32">,
3779 GCCBuiltin<"__nvvm_shfl_sync_up_i32">;
3780 def int_nvvm_shfl_sync_up_f32 :
3781 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3782 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.up.f32">,
3783 GCCBuiltin<"__nvvm_shfl_sync_up_f32">;
3785 // shfl.sync.bfly.b32 dest, threadmask, val, offset, mask_and_clamp
3786 def int_nvvm_shfl_sync_bfly_i32 :
3787 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3788 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.bfly.i32">,
3789 GCCBuiltin<"__nvvm_shfl_sync_bfly_i32">;
3790 def int_nvvm_shfl_sync_bfly_f32 :
3791 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3792 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.bfly.f32">,
3793 GCCBuiltin<"__nvvm_shfl_sync_bfly_f32">;
3795 // shfl.sync.idx.b32 dest, threadmask, val, lane, mask_and_clamp
3796 def int_nvvm_shfl_sync_idx_i32 :
3797 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
3798 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.idx.i32">,
3799 GCCBuiltin<"__nvvm_shfl_sync_idx_i32">;
3800 def int_nvvm_shfl_sync_idx_f32 :
3801 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
3802 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.shfl.sync.idx.f32">,
3803 GCCBuiltin<"__nvvm_shfl_sync_idx_f32">;
3810 def int_nvvm_vote_all :
3811 Intrinsic<[llvm_i1_ty], [llvm_i1_ty],
3812 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.all">,
3813 GCCBuiltin<"__nvvm_vote_all">;
3815 def int_nvvm_vote_any :
3816 Intrinsic<[llvm_i1_ty], [llvm_i1_ty],
3817 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.any">,
3818 GCCBuiltin<"__nvvm_vote_any">;
3820 def int_nvvm_vote_uni :
3821 Intrinsic<[llvm_i1_ty], [llvm_i1_ty],
3822 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.uni">,
3823 GCCBuiltin<"__nvvm_vote_uni">;
3825 def int_nvvm_vote_ballot :
3826 Intrinsic<[llvm_i32_ty], [llvm_i1_ty],
3827 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.ballot">,
3828 GCCBuiltin<"__nvvm_vote_ballot">;
3834 // vote.sync.all mask, pred
3835 def int_nvvm_vote_all_sync :
3836 Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty],
3837 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.all.sync">,
3838 GCCBuiltin<"__nvvm_vote_all_sync">;
3839 // vote.sync.any mask, pred
3840 def int_nvvm_vote_any_sync :
3841 Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty],
3842 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.any.sync">,
3843 GCCBuiltin<"__nvvm_vote_any_sync">;
3844 // vote.sync.uni mask, pred
3845 def int_nvvm_vote_uni_sync :
3846 Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty],
3847 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.uni.sync">,
3848 GCCBuiltin<"__nvvm_vote_uni_sync">;
3849 // vote.sync.ballot mask, pred
3850 def int_nvvm_vote_ballot_sync :
3851 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i1_ty],
3852 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.ballot.sync">,
3853 GCCBuiltin<"__nvvm_vote_ballot_sync">;
3858 // match.any.sync.b32 mask, value
3859 def int_nvvm_match_any_sync_i32 :
3860 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
3861 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.any.sync.i32">,
3862 GCCBuiltin<"__nvvm_match_any_sync_i32">;
3863 // match.any.sync.b64 mask, value
3864 def int_nvvm_match_any_sync_i64 :
3865 Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i64_ty],
3866 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.any.sync.i64">,
3867 GCCBuiltin<"__nvvm_match_any_sync_i64">;
3869 // match.all instruction have two variants -- one returns a single value, another
3870 // returns a pair {value, predicate}. We currently only implement the latter as
3871 // that's the variant exposed by CUDA API.
3873 // match.all.sync.b32p mask, value
3874 def int_nvvm_match_all_sync_i32p :
3875 Intrinsic<[llvm_i32_ty, llvm_i1_ty], [llvm_i32_ty, llvm_i32_ty],
3876 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.all.sync.i32p">;
3877 // match.all.sync.b64p mask, value
3878 def int_nvvm_match_all_sync_i64p :
3879 Intrinsic<[llvm_i64_ty, llvm_i1_ty], [llvm_i32_ty, llvm_i64_ty],
3880 [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.all.sync.i64p">;
3883 // WMMA instructions
3887 class NVVM_WMMA_LD_GALSTS<string Geometry, string Abc, string Layout,
3888 string Type, LLVMType regty, int WithStride>
3889 : Intrinsic<!if(!eq(Abc#Type,"cf16"),
3890 [regty, regty, regty, regty],
3891 [regty, regty, regty, regty,
3892 regty, regty, regty, regty]),
3893 !if(WithStride, [llvm_anyptr_ty, llvm_i32_ty], [llvm_anyptr_ty]),
3894 [IntrReadMem, IntrArgMemOnly, ReadOnly<0>, NoCapture<0>],
3900 # !if(WithStride, ".stride", "")
3903 multiclass NVVM_WMMA_LD_GALT<string Geometry, string Abc, string Layout,
3904 string Type, LLVMType regty> {
3905 def _stride: NVVM_WMMA_LD_GALSTS<Geometry, Abc, Layout, Type, regty, 1>;
3906 def NAME : NVVM_WMMA_LD_GALSTS<Geometry, Abc, Layout, Type, regty, 0>;
3909 multiclass NVVM_WMMA_LD_GAT<string Geometry, string Abc,
3910 string Type, LLVMType regty> {
3911 defm _row: NVVM_WMMA_LD_GALT<Geometry, Abc, "row", Type, regty>;
3912 defm _col: NVVM_WMMA_LD_GALT<Geometry, Abc, "col", Type, regty>;
3915 multiclass NVVM_WMMA_LD_G<string Geometry> {
3916 defm _a_f16: NVVM_WMMA_LD_GAT<Geometry, "a", "f16", llvm_v2f16_ty>;
3917 defm _b_f16: NVVM_WMMA_LD_GAT<Geometry, "b", "f16", llvm_v2f16_ty>;
3918 defm _c_f16: NVVM_WMMA_LD_GAT<Geometry, "c", "f16", llvm_v2f16_ty>;
3919 defm _c_f32: NVVM_WMMA_LD_GAT<Geometry, "c", "f32", llvm_float_ty>;
3922 multiclass NVVM_WMMA_LD {
3923 defm _m32n8k16_load: NVVM_WMMA_LD_G<"m32n8k16">;
3924 defm _m16n16k16_load: NVVM_WMMA_LD_G<"m16n16k16">;
3925 defm _m8n32k16_load: NVVM_WMMA_LD_G<"m8n32k16">;
3928 defm int_nvvm_wmma: NVVM_WMMA_LD;
3931 class NVVM_WMMA_STD_GLSTS<string Geometry, string Layout,
3932 string Type, LLVMType regty, int WithStride,
3933 // This is only used to create a typed empty array we
3934 // need to pass to !if below.
3935 list<LLVMType>Empty=[]>
3939 !if(!eq(Type,"f16"),
3940 [regty, regty, regty, regty],
3941 [regty, regty, regty, regty,
3942 regty, regty, regty, regty]),
3943 !if(WithStride, [llvm_i32_ty], Empty)),
3944 [IntrWriteMem, IntrArgMemOnly, WriteOnly<0>, NoCapture<0>],
3949 # !if(WithStride, ".stride", "")
3952 multiclass NVVM_WMMA_STD_GLT<string Geometry, string Layout,
3953 string Type, LLVMType regty> {
3954 def _stride: NVVM_WMMA_STD_GLSTS<Geometry, Layout, Type, regty, 1>;
3955 def NAME: NVVM_WMMA_STD_GLSTS<Geometry, Layout, Type, regty, 0>;
3958 multiclass NVVM_WMMA_STD_GT<string Geometry, string Type, LLVMType regty> {
3959 defm _row: NVVM_WMMA_STD_GLT<Geometry, "row", Type, regty>;
3960 defm _col: NVVM_WMMA_STD_GLT<Geometry, "col", Type, regty>;
3962 multiclass NVVM_WMMA_STD_G<string Geometry> {
3963 defm _d_f16: NVVM_WMMA_STD_GT<Geometry, "f16", llvm_v2f16_ty>;
3964 defm _d_f32: NVVM_WMMA_STD_GT<Geometry, "f32", llvm_float_ty>;
3967 multiclass NVVM_WMMA_STD {
3968 defm _m32n8k16_store: NVVM_WMMA_STD_G<"m32n8k16">;
3969 defm _m16n16k16_store: NVVM_WMMA_STD_G<"m16n16k16">;
3970 defm _m8n32k16_store: NVVM_WMMA_STD_G<"m8n32k16">;
3973 defm int_nvvm_wmma: NVVM_WMMA_STD;
3976 class NVVM_WMMA_MMA_GABDCS<string Geometry,
3977 string ALayout, string BLayout,
3978 string DType, LLVMType d_regty,
3979 string CType, LLVMType c_regty,
3980 string Satfinite = "">
3981 : Intrinsic<!if(!eq(DType,"f16"),
3982 [d_regty, d_regty, d_regty, d_regty],
3983 [d_regty, d_regty, d_regty, d_regty,
3984 d_regty, d_regty, d_regty, d_regty]),
3987 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty,
3988 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty,
3990 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty,
3991 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty],
3992 !if(!eq(CType,"f16"),
3993 [c_regty, c_regty, c_regty, c_regty],
3994 [c_regty, c_regty, c_regty, c_regty,
3995 c_regty, c_regty, c_regty, c_regty])),
4007 multiclass NVVM_WMMA_MMA_GABDC<string Geometry, string ALayout, string BLayout,
4008 string DType, LLVMType d_regty,
4009 string CType, LLVMType c_regty> {
4010 def NAME : NVVM_WMMA_MMA_GABDCS<Geometry, ALayout, BLayout,
4011 DType, d_regty, CType, c_regty>;
4012 def _satfinite: NVVM_WMMA_MMA_GABDCS<Geometry, ALayout, BLayout,
4013 DType, d_regty, CType, c_regty,".satfinite">;
4016 multiclass NVVM_WMMA_MMA_GABD<string Geometry, string ALayout, string BLayout,
4017 string DType, LLVMType d_regty> {
4018 defm _f16: NVVM_WMMA_MMA_GABDC<Geometry, ALayout, BLayout, DType, d_regty,
4019 "f16", llvm_v2f16_ty>;
4020 defm _f32: NVVM_WMMA_MMA_GABDC<Geometry, ALayout, BLayout, DType, d_regty,
4021 "f32", llvm_float_ty>;
4024 multiclass NVVM_WMMA_MMA_GAB<string Geometry, string ALayout, string BLayout> {
4025 defm _f16: NVVM_WMMA_MMA_GABD<Geometry, ALayout, BLayout, "f16", llvm_v2f16_ty>;
4026 defm _f32: NVVM_WMMA_MMA_GABD<Geometry, ALayout, BLayout, "f32", llvm_float_ty>;
4029 multiclass NVVM_WMMA_MMA_GA<string Geometry, string ALayout> {
4030 defm _col: NVVM_WMMA_MMA_GAB<Geometry, ALayout, "col">;
4031 defm _row: NVVM_WMMA_MMA_GAB<Geometry, ALayout, "row">;
4034 multiclass NVVM_WMMA_MMA_G<string Geometry> {
4035 defm _col: NVVM_WMMA_MMA_GA<Geometry, "col">;
4036 defm _row: NVVM_WMMA_MMA_GA<Geometry, "row">;
4039 multiclass NVVM_WMMA_MMA {
4040 defm _m32n8k16_mma : NVVM_WMMA_MMA_G<"m32n8k16">;
4041 defm _m16n16k16_mma : NVVM_WMMA_MMA_G<"m16n16k16">;
4042 defm _m8n32k16_mma : NVVM_WMMA_MMA_G<"m8n32k16">;
4045 defm int_nvvm_wmma : NVVM_WMMA_MMA;
4047 } // let TargetPrefix = "nvvm"