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