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>>], [IntrReadMem, NoCapture<0>],
801 "llvm.nvvm.ldu.global.i">;
802 def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty],
803 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>],
804 "llvm.nvvm.ldu.global.f">;
805 def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty],
806 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>],
807 "llvm.nvvm.ldu.global.p">;
809 // Generated within nvvm. Use for ldg on sm_35 or later
810 def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty],
811 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>],
812 "llvm.nvvm.ldg.global.i">;
813 def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty],
814 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>],
815 "llvm.nvvm.ldg.global.f">;
816 def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty],
817 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>],
818 "llvm.nvvm.ldg.global.p">;
820 // Use for generic pointers
821 // - These intrinsics are used to convert address spaces.
822 // - The input pointer and output pointer must have the same type, except for
823 // the address-space. (This restriction is not enforced here as there is
824 // currently no way to describe it).
825 // - This complements the llvm bitcast, which can be used to cast one type
826 // of pointer to another type of pointer, while the address space remains
828 def int_nvvm_ptr_local_to_gen: Intrinsic<[llvm_anyptr_ty],
829 [llvm_anyptr_ty], [IntrNoMem],
830 "llvm.nvvm.ptr.local.to.gen">;
831 def int_nvvm_ptr_shared_to_gen: Intrinsic<[llvm_anyptr_ty],
832 [llvm_anyptr_ty], [IntrNoMem],
833 "llvm.nvvm.ptr.shared.to.gen">;
834 def int_nvvm_ptr_global_to_gen: Intrinsic<[llvm_anyptr_ty],
835 [llvm_anyptr_ty], [IntrNoMem],
836 "llvm.nvvm.ptr.global.to.gen">;
837 def int_nvvm_ptr_constant_to_gen: Intrinsic<[llvm_anyptr_ty],
838 [llvm_anyptr_ty], [IntrNoMem],
839 "llvm.nvvm.ptr.constant.to.gen">;
841 def int_nvvm_ptr_gen_to_global: Intrinsic<[llvm_anyptr_ty],
842 [llvm_anyptr_ty], [IntrNoMem],
843 "llvm.nvvm.ptr.gen.to.global">;
844 def int_nvvm_ptr_gen_to_shared: Intrinsic<[llvm_anyptr_ty],
845 [llvm_anyptr_ty], [IntrNoMem],
846 "llvm.nvvm.ptr.gen.to.shared">;
847 def int_nvvm_ptr_gen_to_local: Intrinsic<[llvm_anyptr_ty],
848 [llvm_anyptr_ty], [IntrNoMem],
849 "llvm.nvvm.ptr.gen.to.local">;
850 def int_nvvm_ptr_gen_to_constant: Intrinsic<[llvm_anyptr_ty],
851 [llvm_anyptr_ty], [IntrNoMem],
852 "llvm.nvvm.ptr.gen.to.constant">;
854 // Used in nvvm internally to help address space opt and ptx code generation
855 // This is for params that are passed to kernel functions by pointer by-val.
856 def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty],
859 "llvm.nvvm.ptr.gen.to.param">;
861 // Move intrinsics, used in nvvm internally
863 def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem],
864 "llvm.nvvm.move.i16">;
865 def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem],
866 "llvm.nvvm.move.i32">;
867 def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem],
868 "llvm.nvvm.move.i64">;
869 def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty],
870 [IntrNoMem], "llvm.nvvm.move.float">;
871 def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty],
872 [IntrNoMem], "llvm.nvvm.move.double">;
873 def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty],
874 [IntrNoMem, NoCapture<0>], "llvm.nvvm.move.ptr">;
877 // For getting the handle from a texture or surface variable
878 def int_nvvm_texsurf_handle
879 : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_anyi64ptr_ty],
880 [IntrNoMem], "llvm.nvvm.texsurf.handle">;
881 def int_nvvm_texsurf_handle_internal
882 : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty],
883 [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">;
886 def int_nvvm_compiler_error :
887 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">;
888 def int_nvvm_compiler_warn :
889 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">;
891 // isspacep.{const, global, local, shared}
892 def int_nvvm_isspacep_const
893 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
894 "llvm.nvvm.isspacep.const">,
895 GCCBuiltin<"__nvvm_isspacep_const">;
896 def int_nvvm_isspacep_global
897 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
898 "llvm.nvvm.isspacep.global">,
899 GCCBuiltin<"__nvvm_isspacep_global">;
900 def int_nvvm_isspacep_local
901 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
902 "llvm.nvvm.isspacep.local">,
903 GCCBuiltin<"__nvvm_isspacep_local">;
904 def int_nvvm_isspacep_shared
905 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem],
906 "llvm.nvvm.isspacep.shared">,
907 GCCBuiltin<"__nvvm_isspacep_shared">;
909 // Environment register read
910 def int_nvvm_read_ptx_sreg_envreg0
911 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
912 "llvm.nvvm.read.ptx.sreg.envreg0">,
913 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">;
914 def int_nvvm_read_ptx_sreg_envreg1
915 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
916 "llvm.nvvm.read.ptx.sreg.envreg1">,
917 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">;
918 def int_nvvm_read_ptx_sreg_envreg2
919 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
920 "llvm.nvvm.read.ptx.sreg.envreg2">,
921 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">;
922 def int_nvvm_read_ptx_sreg_envreg3
923 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
924 "llvm.nvvm.read.ptx.sreg.envreg3">,
925 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">;
926 def int_nvvm_read_ptx_sreg_envreg4
927 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
928 "llvm.nvvm.read.ptx.sreg.envreg4">,
929 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">;
930 def int_nvvm_read_ptx_sreg_envreg5
931 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
932 "llvm.nvvm.read.ptx.sreg.envreg5">,
933 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">;
934 def int_nvvm_read_ptx_sreg_envreg6
935 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
936 "llvm.nvvm.read.ptx.sreg.envreg6">,
937 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">;
938 def int_nvvm_read_ptx_sreg_envreg7
939 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
940 "llvm.nvvm.read.ptx.sreg.envreg7">,
941 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">;
942 def int_nvvm_read_ptx_sreg_envreg8
943 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
944 "llvm.nvvm.read.ptx.sreg.envreg8">,
945 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">;
946 def int_nvvm_read_ptx_sreg_envreg9
947 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
948 "llvm.nvvm.read.ptx.sreg.envreg9">,
949 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">;
950 def int_nvvm_read_ptx_sreg_envreg10
951 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
952 "llvm.nvvm.read.ptx.sreg.envreg10">,
953 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">;
954 def int_nvvm_read_ptx_sreg_envreg11
955 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
956 "llvm.nvvm.read.ptx.sreg.envreg11">,
957 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">;
958 def int_nvvm_read_ptx_sreg_envreg12
959 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
960 "llvm.nvvm.read.ptx.sreg.envreg12">,
961 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">;
962 def int_nvvm_read_ptx_sreg_envreg13
963 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
964 "llvm.nvvm.read.ptx.sreg.envreg13">,
965 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">;
966 def int_nvvm_read_ptx_sreg_envreg14
967 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
968 "llvm.nvvm.read.ptx.sreg.envreg14">,
969 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">;
970 def int_nvvm_read_ptx_sreg_envreg15
971 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
972 "llvm.nvvm.read.ptx.sreg.envreg15">,
973 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">;
974 def int_nvvm_read_ptx_sreg_envreg16
975 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
976 "llvm.nvvm.read.ptx.sreg.envreg16">,
977 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">;
978 def int_nvvm_read_ptx_sreg_envreg17
979 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
980 "llvm.nvvm.read.ptx.sreg.envreg17">,
981 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">;
982 def int_nvvm_read_ptx_sreg_envreg18
983 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
984 "llvm.nvvm.read.ptx.sreg.envreg18">,
985 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">;
986 def int_nvvm_read_ptx_sreg_envreg19
987 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
988 "llvm.nvvm.read.ptx.sreg.envreg19">,
989 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">;
990 def int_nvvm_read_ptx_sreg_envreg20
991 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
992 "llvm.nvvm.read.ptx.sreg.envreg20">,
993 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">;
994 def int_nvvm_read_ptx_sreg_envreg21
995 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
996 "llvm.nvvm.read.ptx.sreg.envreg21">,
997 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">;
998 def int_nvvm_read_ptx_sreg_envreg22
999 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1000 "llvm.nvvm.read.ptx.sreg.envreg22">,
1001 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">;
1002 def int_nvvm_read_ptx_sreg_envreg23
1003 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1004 "llvm.nvvm.read.ptx.sreg.envreg23">,
1005 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">;
1006 def int_nvvm_read_ptx_sreg_envreg24
1007 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1008 "llvm.nvvm.read.ptx.sreg.envreg24">,
1009 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">;
1010 def int_nvvm_read_ptx_sreg_envreg25
1011 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1012 "llvm.nvvm.read.ptx.sreg.envreg25">,
1013 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">;
1014 def int_nvvm_read_ptx_sreg_envreg26
1015 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1016 "llvm.nvvm.read.ptx.sreg.envreg26">,
1017 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">;
1018 def int_nvvm_read_ptx_sreg_envreg27
1019 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1020 "llvm.nvvm.read.ptx.sreg.envreg27">,
1021 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">;
1022 def int_nvvm_read_ptx_sreg_envreg28
1023 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1024 "llvm.nvvm.read.ptx.sreg.envreg28">,
1025 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">;
1026 def int_nvvm_read_ptx_sreg_envreg29
1027 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1028 "llvm.nvvm.read.ptx.sreg.envreg29">,
1029 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">;
1030 def int_nvvm_read_ptx_sreg_envreg30
1031 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1032 "llvm.nvvm.read.ptx.sreg.envreg30">,
1033 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">;
1034 def int_nvvm_read_ptx_sreg_envreg31
1035 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem],
1036 "llvm.nvvm.read.ptx.sreg.envreg31">,
1037 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">;
1041 def int_nvvm_tex_1d_v4f32_i32
1042 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1043 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1044 "llvm.nvvm.tex.1d.v4f32.i32">;
1045 def int_nvvm_tex_1d_v4f32_f32
1046 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1047 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1048 "llvm.nvvm.tex.1d.v4f32.f32">;
1049 def int_nvvm_tex_1d_level_v4f32_f32
1050 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1051 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1052 "llvm.nvvm.tex.1d.level.v4f32.f32">;
1053 def int_nvvm_tex_1d_grad_v4f32_f32
1054 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1055 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1057 "llvm.nvvm.tex.1d.grad.v4f32.f32">;
1058 def int_nvvm_tex_1d_v4i32_i32
1059 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1060 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
1061 "llvm.nvvm.tex.1d.v4i32.i32">;
1062 def int_nvvm_tex_1d_v4i32_f32
1063 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1064 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
1065 "llvm.nvvm.tex.1d.v4i32.f32">;
1066 def int_nvvm_tex_1d_level_v4i32_f32
1067 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1068 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1069 "llvm.nvvm.tex.1d.level.v4i32.f32.level">;
1070 def int_nvvm_tex_1d_grad_v4i32_f32
1071 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1072 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1074 "llvm.nvvm.tex.1d.grad.v4i32.f32">;
1076 def int_nvvm_tex_1d_array_v4f32_i32
1077 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1078 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1079 "llvm.nvvm.tex.1d.array.v4f32.i32">;
1080 def int_nvvm_tex_1d_array_v4f32_f32
1081 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1082 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1083 "llvm.nvvm.tex.1d.array.v4f32.f32">;
1084 def int_nvvm_tex_1d_array_level_v4f32_f32
1085 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1086 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1088 "llvm.nvvm.tex.1d.array.level.v4f32.f32">;
1089 def int_nvvm_tex_1d_array_grad_v4f32_f32
1090 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1091 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1092 llvm_float_ty, llvm_float_ty], [],
1093 "llvm.nvvm.tex.1d.array.grad.v4f32.f32">;
1094 def int_nvvm_tex_1d_array_v4i32_i32
1095 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1096 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1097 "llvm.nvvm.tex.1d.array.v4i32.i32">;
1098 def int_nvvm_tex_1d_array_v4i32_f32
1099 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1100 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
1101 "llvm.nvvm.tex.1d.array.v4i32.f32">;
1102 def int_nvvm_tex_1d_array_level_v4i32_f32
1103 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1104 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1106 "llvm.nvvm.tex.1d.array.level.v4i32.f32">;
1107 def int_nvvm_tex_1d_array_grad_v4i32_f32
1108 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1109 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1110 llvm_float_ty, llvm_float_ty], [],
1111 "llvm.nvvm.tex.1d.array.grad.v4i32.f32">;
1113 def int_nvvm_tex_2d_v4f32_i32
1114 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1115 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1116 "llvm.nvvm.tex.2d.v4f32.i32">;
1117 def int_nvvm_tex_2d_v4f32_f32
1118 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1119 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1120 "llvm.nvvm.tex.2d.v4f32.f32">;
1121 def int_nvvm_tex_2d_level_v4f32_f32
1122 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1123 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1125 "llvm.nvvm.tex.2d.level.v4f32.f32">;
1126 def int_nvvm_tex_2d_grad_v4f32_f32
1127 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1128 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1129 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1130 "llvm.nvvm.tex.2d.grad.v4f32.f32">;
1131 def int_nvvm_tex_2d_v4i32_i32
1132 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1133 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1134 "llvm.nvvm.tex.2d.v4i32.i32">;
1135 def int_nvvm_tex_2d_v4i32_f32
1136 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1137 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
1138 "llvm.nvvm.tex.2d.v4i32.f32">;
1139 def int_nvvm_tex_2d_level_v4i32_f32
1140 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1141 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1143 "llvm.nvvm.tex.2d.level.v4i32.f32">;
1144 def int_nvvm_tex_2d_grad_v4i32_f32
1145 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1146 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1147 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1148 "llvm.nvvm.tex.2d.grad.v4i32.f32">;
1150 def int_nvvm_tex_2d_array_v4f32_i32
1151 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1152 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1154 "llvm.nvvm.tex.2d.array.v4f32.i32">;
1155 def int_nvvm_tex_2d_array_v4f32_f32
1156 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1157 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1159 "llvm.nvvm.tex.2d.array.v4f32.f32">;
1160 def int_nvvm_tex_2d_array_level_v4f32_f32
1161 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1162 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1163 llvm_float_ty, llvm_float_ty], [],
1164 "llvm.nvvm.tex.2d.array.level.v4f32.f32">;
1165 def int_nvvm_tex_2d_array_grad_v4f32_f32
1166 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1167 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1168 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1170 "llvm.nvvm.tex.2d.array.grad.v4f32.f32">;
1171 def int_nvvm_tex_2d_array_v4i32_i32
1172 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1173 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1175 "llvm.nvvm.tex.2d.array.v4i32.i32">;
1176 def int_nvvm_tex_2d_array_v4i32_f32
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_float_ty,
1180 "llvm.nvvm.tex.2d.array.v4i32.f32">;
1181 def int_nvvm_tex_2d_array_level_v4i32_f32
1182 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1183 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1184 llvm_float_ty, llvm_float_ty], [],
1185 "llvm.nvvm.tex.2d.array.level.v4i32.f32">;
1186 def int_nvvm_tex_2d_array_grad_v4i32_f32
1187 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1188 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
1189 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1191 "llvm.nvvm.tex.2d.array.grad.v4i32.f32">;
1193 def int_nvvm_tex_3d_v4f32_i32
1194 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1195 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1196 [], "llvm.nvvm.tex.3d.v4f32.i32">;
1197 def int_nvvm_tex_3d_v4f32_f32
1198 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1199 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1201 "llvm.nvvm.tex.3d.v4f32.f32">;
1202 def int_nvvm_tex_3d_level_v4f32_f32
1203 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
1204 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1205 llvm_float_ty, llvm_float_ty], [],
1206 "llvm.nvvm.tex.3d.level.v4f32.f32">;
1207 def int_nvvm_tex_3d_grad_v4f32_f32
1208 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_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_float_ty, llvm_float_ty, llvm_float_ty], [],
1212 "llvm.nvvm.tex.3d.grad.v4f32.f32">;
1213 def int_nvvm_tex_3d_v4i32_i32
1214 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1215 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1216 [], "llvm.nvvm.tex.3d.v4i32.i32">;
1217 def int_nvvm_tex_3d_v4i32_f32
1218 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1219 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1221 "llvm.nvvm.tex.3d.v4i32.f32">;
1222 def int_nvvm_tex_3d_level_v4i32_f32
1223 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1224 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1225 llvm_float_ty, llvm_float_ty], [],
1226 "llvm.nvvm.tex.3d.level.v4i32.f32">;
1227 def int_nvvm_tex_3d_grad_v4i32_f32
1228 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1229 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
1230 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
1231 llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
1232 "llvm.nvvm.tex.3d.grad.v4i32.f32">;
1235 def int_nvvm_suld_1d_i8_trap
1236 : Intrinsic<[llvm_i16_ty],
1237 [llvm_i64_ty, llvm_i32_ty], [],
1238 "llvm.nvvm.suld.1d.i8.trap">;
1239 def int_nvvm_suld_1d_i16_trap
1240 : Intrinsic<[llvm_i16_ty],
1241 [llvm_i64_ty, llvm_i32_ty], [],
1242 "llvm.nvvm.suld.1d.i16.trap">;
1243 def int_nvvm_suld_1d_i32_trap
1244 : Intrinsic<[llvm_i32_ty],
1245 [llvm_i64_ty, llvm_i32_ty], [],
1246 "llvm.nvvm.suld.1d.i32.trap">;
1247 def int_nvvm_suld_1d_v2i8_trap
1248 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1249 [llvm_i64_ty, llvm_i32_ty], [],
1250 "llvm.nvvm.suld.1d.v2i8.trap">;
1251 def int_nvvm_suld_1d_v2i16_trap
1252 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1253 [llvm_i64_ty, llvm_i32_ty], [],
1254 "llvm.nvvm.suld.1d.v2i16.trap">;
1255 def int_nvvm_suld_1d_v2i32_trap
1256 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1257 [llvm_i64_ty, llvm_i32_ty], [],
1258 "llvm.nvvm.suld.1d.v2i32.trap">;
1259 def int_nvvm_suld_1d_v4i8_trap
1260 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1261 [llvm_i64_ty, llvm_i32_ty], [],
1262 "llvm.nvvm.suld.1d.v4i8.trap">;
1263 def int_nvvm_suld_1d_v4i16_trap
1264 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1265 [llvm_i64_ty, llvm_i32_ty], [],
1266 "llvm.nvvm.suld.1d.v4i16.trap">;
1267 def int_nvvm_suld_1d_v4i32_trap
1268 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1269 [llvm_i64_ty, llvm_i32_ty], [],
1270 "llvm.nvvm.suld.1d.v4i32.trap">;
1272 def int_nvvm_suld_1d_array_i8_trap
1273 : Intrinsic<[llvm_i16_ty],
1274 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1275 "llvm.nvvm.suld.1d.array.i8.trap">;
1276 def int_nvvm_suld_1d_array_i16_trap
1277 : Intrinsic<[llvm_i16_ty],
1278 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1279 "llvm.nvvm.suld.1d.array.i16.trap">;
1280 def int_nvvm_suld_1d_array_i32_trap
1281 : Intrinsic<[llvm_i32_ty],
1282 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1283 "llvm.nvvm.suld.1d.array.i32.trap">;
1284 def int_nvvm_suld_1d_array_v2i8_trap
1285 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1286 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1287 "llvm.nvvm.suld.1d.array.v2i8.trap">;
1288 def int_nvvm_suld_1d_array_v2i16_trap
1289 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1290 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1291 "llvm.nvvm.suld.1d.array.v2i16.trap">;
1292 def int_nvvm_suld_1d_array_v2i32_trap
1293 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1294 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1295 "llvm.nvvm.suld.1d.array.v2i32.trap">;
1296 def int_nvvm_suld_1d_array_v4i8_trap
1297 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1298 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1299 "llvm.nvvm.suld.1d.array.v4i8.trap">;
1300 def int_nvvm_suld_1d_array_v4i16_trap
1301 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1302 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1303 "llvm.nvvm.suld.1d.array.v4i16.trap">;
1304 def int_nvvm_suld_1d_array_v4i32_trap
1305 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1306 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1307 "llvm.nvvm.suld.1d.array.v4i32.trap">;
1309 def int_nvvm_suld_2d_i8_trap
1310 : Intrinsic<[llvm_i16_ty],
1311 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1312 "llvm.nvvm.suld.2d.i8.trap">;
1313 def int_nvvm_suld_2d_i16_trap
1314 : Intrinsic<[llvm_i16_ty],
1315 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1316 "llvm.nvvm.suld.2d.i16.trap">;
1317 def int_nvvm_suld_2d_i32_trap
1318 : Intrinsic<[llvm_i32_ty],
1319 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1320 "llvm.nvvm.suld.2d.i32.trap">;
1321 def int_nvvm_suld_2d_v2i8_trap
1322 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1323 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1324 "llvm.nvvm.suld.2d.v2i8.trap">;
1325 def int_nvvm_suld_2d_v2i16_trap
1326 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1327 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1328 "llvm.nvvm.suld.2d.v2i16.trap">;
1329 def int_nvvm_suld_2d_v2i32_trap
1330 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1331 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1332 "llvm.nvvm.suld.2d.v2i32.trap">;
1333 def int_nvvm_suld_2d_v4i8_trap
1334 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1335 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1336 "llvm.nvvm.suld.2d.v4i8.trap">;
1337 def int_nvvm_suld_2d_v4i16_trap
1338 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1339 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1340 "llvm.nvvm.suld.2d.v4i16.trap">;
1341 def int_nvvm_suld_2d_v4i32_trap
1342 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1343 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1344 "llvm.nvvm.suld.2d.v4i32.trap">;
1346 def int_nvvm_suld_2d_array_i8_trap
1347 : Intrinsic<[llvm_i16_ty],
1348 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1349 "llvm.nvvm.suld.2d.array.i8.trap">;
1350 def int_nvvm_suld_2d_array_i16_trap
1351 : Intrinsic<[llvm_i16_ty],
1352 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1353 "llvm.nvvm.suld.2d.array.i16.trap">;
1354 def int_nvvm_suld_2d_array_i32_trap
1355 : Intrinsic<[llvm_i32_ty],
1356 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1357 "llvm.nvvm.suld.2d.array.i32.trap">;
1358 def int_nvvm_suld_2d_array_v2i8_trap
1359 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1360 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1361 "llvm.nvvm.suld.2d.array.v2i8.trap">;
1362 def int_nvvm_suld_2d_array_v2i16_trap
1363 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1364 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1365 "llvm.nvvm.suld.2d.array.v2i16.trap">;
1366 def int_nvvm_suld_2d_array_v2i32_trap
1367 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1368 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1369 "llvm.nvvm.suld.2d.array.v2i32.trap">;
1370 def int_nvvm_suld_2d_array_v4i8_trap
1371 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1372 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1373 "llvm.nvvm.suld.2d.array.v4i8.trap">;
1374 def int_nvvm_suld_2d_array_v4i16_trap
1375 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1376 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1377 "llvm.nvvm.suld.2d.array.v4i16.trap">;
1378 def int_nvvm_suld_2d_array_v4i32_trap
1379 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1380 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1381 "llvm.nvvm.suld.2d.array.v4i32.trap">;
1383 def int_nvvm_suld_3d_i8_trap
1384 : Intrinsic<[llvm_i16_ty],
1385 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1386 "llvm.nvvm.suld.3d.i8.trap">;
1387 def int_nvvm_suld_3d_i16_trap
1388 : Intrinsic<[llvm_i16_ty],
1389 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1390 "llvm.nvvm.suld.3d.i16.trap">;
1391 def int_nvvm_suld_3d_i32_trap
1392 : Intrinsic<[llvm_i32_ty],
1393 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1394 "llvm.nvvm.suld.3d.i32.trap">;
1395 def int_nvvm_suld_3d_v2i8_trap
1396 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1397 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1398 "llvm.nvvm.suld.3d.v2i8.trap">;
1399 def int_nvvm_suld_3d_v2i16_trap
1400 : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
1401 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1402 "llvm.nvvm.suld.3d.v2i16.trap">;
1403 def int_nvvm_suld_3d_v2i32_trap
1404 : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
1405 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1406 "llvm.nvvm.suld.3d.v2i32.trap">;
1407 def int_nvvm_suld_3d_v4i8_trap
1408 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1409 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1410 "llvm.nvvm.suld.3d.v4i8.trap">;
1411 def int_nvvm_suld_3d_v4i16_trap
1412 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1413 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1414 "llvm.nvvm.suld.3d.v4i16.trap">;
1415 def int_nvvm_suld_3d_v4i32_trap
1416 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1417 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1418 "llvm.nvvm.suld.3d.v4i32.trap">;
1420 //===- Texture Query ------------------------------------------------------===//
1422 def int_nvvm_txq_channel_order
1423 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1424 "llvm.nvvm.txq.channel.order">,
1425 GCCBuiltin<"__nvvm_txq_channel_order">;
1426 def int_nvvm_txq_channel_data_type
1427 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1428 "llvm.nvvm.txq.channel.data.type">,
1429 GCCBuiltin<"__nvvm_txq_channel_data_type">;
1430 def int_nvvm_txq_width
1431 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1432 "llvm.nvvm.txq.width">,
1433 GCCBuiltin<"__nvvm_txq_width">;
1434 def int_nvvm_txq_height
1435 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1436 "llvm.nvvm.txq.height">,
1437 GCCBuiltin<"__nvvm_txq_height">;
1438 def int_nvvm_txq_depth
1439 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1440 "llvm.nvvm.txq.depth">,
1441 GCCBuiltin<"__nvvm_txq_depth">;
1442 def int_nvvm_txq_array_size
1443 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1444 "llvm.nvvm.txq.array.size">,
1445 GCCBuiltin<"__nvvm_txq_array_size">;
1446 def int_nvvm_txq_num_samples
1447 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1448 "llvm.nvvm.txq.num.samples">,
1449 GCCBuiltin<"__nvvm_txq_num_samples">;
1450 def int_nvvm_txq_num_mipmap_levels
1451 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1452 "llvm.nvvm.txq.num.mipmap.levels">,
1453 GCCBuiltin<"__nvvm_txq_num_mipmap_levels">;
1455 //===- Surface Query ------------------------------------------------------===//
1457 def int_nvvm_suq_channel_order
1458 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1459 "llvm.nvvm.suq.channel.order">,
1460 GCCBuiltin<"__nvvm_suq_channel_order">;
1461 def int_nvvm_suq_channel_data_type
1462 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1463 "llvm.nvvm.suq.channel.data.type">,
1464 GCCBuiltin<"__nvvm_suq_channel_data_type">;
1465 def int_nvvm_suq_width
1466 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1467 "llvm.nvvm.suq.width">,
1468 GCCBuiltin<"__nvvm_suq_width">;
1469 def int_nvvm_suq_height
1470 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1471 "llvm.nvvm.suq.height">,
1472 GCCBuiltin<"__nvvm_suq_height">;
1473 def int_nvvm_suq_depth
1474 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1475 "llvm.nvvm.suq.depth">,
1476 GCCBuiltin<"__nvvm_suq_depth">;
1477 def int_nvvm_suq_array_size
1478 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
1479 "llvm.nvvm.suq.array.size">,
1480 GCCBuiltin<"__nvvm_suq_array_size">;
1483 //===- Handle Query -------------------------------------------------------===//
1485 def int_nvvm_istypep_sampler
1486 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
1487 "llvm.nvvm.istypep.sampler">,
1488 GCCBuiltin<"__nvvm_istypep_sampler">;
1489 def int_nvvm_istypep_surface
1490 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
1491 "llvm.nvvm.istypep.surface">,
1492 GCCBuiltin<"__nvvm_istypep_surface">;
1493 def int_nvvm_istypep_texture
1494 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
1495 "llvm.nvvm.istypep.texture">,
1496 GCCBuiltin<"__nvvm_istypep_texture">;
1500 //===- Surface Stores -----------------------------------------------------===//
1504 def int_nvvm_sust_b_1d_i8_trap
1505 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
1506 "llvm.nvvm.sust.b.1d.i8.trap">,
1507 GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">;
1508 def int_nvvm_sust_b_1d_i16_trap
1509 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
1510 "llvm.nvvm.sust.b.1d.i16.trap">,
1511 GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">;
1512 def int_nvvm_sust_b_1d_i32_trap
1513 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1514 "llvm.nvvm.sust.b.1d.i32.trap">,
1515 GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">;
1516 def int_nvvm_sust_b_1d_v2i8_trap
1517 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
1518 "llvm.nvvm.sust.b.1d.v2i8.trap">,
1519 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">;
1520 def int_nvvm_sust_b_1d_v2i16_trap
1521 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
1522 "llvm.nvvm.sust.b.1d.v2i16.trap">,
1523 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">;
1524 def int_nvvm_sust_b_1d_v2i32_trap
1525 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1526 "llvm.nvvm.sust.b.1d.v2i32.trap">,
1527 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">;
1528 def int_nvvm_sust_b_1d_v4i8_trap
1529 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
1530 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1531 "llvm.nvvm.sust.b.1d.v4i8.trap">,
1532 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">;
1533 def int_nvvm_sust_b_1d_v4i16_trap
1534 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
1535 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1536 "llvm.nvvm.sust.b.1d.v4i16.trap">,
1537 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">;
1538 def int_nvvm_sust_b_1d_v4i32_trap
1539 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1540 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1541 "llvm.nvvm.sust.b.1d.v4i32.trap">,
1542 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">;
1545 def int_nvvm_sust_b_1d_array_i8_trap
1546 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1547 "llvm.nvvm.sust.b.1d.array.i8.trap">,
1548 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">;
1549 def int_nvvm_sust_b_1d_array_i16_trap
1550 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1551 "llvm.nvvm.sust.b.1d.array.i16.trap">,
1552 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">;
1553 def int_nvvm_sust_b_1d_array_i32_trap
1554 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1555 "llvm.nvvm.sust.b.1d.array.i32.trap">,
1556 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">;
1557 def int_nvvm_sust_b_1d_array_v2i8_trap
1558 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1559 llvm_i16_ty, llvm_i16_ty], [],
1560 "llvm.nvvm.sust.b.1d.array.v2i8.trap">,
1561 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">;
1562 def int_nvvm_sust_b_1d_array_v2i16_trap
1563 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1564 llvm_i16_ty, llvm_i16_ty], [],
1565 "llvm.nvvm.sust.b.1d.array.v2i16.trap">,
1566 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">;
1567 def int_nvvm_sust_b_1d_array_v2i32_trap
1568 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1569 llvm_i32_ty, llvm_i32_ty], [],
1570 "llvm.nvvm.sust.b.1d.array.v2i32.trap">,
1571 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">;
1572 def int_nvvm_sust_b_1d_array_v4i8_trap
1573 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1574 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1575 "llvm.nvvm.sust.b.1d.array.v4i8.trap">,
1576 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">;
1577 def int_nvvm_sust_b_1d_array_v4i16_trap
1578 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1579 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1580 "llvm.nvvm.sust.b.1d.array.v4i16.trap">,
1581 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">;
1582 def int_nvvm_sust_b_1d_array_v4i32_trap
1583 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1584 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1585 "llvm.nvvm.sust.b.1d.array.v4i32.trap">,
1586 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">;
1589 def int_nvvm_sust_b_2d_i8_trap
1590 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1591 "llvm.nvvm.sust.b.2d.i8.trap">,
1592 GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">;
1593 def int_nvvm_sust_b_2d_i16_trap
1594 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1595 "llvm.nvvm.sust.b.2d.i16.trap">,
1596 GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">;
1597 def int_nvvm_sust_b_2d_i32_trap
1598 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1599 "llvm.nvvm.sust.b.2d.i32.trap">,
1600 GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">;
1601 def int_nvvm_sust_b_2d_v2i8_trap
1602 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1603 llvm_i16_ty, llvm_i16_ty], [],
1604 "llvm.nvvm.sust.b.2d.v2i8.trap">,
1605 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">;
1606 def int_nvvm_sust_b_2d_v2i16_trap
1607 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1608 llvm_i16_ty, llvm_i16_ty], [],
1609 "llvm.nvvm.sust.b.2d.v2i16.trap">,
1610 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">;
1611 def int_nvvm_sust_b_2d_v2i32_trap
1612 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1613 llvm_i32_ty, llvm_i32_ty], [],
1614 "llvm.nvvm.sust.b.2d.v2i32.trap">,
1615 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">;
1616 def int_nvvm_sust_b_2d_v4i8_trap
1617 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1618 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1619 "llvm.nvvm.sust.b.2d.v4i8.trap">,
1620 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">;
1621 def int_nvvm_sust_b_2d_v4i16_trap
1622 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1623 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1624 "llvm.nvvm.sust.b.2d.v4i16.trap">,
1625 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">;
1626 def int_nvvm_sust_b_2d_v4i32_trap
1627 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1628 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1629 "llvm.nvvm.sust.b.2d.v4i32.trap">,
1630 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">;
1633 def int_nvvm_sust_b_2d_array_i8_trap
1634 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1635 llvm_i32_ty, llvm_i16_ty], [],
1636 "llvm.nvvm.sust.b.2d.array.i8.trap">,
1637 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">;
1638 def int_nvvm_sust_b_2d_array_i16_trap
1639 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1640 llvm_i32_ty, llvm_i16_ty], [],
1641 "llvm.nvvm.sust.b.2d.array.i16.trap">,
1642 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">;
1643 def int_nvvm_sust_b_2d_array_i32_trap
1644 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1645 llvm_i32_ty, llvm_i32_ty], [],
1646 "llvm.nvvm.sust.b.2d.array.i32.trap">,
1647 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">;
1648 def int_nvvm_sust_b_2d_array_v2i8_trap
1649 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1650 llvm_i16_ty, llvm_i16_ty], [],
1651 "llvm.nvvm.sust.b.2d.array.v2i8.trap">,
1652 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">;
1653 def int_nvvm_sust_b_2d_array_v2i16_trap
1654 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1655 llvm_i16_ty, llvm_i16_ty], [],
1656 "llvm.nvvm.sust.b.2d.array.v2i16.trap">,
1657 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">;
1658 def int_nvvm_sust_b_2d_array_v2i32_trap
1659 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1660 llvm_i32_ty, llvm_i32_ty], [],
1661 "llvm.nvvm.sust.b.2d.array.v2i32.trap">,
1662 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">;
1663 def int_nvvm_sust_b_2d_array_v4i8_trap
1664 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1665 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1666 "llvm.nvvm.sust.b.2d.array.v4i8.trap">,
1667 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">;
1668 def int_nvvm_sust_b_2d_array_v4i16_trap
1669 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1670 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1671 "llvm.nvvm.sust.b.2d.array.v4i16.trap">,
1672 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">;
1673 def int_nvvm_sust_b_2d_array_v4i32_trap
1674 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1675 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1676 "llvm.nvvm.sust.b.2d.array.v4i32.trap">,
1677 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">;
1680 def int_nvvm_sust_b_3d_i8_trap
1681 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1682 llvm_i32_ty, llvm_i16_ty], [],
1683 "llvm.nvvm.sust.b.3d.i8.trap">,
1684 GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">;
1685 def int_nvvm_sust_b_3d_i16_trap
1686 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1687 llvm_i32_ty, llvm_i16_ty], [],
1688 "llvm.nvvm.sust.b.3d.i16.trap">,
1689 GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">;
1690 def int_nvvm_sust_b_3d_i32_trap
1691 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1692 llvm_i32_ty, llvm_i32_ty], [],
1693 "llvm.nvvm.sust.b.3d.i32.trap">,
1694 GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">;
1695 def int_nvvm_sust_b_3d_v2i8_trap
1696 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1697 llvm_i16_ty, llvm_i16_ty], [],
1698 "llvm.nvvm.sust.b.3d.v2i8.trap">,
1699 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">;
1700 def int_nvvm_sust_b_3d_v2i16_trap
1701 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1702 llvm_i16_ty, llvm_i16_ty], [],
1703 "llvm.nvvm.sust.b.3d.v2i16.trap">,
1704 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">;
1705 def int_nvvm_sust_b_3d_v2i32_trap
1706 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1707 llvm_i32_ty, llvm_i32_ty], [],
1708 "llvm.nvvm.sust.b.3d.v2i32.trap">,
1709 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">;
1710 def int_nvvm_sust_b_3d_v4i8_trap
1711 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1712 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1713 "llvm.nvvm.sust.b.3d.v4i8.trap">,
1714 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">;
1715 def int_nvvm_sust_b_3d_v4i16_trap
1716 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1717 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1718 "llvm.nvvm.sust.b.3d.v4i16.trap">,
1719 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">;
1720 def int_nvvm_sust_b_3d_v4i32_trap
1721 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1722 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1723 "llvm.nvvm.sust.b.3d.v4i32.trap">,
1724 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">;
1728 def int_nvvm_sust_p_1d_i8_trap
1729 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
1730 "llvm.nvvm.sust.p.1d.i8.trap">,
1731 GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">;
1732 def int_nvvm_sust_p_1d_i16_trap
1733 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
1734 "llvm.nvvm.sust.p.1d.i16.trap">,
1735 GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">;
1736 def int_nvvm_sust_p_1d_i32_trap
1737 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
1738 "llvm.nvvm.sust.p.1d.i32.trap">,
1739 GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">;
1740 def int_nvvm_sust_p_1d_v2i8_trap
1741 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
1742 "llvm.nvvm.sust.p.1d.v2i8.trap">,
1743 GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">;
1744 def int_nvvm_sust_p_1d_v2i16_trap
1745 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
1746 "llvm.nvvm.sust.p.1d.v2i16.trap">,
1747 GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">;
1748 def int_nvvm_sust_p_1d_v2i32_trap
1749 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1750 "llvm.nvvm.sust.p.1d.v2i32.trap">,
1751 GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">;
1752 def int_nvvm_sust_p_1d_v4i8_trap
1753 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
1754 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1755 "llvm.nvvm.sust.p.1d.v4i8.trap">,
1756 GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">;
1757 def int_nvvm_sust_p_1d_v4i16_trap
1758 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
1759 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1760 "llvm.nvvm.sust.p.1d.v4i16.trap">,
1761 GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">;
1762 def int_nvvm_sust_p_1d_v4i32_trap
1763 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1764 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1765 "llvm.nvvm.sust.p.1d.v4i32.trap">,
1766 GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">;
1769 def int_nvvm_sust_p_1d_array_i8_trap
1770 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1771 "llvm.nvvm.sust.p.1d.array.i8.trap">,
1772 GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">;
1773 def int_nvvm_sust_p_1d_array_i16_trap
1774 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1775 "llvm.nvvm.sust.p.1d.array.i16.trap">,
1776 GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">;
1777 def int_nvvm_sust_p_1d_array_i32_trap
1778 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1779 "llvm.nvvm.sust.p.1d.array.i32.trap">,
1780 GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">;
1781 def int_nvvm_sust_p_1d_array_v2i8_trap
1782 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1783 llvm_i16_ty, llvm_i16_ty], [],
1784 "llvm.nvvm.sust.p.1d.array.v2i8.trap">,
1785 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">;
1786 def int_nvvm_sust_p_1d_array_v2i16_trap
1787 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1788 llvm_i16_ty, llvm_i16_ty], [],
1789 "llvm.nvvm.sust.p.1d.array.v2i16.trap">,
1790 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">;
1791 def int_nvvm_sust_p_1d_array_v2i32_trap
1792 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1793 llvm_i32_ty, llvm_i32_ty], [],
1794 "llvm.nvvm.sust.p.1d.array.v2i32.trap">,
1795 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">;
1796 def int_nvvm_sust_p_1d_array_v4i8_trap
1797 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1798 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1799 "llvm.nvvm.sust.p.1d.array.v4i8.trap">,
1800 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">;
1801 def int_nvvm_sust_p_1d_array_v4i16_trap
1802 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1803 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1804 "llvm.nvvm.sust.p.1d.array.v4i16.trap">,
1805 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">;
1806 def int_nvvm_sust_p_1d_array_v4i32_trap
1807 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1808 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1809 "llvm.nvvm.sust.p.1d.array.v4i32.trap">,
1810 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">;
1813 def int_nvvm_sust_p_2d_i8_trap
1814 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1815 "llvm.nvvm.sust.p.2d.i8.trap">,
1816 GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">;
1817 def int_nvvm_sust_p_2d_i16_trap
1818 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
1819 "llvm.nvvm.sust.p.2d.i16.trap">,
1820 GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">;
1821 def int_nvvm_sust_p_2d_i32_trap
1822 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1823 "llvm.nvvm.sust.p.2d.i32.trap">,
1824 GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">;
1825 def int_nvvm_sust_p_2d_v2i8_trap
1826 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1827 llvm_i16_ty, llvm_i16_ty], [],
1828 "llvm.nvvm.sust.p.2d.v2i8.trap">,
1829 GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">;
1830 def int_nvvm_sust_p_2d_v2i16_trap
1831 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1832 llvm_i16_ty, llvm_i16_ty], [],
1833 "llvm.nvvm.sust.p.2d.v2i16.trap">,
1834 GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">;
1835 def int_nvvm_sust_p_2d_v2i32_trap
1836 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1837 llvm_i32_ty, llvm_i32_ty], [],
1838 "llvm.nvvm.sust.p.2d.v2i32.trap">,
1839 GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">;
1840 def int_nvvm_sust_p_2d_v4i8_trap
1841 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1842 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1843 "llvm.nvvm.sust.p.2d.v4i8.trap">,
1844 GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">;
1845 def int_nvvm_sust_p_2d_v4i16_trap
1846 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
1847 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1848 "llvm.nvvm.sust.p.2d.v4i16.trap">,
1849 GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">;
1850 def int_nvvm_sust_p_2d_v4i32_trap
1851 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1852 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1853 "llvm.nvvm.sust.p.2d.v4i32.trap">,
1854 GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">;
1857 def int_nvvm_sust_p_2d_array_i8_trap
1858 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1859 llvm_i32_ty, llvm_i16_ty], [],
1860 "llvm.nvvm.sust.p.2d.array.i8.trap">,
1861 GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">;
1862 def int_nvvm_sust_p_2d_array_i16_trap
1863 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1864 llvm_i32_ty, llvm_i16_ty], [],
1865 "llvm.nvvm.sust.p.2d.array.i16.trap">,
1866 GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">;
1867 def int_nvvm_sust_p_2d_array_i32_trap
1868 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1869 llvm_i32_ty, llvm_i32_ty], [],
1870 "llvm.nvvm.sust.p.2d.array.i32.trap">,
1871 GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">;
1872 def int_nvvm_sust_p_2d_array_v2i8_trap
1873 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1874 llvm_i16_ty, llvm_i16_ty], [],
1875 "llvm.nvvm.sust.p.2d.array.v2i8.trap">,
1876 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">;
1877 def int_nvvm_sust_p_2d_array_v2i16_trap
1878 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1879 llvm_i16_ty, llvm_i16_ty], [],
1880 "llvm.nvvm.sust.p.2d.array.v2i16.trap">,
1881 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">;
1882 def int_nvvm_sust_p_2d_array_v2i32_trap
1883 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1884 llvm_i32_ty, llvm_i32_ty], [],
1885 "llvm.nvvm.sust.p.2d.array.v2i32.trap">,
1886 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">;
1887 def int_nvvm_sust_p_2d_array_v4i8_trap
1888 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1889 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1890 "llvm.nvvm.sust.p.2d.array.v4i8.trap">,
1891 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">;
1892 def int_nvvm_sust_p_2d_array_v4i16_trap
1893 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1894 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1895 "llvm.nvvm.sust.p.2d.array.v4i16.trap">,
1896 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">;
1897 def int_nvvm_sust_p_2d_array_v4i32_trap
1898 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1899 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1900 "llvm.nvvm.sust.p.2d.array.v4i32.trap">,
1901 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">;
1904 def int_nvvm_sust_p_3d_i8_trap
1905 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1906 llvm_i32_ty, llvm_i16_ty], [],
1907 "llvm.nvvm.sust.p.3d.i8.trap">,
1908 GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">;
1909 def int_nvvm_sust_p_3d_i16_trap
1910 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1911 llvm_i32_ty, llvm_i16_ty], [],
1912 "llvm.nvvm.sust.p.3d.i16.trap">,
1913 GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">;
1914 def int_nvvm_sust_p_3d_i32_trap
1915 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
1916 llvm_i32_ty, llvm_i32_ty], [],
1917 "llvm.nvvm.sust.p.3d.i32.trap">,
1918 GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">;
1919 def int_nvvm_sust_p_3d_v2i8_trap
1920 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1921 llvm_i16_ty, llvm_i16_ty], [],
1922 "llvm.nvvm.sust.p.3d.v2i8.trap">,
1923 GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">;
1924 def int_nvvm_sust_p_3d_v2i16_trap
1925 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1926 llvm_i16_ty, llvm_i16_ty], [],
1927 "llvm.nvvm.sust.p.3d.v2i16.trap">,
1928 GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">;
1929 def int_nvvm_sust_p_3d_v2i32_trap
1930 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1931 llvm_i32_ty, llvm_i32_ty], [],
1932 "llvm.nvvm.sust.p.3d.v2i32.trap">,
1933 GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">;
1934 def int_nvvm_sust_p_3d_v4i8_trap
1935 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1936 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1937 "llvm.nvvm.sust.p.3d.v4i8.trap">,
1938 GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">;
1939 def int_nvvm_sust_p_3d_v4i16_trap
1940 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1941 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
1942 "llvm.nvvm.sust.p.3d.v4i16.trap">,
1943 GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">;
1944 def int_nvvm_sust_p_3d_v4i32_trap
1945 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
1946 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
1947 "llvm.nvvm.sust.p.3d.v4i32.trap">,
1948 GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">;
1950 def int_nvvm_rotate_b32
1951 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
1952 [IntrNoMem], "llvm.nvvm.rotate.b32">,
1953 GCCBuiltin<"__nvvm_rotate_b32">;
1955 def int_nvvm_rotate_b64
1956 :Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
1957 [IntrNoMem], "llvm.nvvm.rotate.b64">,
1958 GCCBuiltin<"__nvvm_rotate_b64">;
1960 def int_nvvm_rotate_right_b64
1961 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
1962 [IntrNoMem], "llvm.nvvm.rotate.right.b64">,
1963 GCCBuiltin<"__nvvm_rotate_right_b64">;
1965 def int_nvvm_swap_lo_hi_b64
1966 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty],
1967 [IntrNoMem], "llvm.nvvm.swap.lo.hi.b64">,
1968 GCCBuiltin<"__nvvm_swap_lo_hi_b64">;
1971 // Old PTX back-end intrinsics retained here for backwards-compatibility
1973 multiclass PTXReadSpecialRegisterIntrinsic_v4i32<string prefix> {
1974 // FIXME: Do we need the 128-bit integer type version?
1975 // def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem]>;
1977 // FIXME: Enable this once v4i32 support is enabled in back-end.
1978 // def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>;
1980 def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
1981 GCCBuiltin<!strconcat(prefix, "_x")>;
1982 def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
1983 GCCBuiltin<!strconcat(prefix, "_y")>;
1984 def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
1985 GCCBuiltin<!strconcat(prefix, "_z")>;
1986 def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
1987 GCCBuiltin<!strconcat(prefix, "_w")>;
1990 class PTXReadSpecialRegisterIntrinsic_r32<string name>
1991 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
1994 class PTXReadSpecialRegisterIntrinsic_r64<string name>
1995 : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>,
1998 defm int_ptx_read_tid : PTXReadSpecialRegisterIntrinsic_v4i32
1999 <"__builtin_ptx_read_tid">;
2000 defm int_ptx_read_ntid : PTXReadSpecialRegisterIntrinsic_v4i32
2001 <"__builtin_ptx_read_ntid">;
2003 def int_ptx_read_laneid : PTXReadSpecialRegisterIntrinsic_r32
2004 <"__builtin_ptx_read_laneid">;
2005 def int_ptx_read_warpid : PTXReadSpecialRegisterIntrinsic_r32
2006 <"__builtin_ptx_read_warpid">;
2007 def int_ptx_read_nwarpid : PTXReadSpecialRegisterIntrinsic_r32
2008 <"__builtin_ptx_read_nwarpid">;
2010 defm int_ptx_read_ctaid : PTXReadSpecialRegisterIntrinsic_v4i32
2011 <"__builtin_ptx_read_ctaid">;
2012 defm int_ptx_read_nctaid : PTXReadSpecialRegisterIntrinsic_v4i32
2013 <"__builtin_ptx_read_nctaid">;
2015 def int_ptx_read_smid : PTXReadSpecialRegisterIntrinsic_r32
2016 <"__builtin_ptx_read_smid">;
2017 def int_ptx_read_nsmid : PTXReadSpecialRegisterIntrinsic_r32
2018 <"__builtin_ptx_read_nsmid">;
2019 def int_ptx_read_gridid : PTXReadSpecialRegisterIntrinsic_r32
2020 <"__builtin_ptx_read_gridid">;
2022 def int_ptx_read_lanemask_eq : PTXReadSpecialRegisterIntrinsic_r32
2023 <"__builtin_ptx_read_lanemask_eq">;
2024 def int_ptx_read_lanemask_le : PTXReadSpecialRegisterIntrinsic_r32
2025 <"__builtin_ptx_read_lanemask_le">;
2026 def int_ptx_read_lanemask_lt : PTXReadSpecialRegisterIntrinsic_r32
2027 <"__builtin_ptx_read_lanemask_lt">;
2028 def int_ptx_read_lanemask_ge : PTXReadSpecialRegisterIntrinsic_r32
2029 <"__builtin_ptx_read_lanemask_ge">;
2030 def int_ptx_read_lanemask_gt : PTXReadSpecialRegisterIntrinsic_r32
2031 <"__builtin_ptx_read_lanemask_gt">;
2033 def int_ptx_read_clock : PTXReadSpecialRegisterIntrinsic_r32
2034 <"__builtin_ptx_read_clock">;
2035 def int_ptx_read_clock64 : PTXReadSpecialRegisterIntrinsic_r64
2036 <"__builtin_ptx_read_clock64">;
2038 def int_ptx_read_pm0 : PTXReadSpecialRegisterIntrinsic_r32
2039 <"__builtin_ptx_read_pm0">;
2040 def int_ptx_read_pm1 : PTXReadSpecialRegisterIntrinsic_r32
2041 <"__builtin_ptx_read_pm1">;
2042 def int_ptx_read_pm2 : PTXReadSpecialRegisterIntrinsic_r32
2043 <"__builtin_ptx_read_pm2">;
2044 def int_ptx_read_pm3 : PTXReadSpecialRegisterIntrinsic_r32
2045 <"__builtin_ptx_read_pm3">;
2047 def int_ptx_bar_sync : Intrinsic<[], [llvm_i32_ty], []>,
2048 GCCBuiltin<"__builtin_ptx_bar_sync">;