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 def llvm_anyi64ptr_ty : LLVMAnyPointerType<llvm_i64_ty>; // (space)i64*
20 def int_nvvm_clz_i : GCCBuiltin<"__nvvm_clz_i">,
21 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
22 def int_nvvm_clz_ll : GCCBuiltin<"__nvvm_clz_ll">,
23 Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>;
25 def int_nvvm_popc_i : GCCBuiltin<"__nvvm_popc_i">,
26 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
27 def int_nvvm_popc_ll : GCCBuiltin<"__nvvm_popc_ll">,
28 Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>;
30 def int_nvvm_prmt : GCCBuiltin<"__nvvm_prmt">,
31 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
32 [IntrNoMem, Commutative]>;
38 def int_nvvm_min_i : GCCBuiltin<"__nvvm_min_i">,
39 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
40 [IntrNoMem, Commutative]>;
41 def int_nvvm_min_ui : GCCBuiltin<"__nvvm_min_ui">,
42 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
43 [IntrNoMem, Commutative]>;
45 def int_nvvm_min_ll : GCCBuiltin<"__nvvm_min_ll">,
46 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
47 [IntrNoMem, Commutative]>;
48 def int_nvvm_min_ull : GCCBuiltin<"__nvvm_min_ull">,
49 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
50 [IntrNoMem, Commutative]>;
52 def int_nvvm_max_i : GCCBuiltin<"__nvvm_max_i">,
53 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
54 [IntrNoMem, Commutative]>;
55 def int_nvvm_max_ui : GCCBuiltin<"__nvvm_max_ui">,
56 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
57 [IntrNoMem, Commutative]>;
59 def int_nvvm_max_ll : GCCBuiltin<"__nvvm_max_ll">,
60 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
61 [IntrNoMem, Commutative]>;
62 def int_nvvm_max_ull : GCCBuiltin<"__nvvm_max_ull">,
63 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
64 [IntrNoMem, Commutative]>;
66 def int_nvvm_fmin_f : GCCBuiltin<"__nvvm_fmin_f">,
67 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
68 [IntrNoMem, Commutative]>;
69 def int_nvvm_fmin_ftz_f : GCCBuiltin<"__nvvm_fmin_ftz_f">,
70 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
71 [IntrNoMem, Commutative]>;
73 def int_nvvm_fmax_f : GCCBuiltin<"__nvvm_fmax_f">,
74 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty]
75 , [IntrNoMem, Commutative]>;
76 def int_nvvm_fmax_ftz_f : GCCBuiltin<"__nvvm_fmax_ftz_f">,
77 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
78 [IntrNoMem, Commutative]>;
80 def int_nvvm_fmin_d : GCCBuiltin<"__nvvm_fmin_d">,
81 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
82 [IntrNoMem, Commutative]>;
83 def int_nvvm_fmax_d : GCCBuiltin<"__nvvm_fmax_d">,
84 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
85 [IntrNoMem, Commutative]>;
91 def int_nvvm_mulhi_i : GCCBuiltin<"__nvvm_mulhi_i">,
92 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
93 [IntrNoMem, Commutative]>;
94 def int_nvvm_mulhi_ui : GCCBuiltin<"__nvvm_mulhi_ui">,
95 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
96 [IntrNoMem, Commutative]>;
98 def int_nvvm_mulhi_ll : GCCBuiltin<"__nvvm_mulhi_ll">,
99 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
100 [IntrNoMem, Commutative]>;
101 def int_nvvm_mulhi_ull : GCCBuiltin<"__nvvm_mulhi_ull">,
102 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
103 [IntrNoMem, Commutative]>;
105 def int_nvvm_mul_rn_ftz_f : GCCBuiltin<"__nvvm_mul_rn_ftz_f">,
106 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
107 [IntrNoMem, Commutative]>;
108 def int_nvvm_mul_rn_f : GCCBuiltin<"__nvvm_mul_rn_f">,
109 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
110 [IntrNoMem, Commutative]>;
111 def int_nvvm_mul_rz_ftz_f : GCCBuiltin<"__nvvm_mul_rz_ftz_f">,
112 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
113 [IntrNoMem, Commutative]>;
114 def int_nvvm_mul_rz_f : GCCBuiltin<"__nvvm_mul_rz_f">,
115 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
116 [IntrNoMem, Commutative]>;
117 def int_nvvm_mul_rm_ftz_f : GCCBuiltin<"__nvvm_mul_rm_ftz_f">,
118 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
119 [IntrNoMem, Commutative]>;
120 def int_nvvm_mul_rm_f : GCCBuiltin<"__nvvm_mul_rm_f">,
121 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
122 [IntrNoMem, Commutative]>;
123 def int_nvvm_mul_rp_ftz_f : GCCBuiltin<"__nvvm_mul_rp_ftz_f">,
124 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
125 [IntrNoMem, Commutative]>;
126 def int_nvvm_mul_rp_f : GCCBuiltin<"__nvvm_mul_rp_f">,
127 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
128 [IntrNoMem, Commutative]>;
130 def int_nvvm_mul_rn_d : GCCBuiltin<"__nvvm_mul_rn_d">,
131 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
132 [IntrNoMem, Commutative]>;
133 def int_nvvm_mul_rz_d : GCCBuiltin<"__nvvm_mul_rz_d">,
134 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
135 [IntrNoMem, Commutative]>;
136 def int_nvvm_mul_rm_d : GCCBuiltin<"__nvvm_mul_rm_d">,
137 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
138 [IntrNoMem, Commutative]>;
139 def int_nvvm_mul_rp_d : GCCBuiltin<"__nvvm_mul_rp_d">,
140 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
141 [IntrNoMem, Commutative]>;
143 def int_nvvm_mul24_i : GCCBuiltin<"__nvvm_mul24_i">,
144 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
145 [IntrNoMem, Commutative]>;
146 def int_nvvm_mul24_ui : GCCBuiltin<"__nvvm_mul24_ui">,
147 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
148 [IntrNoMem, Commutative]>;
154 def int_nvvm_div_approx_ftz_f : GCCBuiltin<"__nvvm_div_approx_ftz_f">,
155 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
156 [IntrNoMem, Commutative]>;
157 def int_nvvm_div_approx_f : GCCBuiltin<"__nvvm_div_approx_f">,
158 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
159 [IntrNoMem, Commutative]>;
161 def int_nvvm_div_rn_ftz_f : GCCBuiltin<"__nvvm_div_rn_ftz_f">,
162 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
163 [IntrNoMem, Commutative]>;
164 def int_nvvm_div_rn_f : GCCBuiltin<"__nvvm_div_rn_f">,
165 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
166 [IntrNoMem, Commutative]>;
168 def int_nvvm_div_rz_ftz_f : GCCBuiltin<"__nvvm_div_rz_ftz_f">,
169 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
170 [IntrNoMem, Commutative]>;
171 def int_nvvm_div_rz_f : GCCBuiltin<"__nvvm_div_rz_f">,
172 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
173 [IntrNoMem, Commutative]>;
175 def int_nvvm_div_rm_ftz_f : GCCBuiltin<"__nvvm_div_rm_ftz_f">,
176 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
177 [IntrNoMem, Commutative]>;
178 def int_nvvm_div_rm_f : GCCBuiltin<"__nvvm_div_rm_f">,
179 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
180 [IntrNoMem, Commutative]>;
182 def int_nvvm_div_rp_ftz_f : GCCBuiltin<"__nvvm_div_rp_ftz_f">,
183 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
184 [IntrNoMem, Commutative]>;
185 def int_nvvm_div_rp_f : GCCBuiltin<"__nvvm_div_rp_f">,
186 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
187 [IntrNoMem, Commutative]>;
189 def int_nvvm_div_rn_d : GCCBuiltin<"__nvvm_div_rn_d">,
190 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
191 [IntrNoMem, Commutative]>;
192 def int_nvvm_div_rz_d : GCCBuiltin<"__nvvm_div_rz_d">,
193 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
194 [IntrNoMem, Commutative]>;
195 def int_nvvm_div_rm_d : GCCBuiltin<"__nvvm_div_rm_d">,
196 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
197 [IntrNoMem, Commutative]>;
198 def int_nvvm_div_rp_d : GCCBuiltin<"__nvvm_div_rp_d">,
199 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
200 [IntrNoMem, Commutative]>;
206 def int_nvvm_brev32 : GCCBuiltin<"__nvvm_brev32">,
207 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
208 def int_nvvm_brev64 : GCCBuiltin<"__nvvm_brev64">,
209 Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem]>;
215 def int_nvvm_sad_i : GCCBuiltin<"__nvvm_sad_i">,
216 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
217 [IntrNoMem, Commutative]>;
218 def int_nvvm_sad_ui : GCCBuiltin<"__nvvm_sad_ui">,
219 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
220 [IntrNoMem, Commutative]>;
226 def int_nvvm_floor_ftz_f : GCCBuiltin<"__nvvm_floor_ftz_f">,
227 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
228 def int_nvvm_floor_f : GCCBuiltin<"__nvvm_floor_f">,
229 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
230 def int_nvvm_floor_d : GCCBuiltin<"__nvvm_floor_d">,
231 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
233 def int_nvvm_ceil_ftz_f : GCCBuiltin<"__nvvm_ceil_ftz_f">,
234 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
235 def int_nvvm_ceil_f : GCCBuiltin<"__nvvm_ceil_f">,
236 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
237 def int_nvvm_ceil_d : GCCBuiltin<"__nvvm_ceil_d">,
238 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
244 def int_nvvm_abs_i : GCCBuiltin<"__nvvm_abs_i">,
245 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
246 def int_nvvm_abs_ll : GCCBuiltin<"__nvvm_abs_ll">,
247 Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem]>;
249 def int_nvvm_fabs_ftz_f : GCCBuiltin<"__nvvm_fabs_ftz_f">,
250 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
251 def int_nvvm_fabs_f : GCCBuiltin<"__nvvm_fabs_f">,
252 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
254 def int_nvvm_fabs_d : GCCBuiltin<"__nvvm_fabs_d">,
255 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
261 def int_nvvm_round_ftz_f : GCCBuiltin<"__nvvm_round_ftz_f">,
262 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
263 def int_nvvm_round_f : GCCBuiltin<"__nvvm_round_f">,
264 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
266 def int_nvvm_round_d : GCCBuiltin<"__nvvm_round_d">,
267 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
273 def int_nvvm_trunc_ftz_f : GCCBuiltin<"__nvvm_trunc_ftz_f">,
274 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
275 def int_nvvm_trunc_f : GCCBuiltin<"__nvvm_trunc_f">,
276 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
278 def int_nvvm_trunc_d : GCCBuiltin<"__nvvm_trunc_d">,
279 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
285 def int_nvvm_saturate_ftz_f : GCCBuiltin<"__nvvm_saturate_ftz_f">,
286 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
287 def int_nvvm_saturate_f : GCCBuiltin<"__nvvm_saturate_f">,
288 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
290 def int_nvvm_saturate_d : GCCBuiltin<"__nvvm_saturate_d">,
291 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
297 def int_nvvm_ex2_approx_ftz_f : GCCBuiltin<"__nvvm_ex2_approx_ftz_f">,
298 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
299 def int_nvvm_ex2_approx_f : GCCBuiltin<"__nvvm_ex2_approx_f">,
300 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
301 def int_nvvm_ex2_approx_d : GCCBuiltin<"__nvvm_ex2_approx_d">,
302 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
304 def int_nvvm_lg2_approx_ftz_f : GCCBuiltin<"__nvvm_lg2_approx_ftz_f">,
305 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
306 def int_nvvm_lg2_approx_f : GCCBuiltin<"__nvvm_lg2_approx_f">,
307 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
308 def int_nvvm_lg2_approx_d : GCCBuiltin<"__nvvm_lg2_approx_d">,
309 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
315 def int_nvvm_sin_approx_ftz_f : GCCBuiltin<"__nvvm_sin_approx_ftz_f">,
316 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
317 def int_nvvm_sin_approx_f : GCCBuiltin<"__nvvm_sin_approx_f">,
318 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
320 def int_nvvm_cos_approx_ftz_f : GCCBuiltin<"__nvvm_cos_approx_ftz_f">,
321 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
322 def int_nvvm_cos_approx_f : GCCBuiltin<"__nvvm_cos_approx_f">,
323 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
329 def int_nvvm_fma_rn_ftz_f : GCCBuiltin<"__nvvm_fma_rn_ftz_f">,
330 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
331 [IntrNoMem, Commutative]>;
332 def int_nvvm_fma_rn_f : GCCBuiltin<"__nvvm_fma_rn_f">,
333 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
334 [IntrNoMem, Commutative]>;
335 def int_nvvm_fma_rz_ftz_f : GCCBuiltin<"__nvvm_fma_rz_ftz_f">,
336 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
337 [IntrNoMem, Commutative]>;
338 def int_nvvm_fma_rz_f : GCCBuiltin<"__nvvm_fma_rz_f">,
339 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
340 [IntrNoMem, Commutative]>;
341 def int_nvvm_fma_rm_ftz_f : GCCBuiltin<"__nvvm_fma_rm_ftz_f">,
342 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
343 [IntrNoMem, Commutative]>;
344 def int_nvvm_fma_rm_f : GCCBuiltin<"__nvvm_fma_rm_f">,
345 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
346 [IntrNoMem, Commutative]>;
347 def int_nvvm_fma_rp_ftz_f : GCCBuiltin<"__nvvm_fma_rp_ftz_f">,
348 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
349 [IntrNoMem, Commutative]>;
350 def int_nvvm_fma_rp_f : GCCBuiltin<"__nvvm_fma_rp_f">,
351 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
352 [IntrNoMem, Commutative]>;
354 def int_nvvm_fma_rn_d : GCCBuiltin<"__nvvm_fma_rn_d">,
355 Intrinsic<[llvm_double_ty],
356 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
357 [IntrNoMem, Commutative]>;
358 def int_nvvm_fma_rz_d : GCCBuiltin<"__nvvm_fma_rz_d">,
359 Intrinsic<[llvm_double_ty],
360 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
361 [IntrNoMem, Commutative]>;
362 def int_nvvm_fma_rm_d : GCCBuiltin<"__nvvm_fma_rm_d">,
363 Intrinsic<[llvm_double_ty],
364 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
365 [IntrNoMem, Commutative]>;
366 def int_nvvm_fma_rp_d : GCCBuiltin<"__nvvm_fma_rp_d">,
367 Intrinsic<[llvm_double_ty],
368 [llvm_double_ty, llvm_double_ty, llvm_double_ty],
369 [IntrNoMem, Commutative]>;
375 def int_nvvm_rcp_rn_ftz_f : GCCBuiltin<"__nvvm_rcp_rn_ftz_f">,
376 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
377 def int_nvvm_rcp_rn_f : GCCBuiltin<"__nvvm_rcp_rn_f">,
378 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
379 def int_nvvm_rcp_rz_ftz_f : GCCBuiltin<"__nvvm_rcp_rz_ftz_f">,
380 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
381 def int_nvvm_rcp_rz_f : GCCBuiltin<"__nvvm_rcp_rz_f">,
382 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
383 def int_nvvm_rcp_rm_ftz_f : GCCBuiltin<"__nvvm_rcp_rm_ftz_f">,
384 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
385 def int_nvvm_rcp_rm_f : GCCBuiltin<"__nvvm_rcp_rm_f">,
386 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
387 def int_nvvm_rcp_rp_ftz_f : GCCBuiltin<"__nvvm_rcp_rp_ftz_f">,
388 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
389 def int_nvvm_rcp_rp_f : GCCBuiltin<"__nvvm_rcp_rp_f">,
390 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
392 def int_nvvm_rcp_rn_d : GCCBuiltin<"__nvvm_rcp_rn_d">,
393 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
394 def int_nvvm_rcp_rz_d : GCCBuiltin<"__nvvm_rcp_rz_d">,
395 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
396 def int_nvvm_rcp_rm_d : GCCBuiltin<"__nvvm_rcp_rm_d">,
397 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
398 def int_nvvm_rcp_rp_d : GCCBuiltin<"__nvvm_rcp_rp_d">,
399 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
401 def int_nvvm_rcp_approx_ftz_d : GCCBuiltin<"__nvvm_rcp_approx_ftz_d">,
402 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
408 def int_nvvm_sqrt_f : GCCBuiltin<"__nvvm_sqrt_f">,
409 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
410 def int_nvvm_sqrt_rn_ftz_f : GCCBuiltin<"__nvvm_sqrt_rn_ftz_f">,
411 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
412 def int_nvvm_sqrt_rn_f : GCCBuiltin<"__nvvm_sqrt_rn_f">,
413 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
414 def int_nvvm_sqrt_rz_ftz_f : GCCBuiltin<"__nvvm_sqrt_rz_ftz_f">,
415 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
416 def int_nvvm_sqrt_rz_f : GCCBuiltin<"__nvvm_sqrt_rz_f">,
417 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
418 def int_nvvm_sqrt_rm_ftz_f : GCCBuiltin<"__nvvm_sqrt_rm_ftz_f">,
419 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
420 def int_nvvm_sqrt_rm_f : GCCBuiltin<"__nvvm_sqrt_rm_f">,
421 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
422 def int_nvvm_sqrt_rp_ftz_f : GCCBuiltin<"__nvvm_sqrt_rp_ftz_f">,
423 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
424 def int_nvvm_sqrt_rp_f : GCCBuiltin<"__nvvm_sqrt_rp_f">,
425 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
426 def int_nvvm_sqrt_approx_ftz_f : GCCBuiltin<"__nvvm_sqrt_approx_ftz_f">,
427 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
428 def int_nvvm_sqrt_approx_f : GCCBuiltin<"__nvvm_sqrt_approx_f">,
429 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
431 def int_nvvm_sqrt_rn_d : GCCBuiltin<"__nvvm_sqrt_rn_d">,
432 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
433 def int_nvvm_sqrt_rz_d : GCCBuiltin<"__nvvm_sqrt_rz_d">,
434 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
435 def int_nvvm_sqrt_rm_d : GCCBuiltin<"__nvvm_sqrt_rm_d">,
436 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
437 def int_nvvm_sqrt_rp_d : GCCBuiltin<"__nvvm_sqrt_rp_d">,
438 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
444 def int_nvvm_rsqrt_approx_ftz_f : GCCBuiltin<"__nvvm_rsqrt_approx_ftz_f">,
445 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
446 def int_nvvm_rsqrt_approx_f : GCCBuiltin<"__nvvm_rsqrt_approx_f">,
447 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
448 def int_nvvm_rsqrt_approx_d : GCCBuiltin<"__nvvm_rsqrt_approx_d">,
449 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
455 def int_nvvm_add_rn_ftz_f : GCCBuiltin<"__nvvm_add_rn_ftz_f">,
456 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
457 [IntrNoMem, Commutative]>;
458 def int_nvvm_add_rn_f : GCCBuiltin<"__nvvm_add_rn_f">,
459 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
460 [IntrNoMem, Commutative]>;
461 def int_nvvm_add_rz_ftz_f : GCCBuiltin<"__nvvm_add_rz_ftz_f">,
462 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
463 [IntrNoMem, Commutative]>;
464 def int_nvvm_add_rz_f : GCCBuiltin<"__nvvm_add_rz_f">,
465 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
466 [IntrNoMem, Commutative]>;
467 def int_nvvm_add_rm_ftz_f : GCCBuiltin<"__nvvm_add_rm_ftz_f">,
468 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
469 [IntrNoMem, Commutative]>;
470 def int_nvvm_add_rm_f : GCCBuiltin<"__nvvm_add_rm_f">,
471 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
472 [IntrNoMem, Commutative]>;
473 def int_nvvm_add_rp_ftz_f : GCCBuiltin<"__nvvm_add_rp_ftz_f">,
474 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
475 [IntrNoMem, Commutative]>;
476 def int_nvvm_add_rp_f : GCCBuiltin<"__nvvm_add_rp_f">,
477 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
478 [IntrNoMem, Commutative]>;
480 def int_nvvm_add_rn_d : GCCBuiltin<"__nvvm_add_rn_d">,
481 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
482 [IntrNoMem, Commutative]>;
483 def int_nvvm_add_rz_d : GCCBuiltin<"__nvvm_add_rz_d">,
484 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
485 [IntrNoMem, Commutative]>;
486 def int_nvvm_add_rm_d : GCCBuiltin<"__nvvm_add_rm_d">,
487 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
488 [IntrNoMem, Commutative]>;
489 def int_nvvm_add_rp_d : GCCBuiltin<"__nvvm_add_rp_d">,
490 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
491 [IntrNoMem, Commutative]>;
497 def int_nvvm_d2f_rn_ftz : GCCBuiltin<"__nvvm_d2f_rn_ftz">,
498 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
499 def int_nvvm_d2f_rn : GCCBuiltin<"__nvvm_d2f_rn">,
500 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
501 def int_nvvm_d2f_rz_ftz : GCCBuiltin<"__nvvm_d2f_rz_ftz">,
502 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
503 def int_nvvm_d2f_rz : GCCBuiltin<"__nvvm_d2f_rz">,
504 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
505 def int_nvvm_d2f_rm_ftz : GCCBuiltin<"__nvvm_d2f_rm_ftz">,
506 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
507 def int_nvvm_d2f_rm : GCCBuiltin<"__nvvm_d2f_rm">,
508 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
509 def int_nvvm_d2f_rp_ftz : GCCBuiltin<"__nvvm_d2f_rp_ftz">,
510 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
511 def int_nvvm_d2f_rp : GCCBuiltin<"__nvvm_d2f_rp">,
512 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>;
514 def int_nvvm_d2i_rn : GCCBuiltin<"__nvvm_d2i_rn">,
515 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
516 def int_nvvm_d2i_rz : GCCBuiltin<"__nvvm_d2i_rz">,
517 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
518 def int_nvvm_d2i_rm : GCCBuiltin<"__nvvm_d2i_rm">,
519 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
520 def int_nvvm_d2i_rp : GCCBuiltin<"__nvvm_d2i_rp">,
521 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
523 def int_nvvm_d2ui_rn : GCCBuiltin<"__nvvm_d2ui_rn">,
524 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
525 def int_nvvm_d2ui_rz : GCCBuiltin<"__nvvm_d2ui_rz">,
526 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
527 def int_nvvm_d2ui_rm : GCCBuiltin<"__nvvm_d2ui_rm">,
528 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
529 def int_nvvm_d2ui_rp : GCCBuiltin<"__nvvm_d2ui_rp">,
530 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
532 def int_nvvm_i2d_rn : GCCBuiltin<"__nvvm_i2d_rn">,
533 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
534 def int_nvvm_i2d_rz : GCCBuiltin<"__nvvm_i2d_rz">,
535 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
536 def int_nvvm_i2d_rm : GCCBuiltin<"__nvvm_i2d_rm">,
537 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
538 def int_nvvm_i2d_rp : GCCBuiltin<"__nvvm_i2d_rp">,
539 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
541 def int_nvvm_ui2d_rn : GCCBuiltin<"__nvvm_ui2d_rn">,
542 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
543 def int_nvvm_ui2d_rz : GCCBuiltin<"__nvvm_ui2d_rz">,
544 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
545 def int_nvvm_ui2d_rm : GCCBuiltin<"__nvvm_ui2d_rm">,
546 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
547 def int_nvvm_ui2d_rp : GCCBuiltin<"__nvvm_ui2d_rp">,
548 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>;
550 def int_nvvm_f2i_rn_ftz : GCCBuiltin<"__nvvm_f2i_rn_ftz">,
551 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
552 def int_nvvm_f2i_rn : GCCBuiltin<"__nvvm_f2i_rn">,
553 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
554 def int_nvvm_f2i_rz_ftz : GCCBuiltin<"__nvvm_f2i_rz_ftz">,
555 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
556 def int_nvvm_f2i_rz : GCCBuiltin<"__nvvm_f2i_rz">,
557 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
558 def int_nvvm_f2i_rm_ftz : GCCBuiltin<"__nvvm_f2i_rm_ftz">,
559 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
560 def int_nvvm_f2i_rm : GCCBuiltin<"__nvvm_f2i_rm">,
561 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
562 def int_nvvm_f2i_rp_ftz : GCCBuiltin<"__nvvm_f2i_rp_ftz">,
563 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
564 def int_nvvm_f2i_rp : GCCBuiltin<"__nvvm_f2i_rp">,
565 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
567 def int_nvvm_f2ui_rn_ftz : GCCBuiltin<"__nvvm_f2ui_rn_ftz">,
568 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
569 def int_nvvm_f2ui_rn : GCCBuiltin<"__nvvm_f2ui_rn">,
570 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
571 def int_nvvm_f2ui_rz_ftz : GCCBuiltin<"__nvvm_f2ui_rz_ftz">,
572 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
573 def int_nvvm_f2ui_rz : GCCBuiltin<"__nvvm_f2ui_rz">,
574 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
575 def int_nvvm_f2ui_rm_ftz : GCCBuiltin<"__nvvm_f2ui_rm_ftz">,
576 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
577 def int_nvvm_f2ui_rm : GCCBuiltin<"__nvvm_f2ui_rm">,
578 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
579 def int_nvvm_f2ui_rp_ftz : GCCBuiltin<"__nvvm_f2ui_rp_ftz">,
580 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
581 def int_nvvm_f2ui_rp : GCCBuiltin<"__nvvm_f2ui_rp">,
582 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
584 def int_nvvm_i2f_rn : GCCBuiltin<"__nvvm_i2f_rn">,
585 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
586 def int_nvvm_i2f_rz : GCCBuiltin<"__nvvm_i2f_rz">,
587 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
588 def int_nvvm_i2f_rm : GCCBuiltin<"__nvvm_i2f_rm">,
589 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
590 def int_nvvm_i2f_rp : GCCBuiltin<"__nvvm_i2f_rp">,
591 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
593 def int_nvvm_ui2f_rn : GCCBuiltin<"__nvvm_ui2f_rn">,
594 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
595 def int_nvvm_ui2f_rz : GCCBuiltin<"__nvvm_ui2f_rz">,
596 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
597 def int_nvvm_ui2f_rm : GCCBuiltin<"__nvvm_ui2f_rm">,
598 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
599 def int_nvvm_ui2f_rp : GCCBuiltin<"__nvvm_ui2f_rp">,
600 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
602 def int_nvvm_lohi_i2d : GCCBuiltin<"__nvvm_lohi_i2d">,
603 Intrinsic<[llvm_double_ty], [llvm_i32_ty, llvm_i32_ty],
604 [IntrNoMem, Commutative]>;
606 def int_nvvm_d2i_lo : GCCBuiltin<"__nvvm_d2i_lo">,
607 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
608 def int_nvvm_d2i_hi : GCCBuiltin<"__nvvm_d2i_hi">,
609 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>;
611 def int_nvvm_f2ll_rn_ftz : GCCBuiltin<"__nvvm_f2ll_rn_ftz">,
612 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
613 def int_nvvm_f2ll_rn : GCCBuiltin<"__nvvm_f2ll_rn">,
614 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
615 def int_nvvm_f2ll_rz_ftz : GCCBuiltin<"__nvvm_f2ll_rz_ftz">,
616 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
617 def int_nvvm_f2ll_rz : GCCBuiltin<"__nvvm_f2ll_rz">,
618 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
619 def int_nvvm_f2ll_rm_ftz : GCCBuiltin<"__nvvm_f2ll_rm_ftz">,
620 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
621 def int_nvvm_f2ll_rm : GCCBuiltin<"__nvvm_f2ll_rm">,
622 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
623 def int_nvvm_f2ll_rp_ftz : GCCBuiltin<"__nvvm_f2ll_rp_ftz">,
624 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
625 def int_nvvm_f2ll_rp : GCCBuiltin<"__nvvm_f2ll_rp">,
626 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
628 def int_nvvm_f2ull_rn_ftz : GCCBuiltin<"__nvvm_f2ull_rn_ftz">,
629 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
630 def int_nvvm_f2ull_rn : GCCBuiltin<"__nvvm_f2ull_rn">,
631 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
632 def int_nvvm_f2ull_rz_ftz : GCCBuiltin<"__nvvm_f2ull_rz_ftz">,
633 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
634 def int_nvvm_f2ull_rz : GCCBuiltin<"__nvvm_f2ull_rz">,
635 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
636 def int_nvvm_f2ull_rm_ftz : GCCBuiltin<"__nvvm_f2ull_rm_ftz">,
637 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
638 def int_nvvm_f2ull_rm : GCCBuiltin<"__nvvm_f2ull_rm">,
639 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
640 def int_nvvm_f2ull_rp_ftz : GCCBuiltin<"__nvvm_f2ull_rp_ftz">,
641 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
642 def int_nvvm_f2ull_rp : GCCBuiltin<"__nvvm_f2ull_rp">,
643 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>;
645 def int_nvvm_d2ll_rn : GCCBuiltin<"__nvvm_d2ll_rn">,
646 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
647 def int_nvvm_d2ll_rz : GCCBuiltin<"__nvvm_d2ll_rz">,
648 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
649 def int_nvvm_d2ll_rm : GCCBuiltin<"__nvvm_d2ll_rm">,
650 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
651 def int_nvvm_d2ll_rp : GCCBuiltin<"__nvvm_d2ll_rp">,
652 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
654 def int_nvvm_d2ull_rn : GCCBuiltin<"__nvvm_d2ull_rn">,
655 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
656 def int_nvvm_d2ull_rz : GCCBuiltin<"__nvvm_d2ull_rz">,
657 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
658 def int_nvvm_d2ull_rm : GCCBuiltin<"__nvvm_d2ull_rm">,
659 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
660 def int_nvvm_d2ull_rp : GCCBuiltin<"__nvvm_d2ull_rp">,
661 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
663 def int_nvvm_ll2f_rn : GCCBuiltin<"__nvvm_ll2f_rn">,
664 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
665 def int_nvvm_ll2f_rz : GCCBuiltin<"__nvvm_ll2f_rz">,
666 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
667 def int_nvvm_ll2f_rm : GCCBuiltin<"__nvvm_ll2f_rm">,
668 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
669 def int_nvvm_ll2f_rp : GCCBuiltin<"__nvvm_ll2f_rp">,
670 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
671 def int_nvvm_ull2f_rn : GCCBuiltin<"__nvvm_ull2f_rn">,
672 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
673 def int_nvvm_ull2f_rz : GCCBuiltin<"__nvvm_ull2f_rz">,
674 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
675 def int_nvvm_ull2f_rm : GCCBuiltin<"__nvvm_ull2f_rm">,
676 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
677 def int_nvvm_ull2f_rp : GCCBuiltin<"__nvvm_ull2f_rp">,
678 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>;
680 def int_nvvm_ll2d_rn : GCCBuiltin<"__nvvm_ll2d_rn">,
681 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
682 def int_nvvm_ll2d_rz : GCCBuiltin<"__nvvm_ll2d_rz">,
683 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
684 def int_nvvm_ll2d_rm : GCCBuiltin<"__nvvm_ll2d_rm">,
685 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
686 def int_nvvm_ll2d_rp : GCCBuiltin<"__nvvm_ll2d_rp">,
687 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
688 def int_nvvm_ull2d_rn : GCCBuiltin<"__nvvm_ull2d_rn">,
689 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
690 def int_nvvm_ull2d_rz : GCCBuiltin<"__nvvm_ull2d_rz">,
691 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
692 def int_nvvm_ull2d_rm : GCCBuiltin<"__nvvm_ull2d_rm">,
693 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
694 def int_nvvm_ull2d_rp : GCCBuiltin<"__nvvm_ull2d_rp">,
695 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
697 def int_nvvm_f2h_rn_ftz : GCCBuiltin<"__nvvm_f2h_rn_ftz">,
698 Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
699 def int_nvvm_f2h_rn : GCCBuiltin<"__nvvm_f2h_rn">,
700 Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
702 def int_nvvm_h2f : GCCBuiltin<"__nvvm_h2f">,
703 Intrinsic<[llvm_float_ty], [llvm_i16_ty], [IntrNoMem]>;
709 def int_nvvm_bitcast_f2i : GCCBuiltin<"__nvvm_bitcast_f2i">,
710 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
711 def int_nvvm_bitcast_i2f : GCCBuiltin<"__nvvm_bitcast_i2f">,
712 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
714 def int_nvvm_bitcast_ll2d : GCCBuiltin<"__nvvm_bitcast_ll2d">,
715 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>;
716 def int_nvvm_bitcast_d2ll : GCCBuiltin<"__nvvm_bitcast_d2ll">,
717 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>;
720 // Atomic not available as an llvm intrinsic.
721 def int_nvvm_atomic_load_add_f32 : Intrinsic<[llvm_float_ty],
722 [LLVMAnyPointerType<llvm_float_ty>, llvm_float_ty],
723 [IntrReadWriteArgMem, NoCapture<0>]>;
724 def int_nvvm_atomic_load_inc_32 : Intrinsic<[llvm_i32_ty],
725 [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty],
726 [IntrReadWriteArgMem, NoCapture<0>]>;
727 def int_nvvm_atomic_load_dec_32 : Intrinsic<[llvm_i32_ty],
728 [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty],
729 [IntrReadWriteArgMem, NoCapture<0>]>;
732 def int_cuda_syncthreads : GCCBuiltin<"__syncthreads">,
733 Intrinsic<[], [], [IntrNoDuplicate]>;
734 def int_nvvm_barrier0 : GCCBuiltin<"__nvvm_bar0">,
735 Intrinsic<[], [], [IntrNoDuplicate]>;
736 def int_nvvm_barrier0_popc : GCCBuiltin<"__nvvm_bar0_popc">,
737 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoDuplicate]>;
738 def int_nvvm_barrier0_and : GCCBuiltin<"__nvvm_bar0_and">,
739 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoDuplicate]>;
740 def int_nvvm_barrier0_or : GCCBuiltin<"__nvvm_bar0_or">,
741 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoDuplicate]>;
744 def int_nvvm_membar_cta : GCCBuiltin<"__nvvm_membar_cta">,
745 Intrinsic<[], [], []>;
746 def int_nvvm_membar_gl : GCCBuiltin<"__nvvm_membar_gl">,
747 Intrinsic<[], [], []>;
748 def int_nvvm_membar_sys : GCCBuiltin<"__nvvm_membar_sys">,
749 Intrinsic<[], [], []>;
752 // Accessing special registers
753 def int_nvvm_read_ptx_sreg_tid_x :
754 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
755 GCCBuiltin<"__nvvm_read_ptx_sreg_tid_x">;
756 def int_nvvm_read_ptx_sreg_tid_y :
757 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
758 GCCBuiltin<"__nvvm_read_ptx_sreg_tid_y">;
759 def int_nvvm_read_ptx_sreg_tid_z :
760 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
761 GCCBuiltin<"__nvvm_read_ptx_sreg_tid_z">;
763 def int_nvvm_read_ptx_sreg_ntid_x :
764 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
765 GCCBuiltin<"__nvvm_read_ptx_sreg_ntid_x">;
766 def int_nvvm_read_ptx_sreg_ntid_y :
767 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
768 GCCBuiltin<"__nvvm_read_ptx_sreg_ntid_y">;
769 def int_nvvm_read_ptx_sreg_ntid_z :
770 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
771 GCCBuiltin<"__nvvm_read_ptx_sreg_ntid_z">;
773 def int_nvvm_read_ptx_sreg_ctaid_x :
774 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
775 GCCBuiltin<"__nvvm_read_ptx_sreg_ctaid_x">;
776 def int_nvvm_read_ptx_sreg_ctaid_y :
777 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
778 GCCBuiltin<"__nvvm_read_ptx_sreg_ctaid_y">;
779 def int_nvvm_read_ptx_sreg_ctaid_z :
780 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
781 GCCBuiltin<"__nvvm_read_ptx_sreg_ctaid_z">;
783 def int_nvvm_read_ptx_sreg_nctaid_x :
784 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
785 GCCBuiltin<"__nvvm_read_ptx_sreg_nctaid_x">;
786 def int_nvvm_read_ptx_sreg_nctaid_y :
787 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
788 GCCBuiltin<"__nvvm_read_ptx_sreg_nctaid_y">;
789 def int_nvvm_read_ptx_sreg_nctaid_z :
790 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
791 GCCBuiltin<"__nvvm_read_ptx_sreg_nctaid_z">;
793 def int_nvvm_read_ptx_sreg_warpsize :
794 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
795 GCCBuiltin<"__nvvm_read_ptx_sreg_warpsize">;
798 // Generated within nvvm. Use for ldu on sm_20 or later
799 def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty],
800 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
801 [IntrReadMem, NoCapture<0>],
802 "llvm.nvvm.ldu.global.i">;
803 def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty],
804 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
805 [IntrReadMem, NoCapture<0>],
806 "llvm.nvvm.ldu.global.f">;
807 def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty],
808 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
809 [IntrReadMem, NoCapture<0>],
810 "llvm.nvvm.ldu.global.p">;
812 // Generated within nvvm. Use for ldg on sm_35 or later
813 def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty],
814 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
815 [IntrReadMem, NoCapture<0>],
816 "llvm.nvvm.ldg.global.i">;
817 def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty],
818 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
819 [IntrReadMem, NoCapture<0>],
820 "llvm.nvvm.ldg.global.f">;
821 def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty],
822 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
823 [IntrReadMem, NoCapture<0>],
824 "llvm.nvvm.ldg.global.p">;
826 // Use for generic pointers
827 // - These intrinsics are used to convert address spaces.
828 // - The input pointer and output pointer must have the same type, except for
829 // the address-space. (This restriction is not enforced here as there is
830 // currently no way to describe it).
831 // - This complements the llvm bitcast, which can be used to cast one type
832 // of pointer to another type of pointer, while the address space remains
834 def int_nvvm_ptr_local_to_gen: Intrinsic<[llvm_anyptr_ty],
835 [llvm_anyptr_ty], [IntrNoMem],
836 "llvm.nvvm.ptr.local.to.gen">;
837 def int_nvvm_ptr_shared_to_gen: Intrinsic<[llvm_anyptr_ty],
838 [llvm_anyptr_ty], [IntrNoMem],
839 "llvm.nvvm.ptr.shared.to.gen">;
840 def int_nvvm_ptr_global_to_gen: Intrinsic<[llvm_anyptr_ty],
841 [llvm_anyptr_ty], [IntrNoMem],
842 "llvm.nvvm.ptr.global.to.gen">;
843 def int_nvvm_ptr_constant_to_gen: Intrinsic<[llvm_anyptr_ty],
844 [llvm_anyptr_ty], [IntrNoMem],
845 "llvm.nvvm.ptr.constant.to.gen">;
847 def int_nvvm_ptr_gen_to_global: Intrinsic<[llvm_anyptr_ty],
848 [llvm_anyptr_ty], [IntrNoMem],
849 "llvm.nvvm.ptr.gen.to.global">;
850 def int_nvvm_ptr_gen_to_shared: Intrinsic<[llvm_anyptr_ty],
851 [llvm_anyptr_ty], [IntrNoMem],
852 "llvm.nvvm.ptr.gen.to.shared">;
853 def int_nvvm_ptr_gen_to_local: Intrinsic<[llvm_anyptr_ty],
854 [llvm_anyptr_ty], [IntrNoMem],
855 "llvm.nvvm.ptr.gen.to.local">;
856 def int_nvvm_ptr_gen_to_constant: Intrinsic<[llvm_anyptr_ty],
857 [llvm_anyptr_ty], [IntrNoMem],
858 "llvm.nvvm.ptr.gen.to.constant">;
860 // Used in nvvm internally to help address space opt and ptx code generation
861 // This is for params that are passed to kernel functions by pointer by-val.
862 def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty],
865 "llvm.nvvm.ptr.gen.to.param">;
867 // Move intrinsics, used in nvvm internally
869 def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem],
870 "llvm.nvvm.move.i16">;
871 def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem],
872 "llvm.nvvm.move.i32">;
873 def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem],
874 "llvm.nvvm.move.i64">;
875 def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty],
876 [IntrNoMem], "llvm.nvvm.move.float">;
877 def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty],
878 [IntrNoMem], "llvm.nvvm.move.double">;
879 def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty],
880 [IntrNoMem, NoCapture<0>], "llvm.nvvm.move.ptr">;
883 // For getting the handle from a texture or surface variable
884 def int_nvvm_texsurf_handle
885 : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_anyi64ptr_ty],
886 [IntrNoMem], "llvm.nvvm.texsurf.handle">;
887 def int_nvvm_texsurf_handle_internal
888 : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty],
889 [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">;
892 def int_nvvm_compiler_error :
893 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">;
894 def int_nvvm_compiler_warn :
895 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">;
897 def int_nvvm_reflect :
898 Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.reflect">;
900 // isspacep.{const, global, local, shared}
901 def int_nvvm_isspacep_const
902 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
903 "llvm.nvvm.isspacep.const">,
904 GCCBuiltin<"__nvvm_isspacep_const">;
905 def int_nvvm_isspacep_global
906 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
907 "llvm.nvvm.isspacep.global">,
908 GCCBuiltin<"__nvvm_isspacep_global">;
909 def int_nvvm_isspacep_local
910 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
911 "llvm.nvvm.isspacep.local">,
912 GCCBuiltin<"__nvvm_isspacep_local">;
913 def int_nvvm_isspacep_shared
914 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
915 "llvm.nvvm.isspacep.shared">,
916 GCCBuiltin<"__nvvm_isspacep_shared">;
918 // Environment register read
919 def int_nvvm_read_ptx_sreg_envreg0
920 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
921 "llvm.nvvm.read.ptx.sreg.envreg0">,
922 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">;
923 def int_nvvm_read_ptx_sreg_envreg1
924 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
925 "llvm.nvvm.read.ptx.sreg.envreg1">,
926 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">;
927 def int_nvvm_read_ptx_sreg_envreg2
928 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
929 "llvm.nvvm.read.ptx.sreg.envreg2">,
930 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">;
931 def int_nvvm_read_ptx_sreg_envreg3
932 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
933 "llvm.nvvm.read.ptx.sreg.envreg3">,
934 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">;
935 def int_nvvm_read_ptx_sreg_envreg4
936 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
937 "llvm.nvvm.read.ptx.sreg.envreg4">,
938 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">;
939 def int_nvvm_read_ptx_sreg_envreg5
940 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
941 "llvm.nvvm.read.ptx.sreg.envreg5">,
942 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">;
943 def int_nvvm_read_ptx_sreg_envreg6
944 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
945 "llvm.nvvm.read.ptx.sreg.envreg6">,
946 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">;
947 def int_nvvm_read_ptx_sreg_envreg7
948 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
949 "llvm.nvvm.read.ptx.sreg.envreg7">,
950 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">;
951 def int_nvvm_read_ptx_sreg_envreg8
952 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
953 "llvm.nvvm.read.ptx.sreg.envreg8">,
954 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">;
955 def int_nvvm_read_ptx_sreg_envreg9
956 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
957 "llvm.nvvm.read.ptx.sreg.envreg9">,
958 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">;
959 def int_nvvm_read_ptx_sreg_envreg10
960 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
961 "llvm.nvvm.read.ptx.sreg.envreg10">,
962 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">;
963 def int_nvvm_read_ptx_sreg_envreg11
964 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
965 "llvm.nvvm.read.ptx.sreg.envreg11">,
966 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">;
967 def int_nvvm_read_ptx_sreg_envreg12
968 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
969 "llvm.nvvm.read.ptx.sreg.envreg12">,
970 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">;
971 def int_nvvm_read_ptx_sreg_envreg13
972 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
973 "llvm.nvvm.read.ptx.sreg.envreg13">,
974 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">;
975 def int_nvvm_read_ptx_sreg_envreg14
976 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
977 "llvm.nvvm.read.ptx.sreg.envreg14">,
978 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">;
979 def int_nvvm_read_ptx_sreg_envreg15
980 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
981 "llvm.nvvm.read.ptx.sreg.envreg15">,
982 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">;
983 def int_nvvm_read_ptx_sreg_envreg16
984 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
985 "llvm.nvvm.read.ptx.sreg.envreg16">,
986 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">;
987 def int_nvvm_read_ptx_sreg_envreg17
988 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
989 "llvm.nvvm.read.ptx.sreg.envreg17">,
990 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">;
991 def int_nvvm_read_ptx_sreg_envreg18
992 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
993 "llvm.nvvm.read.ptx.sreg.envreg18">,
994 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">;
995 def int_nvvm_read_ptx_sreg_envreg19
996 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
997 "llvm.nvvm.read.ptx.sreg.envreg19">,
998 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">;
999 def int_nvvm_read_ptx_sreg_envreg20
1000 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1001 "llvm.nvvm.read.ptx.sreg.envreg20">,
1002 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">;
1003 def int_nvvm_read_ptx_sreg_envreg21
1004 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1005 "llvm.nvvm.read.ptx.sreg.envreg21">,
1006 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">;
1007 def int_nvvm_read_ptx_sreg_envreg22
1008 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1009 "llvm.nvvm.read.ptx.sreg.envreg22">,
1010 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">;
1011 def int_nvvm_read_ptx_sreg_envreg23
1012 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1013 "llvm.nvvm.read.ptx.sreg.envreg23">,
1014 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">;
1015 def int_nvvm_read_ptx_sreg_envreg24
1016 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1017 "llvm.nvvm.read.ptx.sreg.envreg24">,
1018 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">;
1019 def int_nvvm_read_ptx_sreg_envreg25
1020 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1021 "llvm.nvvm.read.ptx.sreg.envreg25">,
1022 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">;
1023 def int_nvvm_read_ptx_sreg_envreg26
1024 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1025 "llvm.nvvm.read.ptx.sreg.envreg26">,
1026 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">;
1027 def int_nvvm_read_ptx_sreg_envreg27
1028 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1029 "llvm.nvvm.read.ptx.sreg.envreg27">,
1030 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">;
1031 def int_nvvm_read_ptx_sreg_envreg28
1032 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1033 "llvm.nvvm.read.ptx.sreg.envreg28">,
1034 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">;
1035 def int_nvvm_read_ptx_sreg_envreg29
1036 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1037 "llvm.nvvm.read.ptx.sreg.envreg29">,
1038 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">;
1039 def int_nvvm_read_ptx_sreg_envreg30
1040 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1041 "llvm.nvvm.read.ptx.sreg.envreg30">,
1042 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">;
1043 def int_nvvm_read_ptx_sreg_envreg31
1044 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1045 "llvm.nvvm.read.ptx.sreg.envreg31">,
1046 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">;
1050 // texmode_independent
1051 def int_nvvm_tex_1d_v4f32_s32
1052 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1053 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1054 "llvm.nvvm.tex.1d.v4f32.s32">;
1055 def int_nvvm_tex_1d_v4f32_f32
1056 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1057 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1058 "llvm.nvvm.tex.1d.v4f32.f32">;
1059 def int_nvvm_tex_1d_level_v4f32_f32
1060 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1061 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1062 "llvm.nvvm.tex.1d.level.v4f32.f32">;
1063 def int_nvvm_tex_1d_grad_v4f32_f32
1064 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1065 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1067 "llvm.nvvm.tex.1d.grad.v4f32.f32">;
1068 def int_nvvm_tex_1d_v4s32_s32
1069 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1070 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1071 "llvm.nvvm.tex.1d.v4s32.s32">;
1072 def int_nvvm_tex_1d_v4s32_f32
1073 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1074 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1075 "llvm.nvvm.tex.1d.v4s32.f32">;
1076 def int_nvvm_tex_1d_level_v4s32_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, llvm_float_ty], [],
1079 "llvm.nvvm.tex.1d.level.v4s32.f32">;
1080 def int_nvvm_tex_1d_grad_v4s32_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,
1084 "llvm.nvvm.tex.1d.grad.v4s32.f32">;
1085 def int_nvvm_tex_1d_v4u32_s32
1086 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1087 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1088 "llvm.nvvm.tex.1d.v4u32.s32">;
1089 def int_nvvm_tex_1d_v4u32_f32
1090 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1091 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1092 "llvm.nvvm.tex.1d.v4u32.f32">;
1093 def int_nvvm_tex_1d_level_v4u32_f32
1094 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1095 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1096 "llvm.nvvm.tex.1d.level.v4u32.f32">;
1097 def int_nvvm_tex_1d_grad_v4u32_f32
1098 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1099 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1101 "llvm.nvvm.tex.1d.grad.v4u32.f32">;
1103 def int_nvvm_tex_1d_array_v4f32_s32
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_i32_ty], [],
1106 "llvm.nvvm.tex.1d.array.v4f32.s32">;
1107 def int_nvvm_tex_1d_array_v4f32_f32
1108 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1109 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1110 "llvm.nvvm.tex.1d.array.v4f32.f32">;
1111 def int_nvvm_tex_1d_array_level_v4f32_f32
1112 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1113 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1115 "llvm.nvvm.tex.1d.array.level.v4f32.f32">;
1116 def int_nvvm_tex_1d_array_grad_v4f32_f32
1117 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1118 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1119 llvm_float_ty, llvm_float_ty], [],
1120 "llvm.nvvm.tex.1d.array.grad.v4f32.f32">;
1121 def int_nvvm_tex_1d_array_v4s32_s32
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_i32_ty], [],
1124 "llvm.nvvm.tex.1d.array.v4s32.s32">;
1125 def int_nvvm_tex_1d_array_v4s32_f32
1126 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1127 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1128 "llvm.nvvm.tex.1d.array.v4s32.f32">;
1129 def int_nvvm_tex_1d_array_level_v4s32_f32
1130 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1131 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1133 "llvm.nvvm.tex.1d.array.level.v4s32.f32">;
1134 def int_nvvm_tex_1d_array_grad_v4s32_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,
1137 llvm_float_ty, llvm_float_ty], [],
1138 "llvm.nvvm.tex.1d.array.grad.v4s32.f32">;
1139 def int_nvvm_tex_1d_array_v4u32_s32
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_i32_ty], [],
1142 "llvm.nvvm.tex.1d.array.v4u32.s32">;
1143 def int_nvvm_tex_1d_array_v4u32_f32
1144 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1145 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1146 "llvm.nvvm.tex.1d.array.v4u32.f32">;
1147 def int_nvvm_tex_1d_array_level_v4u32_f32
1148 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1149 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1151 "llvm.nvvm.tex.1d.array.level.v4u32.f32">;
1152 def int_nvvm_tex_1d_array_grad_v4u32_f32
1153 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1154 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1155 llvm_float_ty, llvm_float_ty], [],
1156 "llvm.nvvm.tex.1d.array.grad.v4u32.f32">;
1158 def int_nvvm_tex_2d_v4f32_s32
1159 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1160 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1161 "llvm.nvvm.tex.2d.v4f32.s32">;
1162 def int_nvvm_tex_2d_v4f32_f32
1163 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1164 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1165 "llvm.nvvm.tex.2d.v4f32.f32">;
1166 def int_nvvm_tex_2d_level_v4f32_f32
1167 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1168 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1170 "llvm.nvvm.tex.2d.level.v4f32.f32">;
1171 def int_nvvm_tex_2d_grad_v4f32_f32
1172 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1173 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1174 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1175 "llvm.nvvm.tex.2d.grad.v4f32.f32">;
1176 def int_nvvm_tex_2d_v4s32_s32
1177 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1178 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1179 "llvm.nvvm.tex.2d.v4s32.s32">;
1180 def int_nvvm_tex_2d_v4s32_f32
1181 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1182 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1183 "llvm.nvvm.tex.2d.v4s32.f32">;
1184 def int_nvvm_tex_2d_level_v4s32_f32
1185 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1186 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1188 "llvm.nvvm.tex.2d.level.v4s32.f32">;
1189 def int_nvvm_tex_2d_grad_v4s32_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,
1192 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1193 "llvm.nvvm.tex.2d.grad.v4s32.f32">;
1194 def int_nvvm_tex_2d_v4u32_s32
1195 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1196 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1197 "llvm.nvvm.tex.2d.v4u32.s32">;
1198 def int_nvvm_tex_2d_v4u32_f32
1199 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1200 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1201 "llvm.nvvm.tex.2d.v4u32.f32">;
1202 def int_nvvm_tex_2d_level_v4u32_f32
1203 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1204 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1206 "llvm.nvvm.tex.2d.level.v4u32.f32">;
1207 def int_nvvm_tex_2d_grad_v4u32_f32
1208 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1209 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1210 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1211 "llvm.nvvm.tex.2d.grad.v4u32.f32">;
1213 def int_nvvm_tex_2d_array_v4f32_s32
1214 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1215 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1217 "llvm.nvvm.tex.2d.array.v4f32.s32">;
1218 def int_nvvm_tex_2d_array_v4f32_f32
1219 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1220 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1222 "llvm.nvvm.tex.2d.array.v4f32.f32">;
1223 def int_nvvm_tex_2d_array_level_v4f32_f32
1224 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1225 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1226 llvm_float_ty, llvm_float_ty], [],
1227 "llvm.nvvm.tex.2d.array.level.v4f32.f32">;
1228 def int_nvvm_tex_2d_array_grad_v4f32_f32
1229 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1230 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1231 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1233 "llvm.nvvm.tex.2d.array.grad.v4f32.f32">;
1234 def int_nvvm_tex_2d_array_v4s32_s32
1235 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1236 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1238 "llvm.nvvm.tex.2d.array.v4s32.s32">;
1239 def int_nvvm_tex_2d_array_v4s32_f32
1240 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1241 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1243 "llvm.nvvm.tex.2d.array.v4s32.f32">;
1244 def int_nvvm_tex_2d_array_level_v4s32_f32
1245 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1246 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1247 llvm_float_ty, llvm_float_ty], [],
1248 "llvm.nvvm.tex.2d.array.level.v4s32.f32">;
1249 def int_nvvm_tex_2d_array_grad_v4s32_f32
1250 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1251 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1252 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1254 "llvm.nvvm.tex.2d.array.grad.v4s32.f32">;
1255 def int_nvvm_tex_2d_array_v4u32_s32
1256 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1257 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1259 "llvm.nvvm.tex.2d.array.v4u32.s32">;
1260 def int_nvvm_tex_2d_array_v4u32_f32
1261 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1262 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1264 "llvm.nvvm.tex.2d.array.v4u32.f32">;
1265 def int_nvvm_tex_2d_array_level_v4u32_f32
1266 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1267 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1268 llvm_float_ty, llvm_float_ty], [],
1269 "llvm.nvvm.tex.2d.array.level.v4u32.f32">;
1270 def int_nvvm_tex_2d_array_grad_v4u32_f32
1271 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1272 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1273 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1275 "llvm.nvvm.tex.2d.array.grad.v4u32.f32">;
1277 def int_nvvm_tex_3d_v4f32_s32
1278 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1279 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1280 [], "llvm.nvvm.tex.3d.v4f32.s32">;
1281 def int_nvvm_tex_3d_v4f32_f32
1282 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1283 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1285 "llvm.nvvm.tex.3d.v4f32.f32">;
1286 def int_nvvm_tex_3d_level_v4f32_f32
1287 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1288 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1289 llvm_float_ty, llvm_float_ty], [],
1290 "llvm.nvvm.tex.3d.level.v4f32.f32">;
1291 def int_nvvm_tex_3d_grad_v4f32_f32
1292 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1293 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1294 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1295 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1296 "llvm.nvvm.tex.3d.grad.v4f32.f32">;
1297 def int_nvvm_tex_3d_v4s32_s32
1298 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1299 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1300 [], "llvm.nvvm.tex.3d.v4s32.s32">;
1301 def int_nvvm_tex_3d_v4s32_f32
1302 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1303 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1305 "llvm.nvvm.tex.3d.v4s32.f32">;
1306 def int_nvvm_tex_3d_level_v4s32_f32
1307 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1308 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1309 llvm_float_ty, llvm_float_ty], [],
1310 "llvm.nvvm.tex.3d.level.v4s32.f32">;
1311 def int_nvvm_tex_3d_grad_v4s32_f32
1312 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1313 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1314 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1315 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1316 "llvm.nvvm.tex.3d.grad.v4s32.f32">;
1317 def int_nvvm_tex_3d_v4u32_s32
1318 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1319 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1320 [], "llvm.nvvm.tex.3d.v4u32.s32">;
1321 def int_nvvm_tex_3d_v4u32_f32
1322 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1323 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1325 "llvm.nvvm.tex.3d.v4u32.f32">;
1326 def int_nvvm_tex_3d_level_v4u32_f32
1327 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1328 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1329 llvm_float_ty, llvm_float_ty], [],
1330 "llvm.nvvm.tex.3d.level.v4u32.f32">;
1331 def int_nvvm_tex_3d_grad_v4u32_f32
1332 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1333 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1334 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1335 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1336 "llvm.nvvm.tex.3d.grad.v4u32.f32">;
1338 def int_nvvm_tex_cube_v4f32_f32
1339 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1340 [llvm_i64_ty, llvm_i64_ty,
1341 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1342 "llvm.nvvm.tex.cube.v4f32.f32">;
1343 def int_nvvm_tex_cube_level_v4f32_f32
1344 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1345 [llvm_i64_ty, llvm_i64_ty,
1346 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1347 "llvm.nvvm.tex.cube.level.v4f32.f32">;
1348 def int_nvvm_tex_cube_v4s32_f32
1349 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1350 [llvm_i64_ty, llvm_i64_ty,
1351 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1352 "llvm.nvvm.tex.cube.v4s32.f32">;
1353 def int_nvvm_tex_cube_level_v4s32_f32
1354 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1355 [llvm_i64_ty, llvm_i64_ty,
1356 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1357 "llvm.nvvm.tex.cube.level.v4s32.f32">;
1358 def int_nvvm_tex_cube_v4u32_f32
1359 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1360 [llvm_i64_ty, llvm_i64_ty,
1361 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1362 "llvm.nvvm.tex.cube.v4u32.f32">;
1363 def int_nvvm_tex_cube_level_v4u32_f32
1364 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1365 [llvm_i64_ty, llvm_i64_ty,
1366 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1367 "llvm.nvvm.tex.cube.level.v4u32.f32">;
1369 def int_nvvm_tex_cube_array_v4f32_f32
1370 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1371 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1372 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1373 "llvm.nvvm.tex.cube.array.v4f32.f32">;
1374 def int_nvvm_tex_cube_array_level_v4f32_f32
1375 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1376 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1377 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1378 "llvm.nvvm.tex.cube.array.level.v4f32.f32">;
1379 def int_nvvm_tex_cube_array_v4s32_f32
1380 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1381 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1382 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1383 "llvm.nvvm.tex.cube.array.v4s32.f32">;
1384 def int_nvvm_tex_cube_array_level_v4s32_f32
1385 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1386 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1387 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1388 "llvm.nvvm.tex.cube.array.level.v4s32.f32">;
1389 def int_nvvm_tex_cube_array_v4u32_f32
1390 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1391 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1392 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1393 "llvm.nvvm.tex.cube.array.v4u32.f32">;
1394 def int_nvvm_tex_cube_array_level_v4u32_f32
1395 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1396 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
1397 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1398 "llvm.nvvm.tex.cube.array.level.v4u32.f32">;
1400 def int_nvvm_tld4_r_2d_v4f32_f32
1401 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1402 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1403 "llvm.nvvm.tld4.r.2d.v4f32.f32">;
1404 def int_nvvm_tld4_g_2d_v4f32_f32
1405 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1406 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1407 "llvm.nvvm.tld4.g.2d.v4f32.f32">;
1408 def int_nvvm_tld4_b_2d_v4f32_f32
1409 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1410 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1411 "llvm.nvvm.tld4.b.2d.v4f32.f32">;
1412 def int_nvvm_tld4_a_2d_v4f32_f32
1413 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1414 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1415 "llvm.nvvm.tld4.a.2d.v4f32.f32">;
1416 def int_nvvm_tld4_r_2d_v4s32_f32
1417 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1418 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1419 "llvm.nvvm.tld4.r.2d.v4s32.f32">;
1420 def int_nvvm_tld4_g_2d_v4s32_f32
1421 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1422 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1423 "llvm.nvvm.tld4.g.2d.v4s32.f32">;
1424 def int_nvvm_tld4_b_2d_v4s32_f32
1425 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1426 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1427 "llvm.nvvm.tld4.b.2d.v4s32.f32">;
1428 def int_nvvm_tld4_a_2d_v4s32_f32
1429 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1430 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1431 "llvm.nvvm.tld4.a.2d.v4s32.f32">;
1432 def int_nvvm_tld4_r_2d_v4u32_f32
1433 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1434 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1435 "llvm.nvvm.tld4.r.2d.v4u32.f32">;
1436 def int_nvvm_tld4_g_2d_v4u32_f32
1437 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1438 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1439 "llvm.nvvm.tld4.g.2d.v4u32.f32">;
1440 def int_nvvm_tld4_b_2d_v4u32_f32
1441 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1442 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1443 "llvm.nvvm.tld4.b.2d.v4u32.f32">;
1444 def int_nvvm_tld4_a_2d_v4u32_f32
1445 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1446 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1447 "llvm.nvvm.tld4.a.2d.v4u32.f32">;
1451 def int_nvvm_tex_unified_1d_v4f32_s32
1452 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1453 [llvm_i64_ty, llvm_i32_ty], [],
1454 "llvm.nvvm.tex.unified.1d.v4f32.s32">;
1455 def int_nvvm_tex_unified_1d_v4f32_f32
1456 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1457 [llvm_i64_ty, llvm_float_ty], [],
1458 "llvm.nvvm.tex.unified.1d.v4f32.f32">;
1459 def int_nvvm_tex_unified_1d_level_v4f32_f32
1460 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1461 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1462 "llvm.nvvm.tex.unified.1d.level.v4f32.f32">;
1463 def int_nvvm_tex_unified_1d_grad_v4f32_f32
1464 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1465 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1467 "llvm.nvvm.tex.unified.1d.grad.v4f32.f32">;
1468 def int_nvvm_tex_unified_1d_v4s32_s32
1469 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1470 [llvm_i64_ty, llvm_i32_ty], [],
1471 "llvm.nvvm.tex.unified.1d.v4s32.s32">;
1472 def int_nvvm_tex_unified_1d_v4s32_f32
1473 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1474 [llvm_i64_ty, llvm_float_ty], [],
1475 "llvm.nvvm.tex.unified.1d.v4s32.f32">;
1476 def int_nvvm_tex_unified_1d_level_v4s32_f32
1477 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1478 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1479 "llvm.nvvm.tex.unified.1d.level.v4s32.f32">;
1480 def int_nvvm_tex_unified_1d_grad_v4s32_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,
1484 "llvm.nvvm.tex.unified.1d.grad.v4s32.f32">;
1485 def int_nvvm_tex_unified_1d_v4u32_s32
1486 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1487 [llvm_i64_ty, llvm_i32_ty], [],
1488 "llvm.nvvm.tex.unified.1d.v4u32.s32">;
1489 def int_nvvm_tex_unified_1d_v4u32_f32
1490 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1491 [llvm_i64_ty, llvm_float_ty], [],
1492 "llvm.nvvm.tex.unified.1d.v4u32.f32">;
1493 def int_nvvm_tex_unified_1d_level_v4u32_f32
1494 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1495 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1496 "llvm.nvvm.tex.unified.1d.level.v4u32.f32">;
1497 def int_nvvm_tex_unified_1d_grad_v4u32_f32
1498 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1499 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1501 "llvm.nvvm.tex.unified.1d.grad.v4u32.f32">;
1503 def int_nvvm_tex_unified_1d_array_v4f32_s32
1504 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1505 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1506 "llvm.nvvm.tex.unified.1d.array.v4f32.s32">;
1507 def int_nvvm_tex_unified_1d_array_v4f32_f32
1508 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1509 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1510 "llvm.nvvm.tex.unified.1d.array.v4f32.f32">;
1511 def int_nvvm_tex_unified_1d_array_level_v4f32_f32
1512 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1513 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1515 "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32">;
1516 def int_nvvm_tex_unified_1d_array_grad_v4f32_f32
1517 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1518 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1519 llvm_float_ty, llvm_float_ty], [],
1520 "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32">;
1521 def int_nvvm_tex_unified_1d_array_v4s32_s32
1522 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1523 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1524 "llvm.nvvm.tex.unified.1d.array.v4s32.s32">;
1525 def int_nvvm_tex_unified_1d_array_v4s32_f32
1526 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1527 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1528 "llvm.nvvm.tex.unified.1d.array.v4s32.f32">;
1529 def int_nvvm_tex_unified_1d_array_level_v4s32_f32
1530 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1531 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1533 "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32">;
1534 def int_nvvm_tex_unified_1d_array_grad_v4s32_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,
1537 llvm_float_ty, llvm_float_ty], [],
1538 "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32">;
1539 def int_nvvm_tex_unified_1d_array_v4u32_s32
1540 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1541 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1542 "llvm.nvvm.tex.unified.1d.array.v4u32.s32">;
1543 def int_nvvm_tex_unified_1d_array_v4u32_f32
1544 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1545 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1546 "llvm.nvvm.tex.unified.1d.array.v4u32.f32">;
1547 def int_nvvm_tex_unified_1d_array_level_v4u32_f32
1548 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1549 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1551 "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32">;
1552 def int_nvvm_tex_unified_1d_array_grad_v4u32_f32
1553 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1554 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1555 llvm_float_ty, llvm_float_ty], [],
1556 "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32">;
1558 def int_nvvm_tex_unified_2d_v4f32_s32
1559 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1560 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1561 "llvm.nvvm.tex.unified.2d.v4f32.s32">;
1562 def int_nvvm_tex_unified_2d_v4f32_f32
1563 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1564 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1565 "llvm.nvvm.tex.unified.2d.v4f32.f32">;
1566 def int_nvvm_tex_unified_2d_level_v4f32_f32
1567 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1568 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1570 "llvm.nvvm.tex.unified.2d.level.v4f32.f32">;
1571 def int_nvvm_tex_unified_2d_grad_v4f32_f32
1572 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1573 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1574 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1575 "llvm.nvvm.tex.unified.2d.grad.v4f32.f32">;
1576 def int_nvvm_tex_unified_2d_v4s32_s32
1577 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1578 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1579 "llvm.nvvm.tex.unified.2d.v4s32.s32">;
1580 def int_nvvm_tex_unified_2d_v4s32_f32
1581 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1582 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1583 "llvm.nvvm.tex.unified.2d.v4s32.f32">;
1584 def int_nvvm_tex_unified_2d_level_v4s32_f32
1585 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1586 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1588 "llvm.nvvm.tex.unified.2d.level.v4s32.f32">;
1589 def int_nvvm_tex_unified_2d_grad_v4s32_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,
1592 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1593 "llvm.nvvm.tex.unified.2d.grad.v4s32.f32">;
1594 def int_nvvm_tex_unified_2d_v4u32_s32
1595 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1596 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1597 "llvm.nvvm.tex.unified.2d.v4u32.s32">;
1598 def int_nvvm_tex_unified_2d_v4u32_f32
1599 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1600 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1601 "llvm.nvvm.tex.unified.2d.v4u32.f32">;
1602 def int_nvvm_tex_unified_2d_level_v4u32_f32
1603 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1604 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1606 "llvm.nvvm.tex.unified.2d.level.v4u32.f32">;
1607 def int_nvvm_tex_unified_2d_grad_v4u32_f32
1608 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1609 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1610 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1611 "llvm.nvvm.tex.unified.2d.grad.v4u32.f32">;
1613 def int_nvvm_tex_unified_2d_array_v4f32_s32
1614 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1615 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1617 "llvm.nvvm.tex.unified.2d.array.v4f32.s32">;
1618 def int_nvvm_tex_unified_2d_array_v4f32_f32
1619 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1620 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1622 "llvm.nvvm.tex.unified.2d.array.v4f32.f32">;
1623 def int_nvvm_tex_unified_2d_array_level_v4f32_f32
1624 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1625 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1626 llvm_float_ty, llvm_float_ty], [],
1627 "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32">;
1628 def int_nvvm_tex_unified_2d_array_grad_v4f32_f32
1629 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1630 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1631 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1633 "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32">;
1634 def int_nvvm_tex_unified_2d_array_v4s32_s32
1635 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1636 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1638 "llvm.nvvm.tex.unified.2d.array.v4s32.s32">;
1639 def int_nvvm_tex_unified_2d_array_v4s32_f32
1640 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1641 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1643 "llvm.nvvm.tex.unified.2d.array.v4s32.f32">;
1644 def int_nvvm_tex_unified_2d_array_level_v4s32_f32
1645 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1646 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1647 llvm_float_ty, llvm_float_ty], [],
1648 "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32">;
1649 def int_nvvm_tex_unified_2d_array_grad_v4s32_f32
1650 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1651 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1652 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1654 "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32">;
1655 def int_nvvm_tex_unified_2d_array_v4u32_s32
1656 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1657 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1659 "llvm.nvvm.tex.unified.2d.array.v4u32.s32">;
1660 def int_nvvm_tex_unified_2d_array_v4u32_f32
1661 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1662 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1664 "llvm.nvvm.tex.unified.2d.array.v4u32.f32">;
1665 def int_nvvm_tex_unified_2d_array_level_v4u32_f32
1666 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1667 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1668 llvm_float_ty, llvm_float_ty], [],
1669 "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32">;
1670 def int_nvvm_tex_unified_2d_array_grad_v4u32_f32
1671 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1672 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1673 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1675 "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32">;
1677 def int_nvvm_tex_unified_3d_v4f32_s32
1678 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1679 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1680 [], "llvm.nvvm.tex.unified.3d.v4f32.s32">;
1681 def int_nvvm_tex_unified_3d_v4f32_f32
1682 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1683 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1685 "llvm.nvvm.tex.unified.3d.v4f32.f32">;
1686 def int_nvvm_tex_unified_3d_level_v4f32_f32
1687 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1688 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1689 llvm_float_ty, llvm_float_ty], [],
1690 "llvm.nvvm.tex.unified.3d.level.v4f32.f32">;
1691 def int_nvvm_tex_unified_3d_grad_v4f32_f32
1692 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1693 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1694 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1695 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1696 "llvm.nvvm.tex.unified.3d.grad.v4f32.f32">;
1697 def int_nvvm_tex_unified_3d_v4s32_s32
1698 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1699 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1700 [], "llvm.nvvm.tex.unified.3d.v4s32.s32">;
1701 def int_nvvm_tex_unified_3d_v4s32_f32
1702 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1703 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1705 "llvm.nvvm.tex.unified.3d.v4s32.f32">;
1706 def int_nvvm_tex_unified_3d_level_v4s32_f32
1707 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1708 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1709 llvm_float_ty, llvm_float_ty], [],
1710 "llvm.nvvm.tex.unified.3d.level.v4s32.f32">;
1711 def int_nvvm_tex_unified_3d_grad_v4s32_f32
1712 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1713 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1714 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1715 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1716 "llvm.nvvm.tex.unified.3d.grad.v4s32.f32">;
1717 def int_nvvm_tex_unified_3d_v4u32_s32
1718 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1719 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1720 [], "llvm.nvvm.tex.unified.3d.v4u32.s32">;
1721 def int_nvvm_tex_unified_3d_v4u32_f32
1722 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1723 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1725 "llvm.nvvm.tex.unified.3d.v4u32.f32">;
1726 def int_nvvm_tex_unified_3d_level_v4u32_f32
1727 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1728 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1729 llvm_float_ty, llvm_float_ty], [],
1730 "llvm.nvvm.tex.unified.3d.level.v4u32.f32">;
1731 def int_nvvm_tex_unified_3d_grad_v4u32_f32
1732 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1733 [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1734 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1735 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1736 "llvm.nvvm.tex.unified.3d.grad.v4u32.f32">;
1738 def int_nvvm_tex_unified_cube_v4f32_f32
1739 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1741 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1742 "llvm.nvvm.tex.unified.cube.v4f32.f32">;
1743 def int_nvvm_tex_unified_cube_level_v4f32_f32
1744 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1746 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1747 "llvm.nvvm.tex.unified.cube.level.v4f32.f32">;
1748 def int_nvvm_tex_unified_cube_v4s32_f32
1749 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1751 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1752 "llvm.nvvm.tex.unified.cube.v4s32.f32">;
1753 def int_nvvm_tex_unified_cube_level_v4s32_f32
1754 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1756 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1757 "llvm.nvvm.tex.unified.cube.level.v4s32.f32">;
1758 def int_nvvm_tex_unified_cube_v4u32_f32
1759 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1761 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1762 "llvm.nvvm.tex.unified.cube.v4u32.f32">;
1763 def int_nvvm_tex_unified_cube_level_v4u32_f32
1764 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1766 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1767 "llvm.nvvm.tex.unified.cube.level.v4u32.f32">;
1769 def int_nvvm_tex_unified_cube_array_v4f32_f32
1770 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1771 [llvm_i64_ty, llvm_i32_ty,
1772 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1773 "llvm.nvvm.tex.unified.cube.array.v4f32.f32">;
1774 def int_nvvm_tex_unified_cube_array_level_v4f32_f32
1775 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1776 [llvm_i64_ty, llvm_i32_ty,
1777 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1778 "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32">;
1779 def int_nvvm_tex_unified_cube_array_v4s32_f32
1780 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1781 [llvm_i64_ty, llvm_i32_ty,
1782 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1783 "llvm.nvvm.tex.unified.cube.array.v4s32.f32">;
1784 def int_nvvm_tex_unified_cube_array_level_v4s32_f32
1785 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1786 [llvm_i64_ty, llvm_i32_ty,
1787 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1788 "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32">;
1789 def int_nvvm_tex_unified_cube_array_v4u32_f32
1790 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1791 [llvm_i64_ty, llvm_i32_ty,
1792 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1793 "llvm.nvvm.tex.unified.cube.array.v4u32.f32">;
1794 def int_nvvm_tex_unified_cube_array_level_v4u32_f32
1795 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1796 [llvm_i64_ty, llvm_i32_ty,
1797 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1798 "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32">;
1800 def int_nvvm_tld4_unified_r_2d_v4f32_f32
1801 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1802 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1803 "llvm.nvvm.tld4.unified.r.2d.v4f32.f32">;
1804 def int_nvvm_tld4_unified_g_2d_v4f32_f32
1805 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1806 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1807 "llvm.nvvm.tld4.unified.g.2d.v4f32.f32">;
1808 def int_nvvm_tld4_unified_b_2d_v4f32_f32
1809 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1810 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1811 "llvm.nvvm.tld4.unified.b.2d.v4f32.f32">;
1812 def int_nvvm_tld4_unified_a_2d_v4f32_f32
1813 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1814 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1815 "llvm.nvvm.tld4.unified.a.2d.v4f32.f32">;
1816 def int_nvvm_tld4_unified_r_2d_v4s32_f32
1817 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1818 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1819 "llvm.nvvm.tld4.unified.r.2d.v4s32.f32">;
1820 def int_nvvm_tld4_unified_g_2d_v4s32_f32
1821 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1822 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1823 "llvm.nvvm.tld4.unified.g.2d.v4s32.f32">;
1824 def int_nvvm_tld4_unified_b_2d_v4s32_f32
1825 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1826 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1827 "llvm.nvvm.tld4.unified.b.2d.v4s32.f32">;
1828 def int_nvvm_tld4_unified_a_2d_v4s32_f32
1829 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1830 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1831 "llvm.nvvm.tld4.unified.a.2d.v4s32.f32">;
1832 def int_nvvm_tld4_unified_r_2d_v4u32_f32
1833 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1834 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1835 "llvm.nvvm.tld4.unified.r.2d.v4u32.f32">;
1836 def int_nvvm_tld4_unified_g_2d_v4u32_f32
1837 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1838 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1839 "llvm.nvvm.tld4.unified.g.2d.v4u32.f32">;
1840 def int_nvvm_tld4_unified_b_2d_v4u32_f32
1841 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1842 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1843 "llvm.nvvm.tld4.unified.b.2d.v4u32.f32">;
1844 def int_nvvm_tld4_unified_a_2d_v4u32_f32
1845 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1846 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1847 "llvm.nvvm.tld4.unified.a.2d.v4u32.f32">;
1852 def int_nvvm_suld_1d_i8_clamp
1853 : Intrinsic<[llvm_i16_ty],
1854 [llvm_i64_ty, llvm_i32_ty], [],
1855 "llvm.nvvm.suld.1d.i8.clamp">;
1856 def int_nvvm_suld_1d_i16_clamp
1857 : Intrinsic<[llvm_i16_ty],
1858 [llvm_i64_ty, llvm_i32_ty], [],
1859 "llvm.nvvm.suld.1d.i16.clamp">;
1860 def int_nvvm_suld_1d_i32_clamp
1861 : Intrinsic<[llvm_i32_ty],
1862 [llvm_i64_ty, llvm_i32_ty], [],
1863 "llvm.nvvm.suld.1d.i32.clamp">;
1864 def int_nvvm_suld_1d_i64_clamp
1865 : Intrinsic<[llvm_i64_ty],
1866 [llvm_i64_ty, llvm_i32_ty], [],
1867 "llvm.nvvm.suld.1d.i64.clamp">;
1868 def int_nvvm_suld_1d_v2i8_clamp
1869 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1870 [llvm_i64_ty, llvm_i32_ty], [],
1871 "llvm.nvvm.suld.1d.v2i8.clamp">;
1872 def int_nvvm_suld_1d_v2i16_clamp
1873 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1874 [llvm_i64_ty, llvm_i32_ty], [],
1875 "llvm.nvvm.suld.1d.v2i16.clamp">;
1876 def int_nvvm_suld_1d_v2i32_clamp
1877 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1878 [llvm_i64_ty, llvm_i32_ty], [],
1879 "llvm.nvvm.suld.1d.v2i32.clamp">;
1880 def int_nvvm_suld_1d_v2i64_clamp
1881 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
1882 [llvm_i64_ty, llvm_i32_ty], [],
1883 "llvm.nvvm.suld.1d.v2i64.clamp">;
1884 def int_nvvm_suld_1d_v4i8_clamp
1885 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1886 [llvm_i64_ty, llvm_i32_ty], [],
1887 "llvm.nvvm.suld.1d.v4i8.clamp">;
1888 def int_nvvm_suld_1d_v4i16_clamp
1889 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1890 [llvm_i64_ty, llvm_i32_ty], [],
1891 "llvm.nvvm.suld.1d.v4i16.clamp">;
1892 def int_nvvm_suld_1d_v4i32_clamp
1893 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1894 [llvm_i64_ty, llvm_i32_ty], [],
1895 "llvm.nvvm.suld.1d.v4i32.clamp">;
1897 def int_nvvm_suld_1d_array_i8_clamp
1898 : Intrinsic<[llvm_i16_ty],
1899 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1900 "llvm.nvvm.suld.1d.array.i8.clamp">;
1901 def int_nvvm_suld_1d_array_i16_clamp
1902 : Intrinsic<[llvm_i16_ty],
1903 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1904 "llvm.nvvm.suld.1d.array.i16.clamp">;
1905 def int_nvvm_suld_1d_array_i32_clamp
1906 : Intrinsic<[llvm_i32_ty],
1907 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1908 "llvm.nvvm.suld.1d.array.i32.clamp">;
1909 def int_nvvm_suld_1d_array_i64_clamp
1910 : Intrinsic<[llvm_i64_ty],
1911 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1912 "llvm.nvvm.suld.1d.array.i64.clamp">;
1913 def int_nvvm_suld_1d_array_v2i8_clamp
1914 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1915 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1916 "llvm.nvvm.suld.1d.array.v2i8.clamp">;
1917 def int_nvvm_suld_1d_array_v2i16_clamp
1918 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1919 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1920 "llvm.nvvm.suld.1d.array.v2i16.clamp">;
1921 def int_nvvm_suld_1d_array_v2i32_clamp
1922 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1923 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1924 "llvm.nvvm.suld.1d.array.v2i32.clamp">;
1925 def int_nvvm_suld_1d_array_v2i64_clamp
1926 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
1927 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1928 "llvm.nvvm.suld.1d.array.v2i64.clamp">;
1929 def int_nvvm_suld_1d_array_v4i8_clamp
1930 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1931 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1932 "llvm.nvvm.suld.1d.array.v4i8.clamp">;
1933 def int_nvvm_suld_1d_array_v4i16_clamp
1934 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1935 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1936 "llvm.nvvm.suld.1d.array.v4i16.clamp">;
1937 def int_nvvm_suld_1d_array_v4i32_clamp
1938 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1939 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1940 "llvm.nvvm.suld.1d.array.v4i32.clamp">;
1942 def int_nvvm_suld_2d_i8_clamp
1943 : Intrinsic<[llvm_i16_ty],
1944 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1945 "llvm.nvvm.suld.2d.i8.clamp">;
1946 def int_nvvm_suld_2d_i16_clamp
1947 : Intrinsic<[llvm_i16_ty],
1948 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1949 "llvm.nvvm.suld.2d.i16.clamp">;
1950 def int_nvvm_suld_2d_i32_clamp
1951 : Intrinsic<[llvm_i32_ty],
1952 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1953 "llvm.nvvm.suld.2d.i32.clamp">;
1954 def int_nvvm_suld_2d_i64_clamp
1955 : Intrinsic<[llvm_i64_ty],
1956 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1957 "llvm.nvvm.suld.2d.i64.clamp">;
1958 def int_nvvm_suld_2d_v2i8_clamp
1959 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1960 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1961 "llvm.nvvm.suld.2d.v2i8.clamp">;
1962 def int_nvvm_suld_2d_v2i16_clamp
1963 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1964 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1965 "llvm.nvvm.suld.2d.v2i16.clamp">;
1966 def int_nvvm_suld_2d_v2i32_clamp
1967 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1968 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1969 "llvm.nvvm.suld.2d.v2i32.clamp">;
1970 def int_nvvm_suld_2d_v2i64_clamp
1971 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
1972 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1973 "llvm.nvvm.suld.2d.v2i64.clamp">;
1974 def int_nvvm_suld_2d_v4i8_clamp
1975 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1976 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1977 "llvm.nvvm.suld.2d.v4i8.clamp">;
1978 def int_nvvm_suld_2d_v4i16_clamp
1979 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1980 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1981 "llvm.nvvm.suld.2d.v4i16.clamp">;
1982 def int_nvvm_suld_2d_v4i32_clamp
1983 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1984 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1985 "llvm.nvvm.suld.2d.v4i32.clamp">;
1987 def int_nvvm_suld_2d_array_i8_clamp
1988 : Intrinsic<[llvm_i16_ty],
1989 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1990 "llvm.nvvm.suld.2d.array.i8.clamp">;
1991 def int_nvvm_suld_2d_array_i16_clamp
1992 : Intrinsic<[llvm_i16_ty],
1993 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1994 "llvm.nvvm.suld.2d.array.i16.clamp">;
1995 def int_nvvm_suld_2d_array_i32_clamp
1996 : Intrinsic<[llvm_i32_ty],
1997 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1998 "llvm.nvvm.suld.2d.array.i32.clamp">;
1999 def int_nvvm_suld_2d_array_i64_clamp
2000 : Intrinsic<[llvm_i64_ty],
2001 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2002 "llvm.nvvm.suld.2d.array.i64.clamp">;
2003 def int_nvvm_suld_2d_array_v2i8_clamp
2004 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2005 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2006 "llvm.nvvm.suld.2d.array.v2i8.clamp">;
2007 def int_nvvm_suld_2d_array_v2i16_clamp
2008 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2009 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2010 "llvm.nvvm.suld.2d.array.v2i16.clamp">;
2011 def int_nvvm_suld_2d_array_v2i32_clamp
2012 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2013 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2014 "llvm.nvvm.suld.2d.array.v2i32.clamp">;
2015 def int_nvvm_suld_2d_array_v2i64_clamp
2016 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2017 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2018 "llvm.nvvm.suld.2d.array.v2i64.clamp">;
2019 def int_nvvm_suld_2d_array_v4i8_clamp
2020 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2021 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2022 "llvm.nvvm.suld.2d.array.v4i8.clamp">;
2023 def int_nvvm_suld_2d_array_v4i16_clamp
2024 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2025 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2026 "llvm.nvvm.suld.2d.array.v4i16.clamp">;
2027 def int_nvvm_suld_2d_array_v4i32_clamp
2028 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2029 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2030 "llvm.nvvm.suld.2d.array.v4i32.clamp">;
2032 def int_nvvm_suld_3d_i8_clamp
2033 : Intrinsic<[llvm_i16_ty],
2034 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2035 "llvm.nvvm.suld.3d.i8.clamp">;
2036 def int_nvvm_suld_3d_i16_clamp
2037 : Intrinsic<[llvm_i16_ty],
2038 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2039 "llvm.nvvm.suld.3d.i16.clamp">;
2040 def int_nvvm_suld_3d_i32_clamp
2041 : Intrinsic<[llvm_i32_ty],
2042 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2043 "llvm.nvvm.suld.3d.i32.clamp">;
2044 def int_nvvm_suld_3d_i64_clamp
2045 : Intrinsic<[llvm_i64_ty],
2046 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2047 "llvm.nvvm.suld.3d.i64.clamp">;
2048 def int_nvvm_suld_3d_v2i8_clamp
2049 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2050 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2051 "llvm.nvvm.suld.3d.v2i8.clamp">;
2052 def int_nvvm_suld_3d_v2i16_clamp
2053 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2054 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2055 "llvm.nvvm.suld.3d.v2i16.clamp">;
2056 def int_nvvm_suld_3d_v2i32_clamp
2057 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2058 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2059 "llvm.nvvm.suld.3d.v2i32.clamp">;
2060 def int_nvvm_suld_3d_v2i64_clamp
2061 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2062 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2063 "llvm.nvvm.suld.3d.v2i64.clamp">;
2064 def int_nvvm_suld_3d_v4i8_clamp
2065 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2066 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2067 "llvm.nvvm.suld.3d.v4i8.clamp">;
2068 def int_nvvm_suld_3d_v4i16_clamp
2069 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2070 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2071 "llvm.nvvm.suld.3d.v4i16.clamp">;
2072 def int_nvvm_suld_3d_v4i32_clamp
2073 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2074 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2075 "llvm.nvvm.suld.3d.v4i32.clamp">;
2078 def int_nvvm_suld_1d_i8_trap
2079 : Intrinsic<[llvm_i16_ty],
2080 [llvm_i64_ty, llvm_i32_ty], [],
2081 "llvm.nvvm.suld.1d.i8.trap">;
2082 def int_nvvm_suld_1d_i16_trap
2083 : Intrinsic<[llvm_i16_ty],
2084 [llvm_i64_ty, llvm_i32_ty], [],
2085 "llvm.nvvm.suld.1d.i16.trap">;
2086 def int_nvvm_suld_1d_i32_trap
2087 : Intrinsic<[llvm_i32_ty],
2088 [llvm_i64_ty, llvm_i32_ty], [],
2089 "llvm.nvvm.suld.1d.i32.trap">;
2090 def int_nvvm_suld_1d_i64_trap
2091 : Intrinsic<[llvm_i64_ty],
2092 [llvm_i64_ty, llvm_i32_ty], [],
2093 "llvm.nvvm.suld.1d.i64.trap">;
2094 def int_nvvm_suld_1d_v2i8_trap
2095 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2096 [llvm_i64_ty, llvm_i32_ty], [],
2097 "llvm.nvvm.suld.1d.v2i8.trap">;
2098 def int_nvvm_suld_1d_v2i16_trap
2099 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2100 [llvm_i64_ty, llvm_i32_ty], [],
2101 "llvm.nvvm.suld.1d.v2i16.trap">;
2102 def int_nvvm_suld_1d_v2i32_trap
2103 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2104 [llvm_i64_ty, llvm_i32_ty], [],
2105 "llvm.nvvm.suld.1d.v2i32.trap">;
2106 def int_nvvm_suld_1d_v2i64_trap
2107 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2108 [llvm_i64_ty, llvm_i32_ty], [],
2109 "llvm.nvvm.suld.1d.v2i64.trap">;
2110 def int_nvvm_suld_1d_v4i8_trap
2111 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2112 [llvm_i64_ty, llvm_i32_ty], [],
2113 "llvm.nvvm.suld.1d.v4i8.trap">;
2114 def int_nvvm_suld_1d_v4i16_trap
2115 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2116 [llvm_i64_ty, llvm_i32_ty], [],
2117 "llvm.nvvm.suld.1d.v4i16.trap">;
2118 def int_nvvm_suld_1d_v4i32_trap
2119 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2120 [llvm_i64_ty, llvm_i32_ty], [],
2121 "llvm.nvvm.suld.1d.v4i32.trap">;
2123 def int_nvvm_suld_1d_array_i8_trap
2124 : Intrinsic<[llvm_i16_ty],
2125 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2126 "llvm.nvvm.suld.1d.array.i8.trap">;
2127 def int_nvvm_suld_1d_array_i16_trap
2128 : Intrinsic<[llvm_i16_ty],
2129 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2130 "llvm.nvvm.suld.1d.array.i16.trap">;
2131 def int_nvvm_suld_1d_array_i32_trap
2132 : Intrinsic<[llvm_i32_ty],
2133 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2134 "llvm.nvvm.suld.1d.array.i32.trap">;
2135 def int_nvvm_suld_1d_array_i64_trap
2136 : Intrinsic<[llvm_i64_ty],
2137 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2138 "llvm.nvvm.suld.1d.array.i64.trap">;
2139 def int_nvvm_suld_1d_array_v2i8_trap
2140 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2141 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2142 "llvm.nvvm.suld.1d.array.v2i8.trap">;
2143 def int_nvvm_suld_1d_array_v2i16_trap
2144 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2145 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2146 "llvm.nvvm.suld.1d.array.v2i16.trap">;
2147 def int_nvvm_suld_1d_array_v2i32_trap
2148 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2149 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2150 "llvm.nvvm.suld.1d.array.v2i32.trap">;
2151 def int_nvvm_suld_1d_array_v2i64_trap
2152 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2153 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2154 "llvm.nvvm.suld.1d.array.v2i64.trap">;
2155 def int_nvvm_suld_1d_array_v4i8_trap
2156 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2157 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2158 "llvm.nvvm.suld.1d.array.v4i8.trap">;
2159 def int_nvvm_suld_1d_array_v4i16_trap
2160 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2161 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2162 "llvm.nvvm.suld.1d.array.v4i16.trap">;
2163 def int_nvvm_suld_1d_array_v4i32_trap
2164 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2165 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2166 "llvm.nvvm.suld.1d.array.v4i32.trap">;
2168 def int_nvvm_suld_2d_i8_trap
2169 : Intrinsic<[llvm_i16_ty],
2170 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2171 "llvm.nvvm.suld.2d.i8.trap">;
2172 def int_nvvm_suld_2d_i16_trap
2173 : Intrinsic<[llvm_i16_ty],
2174 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2175 "llvm.nvvm.suld.2d.i16.trap">;
2176 def int_nvvm_suld_2d_i32_trap
2177 : Intrinsic<[llvm_i32_ty],
2178 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2179 "llvm.nvvm.suld.2d.i32.trap">;
2180 def int_nvvm_suld_2d_i64_trap
2181 : Intrinsic<[llvm_i64_ty],
2182 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2183 "llvm.nvvm.suld.2d.i64.trap">;
2184 def int_nvvm_suld_2d_v2i8_trap
2185 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2186 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2187 "llvm.nvvm.suld.2d.v2i8.trap">;
2188 def int_nvvm_suld_2d_v2i16_trap
2189 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2190 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2191 "llvm.nvvm.suld.2d.v2i16.trap">;
2192 def int_nvvm_suld_2d_v2i32_trap
2193 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2194 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2195 "llvm.nvvm.suld.2d.v2i32.trap">;
2196 def int_nvvm_suld_2d_v2i64_trap
2197 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2198 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2199 "llvm.nvvm.suld.2d.v2i64.trap">;
2200 def int_nvvm_suld_2d_v4i8_trap
2201 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2202 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2203 "llvm.nvvm.suld.2d.v4i8.trap">;
2204 def int_nvvm_suld_2d_v4i16_trap
2205 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2206 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2207 "llvm.nvvm.suld.2d.v4i16.trap">;
2208 def int_nvvm_suld_2d_v4i32_trap
2209 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2210 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2211 "llvm.nvvm.suld.2d.v4i32.trap">;
2213 def int_nvvm_suld_2d_array_i8_trap
2214 : Intrinsic<[llvm_i16_ty],
2215 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2216 "llvm.nvvm.suld.2d.array.i8.trap">;
2217 def int_nvvm_suld_2d_array_i16_trap
2218 : Intrinsic<[llvm_i16_ty],
2219 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2220 "llvm.nvvm.suld.2d.array.i16.trap">;
2221 def int_nvvm_suld_2d_array_i32_trap
2222 : Intrinsic<[llvm_i32_ty],
2223 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2224 "llvm.nvvm.suld.2d.array.i32.trap">;
2225 def int_nvvm_suld_2d_array_i64_trap
2226 : Intrinsic<[llvm_i64_ty],
2227 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2228 "llvm.nvvm.suld.2d.array.i64.trap">;
2229 def int_nvvm_suld_2d_array_v2i8_trap
2230 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2231 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2232 "llvm.nvvm.suld.2d.array.v2i8.trap">;
2233 def int_nvvm_suld_2d_array_v2i16_trap
2234 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2235 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2236 "llvm.nvvm.suld.2d.array.v2i16.trap">;
2237 def int_nvvm_suld_2d_array_v2i32_trap
2238 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2239 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2240 "llvm.nvvm.suld.2d.array.v2i32.trap">;
2241 def int_nvvm_suld_2d_array_v2i64_trap
2242 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2243 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2244 "llvm.nvvm.suld.2d.array.v2i64.trap">;
2245 def int_nvvm_suld_2d_array_v4i8_trap
2246 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2247 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2248 "llvm.nvvm.suld.2d.array.v4i8.trap">;
2249 def int_nvvm_suld_2d_array_v4i16_trap
2250 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2251 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2252 "llvm.nvvm.suld.2d.array.v4i16.trap">;
2253 def int_nvvm_suld_2d_array_v4i32_trap
2254 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2255 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2256 "llvm.nvvm.suld.2d.array.v4i32.trap">;
2258 def int_nvvm_suld_3d_i8_trap
2259 : Intrinsic<[llvm_i16_ty],
2260 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2261 "llvm.nvvm.suld.3d.i8.trap">;
2262 def int_nvvm_suld_3d_i16_trap
2263 : Intrinsic<[llvm_i16_ty],
2264 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2265 "llvm.nvvm.suld.3d.i16.trap">;
2266 def int_nvvm_suld_3d_i32_trap
2267 : Intrinsic<[llvm_i32_ty],
2268 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2269 "llvm.nvvm.suld.3d.i32.trap">;
2270 def int_nvvm_suld_3d_i64_trap
2271 : Intrinsic<[llvm_i64_ty],
2272 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2273 "llvm.nvvm.suld.3d.i64.trap">;
2274 def int_nvvm_suld_3d_v2i8_trap
2275 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2276 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2277 "llvm.nvvm.suld.3d.v2i8.trap">;
2278 def int_nvvm_suld_3d_v2i16_trap
2279 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2280 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2281 "llvm.nvvm.suld.3d.v2i16.trap">;
2282 def int_nvvm_suld_3d_v2i32_trap
2283 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2284 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2285 "llvm.nvvm.suld.3d.v2i32.trap">;
2286 def int_nvvm_suld_3d_v2i64_trap
2287 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2288 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2289 "llvm.nvvm.suld.3d.v2i64.trap">;
2290 def int_nvvm_suld_3d_v4i8_trap
2291 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2292 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2293 "llvm.nvvm.suld.3d.v4i8.trap">;
2294 def int_nvvm_suld_3d_v4i16_trap
2295 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2296 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2297 "llvm.nvvm.suld.3d.v4i16.trap">;
2298 def int_nvvm_suld_3d_v4i32_trap
2299 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2300 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2301 "llvm.nvvm.suld.3d.v4i32.trap">;
2304 def int_nvvm_suld_1d_i8_zero
2305 : Intrinsic<[llvm_i16_ty],
2306 [llvm_i64_ty, llvm_i32_ty], [],
2307 "llvm.nvvm.suld.1d.i8.zero">;
2308 def int_nvvm_suld_1d_i16_zero
2309 : Intrinsic<[llvm_i16_ty],
2310 [llvm_i64_ty, llvm_i32_ty], [],
2311 "llvm.nvvm.suld.1d.i16.zero">;
2312 def int_nvvm_suld_1d_i32_zero
2313 : Intrinsic<[llvm_i32_ty],
2314 [llvm_i64_ty, llvm_i32_ty], [],
2315 "llvm.nvvm.suld.1d.i32.zero">;
2316 def int_nvvm_suld_1d_i64_zero
2317 : Intrinsic<[llvm_i64_ty],
2318 [llvm_i64_ty, llvm_i32_ty], [],
2319 "llvm.nvvm.suld.1d.i64.zero">;
2320 def int_nvvm_suld_1d_v2i8_zero
2321 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2322 [llvm_i64_ty, llvm_i32_ty], [],
2323 "llvm.nvvm.suld.1d.v2i8.zero">;
2324 def int_nvvm_suld_1d_v2i16_zero
2325 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2326 [llvm_i64_ty, llvm_i32_ty], [],
2327 "llvm.nvvm.suld.1d.v2i16.zero">;
2328 def int_nvvm_suld_1d_v2i32_zero
2329 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2330 [llvm_i64_ty, llvm_i32_ty], [],
2331 "llvm.nvvm.suld.1d.v2i32.zero">;
2332 def int_nvvm_suld_1d_v2i64_zero
2333 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2334 [llvm_i64_ty, llvm_i32_ty], [],
2335 "llvm.nvvm.suld.1d.v2i64.zero">;
2336 def int_nvvm_suld_1d_v4i8_zero
2337 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2338 [llvm_i64_ty, llvm_i32_ty], [],
2339 "llvm.nvvm.suld.1d.v4i8.zero">;
2340 def int_nvvm_suld_1d_v4i16_zero
2341 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2342 [llvm_i64_ty, llvm_i32_ty], [],
2343 "llvm.nvvm.suld.1d.v4i16.zero">;
2344 def int_nvvm_suld_1d_v4i32_zero
2345 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2346 [llvm_i64_ty, llvm_i32_ty], [],
2347 "llvm.nvvm.suld.1d.v4i32.zero">;
2349 def int_nvvm_suld_1d_array_i8_zero
2350 : Intrinsic<[llvm_i16_ty],
2351 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2352 "llvm.nvvm.suld.1d.array.i8.zero">;
2353 def int_nvvm_suld_1d_array_i16_zero
2354 : Intrinsic<[llvm_i16_ty],
2355 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2356 "llvm.nvvm.suld.1d.array.i16.zero">;
2357 def int_nvvm_suld_1d_array_i32_zero
2358 : Intrinsic<[llvm_i32_ty],
2359 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2360 "llvm.nvvm.suld.1d.array.i32.zero">;
2361 def int_nvvm_suld_1d_array_i64_zero
2362 : Intrinsic<[llvm_i64_ty],
2363 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2364 "llvm.nvvm.suld.1d.array.i64.zero">;
2365 def int_nvvm_suld_1d_array_v2i8_zero
2366 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2367 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2368 "llvm.nvvm.suld.1d.array.v2i8.zero">;
2369 def int_nvvm_suld_1d_array_v2i16_zero
2370 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2371 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2372 "llvm.nvvm.suld.1d.array.v2i16.zero">;
2373 def int_nvvm_suld_1d_array_v2i32_zero
2374 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2375 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2376 "llvm.nvvm.suld.1d.array.v2i32.zero">;
2377 def int_nvvm_suld_1d_array_v2i64_zero
2378 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2379 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2380 "llvm.nvvm.suld.1d.array.v2i64.zero">;
2381 def int_nvvm_suld_1d_array_v4i8_zero
2382 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2383 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2384 "llvm.nvvm.suld.1d.array.v4i8.zero">;
2385 def int_nvvm_suld_1d_array_v4i16_zero
2386 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2387 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2388 "llvm.nvvm.suld.1d.array.v4i16.zero">;
2389 def int_nvvm_suld_1d_array_v4i32_zero
2390 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2391 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2392 "llvm.nvvm.suld.1d.array.v4i32.zero">;
2394 def int_nvvm_suld_2d_i8_zero
2395 : Intrinsic<[llvm_i16_ty],
2396 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2397 "llvm.nvvm.suld.2d.i8.zero">;
2398 def int_nvvm_suld_2d_i16_zero
2399 : Intrinsic<[llvm_i16_ty],
2400 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2401 "llvm.nvvm.suld.2d.i16.zero">;
2402 def int_nvvm_suld_2d_i32_zero
2403 : Intrinsic<[llvm_i32_ty],
2404 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2405 "llvm.nvvm.suld.2d.i32.zero">;
2406 def int_nvvm_suld_2d_i64_zero
2407 : Intrinsic<[llvm_i64_ty],
2408 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2409 "llvm.nvvm.suld.2d.i64.zero">;
2410 def int_nvvm_suld_2d_v2i8_zero
2411 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2412 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2413 "llvm.nvvm.suld.2d.v2i8.zero">;
2414 def int_nvvm_suld_2d_v2i16_zero
2415 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2416 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2417 "llvm.nvvm.suld.2d.v2i16.zero">;
2418 def int_nvvm_suld_2d_v2i32_zero
2419 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2420 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2421 "llvm.nvvm.suld.2d.v2i32.zero">;
2422 def int_nvvm_suld_2d_v2i64_zero
2423 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2424 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2425 "llvm.nvvm.suld.2d.v2i64.zero">;
2426 def int_nvvm_suld_2d_v4i8_zero
2427 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2428 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2429 "llvm.nvvm.suld.2d.v4i8.zero">;
2430 def int_nvvm_suld_2d_v4i16_zero
2431 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2432 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2433 "llvm.nvvm.suld.2d.v4i16.zero">;
2434 def int_nvvm_suld_2d_v4i32_zero
2435 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2436 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2437 "llvm.nvvm.suld.2d.v4i32.zero">;
2439 def int_nvvm_suld_2d_array_i8_zero
2440 : Intrinsic<[llvm_i16_ty],
2441 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2442 "llvm.nvvm.suld.2d.array.i8.zero">;
2443 def int_nvvm_suld_2d_array_i16_zero
2444 : Intrinsic<[llvm_i16_ty],
2445 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2446 "llvm.nvvm.suld.2d.array.i16.zero">;
2447 def int_nvvm_suld_2d_array_i32_zero
2448 : Intrinsic<[llvm_i32_ty],
2449 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2450 "llvm.nvvm.suld.2d.array.i32.zero">;
2451 def int_nvvm_suld_2d_array_i64_zero
2452 : Intrinsic<[llvm_i64_ty],
2453 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2454 "llvm.nvvm.suld.2d.array.i64.zero">;
2455 def int_nvvm_suld_2d_array_v2i8_zero
2456 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2457 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2458 "llvm.nvvm.suld.2d.array.v2i8.zero">;
2459 def int_nvvm_suld_2d_array_v2i16_zero
2460 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2461 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2462 "llvm.nvvm.suld.2d.array.v2i16.zero">;
2463 def int_nvvm_suld_2d_array_v2i32_zero
2464 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2465 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2466 "llvm.nvvm.suld.2d.array.v2i32.zero">;
2467 def int_nvvm_suld_2d_array_v2i64_zero
2468 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2469 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2470 "llvm.nvvm.suld.2d.array.v2i64.zero">;
2471 def int_nvvm_suld_2d_array_v4i8_zero
2472 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2473 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2474 "llvm.nvvm.suld.2d.array.v4i8.zero">;
2475 def int_nvvm_suld_2d_array_v4i16_zero
2476 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2477 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2478 "llvm.nvvm.suld.2d.array.v4i16.zero">;
2479 def int_nvvm_suld_2d_array_v4i32_zero
2480 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2481 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2482 "llvm.nvvm.suld.2d.array.v4i32.zero">;
2484 def int_nvvm_suld_3d_i8_zero
2485 : Intrinsic<[llvm_i16_ty],
2486 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2487 "llvm.nvvm.suld.3d.i8.zero">;
2488 def int_nvvm_suld_3d_i16_zero
2489 : Intrinsic<[llvm_i16_ty],
2490 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2491 "llvm.nvvm.suld.3d.i16.zero">;
2492 def int_nvvm_suld_3d_i32_zero
2493 : Intrinsic<[llvm_i32_ty],
2494 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2495 "llvm.nvvm.suld.3d.i32.zero">;
2496 def int_nvvm_suld_3d_i64_zero
2497 : Intrinsic<[llvm_i64_ty],
2498 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2499 "llvm.nvvm.suld.3d.i64.zero">;
2500 def int_nvvm_suld_3d_v2i8_zero
2501 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2502 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2503 "llvm.nvvm.suld.3d.v2i8.zero">;
2504 def int_nvvm_suld_3d_v2i16_zero
2505 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
2506 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2507 "llvm.nvvm.suld.3d.v2i16.zero">;
2508 def int_nvvm_suld_3d_v2i32_zero
2509 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
2510 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2511 "llvm.nvvm.suld.3d.v2i32.zero">;
2512 def int_nvvm_suld_3d_v2i64_zero
2513 : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
2514 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2515 "llvm.nvvm.suld.3d.v2i64.zero">;
2516 def int_nvvm_suld_3d_v4i8_zero
2517 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2518 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2519 "llvm.nvvm.suld.3d.v4i8.zero">;
2520 def int_nvvm_suld_3d_v4i16_zero
2521 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
2522 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2523 "llvm.nvvm.suld.3d.v4i16.zero">;
2524 def int_nvvm_suld_3d_v4i32_zero
2525 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
2526 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2527 "llvm.nvvm.suld.3d.v4i32.zero">;
2529 //===- Texture Query ------------------------------------------------------===//
2531 def int_nvvm_txq_channel_order
2532 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2533 "llvm.nvvm.txq.channel.order">,
2534 GCCBuiltin<"__nvvm_txq_channel_order">;
2535 def int_nvvm_txq_channel_data_type
2536 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2537 "llvm.nvvm.txq.channel.data.type">,
2538 GCCBuiltin<"__nvvm_txq_channel_data_type">;
2539 def int_nvvm_txq_width
2540 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2541 "llvm.nvvm.txq.width">,
2542 GCCBuiltin<"__nvvm_txq_width">;
2543 def int_nvvm_txq_height
2544 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2545 "llvm.nvvm.txq.height">,
2546 GCCBuiltin<"__nvvm_txq_height">;
2547 def int_nvvm_txq_depth
2548 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2549 "llvm.nvvm.txq.depth">,
2550 GCCBuiltin<"__nvvm_txq_depth">;
2551 def int_nvvm_txq_array_size
2552 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2553 "llvm.nvvm.txq.array.size">,
2554 GCCBuiltin<"__nvvm_txq_array_size">;
2555 def int_nvvm_txq_num_samples
2556 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2557 "llvm.nvvm.txq.num.samples">,
2558 GCCBuiltin<"__nvvm_txq_num_samples">;
2559 def int_nvvm_txq_num_mipmap_levels
2560 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2561 "llvm.nvvm.txq.num.mipmap.levels">,
2562 GCCBuiltin<"__nvvm_txq_num_mipmap_levels">;
2564 //===- Surface Query ------------------------------------------------------===//
2566 def int_nvvm_suq_channel_order
2567 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2568 "llvm.nvvm.suq.channel.order">,
2569 GCCBuiltin<"__nvvm_suq_channel_order">;
2570 def int_nvvm_suq_channel_data_type
2571 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2572 "llvm.nvvm.suq.channel.data.type">,
2573 GCCBuiltin<"__nvvm_suq_channel_data_type">;
2574 def int_nvvm_suq_width
2575 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2576 "llvm.nvvm.suq.width">,
2577 GCCBuiltin<"__nvvm_suq_width">;
2578 def int_nvvm_suq_height
2579 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2580 "llvm.nvvm.suq.height">,
2581 GCCBuiltin<"__nvvm_suq_height">;
2582 def int_nvvm_suq_depth
2583 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2584 "llvm.nvvm.suq.depth">,
2585 GCCBuiltin<"__nvvm_suq_depth">;
2586 def int_nvvm_suq_array_size
2587 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
2588 "llvm.nvvm.suq.array.size">,
2589 GCCBuiltin<"__nvvm_suq_array_size">;
2592 //===- Handle Query -------------------------------------------------------===//
2594 def int_nvvm_istypep_sampler
2595 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
2596 "llvm.nvvm.istypep.sampler">,
2597 GCCBuiltin<"__nvvm_istypep_sampler">;
2598 def int_nvvm_istypep_surface
2599 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
2600 "llvm.nvvm.istypep.surface">,
2601 GCCBuiltin<"__nvvm_istypep_surface">;
2602 def int_nvvm_istypep_texture
2603 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
2604 "llvm.nvvm.istypep.texture">,
2605 GCCBuiltin<"__nvvm_istypep_texture">;
2609 //===- Surface Stores -----------------------------------------------------===//
2613 def int_nvvm_sust_b_1d_i8_clamp
2614 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2615 "llvm.nvvm.sust.b.1d.i8.clamp">,
2616 GCCBuiltin<"__nvvm_sust_b_1d_i8_clamp">;
2617 def int_nvvm_sust_b_1d_i16_clamp
2618 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2619 "llvm.nvvm.sust.b.1d.i16.clamp">,
2620 GCCBuiltin<"__nvvm_sust_b_1d_i16_clamp">;
2621 def int_nvvm_sust_b_1d_i32_clamp
2622 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2623 "llvm.nvvm.sust.b.1d.i32.clamp">,
2624 GCCBuiltin<"__nvvm_sust_b_1d_i32_clamp">;
2625 def int_nvvm_sust_b_1d_i64_clamp
2626 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
2627 "llvm.nvvm.sust.b.1d.i64.clamp">,
2628 GCCBuiltin<"__nvvm_sust_b_1d_i64_clamp">;
2629 def int_nvvm_sust_b_1d_v2i8_clamp
2630 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2631 "llvm.nvvm.sust.b.1d.v2i8.clamp">,
2632 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_clamp">;
2633 def int_nvvm_sust_b_1d_v2i16_clamp
2634 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2635 "llvm.nvvm.sust.b.1d.v2i16.clamp">,
2636 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_clamp">;
2637 def int_nvvm_sust_b_1d_v2i32_clamp
2638 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2639 "llvm.nvvm.sust.b.1d.v2i32.clamp">,
2640 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_clamp">;
2641 def int_nvvm_sust_b_1d_v2i64_clamp
2642 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
2643 "llvm.nvvm.sust.b.1d.v2i64.clamp">,
2644 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_clamp">;
2645 def int_nvvm_sust_b_1d_v4i8_clamp
2646 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2647 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2648 "llvm.nvvm.sust.b.1d.v4i8.clamp">,
2649 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_clamp">;
2650 def int_nvvm_sust_b_1d_v4i16_clamp
2651 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2652 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2653 "llvm.nvvm.sust.b.1d.v4i16.clamp">,
2654 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_clamp">;
2655 def int_nvvm_sust_b_1d_v4i32_clamp
2656 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2657 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2658 "llvm.nvvm.sust.b.1d.v4i32.clamp">,
2659 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_clamp">;
2662 def int_nvvm_sust_b_1d_array_i8_clamp
2663 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2664 "llvm.nvvm.sust.b.1d.array.i8.clamp">,
2665 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_clamp">;
2666 def int_nvvm_sust_b_1d_array_i16_clamp
2667 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2668 "llvm.nvvm.sust.b.1d.array.i16.clamp">,
2669 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_clamp">;
2670 def int_nvvm_sust_b_1d_array_i32_clamp
2671 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2672 "llvm.nvvm.sust.b.1d.array.i32.clamp">,
2673 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_clamp">;
2674 def int_nvvm_sust_b_1d_array_i64_clamp
2675 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2676 "llvm.nvvm.sust.b.1d.array.i64.clamp">,
2677 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_clamp">;
2678 def int_nvvm_sust_b_1d_array_v2i8_clamp
2679 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2680 llvm_i16_ty, llvm_i16_ty], [],
2681 "llvm.nvvm.sust.b.1d.array.v2i8.clamp">,
2682 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_clamp">;
2683 def int_nvvm_sust_b_1d_array_v2i16_clamp
2684 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2685 llvm_i16_ty, llvm_i16_ty], [],
2686 "llvm.nvvm.sust.b.1d.array.v2i16.clamp">,
2687 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_clamp">;
2688 def int_nvvm_sust_b_1d_array_v2i32_clamp
2689 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2690 llvm_i32_ty, llvm_i32_ty], [],
2691 "llvm.nvvm.sust.b.1d.array.v2i32.clamp">,
2692 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_clamp">;
2693 def int_nvvm_sust_b_1d_array_v2i64_clamp
2694 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2695 llvm_i64_ty, llvm_i64_ty], [],
2696 "llvm.nvvm.sust.b.1d.array.v2i64.clamp">,
2697 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_clamp">;
2698 def int_nvvm_sust_b_1d_array_v4i8_clamp
2699 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2700 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2701 "llvm.nvvm.sust.b.1d.array.v4i8.clamp">,
2702 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_clamp">;
2703 def int_nvvm_sust_b_1d_array_v4i16_clamp
2704 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2705 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2706 "llvm.nvvm.sust.b.1d.array.v4i16.clamp">,
2707 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_clamp">;
2708 def int_nvvm_sust_b_1d_array_v4i32_clamp
2709 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2710 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2711 "llvm.nvvm.sust.b.1d.array.v4i32.clamp">,
2712 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_clamp">;
2715 def int_nvvm_sust_b_2d_i8_clamp
2716 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2717 "llvm.nvvm.sust.b.2d.i8.clamp">,
2718 GCCBuiltin<"__nvvm_sust_b_2d_i8_clamp">;
2719 def int_nvvm_sust_b_2d_i16_clamp
2720 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2721 "llvm.nvvm.sust.b.2d.i16.clamp">,
2722 GCCBuiltin<"__nvvm_sust_b_2d_i16_clamp">;
2723 def int_nvvm_sust_b_2d_i32_clamp
2724 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2725 "llvm.nvvm.sust.b.2d.i32.clamp">,
2726 GCCBuiltin<"__nvvm_sust_b_2d_i32_clamp">;
2727 def int_nvvm_sust_b_2d_i64_clamp
2728 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2729 "llvm.nvvm.sust.b.2d.i64.clamp">,
2730 GCCBuiltin<"__nvvm_sust_b_2d_i64_clamp">;
2731 def int_nvvm_sust_b_2d_v2i8_clamp
2732 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2733 llvm_i16_ty, llvm_i16_ty], [],
2734 "llvm.nvvm.sust.b.2d.v2i8.clamp">,
2735 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_clamp">;
2736 def int_nvvm_sust_b_2d_v2i16_clamp
2737 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2738 llvm_i16_ty, llvm_i16_ty], [],
2739 "llvm.nvvm.sust.b.2d.v2i16.clamp">,
2740 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_clamp">;
2741 def int_nvvm_sust_b_2d_v2i32_clamp
2742 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2743 llvm_i32_ty, llvm_i32_ty], [],
2744 "llvm.nvvm.sust.b.2d.v2i32.clamp">,
2745 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_clamp">;
2746 def int_nvvm_sust_b_2d_v2i64_clamp
2747 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2748 llvm_i64_ty, llvm_i64_ty], [],
2749 "llvm.nvvm.sust.b.2d.v2i64.clamp">,
2750 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_clamp">;
2751 def int_nvvm_sust_b_2d_v4i8_clamp
2752 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2753 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2754 "llvm.nvvm.sust.b.2d.v4i8.clamp">,
2755 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_clamp">;
2756 def int_nvvm_sust_b_2d_v4i16_clamp
2757 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2758 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2759 "llvm.nvvm.sust.b.2d.v4i16.clamp">,
2760 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_clamp">;
2761 def int_nvvm_sust_b_2d_v4i32_clamp
2762 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2763 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2764 "llvm.nvvm.sust.b.2d.v4i32.clamp">,
2765 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_clamp">;
2768 def int_nvvm_sust_b_2d_array_i8_clamp
2769 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2770 llvm_i32_ty, llvm_i16_ty], [],
2771 "llvm.nvvm.sust.b.2d.array.i8.clamp">,
2772 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_clamp">;
2773 def int_nvvm_sust_b_2d_array_i16_clamp
2774 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2775 llvm_i32_ty, llvm_i16_ty], [],
2776 "llvm.nvvm.sust.b.2d.array.i16.clamp">,
2777 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_clamp">;
2778 def int_nvvm_sust_b_2d_array_i32_clamp
2779 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2780 llvm_i32_ty, llvm_i32_ty], [],
2781 "llvm.nvvm.sust.b.2d.array.i32.clamp">,
2782 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_clamp">;
2783 def int_nvvm_sust_b_2d_array_i64_clamp
2784 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2785 llvm_i32_ty, llvm_i64_ty], [],
2786 "llvm.nvvm.sust.b.2d.array.i64.clamp">,
2787 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_clamp">;
2788 def int_nvvm_sust_b_2d_array_v2i8_clamp
2789 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2790 llvm_i16_ty, llvm_i16_ty], [],
2791 "llvm.nvvm.sust.b.2d.array.v2i8.clamp">,
2792 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_clamp">;
2793 def int_nvvm_sust_b_2d_array_v2i16_clamp
2794 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2795 llvm_i16_ty, llvm_i16_ty], [],
2796 "llvm.nvvm.sust.b.2d.array.v2i16.clamp">,
2797 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_clamp">;
2798 def int_nvvm_sust_b_2d_array_v2i32_clamp
2799 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2800 llvm_i32_ty, llvm_i32_ty], [],
2801 "llvm.nvvm.sust.b.2d.array.v2i32.clamp">,
2802 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_clamp">;
2803 def int_nvvm_sust_b_2d_array_v2i64_clamp
2804 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2805 llvm_i64_ty, llvm_i64_ty], [],
2806 "llvm.nvvm.sust.b.2d.array.v2i64.clamp">,
2807 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_clamp">;
2808 def int_nvvm_sust_b_2d_array_v4i8_clamp
2809 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2810 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2811 "llvm.nvvm.sust.b.2d.array.v4i8.clamp">,
2812 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_clamp">;
2813 def int_nvvm_sust_b_2d_array_v4i16_clamp
2814 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2815 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2816 "llvm.nvvm.sust.b.2d.array.v4i16.clamp">,
2817 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_clamp">;
2818 def int_nvvm_sust_b_2d_array_v4i32_clamp
2819 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2820 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2821 "llvm.nvvm.sust.b.2d.array.v4i32.clamp">,
2822 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_clamp">;
2825 def int_nvvm_sust_b_3d_i8_clamp
2826 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2827 llvm_i32_ty, llvm_i16_ty], [],
2828 "llvm.nvvm.sust.b.3d.i8.clamp">,
2829 GCCBuiltin<"__nvvm_sust_b_3d_i8_clamp">;
2830 def int_nvvm_sust_b_3d_i16_clamp
2831 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2832 llvm_i32_ty, llvm_i16_ty], [],
2833 "llvm.nvvm.sust.b.3d.i16.clamp">,
2834 GCCBuiltin<"__nvvm_sust_b_3d_i16_clamp">;
2835 def int_nvvm_sust_b_3d_i32_clamp
2836 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2837 llvm_i32_ty, llvm_i32_ty], [],
2838 "llvm.nvvm.sust.b.3d.i32.clamp">,
2839 GCCBuiltin<"__nvvm_sust_b_3d_i32_clamp">;
2840 def int_nvvm_sust_b_3d_i64_clamp
2841 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2842 llvm_i32_ty, llvm_i64_ty], [],
2843 "llvm.nvvm.sust.b.3d.i64.clamp">,
2844 GCCBuiltin<"__nvvm_sust_b_3d_i64_clamp">;
2845 def int_nvvm_sust_b_3d_v2i8_clamp
2846 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2847 llvm_i16_ty, llvm_i16_ty], [],
2848 "llvm.nvvm.sust.b.3d.v2i8.clamp">,
2849 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_clamp">;
2850 def int_nvvm_sust_b_3d_v2i16_clamp
2851 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2852 llvm_i16_ty, llvm_i16_ty], [],
2853 "llvm.nvvm.sust.b.3d.v2i16.clamp">,
2854 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_clamp">;
2855 def int_nvvm_sust_b_3d_v2i32_clamp
2856 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2857 llvm_i32_ty, llvm_i32_ty], [],
2858 "llvm.nvvm.sust.b.3d.v2i32.clamp">,
2859 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_clamp">;
2860 def int_nvvm_sust_b_3d_v2i64_clamp
2861 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2862 llvm_i64_ty, llvm_i64_ty], [],
2863 "llvm.nvvm.sust.b.3d.v2i64.clamp">,
2864 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_clamp">;
2865 def int_nvvm_sust_b_3d_v4i8_clamp
2866 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2867 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2868 "llvm.nvvm.sust.b.3d.v4i8.clamp">,
2869 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_clamp">;
2870 def int_nvvm_sust_b_3d_v4i16_clamp
2871 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2872 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2873 "llvm.nvvm.sust.b.3d.v4i16.clamp">,
2874 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_clamp">;
2875 def int_nvvm_sust_b_3d_v4i32_clamp
2876 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2877 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2878 "llvm.nvvm.sust.b.3d.v4i32.clamp">,
2879 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_clamp">;
2883 def int_nvvm_sust_b_1d_i8_trap
2884 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2885 "llvm.nvvm.sust.b.1d.i8.trap">,
2886 GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">;
2887 def int_nvvm_sust_b_1d_i16_trap
2888 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
2889 "llvm.nvvm.sust.b.1d.i16.trap">,
2890 GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">;
2891 def int_nvvm_sust_b_1d_i32_trap
2892 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
2893 "llvm.nvvm.sust.b.1d.i32.trap">,
2894 GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">;
2895 def int_nvvm_sust_b_1d_i64_trap
2896 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
2897 "llvm.nvvm.sust.b.1d.i64.trap">,
2898 GCCBuiltin<"__nvvm_sust_b_1d_i64_trap">;
2899 def int_nvvm_sust_b_1d_v2i8_trap
2900 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2901 "llvm.nvvm.sust.b.1d.v2i8.trap">,
2902 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">;
2903 def int_nvvm_sust_b_1d_v2i16_trap
2904 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
2905 "llvm.nvvm.sust.b.1d.v2i16.trap">,
2906 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">;
2907 def int_nvvm_sust_b_1d_v2i32_trap
2908 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2909 "llvm.nvvm.sust.b.1d.v2i32.trap">,
2910 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">;
2911 def int_nvvm_sust_b_1d_v2i64_trap
2912 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
2913 "llvm.nvvm.sust.b.1d.v2i64.trap">,
2914 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_trap">;
2915 def int_nvvm_sust_b_1d_v4i8_trap
2916 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2917 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2918 "llvm.nvvm.sust.b.1d.v4i8.trap">,
2919 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">;
2920 def int_nvvm_sust_b_1d_v4i16_trap
2921 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
2922 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2923 "llvm.nvvm.sust.b.1d.v4i16.trap">,
2924 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">;
2925 def int_nvvm_sust_b_1d_v4i32_trap
2926 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2927 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2928 "llvm.nvvm.sust.b.1d.v4i32.trap">,
2929 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">;
2932 def int_nvvm_sust_b_1d_array_i8_trap
2933 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2934 "llvm.nvvm.sust.b.1d.array.i8.trap">,
2935 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">;
2936 def int_nvvm_sust_b_1d_array_i16_trap
2937 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2938 "llvm.nvvm.sust.b.1d.array.i16.trap">,
2939 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">;
2940 def int_nvvm_sust_b_1d_array_i32_trap
2941 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2942 "llvm.nvvm.sust.b.1d.array.i32.trap">,
2943 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">;
2944 def int_nvvm_sust_b_1d_array_i64_trap
2945 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2946 "llvm.nvvm.sust.b.1d.array.i64.trap">,
2947 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_trap">;
2948 def int_nvvm_sust_b_1d_array_v2i8_trap
2949 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2950 llvm_i16_ty, llvm_i16_ty], [],
2951 "llvm.nvvm.sust.b.1d.array.v2i8.trap">,
2952 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">;
2953 def int_nvvm_sust_b_1d_array_v2i16_trap
2954 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2955 llvm_i16_ty, llvm_i16_ty], [],
2956 "llvm.nvvm.sust.b.1d.array.v2i16.trap">,
2957 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">;
2958 def int_nvvm_sust_b_1d_array_v2i32_trap
2959 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2960 llvm_i32_ty, llvm_i32_ty], [],
2961 "llvm.nvvm.sust.b.1d.array.v2i32.trap">,
2962 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">;
2963 def int_nvvm_sust_b_1d_array_v2i64_trap
2964 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
2965 llvm_i64_ty, llvm_i64_ty], [],
2966 "llvm.nvvm.sust.b.1d.array.v2i64.trap">,
2967 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_trap">;
2968 def int_nvvm_sust_b_1d_array_v4i8_trap
2969 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2970 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2971 "llvm.nvvm.sust.b.1d.array.v4i8.trap">,
2972 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">;
2973 def int_nvvm_sust_b_1d_array_v4i16_trap
2974 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
2975 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
2976 "llvm.nvvm.sust.b.1d.array.v4i16.trap">,
2977 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">;
2978 def int_nvvm_sust_b_1d_array_v4i32_trap
2979 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
2980 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2981 "llvm.nvvm.sust.b.1d.array.v4i32.trap">,
2982 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">;
2985 def int_nvvm_sust_b_2d_i8_trap
2986 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2987 "llvm.nvvm.sust.b.2d.i8.trap">,
2988 GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">;
2989 def int_nvvm_sust_b_2d_i16_trap
2990 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
2991 "llvm.nvvm.sust.b.2d.i16.trap">,
2992 GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">;
2993 def int_nvvm_sust_b_2d_i32_trap
2994 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
2995 "llvm.nvvm.sust.b.2d.i32.trap">,
2996 GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">;
2997 def int_nvvm_sust_b_2d_i64_trap
2998 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
2999 "llvm.nvvm.sust.b.2d.i64.trap">,
3000 GCCBuiltin<"__nvvm_sust_b_2d_i64_trap">;
3001 def int_nvvm_sust_b_2d_v2i8_trap
3002 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3003 llvm_i16_ty, llvm_i16_ty], [],
3004 "llvm.nvvm.sust.b.2d.v2i8.trap">,
3005 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">;
3006 def int_nvvm_sust_b_2d_v2i16_trap
3007 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3008 llvm_i16_ty, llvm_i16_ty], [],
3009 "llvm.nvvm.sust.b.2d.v2i16.trap">,
3010 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">;
3011 def int_nvvm_sust_b_2d_v2i32_trap
3012 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3013 llvm_i32_ty, llvm_i32_ty], [],
3014 "llvm.nvvm.sust.b.2d.v2i32.trap">,
3015 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">;
3016 def int_nvvm_sust_b_2d_v2i64_trap
3017 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3018 llvm_i64_ty, llvm_i64_ty], [],
3019 "llvm.nvvm.sust.b.2d.v2i64.trap">,
3020 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_trap">;
3021 def int_nvvm_sust_b_2d_v4i8_trap
3022 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3023 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3024 "llvm.nvvm.sust.b.2d.v4i8.trap">,
3025 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">;
3026 def int_nvvm_sust_b_2d_v4i16_trap
3027 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3028 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3029 "llvm.nvvm.sust.b.2d.v4i16.trap">,
3030 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">;
3031 def int_nvvm_sust_b_2d_v4i32_trap
3032 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3033 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3034 "llvm.nvvm.sust.b.2d.v4i32.trap">,
3035 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">;
3038 def int_nvvm_sust_b_2d_array_i8_trap
3039 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3040 llvm_i32_ty, llvm_i16_ty], [],
3041 "llvm.nvvm.sust.b.2d.array.i8.trap">,
3042 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">;
3043 def int_nvvm_sust_b_2d_array_i16_trap
3044 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3045 llvm_i32_ty, llvm_i16_ty], [],
3046 "llvm.nvvm.sust.b.2d.array.i16.trap">,
3047 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">;
3048 def int_nvvm_sust_b_2d_array_i32_trap
3049 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3050 llvm_i32_ty, llvm_i32_ty], [],
3051 "llvm.nvvm.sust.b.2d.array.i32.trap">,
3052 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">;
3053 def int_nvvm_sust_b_2d_array_i64_trap
3054 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3055 llvm_i32_ty, llvm_i64_ty], [],
3056 "llvm.nvvm.sust.b.2d.array.i64.trap">,
3057 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_trap">;
3058 def int_nvvm_sust_b_2d_array_v2i8_trap
3059 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3060 llvm_i16_ty, llvm_i16_ty], [],
3061 "llvm.nvvm.sust.b.2d.array.v2i8.trap">,
3062 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">;
3063 def int_nvvm_sust_b_2d_array_v2i16_trap
3064 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3065 llvm_i16_ty, llvm_i16_ty], [],
3066 "llvm.nvvm.sust.b.2d.array.v2i16.trap">,
3067 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">;
3068 def int_nvvm_sust_b_2d_array_v2i32_trap
3069 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3070 llvm_i32_ty, llvm_i32_ty], [],
3071 "llvm.nvvm.sust.b.2d.array.v2i32.trap">,
3072 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">;
3073 def int_nvvm_sust_b_2d_array_v2i64_trap
3074 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3075 llvm_i64_ty, llvm_i64_ty], [],
3076 "llvm.nvvm.sust.b.2d.array.v2i64.trap">,
3077 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_trap">;
3078 def int_nvvm_sust_b_2d_array_v4i8_trap
3079 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3080 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3081 "llvm.nvvm.sust.b.2d.array.v4i8.trap">,
3082 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">;
3083 def int_nvvm_sust_b_2d_array_v4i16_trap
3084 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3085 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3086 "llvm.nvvm.sust.b.2d.array.v4i16.trap">,
3087 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">;
3088 def int_nvvm_sust_b_2d_array_v4i32_trap
3089 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3090 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3091 "llvm.nvvm.sust.b.2d.array.v4i32.trap">,
3092 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">;
3095 def int_nvvm_sust_b_3d_i8_trap
3096 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3097 llvm_i32_ty, llvm_i16_ty], [],
3098 "llvm.nvvm.sust.b.3d.i8.trap">,
3099 GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">;
3100 def int_nvvm_sust_b_3d_i16_trap
3101 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3102 llvm_i32_ty, llvm_i16_ty], [],
3103 "llvm.nvvm.sust.b.3d.i16.trap">,
3104 GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">;
3105 def int_nvvm_sust_b_3d_i32_trap
3106 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3107 llvm_i32_ty, llvm_i32_ty], [],
3108 "llvm.nvvm.sust.b.3d.i32.trap">,
3109 GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">;
3110 def int_nvvm_sust_b_3d_i64_trap
3111 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3112 llvm_i32_ty, llvm_i64_ty], [],
3113 "llvm.nvvm.sust.b.3d.i64.trap">,
3114 GCCBuiltin<"__nvvm_sust_b_3d_i64_trap">;
3115 def int_nvvm_sust_b_3d_v2i8_trap
3116 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3117 llvm_i16_ty, llvm_i16_ty], [],
3118 "llvm.nvvm.sust.b.3d.v2i8.trap">,
3119 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">;
3120 def int_nvvm_sust_b_3d_v2i16_trap
3121 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3122 llvm_i16_ty, llvm_i16_ty], [],
3123 "llvm.nvvm.sust.b.3d.v2i16.trap">,
3124 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">;
3125 def int_nvvm_sust_b_3d_v2i32_trap
3126 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3127 llvm_i32_ty, llvm_i32_ty], [],
3128 "llvm.nvvm.sust.b.3d.v2i32.trap">,
3129 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">;
3130 def int_nvvm_sust_b_3d_v2i64_trap
3131 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3132 llvm_i64_ty, llvm_i64_ty], [],
3133 "llvm.nvvm.sust.b.3d.v2i64.trap">,
3134 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_trap">;
3135 def int_nvvm_sust_b_3d_v4i8_trap
3136 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3137 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3138 "llvm.nvvm.sust.b.3d.v4i8.trap">,
3139 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">;
3140 def int_nvvm_sust_b_3d_v4i16_trap
3141 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3142 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3143 "llvm.nvvm.sust.b.3d.v4i16.trap">,
3144 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">;
3145 def int_nvvm_sust_b_3d_v4i32_trap
3146 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3147 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3148 "llvm.nvvm.sust.b.3d.v4i32.trap">,
3149 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">;
3153 def int_nvvm_sust_b_1d_i8_zero
3154 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3155 "llvm.nvvm.sust.b.1d.i8.zero">,
3156 GCCBuiltin<"__nvvm_sust_b_1d_i8_zero">;
3157 def int_nvvm_sust_b_1d_i16_zero
3158 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3159 "llvm.nvvm.sust.b.1d.i16.zero">,
3160 GCCBuiltin<"__nvvm_sust_b_1d_i16_zero">;
3161 def int_nvvm_sust_b_1d_i32_zero
3162 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
3163 "llvm.nvvm.sust.b.1d.i32.zero">,
3164 GCCBuiltin<"__nvvm_sust_b_1d_i32_zero">;
3165 def int_nvvm_sust_b_1d_i64_zero
3166 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
3167 "llvm.nvvm.sust.b.1d.i64.zero">,
3168 GCCBuiltin<"__nvvm_sust_b_1d_i64_zero">;
3169 def int_nvvm_sust_b_1d_v2i8_zero
3170 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3171 "llvm.nvvm.sust.b.1d.v2i8.zero">,
3172 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_zero">;
3173 def int_nvvm_sust_b_1d_v2i16_zero
3174 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3175 "llvm.nvvm.sust.b.1d.v2i16.zero">,
3176 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_zero">;
3177 def int_nvvm_sust_b_1d_v2i32_zero
3178 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3179 "llvm.nvvm.sust.b.1d.v2i32.zero">,
3180 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_zero">;
3181 def int_nvvm_sust_b_1d_v2i64_zero
3182 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
3183 "llvm.nvvm.sust.b.1d.v2i64.zero">,
3184 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_zero">;
3185 def int_nvvm_sust_b_1d_v4i8_zero
3186 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3187 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3188 "llvm.nvvm.sust.b.1d.v4i8.zero">,
3189 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_zero">;
3190 def int_nvvm_sust_b_1d_v4i16_zero
3191 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3192 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3193 "llvm.nvvm.sust.b.1d.v4i16.zero">,
3194 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_zero">;
3195 def int_nvvm_sust_b_1d_v4i32_zero
3196 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3197 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3198 "llvm.nvvm.sust.b.1d.v4i32.zero">,
3199 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_zero">;
3202 def int_nvvm_sust_b_1d_array_i8_zero
3203 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3204 "llvm.nvvm.sust.b.1d.array.i8.zero">,
3205 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_zero">;
3206 def int_nvvm_sust_b_1d_array_i16_zero
3207 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3208 "llvm.nvvm.sust.b.1d.array.i16.zero">,
3209 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_zero">;
3210 def int_nvvm_sust_b_1d_array_i32_zero
3211 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3212 "llvm.nvvm.sust.b.1d.array.i32.zero">,
3213 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_zero">;
3214 def int_nvvm_sust_b_1d_array_i64_zero
3215 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
3216 "llvm.nvvm.sust.b.1d.array.i64.zero">,
3217 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_zero">;
3218 def int_nvvm_sust_b_1d_array_v2i8_zero
3219 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3220 llvm_i16_ty, llvm_i16_ty], [],
3221 "llvm.nvvm.sust.b.1d.array.v2i8.zero">,
3222 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_zero">;
3223 def int_nvvm_sust_b_1d_array_v2i16_zero
3224 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3225 llvm_i16_ty, llvm_i16_ty], [],
3226 "llvm.nvvm.sust.b.1d.array.v2i16.zero">,
3227 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_zero">;
3228 def int_nvvm_sust_b_1d_array_v2i32_zero
3229 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3230 llvm_i32_ty, llvm_i32_ty], [],
3231 "llvm.nvvm.sust.b.1d.array.v2i32.zero">,
3232 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_zero">;
3233 def int_nvvm_sust_b_1d_array_v2i64_zero
3234 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3235 llvm_i64_ty, llvm_i64_ty], [],
3236 "llvm.nvvm.sust.b.1d.array.v2i64.zero">,
3237 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_zero">;
3238 def int_nvvm_sust_b_1d_array_v4i8_zero
3239 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3240 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3241 "llvm.nvvm.sust.b.1d.array.v4i8.zero">,
3242 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_zero">;
3243 def int_nvvm_sust_b_1d_array_v4i16_zero
3244 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3245 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3246 "llvm.nvvm.sust.b.1d.array.v4i16.zero">,
3247 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_zero">;
3248 def int_nvvm_sust_b_1d_array_v4i32_zero
3249 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3250 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3251 "llvm.nvvm.sust.b.1d.array.v4i32.zero">,
3252 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_zero">;
3255 def int_nvvm_sust_b_2d_i8_zero
3256 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3257 "llvm.nvvm.sust.b.2d.i8.zero">,
3258 GCCBuiltin<"__nvvm_sust_b_2d_i8_zero">;
3259 def int_nvvm_sust_b_2d_i16_zero
3260 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3261 "llvm.nvvm.sust.b.2d.i16.zero">,
3262 GCCBuiltin<"__nvvm_sust_b_2d_i16_zero">;
3263 def int_nvvm_sust_b_2d_i32_zero
3264 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3265 "llvm.nvvm.sust.b.2d.i32.zero">,
3266 GCCBuiltin<"__nvvm_sust_b_2d_i32_zero">;
3267 def int_nvvm_sust_b_2d_i64_zero
3268 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
3269 "llvm.nvvm.sust.b.2d.i64.zero">,
3270 GCCBuiltin<"__nvvm_sust_b_2d_i64_zero">;
3271 def int_nvvm_sust_b_2d_v2i8_zero
3272 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3273 llvm_i16_ty, llvm_i16_ty], [],
3274 "llvm.nvvm.sust.b.2d.v2i8.zero">,
3275 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_zero">;
3276 def int_nvvm_sust_b_2d_v2i16_zero
3277 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3278 llvm_i16_ty, llvm_i16_ty], [],
3279 "llvm.nvvm.sust.b.2d.v2i16.zero">,
3280 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_zero">;
3281 def int_nvvm_sust_b_2d_v2i32_zero
3282 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3283 llvm_i32_ty, llvm_i32_ty], [],
3284 "llvm.nvvm.sust.b.2d.v2i32.zero">,
3285 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_zero">;
3286 def int_nvvm_sust_b_2d_v2i64_zero
3287 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3288 llvm_i64_ty, llvm_i64_ty], [],
3289 "llvm.nvvm.sust.b.2d.v2i64.zero">,
3290 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_zero">;
3291 def int_nvvm_sust_b_2d_v4i8_zero
3292 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3293 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3294 "llvm.nvvm.sust.b.2d.v4i8.zero">,
3295 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_zero">;
3296 def int_nvvm_sust_b_2d_v4i16_zero
3297 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3298 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3299 "llvm.nvvm.sust.b.2d.v4i16.zero">,
3300 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_zero">;
3301 def int_nvvm_sust_b_2d_v4i32_zero
3302 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3303 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3304 "llvm.nvvm.sust.b.2d.v4i32.zero">,
3305 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_zero">;
3308 def int_nvvm_sust_b_2d_array_i8_zero
3309 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3310 llvm_i32_ty, llvm_i16_ty], [],
3311 "llvm.nvvm.sust.b.2d.array.i8.zero">,
3312 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_zero">;
3313 def int_nvvm_sust_b_2d_array_i16_zero
3314 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3315 llvm_i32_ty, llvm_i16_ty], [],
3316 "llvm.nvvm.sust.b.2d.array.i16.zero">,
3317 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_zero">;
3318 def int_nvvm_sust_b_2d_array_i32_zero
3319 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3320 llvm_i32_ty, llvm_i32_ty], [],
3321 "llvm.nvvm.sust.b.2d.array.i32.zero">,
3322 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_zero">;
3323 def int_nvvm_sust_b_2d_array_i64_zero
3324 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3325 llvm_i32_ty, llvm_i64_ty], [],
3326 "llvm.nvvm.sust.b.2d.array.i64.zero">,
3327 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_zero">;
3328 def int_nvvm_sust_b_2d_array_v2i8_zero
3329 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3330 llvm_i16_ty, llvm_i16_ty], [],
3331 "llvm.nvvm.sust.b.2d.array.v2i8.zero">,
3332 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_zero">;
3333 def int_nvvm_sust_b_2d_array_v2i16_zero
3334 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3335 llvm_i16_ty, llvm_i16_ty], [],
3336 "llvm.nvvm.sust.b.2d.array.v2i16.zero">,
3337 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_zero">;
3338 def int_nvvm_sust_b_2d_array_v2i32_zero
3339 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3340 llvm_i32_ty, llvm_i32_ty], [],
3341 "llvm.nvvm.sust.b.2d.array.v2i32.zero">,
3342 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_zero">;
3343 def int_nvvm_sust_b_2d_array_v2i64_zero
3344 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3345 llvm_i64_ty, llvm_i64_ty], [],
3346 "llvm.nvvm.sust.b.2d.array.v2i64.zero">,
3347 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_zero">;
3348 def int_nvvm_sust_b_2d_array_v4i8_zero
3349 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3350 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3351 "llvm.nvvm.sust.b.2d.array.v4i8.zero">,
3352 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_zero">;
3353 def int_nvvm_sust_b_2d_array_v4i16_zero
3354 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3355 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3356 "llvm.nvvm.sust.b.2d.array.v4i16.zero">,
3357 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_zero">;
3358 def int_nvvm_sust_b_2d_array_v4i32_zero
3359 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3360 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3361 "llvm.nvvm.sust.b.2d.array.v4i32.zero">,
3362 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_zero">;
3365 def int_nvvm_sust_b_3d_i8_zero
3366 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3367 llvm_i32_ty, llvm_i16_ty], [],
3368 "llvm.nvvm.sust.b.3d.i8.zero">,
3369 GCCBuiltin<"__nvvm_sust_b_3d_i8_zero">;
3370 def int_nvvm_sust_b_3d_i16_zero
3371 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3372 llvm_i32_ty, llvm_i16_ty], [],
3373 "llvm.nvvm.sust.b.3d.i16.zero">,
3374 GCCBuiltin<"__nvvm_sust_b_3d_i16_zero">;
3375 def int_nvvm_sust_b_3d_i32_zero
3376 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3377 llvm_i32_ty, llvm_i32_ty], [],
3378 "llvm.nvvm.sust.b.3d.i32.zero">,
3379 GCCBuiltin<"__nvvm_sust_b_3d_i32_zero">;
3380 def int_nvvm_sust_b_3d_i64_zero
3381 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3382 llvm_i32_ty, llvm_i64_ty], [],
3383 "llvm.nvvm.sust.b.3d.i64.zero">,
3384 GCCBuiltin<"__nvvm_sust_b_3d_i64_zero">;
3385 def int_nvvm_sust_b_3d_v2i8_zero
3386 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3387 llvm_i16_ty, llvm_i16_ty], [],
3388 "llvm.nvvm.sust.b.3d.v2i8.zero">,
3389 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_zero">;
3390 def int_nvvm_sust_b_3d_v2i16_zero
3391 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3392 llvm_i16_ty, llvm_i16_ty], [],
3393 "llvm.nvvm.sust.b.3d.v2i16.zero">,
3394 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_zero">;
3395 def int_nvvm_sust_b_3d_v2i32_zero
3396 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3397 llvm_i32_ty, llvm_i32_ty], [],
3398 "llvm.nvvm.sust.b.3d.v2i32.zero">,
3399 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_zero">;
3400 def int_nvvm_sust_b_3d_v2i64_zero
3401 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3402 llvm_i64_ty, llvm_i64_ty], [],
3403 "llvm.nvvm.sust.b.3d.v2i64.zero">,
3404 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_zero">;
3405 def int_nvvm_sust_b_3d_v4i8_zero
3406 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3407 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3408 "llvm.nvvm.sust.b.3d.v4i8.zero">,
3409 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_zero">;
3410 def int_nvvm_sust_b_3d_v4i16_zero
3411 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3412 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3413 "llvm.nvvm.sust.b.3d.v4i16.zero">,
3414 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_zero">;
3415 def int_nvvm_sust_b_3d_v4i32_zero
3416 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3417 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3418 "llvm.nvvm.sust.b.3d.v4i32.zero">,
3419 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_zero">;
3425 def int_nvvm_sust_p_1d_i8_trap
3426 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3427 "llvm.nvvm.sust.p.1d.i8.trap">,
3428 GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">;
3429 def int_nvvm_sust_p_1d_i16_trap
3430 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
3431 "llvm.nvvm.sust.p.1d.i16.trap">,
3432 GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">;
3433 def int_nvvm_sust_p_1d_i32_trap
3434 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
3435 "llvm.nvvm.sust.p.1d.i32.trap">,
3436 GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">;
3437 def int_nvvm_sust_p_1d_v2i8_trap
3438 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3439 "llvm.nvvm.sust.p.1d.v2i8.trap">,
3440 GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">;
3441 def int_nvvm_sust_p_1d_v2i16_trap
3442 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
3443 "llvm.nvvm.sust.p.1d.v2i16.trap">,
3444 GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">;
3445 def int_nvvm_sust_p_1d_v2i32_trap
3446 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3447 "llvm.nvvm.sust.p.1d.v2i32.trap">,
3448 GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">;
3449 def int_nvvm_sust_p_1d_v4i8_trap
3450 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3451 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3452 "llvm.nvvm.sust.p.1d.v4i8.trap">,
3453 GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">;
3454 def int_nvvm_sust_p_1d_v4i16_trap
3455 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
3456 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3457 "llvm.nvvm.sust.p.1d.v4i16.trap">,
3458 GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">;
3459 def int_nvvm_sust_p_1d_v4i32_trap
3460 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3461 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3462 "llvm.nvvm.sust.p.1d.v4i32.trap">,
3463 GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">;
3466 def int_nvvm_sust_p_1d_array_i8_trap
3467 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3468 "llvm.nvvm.sust.p.1d.array.i8.trap">,
3469 GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">;
3470 def int_nvvm_sust_p_1d_array_i16_trap
3471 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3472 "llvm.nvvm.sust.p.1d.array.i16.trap">,
3473 GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">;
3474 def int_nvvm_sust_p_1d_array_i32_trap
3475 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3476 "llvm.nvvm.sust.p.1d.array.i32.trap">,
3477 GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">;
3478 def int_nvvm_sust_p_1d_array_v2i8_trap
3479 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3480 llvm_i16_ty, llvm_i16_ty], [],
3481 "llvm.nvvm.sust.p.1d.array.v2i8.trap">,
3482 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">;
3483 def int_nvvm_sust_p_1d_array_v2i16_trap
3484 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3485 llvm_i16_ty, llvm_i16_ty], [],
3486 "llvm.nvvm.sust.p.1d.array.v2i16.trap">,
3487 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">;
3488 def int_nvvm_sust_p_1d_array_v2i32_trap
3489 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3490 llvm_i32_ty, llvm_i32_ty], [],
3491 "llvm.nvvm.sust.p.1d.array.v2i32.trap">,
3492 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">;
3493 def int_nvvm_sust_p_1d_array_v4i8_trap
3494 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3495 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3496 "llvm.nvvm.sust.p.1d.array.v4i8.trap">,
3497 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">;
3498 def int_nvvm_sust_p_1d_array_v4i16_trap
3499 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3500 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3501 "llvm.nvvm.sust.p.1d.array.v4i16.trap">,
3502 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">;
3503 def int_nvvm_sust_p_1d_array_v4i32_trap
3504 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3505 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3506 "llvm.nvvm.sust.p.1d.array.v4i32.trap">,
3507 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">;
3510 def int_nvvm_sust_p_2d_i8_trap
3511 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3512 "llvm.nvvm.sust.p.2d.i8.trap">,
3513 GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">;
3514 def int_nvvm_sust_p_2d_i16_trap
3515 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
3516 "llvm.nvvm.sust.p.2d.i16.trap">,
3517 GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">;
3518 def int_nvvm_sust_p_2d_i32_trap
3519 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3520 "llvm.nvvm.sust.p.2d.i32.trap">,
3521 GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">;
3522 def int_nvvm_sust_p_2d_v2i8_trap
3523 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3524 llvm_i16_ty, llvm_i16_ty], [],
3525 "llvm.nvvm.sust.p.2d.v2i8.trap">,
3526 GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">;
3527 def int_nvvm_sust_p_2d_v2i16_trap
3528 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3529 llvm_i16_ty, llvm_i16_ty], [],
3530 "llvm.nvvm.sust.p.2d.v2i16.trap">,
3531 GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">;
3532 def int_nvvm_sust_p_2d_v2i32_trap
3533 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3534 llvm_i32_ty, llvm_i32_ty], [],
3535 "llvm.nvvm.sust.p.2d.v2i32.trap">,
3536 GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">;
3537 def int_nvvm_sust_p_2d_v4i8_trap
3538 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3539 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3540 "llvm.nvvm.sust.p.2d.v4i8.trap">,
3541 GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">;
3542 def int_nvvm_sust_p_2d_v4i16_trap
3543 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
3544 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3545 "llvm.nvvm.sust.p.2d.v4i16.trap">,
3546 GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">;
3547 def int_nvvm_sust_p_2d_v4i32_trap
3548 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3549 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3550 "llvm.nvvm.sust.p.2d.v4i32.trap">,
3551 GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">;
3554 def int_nvvm_sust_p_2d_array_i8_trap
3555 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3556 llvm_i32_ty, llvm_i16_ty], [],
3557 "llvm.nvvm.sust.p.2d.array.i8.trap">,
3558 GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">;
3559 def int_nvvm_sust_p_2d_array_i16_trap
3560 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3561 llvm_i32_ty, llvm_i16_ty], [],
3562 "llvm.nvvm.sust.p.2d.array.i16.trap">,
3563 GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">;
3564 def int_nvvm_sust_p_2d_array_i32_trap
3565 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3566 llvm_i32_ty, llvm_i32_ty], [],
3567 "llvm.nvvm.sust.p.2d.array.i32.trap">,
3568 GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">;
3569 def int_nvvm_sust_p_2d_array_v2i8_trap
3570 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3571 llvm_i16_ty, llvm_i16_ty], [],
3572 "llvm.nvvm.sust.p.2d.array.v2i8.trap">,
3573 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">;
3574 def int_nvvm_sust_p_2d_array_v2i16_trap
3575 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3576 llvm_i16_ty, llvm_i16_ty], [],
3577 "llvm.nvvm.sust.p.2d.array.v2i16.trap">,
3578 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">;
3579 def int_nvvm_sust_p_2d_array_v2i32_trap
3580 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3581 llvm_i32_ty, llvm_i32_ty], [],
3582 "llvm.nvvm.sust.p.2d.array.v2i32.trap">,
3583 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">;
3584 def int_nvvm_sust_p_2d_array_v4i8_trap
3585 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3586 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3587 "llvm.nvvm.sust.p.2d.array.v4i8.trap">,
3588 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">;
3589 def int_nvvm_sust_p_2d_array_v4i16_trap
3590 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3591 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3592 "llvm.nvvm.sust.p.2d.array.v4i16.trap">,
3593 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">;
3594 def int_nvvm_sust_p_2d_array_v4i32_trap
3595 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3596 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3597 "llvm.nvvm.sust.p.2d.array.v4i32.trap">,
3598 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">;
3601 def int_nvvm_sust_p_3d_i8_trap
3602 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3603 llvm_i32_ty, llvm_i16_ty], [],
3604 "llvm.nvvm.sust.p.3d.i8.trap">,
3605 GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">;
3606 def int_nvvm_sust_p_3d_i16_trap
3607 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3608 llvm_i32_ty, llvm_i16_ty], [],
3609 "llvm.nvvm.sust.p.3d.i16.trap">,
3610 GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">;
3611 def int_nvvm_sust_p_3d_i32_trap
3612 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
3613 llvm_i32_ty, llvm_i32_ty], [],
3614 "llvm.nvvm.sust.p.3d.i32.trap">,
3615 GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">;
3616 def int_nvvm_sust_p_3d_v2i8_trap
3617 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3618 llvm_i16_ty, llvm_i16_ty], [],
3619 "llvm.nvvm.sust.p.3d.v2i8.trap">,
3620 GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">;
3621 def int_nvvm_sust_p_3d_v2i16_trap
3622 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3623 llvm_i16_ty, llvm_i16_ty], [],
3624 "llvm.nvvm.sust.p.3d.v2i16.trap">,
3625 GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">;
3626 def int_nvvm_sust_p_3d_v2i32_trap
3627 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3628 llvm_i32_ty, llvm_i32_ty], [],
3629 "llvm.nvvm.sust.p.3d.v2i32.trap">,
3630 GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">;
3631 def int_nvvm_sust_p_3d_v4i8_trap
3632 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3633 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3634 "llvm.nvvm.sust.p.3d.v4i8.trap">,
3635 GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">;
3636 def int_nvvm_sust_p_3d_v4i16_trap
3637 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3638 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
3639 "llvm.nvvm.sust.p.3d.v4i16.trap">,
3640 GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">;
3641 def int_nvvm_sust_p_3d_v4i32_trap
3642 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
3643 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
3644 "llvm.nvvm.sust.p.3d.v4i32.trap">,
3645 GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">;
3648 def int_nvvm_rotate_b32
3649 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
3650 [IntrNoMem], "llvm.nvvm.rotate.b32">,
3651 GCCBuiltin<"__nvvm_rotate_b32">;
3653 def int_nvvm_rotate_b64
3654 :Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
3655 [IntrNoMem], "llvm.nvvm.rotate.b64">,
3656 GCCBuiltin<"__nvvm_rotate_b64">;
3658 def int_nvvm_rotate_right_b64
3659 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
3660 [IntrNoMem], "llvm.nvvm.rotate.right.b64">,
3661 GCCBuiltin<"__nvvm_rotate_right_b64">;
3663 def int_nvvm_swap_lo_hi_b64
3664 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty],
3665 [IntrNoMem], "llvm.nvvm.swap.lo.hi.b64">,
3666 GCCBuiltin<"__nvvm_swap_lo_hi_b64">;
3669 // Old PTX back-end intrinsics retained here for backwards-compatibility
3671 multiclass PTXReadSpecialRegisterIntrinsic_v4i32<string prefix> {
3672 // FIXME: Do we need the 128-bit integer type version?
3673 // def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem]>;
3675 // FIXME: Enable this once v4i32 support is enabled in back-end.
3676 // def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>;
3678 def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3679 GCCBuiltin<!strconcat(prefix, "_x")>;
3680 def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3681 GCCBuiltin<!strconcat(prefix, "_y")>;
3682 def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3683 GCCBuiltin<!strconcat(prefix, "_z")>;
3684 def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3685 GCCBuiltin<!strconcat(prefix, "_w")>;
3688 class PTXReadSpecialRegisterIntrinsic_r32<string name>
3689 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
3692 class PTXReadSpecialRegisterIntrinsic_r64<string name>
3693 : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>,
3696 defm int_ptx_read_tid : PTXReadSpecialRegisterIntrinsic_v4i32
3697 <"__builtin_ptx_read_tid">;
3698 defm int_ptx_read_ntid : PTXReadSpecialRegisterIntrinsic_v4i32
3699 <"__builtin_ptx_read_ntid">;
3701 def int_ptx_read_laneid : PTXReadSpecialRegisterIntrinsic_r32
3702 <"__builtin_ptx_read_laneid">;
3703 def int_ptx_read_warpid : PTXReadSpecialRegisterIntrinsic_r32
3704 <"__builtin_ptx_read_warpid">;
3705 def int_ptx_read_nwarpid : PTXReadSpecialRegisterIntrinsic_r32
3706 <"__builtin_ptx_read_nwarpid">;
3708 defm int_ptx_read_ctaid : PTXReadSpecialRegisterIntrinsic_v4i32
3709 <"__builtin_ptx_read_ctaid">;
3710 defm int_ptx_read_nctaid : PTXReadSpecialRegisterIntrinsic_v4i32
3711 <"__builtin_ptx_read_nctaid">;
3713 def int_ptx_read_smid : PTXReadSpecialRegisterIntrinsic_r32
3714 <"__builtin_ptx_read_smid">;
3715 def int_ptx_read_nsmid : PTXReadSpecialRegisterIntrinsic_r32
3716 <"__builtin_ptx_read_nsmid">;
3717 def int_ptx_read_gridid : PTXReadSpecialRegisterIntrinsic_r32
3718 <"__builtin_ptx_read_gridid">;
3720 def int_ptx_read_lanemask_eq : PTXReadSpecialRegisterIntrinsic_r32
3721 <"__builtin_ptx_read_lanemask_eq">;
3722 def int_ptx_read_lanemask_le : PTXReadSpecialRegisterIntrinsic_r32
3723 <"__builtin_ptx_read_lanemask_le">;
3724 def int_ptx_read_lanemask_lt : PTXReadSpecialRegisterIntrinsic_r32
3725 <"__builtin_ptx_read_lanemask_lt">;
3726 def int_ptx_read_lanemask_ge : PTXReadSpecialRegisterIntrinsic_r32
3727 <"__builtin_ptx_read_lanemask_ge">;
3728 def int_ptx_read_lanemask_gt : PTXReadSpecialRegisterIntrinsic_r32
3729 <"__builtin_ptx_read_lanemask_gt">;
3731 def int_ptx_read_clock : PTXReadSpecialRegisterIntrinsic_r32
3732 <"__builtin_ptx_read_clock">;
3733 def int_ptx_read_clock64 : PTXReadSpecialRegisterIntrinsic_r64
3734 <"__builtin_ptx_read_clock64">;
3736 def int_ptx_read_pm0 : PTXReadSpecialRegisterIntrinsic_r32
3737 <"__builtin_ptx_read_pm0">;
3738 def int_ptx_read_pm1 : PTXReadSpecialRegisterIntrinsic_r32
3739 <"__builtin_ptx_read_pm1">;
3740 def int_ptx_read_pm2 : PTXReadSpecialRegisterIntrinsic_r32
3741 <"__builtin_ptx_read_pm2">;
3742 def int_ptx_read_pm3 : PTXReadSpecialRegisterIntrinsic_r32
3743 <"__builtin_ptx_read_pm3">;
3745 def int_ptx_bar_sync : Intrinsic<[], [llvm_i32_ty], []>,
3746 GCCBuiltin<"__builtin_ptx_bar_sync">;