1//===- IntrinsicsNVVM.td - Defines NVVM intrinsics ---------*- tablegen -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file defines all of the NVVM-specific intrinsics for use with NVPTX. 11// 12//===----------------------------------------------------------------------===// 13 14def llvm_anyi64ptr_ty : LLVMAnyPointerType<llvm_i64_ty>; // (space)i64* 15 16// 17// MISC 18// 19 20 def int_nvvm_clz_i : GCCBuiltin<"__nvvm_clz_i">, 21 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 22 def int_nvvm_clz_ll : GCCBuiltin<"__nvvm_clz_ll">, 23 Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>; 24 25 def int_nvvm_popc_i : GCCBuiltin<"__nvvm_popc_i">, 26 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 27 def int_nvvm_popc_ll : GCCBuiltin<"__nvvm_popc_ll">, 28 Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>; 29 30 def int_nvvm_prmt : GCCBuiltin<"__nvvm_prmt">, 31 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 32 [IntrNoMem, Commutative]>; 33 34// 35// Min Max 36// 37 38 def int_nvvm_min_i : GCCBuiltin<"__nvvm_min_i">, 39 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 40 [IntrNoMem, Commutative]>; 41 def int_nvvm_min_ui : GCCBuiltin<"__nvvm_min_ui">, 42 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 43 [IntrNoMem, Commutative]>; 44 45 def int_nvvm_min_ll : GCCBuiltin<"__nvvm_min_ll">, 46 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 47 [IntrNoMem, Commutative]>; 48 def int_nvvm_min_ull : GCCBuiltin<"__nvvm_min_ull">, 49 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 50 [IntrNoMem, Commutative]>; 51 52 def int_nvvm_max_i : GCCBuiltin<"__nvvm_max_i">, 53 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 54 [IntrNoMem, Commutative]>; 55 def int_nvvm_max_ui : GCCBuiltin<"__nvvm_max_ui">, 56 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 57 [IntrNoMem, Commutative]>; 58 59 def int_nvvm_max_ll : GCCBuiltin<"__nvvm_max_ll">, 60 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 61 [IntrNoMem, Commutative]>; 62 def int_nvvm_max_ull : GCCBuiltin<"__nvvm_max_ull">, 63 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 64 [IntrNoMem, Commutative]>; 65 66 def int_nvvm_fmin_f : GCCBuiltin<"__nvvm_fmin_f">, 67 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 68 [IntrNoMem, Commutative]>; 69 def int_nvvm_fmin_ftz_f : GCCBuiltin<"__nvvm_fmin_ftz_f">, 70 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 71 [IntrNoMem, Commutative]>; 72 73 def int_nvvm_fmax_f : GCCBuiltin<"__nvvm_fmax_f">, 74 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty] 75 , [IntrNoMem, Commutative]>; 76 def int_nvvm_fmax_ftz_f : GCCBuiltin<"__nvvm_fmax_ftz_f">, 77 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 78 [IntrNoMem, Commutative]>; 79 80 def int_nvvm_fmin_d : GCCBuiltin<"__nvvm_fmin_d">, 81 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 82 [IntrNoMem, Commutative]>; 83 def int_nvvm_fmax_d : GCCBuiltin<"__nvvm_fmax_d">, 84 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 85 [IntrNoMem, Commutative]>; 86 87// 88// Multiplication 89// 90 91 def int_nvvm_mulhi_i : GCCBuiltin<"__nvvm_mulhi_i">, 92 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 93 [IntrNoMem, Commutative]>; 94 def int_nvvm_mulhi_ui : GCCBuiltin<"__nvvm_mulhi_ui">, 95 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 96 [IntrNoMem, Commutative]>; 97 98 def int_nvvm_mulhi_ll : GCCBuiltin<"__nvvm_mulhi_ll">, 99 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 100 [IntrNoMem, Commutative]>; 101 def int_nvvm_mulhi_ull : GCCBuiltin<"__nvvm_mulhi_ull">, 102 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], 103 [IntrNoMem, Commutative]>; 104 105 def int_nvvm_mul_rn_ftz_f : GCCBuiltin<"__nvvm_mul_rn_ftz_f">, 106 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 107 [IntrNoMem, Commutative]>; 108 def int_nvvm_mul_rn_f : GCCBuiltin<"__nvvm_mul_rn_f">, 109 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 110 [IntrNoMem, Commutative]>; 111 def int_nvvm_mul_rz_ftz_f : GCCBuiltin<"__nvvm_mul_rz_ftz_f">, 112 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 113 [IntrNoMem, Commutative]>; 114 def int_nvvm_mul_rz_f : GCCBuiltin<"__nvvm_mul_rz_f">, 115 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 116 [IntrNoMem, Commutative]>; 117 def int_nvvm_mul_rm_ftz_f : GCCBuiltin<"__nvvm_mul_rm_ftz_f">, 118 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 119 [IntrNoMem, Commutative]>; 120 def int_nvvm_mul_rm_f : GCCBuiltin<"__nvvm_mul_rm_f">, 121 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 122 [IntrNoMem, Commutative]>; 123 def int_nvvm_mul_rp_ftz_f : GCCBuiltin<"__nvvm_mul_rp_ftz_f">, 124 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 125 [IntrNoMem, Commutative]>; 126 def int_nvvm_mul_rp_f : GCCBuiltin<"__nvvm_mul_rp_f">, 127 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 128 [IntrNoMem, Commutative]>; 129 130 def int_nvvm_mul_rn_d : GCCBuiltin<"__nvvm_mul_rn_d">, 131 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 132 [IntrNoMem, Commutative]>; 133 def int_nvvm_mul_rz_d : GCCBuiltin<"__nvvm_mul_rz_d">, 134 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 135 [IntrNoMem, Commutative]>; 136 def int_nvvm_mul_rm_d : GCCBuiltin<"__nvvm_mul_rm_d">, 137 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 138 [IntrNoMem, Commutative]>; 139 def int_nvvm_mul_rp_d : GCCBuiltin<"__nvvm_mul_rp_d">, 140 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 141 [IntrNoMem, Commutative]>; 142 143 def int_nvvm_mul24_i : GCCBuiltin<"__nvvm_mul24_i">, 144 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 145 [IntrNoMem, Commutative]>; 146 def int_nvvm_mul24_ui : GCCBuiltin<"__nvvm_mul24_ui">, 147 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 148 [IntrNoMem, Commutative]>; 149 150// 151// Div 152// 153 154 def int_nvvm_div_approx_ftz_f : GCCBuiltin<"__nvvm_div_approx_ftz_f">, 155 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 156 [IntrNoMem, Commutative]>; 157 def int_nvvm_div_approx_f : GCCBuiltin<"__nvvm_div_approx_f">, 158 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 159 [IntrNoMem, Commutative]>; 160 161 def int_nvvm_div_rn_ftz_f : GCCBuiltin<"__nvvm_div_rn_ftz_f">, 162 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 163 [IntrNoMem, Commutative]>; 164 def int_nvvm_div_rn_f : GCCBuiltin<"__nvvm_div_rn_f">, 165 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 166 [IntrNoMem, Commutative]>; 167 168 def int_nvvm_div_rz_ftz_f : GCCBuiltin<"__nvvm_div_rz_ftz_f">, 169 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 170 [IntrNoMem, Commutative]>; 171 def int_nvvm_div_rz_f : GCCBuiltin<"__nvvm_div_rz_f">, 172 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 173 [IntrNoMem, Commutative]>; 174 175 def int_nvvm_div_rm_ftz_f : GCCBuiltin<"__nvvm_div_rm_ftz_f">, 176 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 177 [IntrNoMem, Commutative]>; 178 def int_nvvm_div_rm_f : GCCBuiltin<"__nvvm_div_rm_f">, 179 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 180 [IntrNoMem, Commutative]>; 181 182 def int_nvvm_div_rp_ftz_f : GCCBuiltin<"__nvvm_div_rp_ftz_f">, 183 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 184 [IntrNoMem, Commutative]>; 185 def int_nvvm_div_rp_f : GCCBuiltin<"__nvvm_div_rp_f">, 186 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 187 [IntrNoMem, Commutative]>; 188 189 def int_nvvm_div_rn_d : GCCBuiltin<"__nvvm_div_rn_d">, 190 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 191 [IntrNoMem, Commutative]>; 192 def int_nvvm_div_rz_d : GCCBuiltin<"__nvvm_div_rz_d">, 193 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 194 [IntrNoMem, Commutative]>; 195 def int_nvvm_div_rm_d : GCCBuiltin<"__nvvm_div_rm_d">, 196 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 197 [IntrNoMem, Commutative]>; 198 def int_nvvm_div_rp_d : GCCBuiltin<"__nvvm_div_rp_d">, 199 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 200 [IntrNoMem, Commutative]>; 201 202// 203// Brev 204// 205 206 def int_nvvm_brev32 : GCCBuiltin<"__nvvm_brev32">, 207 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 208 def int_nvvm_brev64 : GCCBuiltin<"__nvvm_brev64">, 209 Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem]>; 210 211// 212// Sad 213// 214 215 def int_nvvm_sad_i : GCCBuiltin<"__nvvm_sad_i">, 216 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 217 [IntrNoMem, Commutative]>; 218 def int_nvvm_sad_ui : GCCBuiltin<"__nvvm_sad_ui">, 219 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 220 [IntrNoMem, Commutative]>; 221 222// 223// Floor Ceil 224// 225 226 def int_nvvm_floor_ftz_f : GCCBuiltin<"__nvvm_floor_ftz_f">, 227 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 228 def int_nvvm_floor_f : GCCBuiltin<"__nvvm_floor_f">, 229 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 230 def int_nvvm_floor_d : GCCBuiltin<"__nvvm_floor_d">, 231 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 232 233 def int_nvvm_ceil_ftz_f : GCCBuiltin<"__nvvm_ceil_ftz_f">, 234 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 235 def int_nvvm_ceil_f : GCCBuiltin<"__nvvm_ceil_f">, 236 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 237 def int_nvvm_ceil_d : GCCBuiltin<"__nvvm_ceil_d">, 238 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 239 240// 241// Abs 242// 243 244 def int_nvvm_abs_i : GCCBuiltin<"__nvvm_abs_i">, 245 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; 246 def int_nvvm_abs_ll : GCCBuiltin<"__nvvm_abs_ll">, 247 Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem]>; 248 249 def int_nvvm_fabs_ftz_f : GCCBuiltin<"__nvvm_fabs_ftz_f">, 250 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 251 def int_nvvm_fabs_f : GCCBuiltin<"__nvvm_fabs_f">, 252 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 253 254 def int_nvvm_fabs_d : GCCBuiltin<"__nvvm_fabs_d">, 255 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 256 257// 258// Round 259// 260 261 def int_nvvm_round_ftz_f : GCCBuiltin<"__nvvm_round_ftz_f">, 262 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 263 def int_nvvm_round_f : GCCBuiltin<"__nvvm_round_f">, 264 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 265 266 def int_nvvm_round_d : GCCBuiltin<"__nvvm_round_d">, 267 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 268 269// 270// Trunc 271// 272 273 def int_nvvm_trunc_ftz_f : GCCBuiltin<"__nvvm_trunc_ftz_f">, 274 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 275 def int_nvvm_trunc_f : GCCBuiltin<"__nvvm_trunc_f">, 276 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 277 278 def int_nvvm_trunc_d : GCCBuiltin<"__nvvm_trunc_d">, 279 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 280 281// 282// Saturate 283// 284 285 def int_nvvm_saturate_ftz_f : GCCBuiltin<"__nvvm_saturate_ftz_f">, 286 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 287 def int_nvvm_saturate_f : GCCBuiltin<"__nvvm_saturate_f">, 288 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 289 290 def int_nvvm_saturate_d : GCCBuiltin<"__nvvm_saturate_d">, 291 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 292 293// 294// Exp2 Log2 295// 296 297 def int_nvvm_ex2_approx_ftz_f : GCCBuiltin<"__nvvm_ex2_approx_ftz_f">, 298 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 299 def int_nvvm_ex2_approx_f : GCCBuiltin<"__nvvm_ex2_approx_f">, 300 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 301 def int_nvvm_ex2_approx_d : GCCBuiltin<"__nvvm_ex2_approx_d">, 302 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 303 304 def int_nvvm_lg2_approx_ftz_f : GCCBuiltin<"__nvvm_lg2_approx_ftz_f">, 305 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 306 def int_nvvm_lg2_approx_f : GCCBuiltin<"__nvvm_lg2_approx_f">, 307 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 308 def int_nvvm_lg2_approx_d : GCCBuiltin<"__nvvm_lg2_approx_d">, 309 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 310 311// 312// Sin Cos 313// 314 315 def int_nvvm_sin_approx_ftz_f : GCCBuiltin<"__nvvm_sin_approx_ftz_f">, 316 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 317 def int_nvvm_sin_approx_f : GCCBuiltin<"__nvvm_sin_approx_f">, 318 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 319 320 def int_nvvm_cos_approx_ftz_f : GCCBuiltin<"__nvvm_cos_approx_ftz_f">, 321 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 322 def int_nvvm_cos_approx_f : GCCBuiltin<"__nvvm_cos_approx_f">, 323 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 324 325// 326// Fma 327// 328 329 def int_nvvm_fma_rn_ftz_f : GCCBuiltin<"__nvvm_fma_rn_ftz_f">, 330 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 331 [IntrNoMem, Commutative]>; 332 def int_nvvm_fma_rn_f : GCCBuiltin<"__nvvm_fma_rn_f">, 333 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 334 [IntrNoMem, Commutative]>; 335 def int_nvvm_fma_rz_ftz_f : GCCBuiltin<"__nvvm_fma_rz_ftz_f">, 336 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 337 [IntrNoMem, Commutative]>; 338 def int_nvvm_fma_rz_f : GCCBuiltin<"__nvvm_fma_rz_f">, 339 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 340 [IntrNoMem, Commutative]>; 341 def int_nvvm_fma_rm_ftz_f : GCCBuiltin<"__nvvm_fma_rm_ftz_f">, 342 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 343 [IntrNoMem, Commutative]>; 344 def int_nvvm_fma_rm_f : GCCBuiltin<"__nvvm_fma_rm_f">, 345 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 346 [IntrNoMem, Commutative]>; 347 def int_nvvm_fma_rp_ftz_f : GCCBuiltin<"__nvvm_fma_rp_ftz_f">, 348 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 349 [IntrNoMem, Commutative]>; 350 def int_nvvm_fma_rp_f : GCCBuiltin<"__nvvm_fma_rp_f">, 351 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], 352 [IntrNoMem, Commutative]>; 353 354 def int_nvvm_fma_rn_d : GCCBuiltin<"__nvvm_fma_rn_d">, 355 Intrinsic<[llvm_double_ty], 356 [llvm_double_ty, llvm_double_ty, llvm_double_ty], 357 [IntrNoMem, Commutative]>; 358 def int_nvvm_fma_rz_d : GCCBuiltin<"__nvvm_fma_rz_d">, 359 Intrinsic<[llvm_double_ty], 360 [llvm_double_ty, llvm_double_ty, llvm_double_ty], 361 [IntrNoMem, Commutative]>; 362 def int_nvvm_fma_rm_d : GCCBuiltin<"__nvvm_fma_rm_d">, 363 Intrinsic<[llvm_double_ty], 364 [llvm_double_ty, llvm_double_ty, llvm_double_ty], 365 [IntrNoMem, Commutative]>; 366 def int_nvvm_fma_rp_d : GCCBuiltin<"__nvvm_fma_rp_d">, 367 Intrinsic<[llvm_double_ty], 368 [llvm_double_ty, llvm_double_ty, llvm_double_ty], 369 [IntrNoMem, Commutative]>; 370 371// 372// Rcp 373// 374 375 def int_nvvm_rcp_rn_ftz_f : GCCBuiltin<"__nvvm_rcp_rn_ftz_f">, 376 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 377 def int_nvvm_rcp_rn_f : GCCBuiltin<"__nvvm_rcp_rn_f">, 378 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 379 def int_nvvm_rcp_rz_ftz_f : GCCBuiltin<"__nvvm_rcp_rz_ftz_f">, 380 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 381 def int_nvvm_rcp_rz_f : GCCBuiltin<"__nvvm_rcp_rz_f">, 382 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 383 def int_nvvm_rcp_rm_ftz_f : GCCBuiltin<"__nvvm_rcp_rm_ftz_f">, 384 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 385 def int_nvvm_rcp_rm_f : GCCBuiltin<"__nvvm_rcp_rm_f">, 386 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 387 def int_nvvm_rcp_rp_ftz_f : GCCBuiltin<"__nvvm_rcp_rp_ftz_f">, 388 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 389 def int_nvvm_rcp_rp_f : GCCBuiltin<"__nvvm_rcp_rp_f">, 390 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 391 392 def int_nvvm_rcp_rn_d : GCCBuiltin<"__nvvm_rcp_rn_d">, 393 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 394 def int_nvvm_rcp_rz_d : GCCBuiltin<"__nvvm_rcp_rz_d">, 395 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 396 def int_nvvm_rcp_rm_d : GCCBuiltin<"__nvvm_rcp_rm_d">, 397 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 398 def int_nvvm_rcp_rp_d : GCCBuiltin<"__nvvm_rcp_rp_d">, 399 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 400 401 def int_nvvm_rcp_approx_ftz_d : GCCBuiltin<"__nvvm_rcp_approx_ftz_d">, 402 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 403 404// 405// Sqrt 406// 407 408 def int_nvvm_sqrt_f : GCCBuiltin<"__nvvm_sqrt_f">, 409 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 410 def int_nvvm_sqrt_rn_ftz_f : GCCBuiltin<"__nvvm_sqrt_rn_ftz_f">, 411 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 412 def int_nvvm_sqrt_rn_f : GCCBuiltin<"__nvvm_sqrt_rn_f">, 413 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 414 def int_nvvm_sqrt_rz_ftz_f : GCCBuiltin<"__nvvm_sqrt_rz_ftz_f">, 415 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 416 def int_nvvm_sqrt_rz_f : GCCBuiltin<"__nvvm_sqrt_rz_f">, 417 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 418 def int_nvvm_sqrt_rm_ftz_f : GCCBuiltin<"__nvvm_sqrt_rm_ftz_f">, 419 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 420 def int_nvvm_sqrt_rm_f : GCCBuiltin<"__nvvm_sqrt_rm_f">, 421 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 422 def int_nvvm_sqrt_rp_ftz_f : GCCBuiltin<"__nvvm_sqrt_rp_ftz_f">, 423 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 424 def int_nvvm_sqrt_rp_f : GCCBuiltin<"__nvvm_sqrt_rp_f">, 425 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 426 def int_nvvm_sqrt_approx_ftz_f : GCCBuiltin<"__nvvm_sqrt_approx_ftz_f">, 427 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 428 def int_nvvm_sqrt_approx_f : GCCBuiltin<"__nvvm_sqrt_approx_f">, 429 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 430 431 def int_nvvm_sqrt_rn_d : GCCBuiltin<"__nvvm_sqrt_rn_d">, 432 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 433 def int_nvvm_sqrt_rz_d : GCCBuiltin<"__nvvm_sqrt_rz_d">, 434 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 435 def int_nvvm_sqrt_rm_d : GCCBuiltin<"__nvvm_sqrt_rm_d">, 436 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 437 def int_nvvm_sqrt_rp_d : GCCBuiltin<"__nvvm_sqrt_rp_d">, 438 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 439 440// 441// Rsqrt 442// 443 444 def int_nvvm_rsqrt_approx_ftz_f : GCCBuiltin<"__nvvm_rsqrt_approx_ftz_f">, 445 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 446 def int_nvvm_rsqrt_approx_f : GCCBuiltin<"__nvvm_rsqrt_approx_f">, 447 Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; 448 def int_nvvm_rsqrt_approx_d : GCCBuiltin<"__nvvm_rsqrt_approx_d">, 449 Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; 450 451// 452// Add 453// 454 455 def int_nvvm_add_rn_ftz_f : GCCBuiltin<"__nvvm_add_rn_ftz_f">, 456 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 457 [IntrNoMem, Commutative]>; 458 def int_nvvm_add_rn_f : GCCBuiltin<"__nvvm_add_rn_f">, 459 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 460 [IntrNoMem, Commutative]>; 461 def int_nvvm_add_rz_ftz_f : GCCBuiltin<"__nvvm_add_rz_ftz_f">, 462 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 463 [IntrNoMem, Commutative]>; 464 def int_nvvm_add_rz_f : GCCBuiltin<"__nvvm_add_rz_f">, 465 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 466 [IntrNoMem, Commutative]>; 467 def int_nvvm_add_rm_ftz_f : GCCBuiltin<"__nvvm_add_rm_ftz_f">, 468 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 469 [IntrNoMem, Commutative]>; 470 def int_nvvm_add_rm_f : GCCBuiltin<"__nvvm_add_rm_f">, 471 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 472 [IntrNoMem, Commutative]>; 473 def int_nvvm_add_rp_ftz_f : GCCBuiltin<"__nvvm_add_rp_ftz_f">, 474 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 475 [IntrNoMem, Commutative]>; 476 def int_nvvm_add_rp_f : GCCBuiltin<"__nvvm_add_rp_f">, 477 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], 478 [IntrNoMem, Commutative]>; 479 480 def int_nvvm_add_rn_d : GCCBuiltin<"__nvvm_add_rn_d">, 481 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 482 [IntrNoMem, Commutative]>; 483 def int_nvvm_add_rz_d : GCCBuiltin<"__nvvm_add_rz_d">, 484 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 485 [IntrNoMem, Commutative]>; 486 def int_nvvm_add_rm_d : GCCBuiltin<"__nvvm_add_rm_d">, 487 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 488 [IntrNoMem, Commutative]>; 489 def int_nvvm_add_rp_d : GCCBuiltin<"__nvvm_add_rp_d">, 490 Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], 491 [IntrNoMem, Commutative]>; 492 493// 494// Convert 495// 496 497 def int_nvvm_d2f_rn_ftz : GCCBuiltin<"__nvvm_d2f_rn_ftz">, 498 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 499 def int_nvvm_d2f_rn : GCCBuiltin<"__nvvm_d2f_rn">, 500 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 501 def int_nvvm_d2f_rz_ftz : GCCBuiltin<"__nvvm_d2f_rz_ftz">, 502 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 503 def int_nvvm_d2f_rz : GCCBuiltin<"__nvvm_d2f_rz">, 504 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 505 def int_nvvm_d2f_rm_ftz : GCCBuiltin<"__nvvm_d2f_rm_ftz">, 506 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 507 def int_nvvm_d2f_rm : GCCBuiltin<"__nvvm_d2f_rm">, 508 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 509 def int_nvvm_d2f_rp_ftz : GCCBuiltin<"__nvvm_d2f_rp_ftz">, 510 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 511 def int_nvvm_d2f_rp : GCCBuiltin<"__nvvm_d2f_rp">, 512 Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; 513 514 def int_nvvm_d2i_rn : GCCBuiltin<"__nvvm_d2i_rn">, 515 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 516 def int_nvvm_d2i_rz : GCCBuiltin<"__nvvm_d2i_rz">, 517 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 518 def int_nvvm_d2i_rm : GCCBuiltin<"__nvvm_d2i_rm">, 519 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 520 def int_nvvm_d2i_rp : GCCBuiltin<"__nvvm_d2i_rp">, 521 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 522 523 def int_nvvm_d2ui_rn : GCCBuiltin<"__nvvm_d2ui_rn">, 524 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 525 def int_nvvm_d2ui_rz : GCCBuiltin<"__nvvm_d2ui_rz">, 526 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 527 def int_nvvm_d2ui_rm : GCCBuiltin<"__nvvm_d2ui_rm">, 528 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 529 def int_nvvm_d2ui_rp : GCCBuiltin<"__nvvm_d2ui_rp">, 530 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 531 532 def int_nvvm_i2d_rn : GCCBuiltin<"__nvvm_i2d_rn">, 533 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 534 def int_nvvm_i2d_rz : GCCBuiltin<"__nvvm_i2d_rz">, 535 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 536 def int_nvvm_i2d_rm : GCCBuiltin<"__nvvm_i2d_rm">, 537 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 538 def int_nvvm_i2d_rp : GCCBuiltin<"__nvvm_i2d_rp">, 539 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 540 541 def int_nvvm_ui2d_rn : GCCBuiltin<"__nvvm_ui2d_rn">, 542 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 543 def int_nvvm_ui2d_rz : GCCBuiltin<"__nvvm_ui2d_rz">, 544 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 545 def int_nvvm_ui2d_rm : GCCBuiltin<"__nvvm_ui2d_rm">, 546 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 547 def int_nvvm_ui2d_rp : GCCBuiltin<"__nvvm_ui2d_rp">, 548 Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; 549 550 def int_nvvm_f2i_rn_ftz : GCCBuiltin<"__nvvm_f2i_rn_ftz">, 551 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 552 def int_nvvm_f2i_rn : GCCBuiltin<"__nvvm_f2i_rn">, 553 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 554 def int_nvvm_f2i_rz_ftz : GCCBuiltin<"__nvvm_f2i_rz_ftz">, 555 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 556 def int_nvvm_f2i_rz : GCCBuiltin<"__nvvm_f2i_rz">, 557 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 558 def int_nvvm_f2i_rm_ftz : GCCBuiltin<"__nvvm_f2i_rm_ftz">, 559 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 560 def int_nvvm_f2i_rm : GCCBuiltin<"__nvvm_f2i_rm">, 561 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 562 def int_nvvm_f2i_rp_ftz : GCCBuiltin<"__nvvm_f2i_rp_ftz">, 563 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 564 def int_nvvm_f2i_rp : GCCBuiltin<"__nvvm_f2i_rp">, 565 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 566 567 def int_nvvm_f2ui_rn_ftz : GCCBuiltin<"__nvvm_f2ui_rn_ftz">, 568 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 569 def int_nvvm_f2ui_rn : GCCBuiltin<"__nvvm_f2ui_rn">, 570 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 571 def int_nvvm_f2ui_rz_ftz : GCCBuiltin<"__nvvm_f2ui_rz_ftz">, 572 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 573 def int_nvvm_f2ui_rz : GCCBuiltin<"__nvvm_f2ui_rz">, 574 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 575 def int_nvvm_f2ui_rm_ftz : GCCBuiltin<"__nvvm_f2ui_rm_ftz">, 576 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 577 def int_nvvm_f2ui_rm : GCCBuiltin<"__nvvm_f2ui_rm">, 578 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 579 def int_nvvm_f2ui_rp_ftz : GCCBuiltin<"__nvvm_f2ui_rp_ftz">, 580 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 581 def int_nvvm_f2ui_rp : GCCBuiltin<"__nvvm_f2ui_rp">, 582 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 583 584 def int_nvvm_i2f_rn : GCCBuiltin<"__nvvm_i2f_rn">, 585 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 586 def int_nvvm_i2f_rz : GCCBuiltin<"__nvvm_i2f_rz">, 587 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 588 def int_nvvm_i2f_rm : GCCBuiltin<"__nvvm_i2f_rm">, 589 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 590 def int_nvvm_i2f_rp : GCCBuiltin<"__nvvm_i2f_rp">, 591 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 592 593 def int_nvvm_ui2f_rn : GCCBuiltin<"__nvvm_ui2f_rn">, 594 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 595 def int_nvvm_ui2f_rz : GCCBuiltin<"__nvvm_ui2f_rz">, 596 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 597 def int_nvvm_ui2f_rm : GCCBuiltin<"__nvvm_ui2f_rm">, 598 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 599 def int_nvvm_ui2f_rp : GCCBuiltin<"__nvvm_ui2f_rp">, 600 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 601 602 def int_nvvm_lohi_i2d : GCCBuiltin<"__nvvm_lohi_i2d">, 603 Intrinsic<[llvm_double_ty], [llvm_i32_ty, llvm_i32_ty], 604 [IntrNoMem, Commutative]>; 605 606 def int_nvvm_d2i_lo : GCCBuiltin<"__nvvm_d2i_lo">, 607 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 608 def int_nvvm_d2i_hi : GCCBuiltin<"__nvvm_d2i_hi">, 609 Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; 610 611 def int_nvvm_f2ll_rn_ftz : GCCBuiltin<"__nvvm_f2ll_rn_ftz">, 612 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 613 def int_nvvm_f2ll_rn : GCCBuiltin<"__nvvm_f2ll_rn">, 614 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 615 def int_nvvm_f2ll_rz_ftz : GCCBuiltin<"__nvvm_f2ll_rz_ftz">, 616 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 617 def int_nvvm_f2ll_rz : GCCBuiltin<"__nvvm_f2ll_rz">, 618 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 619 def int_nvvm_f2ll_rm_ftz : GCCBuiltin<"__nvvm_f2ll_rm_ftz">, 620 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 621 def int_nvvm_f2ll_rm : GCCBuiltin<"__nvvm_f2ll_rm">, 622 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 623 def int_nvvm_f2ll_rp_ftz : GCCBuiltin<"__nvvm_f2ll_rp_ftz">, 624 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 625 def int_nvvm_f2ll_rp : GCCBuiltin<"__nvvm_f2ll_rp">, 626 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 627 628 def int_nvvm_f2ull_rn_ftz : GCCBuiltin<"__nvvm_f2ull_rn_ftz">, 629 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 630 def int_nvvm_f2ull_rn : GCCBuiltin<"__nvvm_f2ull_rn">, 631 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 632 def int_nvvm_f2ull_rz_ftz : GCCBuiltin<"__nvvm_f2ull_rz_ftz">, 633 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 634 def int_nvvm_f2ull_rz : GCCBuiltin<"__nvvm_f2ull_rz">, 635 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 636 def int_nvvm_f2ull_rm_ftz : GCCBuiltin<"__nvvm_f2ull_rm_ftz">, 637 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 638 def int_nvvm_f2ull_rm : GCCBuiltin<"__nvvm_f2ull_rm">, 639 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 640 def int_nvvm_f2ull_rp_ftz : GCCBuiltin<"__nvvm_f2ull_rp_ftz">, 641 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 642 def int_nvvm_f2ull_rp : GCCBuiltin<"__nvvm_f2ull_rp">, 643 Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; 644 645 def int_nvvm_d2ll_rn : GCCBuiltin<"__nvvm_d2ll_rn">, 646 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 647 def int_nvvm_d2ll_rz : GCCBuiltin<"__nvvm_d2ll_rz">, 648 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 649 def int_nvvm_d2ll_rm : GCCBuiltin<"__nvvm_d2ll_rm">, 650 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 651 def int_nvvm_d2ll_rp : GCCBuiltin<"__nvvm_d2ll_rp">, 652 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 653 654 def int_nvvm_d2ull_rn : GCCBuiltin<"__nvvm_d2ull_rn">, 655 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 656 def int_nvvm_d2ull_rz : GCCBuiltin<"__nvvm_d2ull_rz">, 657 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 658 def int_nvvm_d2ull_rm : GCCBuiltin<"__nvvm_d2ull_rm">, 659 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 660 def int_nvvm_d2ull_rp : GCCBuiltin<"__nvvm_d2ull_rp">, 661 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 662 663 def int_nvvm_ll2f_rn : GCCBuiltin<"__nvvm_ll2f_rn">, 664 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 665 def int_nvvm_ll2f_rz : GCCBuiltin<"__nvvm_ll2f_rz">, 666 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 667 def int_nvvm_ll2f_rm : GCCBuiltin<"__nvvm_ll2f_rm">, 668 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 669 def int_nvvm_ll2f_rp : GCCBuiltin<"__nvvm_ll2f_rp">, 670 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 671 def int_nvvm_ull2f_rn : GCCBuiltin<"__nvvm_ull2f_rn">, 672 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 673 def int_nvvm_ull2f_rz : GCCBuiltin<"__nvvm_ull2f_rz">, 674 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 675 def int_nvvm_ull2f_rm : GCCBuiltin<"__nvvm_ull2f_rm">, 676 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 677 def int_nvvm_ull2f_rp : GCCBuiltin<"__nvvm_ull2f_rp">, 678 Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; 679 680 def int_nvvm_ll2d_rn : GCCBuiltin<"__nvvm_ll2d_rn">, 681 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 682 def int_nvvm_ll2d_rz : GCCBuiltin<"__nvvm_ll2d_rz">, 683 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 684 def int_nvvm_ll2d_rm : GCCBuiltin<"__nvvm_ll2d_rm">, 685 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 686 def int_nvvm_ll2d_rp : GCCBuiltin<"__nvvm_ll2d_rp">, 687 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 688 def int_nvvm_ull2d_rn : GCCBuiltin<"__nvvm_ull2d_rn">, 689 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 690 def int_nvvm_ull2d_rz : GCCBuiltin<"__nvvm_ull2d_rz">, 691 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 692 def int_nvvm_ull2d_rm : GCCBuiltin<"__nvvm_ull2d_rm">, 693 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 694 def int_nvvm_ull2d_rp : GCCBuiltin<"__nvvm_ull2d_rp">, 695 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 696 697 def int_nvvm_f2h_rn_ftz : GCCBuiltin<"__nvvm_f2h_rn_ftz">, 698 Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>; 699 def int_nvvm_f2h_rn : GCCBuiltin<"__nvvm_f2h_rn">, 700 Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>; 701 702 def int_nvvm_h2f : GCCBuiltin<"__nvvm_h2f">, 703 Intrinsic<[llvm_float_ty], [llvm_i16_ty], [IntrNoMem]>; 704 705// 706// Bitcast 707// 708 709 def int_nvvm_bitcast_f2i : GCCBuiltin<"__nvvm_bitcast_f2i">, 710 Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; 711 def int_nvvm_bitcast_i2f : GCCBuiltin<"__nvvm_bitcast_i2f">, 712 Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 713 714 def int_nvvm_bitcast_ll2d : GCCBuiltin<"__nvvm_bitcast_ll2d">, 715 Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; 716 def int_nvvm_bitcast_d2ll : GCCBuiltin<"__nvvm_bitcast_d2ll">, 717 Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; 718 719 720// Atomic not available as an llvm intrinsic. 721 def int_nvvm_atomic_load_add_f32 : Intrinsic<[llvm_float_ty], 722 [LLVMAnyPointerType<llvm_float_ty>, llvm_float_ty], 723 [IntrReadWriteArgMem, NoCapture<0>]>; 724 def int_nvvm_atomic_load_inc_32 : Intrinsic<[llvm_i32_ty], 725 [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty], 726 [IntrReadWriteArgMem, NoCapture<0>]>; 727 def int_nvvm_atomic_load_dec_32 : Intrinsic<[llvm_i32_ty], 728 [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty], 729 [IntrReadWriteArgMem, NoCapture<0>]>; 730 731// Bar.Sync 732 def int_cuda_syncthreads : GCCBuiltin<"__syncthreads">, 733 Intrinsic<[], [], [IntrNoDuplicate]>; 734 def int_nvvm_barrier0 : GCCBuiltin<"__nvvm_bar0">, 735 Intrinsic<[], [], [IntrNoDuplicate]>; 736 def int_nvvm_barrier0_popc : GCCBuiltin<"__nvvm_bar0_popc">, 737 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoDuplicate]>; 738 def int_nvvm_barrier0_and : GCCBuiltin<"__nvvm_bar0_and">, 739 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoDuplicate]>; 740 def int_nvvm_barrier0_or : GCCBuiltin<"__nvvm_bar0_or">, 741 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoDuplicate]>; 742 743 // Membar 744 def int_nvvm_membar_cta : GCCBuiltin<"__nvvm_membar_cta">, 745 Intrinsic<[], [], []>; 746 def int_nvvm_membar_gl : GCCBuiltin<"__nvvm_membar_gl">, 747 Intrinsic<[], [], []>; 748 def int_nvvm_membar_sys : GCCBuiltin<"__nvvm_membar_sys">, 749 Intrinsic<[], [], []>; 750 751 752// Accessing special registers 753 def int_nvvm_read_ptx_sreg_tid_x : 754 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 755 GCCBuiltin<"__nvvm_read_ptx_sreg_tid_x">; 756 def int_nvvm_read_ptx_sreg_tid_y : 757 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 758 GCCBuiltin<"__nvvm_read_ptx_sreg_tid_y">; 759 def int_nvvm_read_ptx_sreg_tid_z : 760 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 761 GCCBuiltin<"__nvvm_read_ptx_sreg_tid_z">; 762 763 def int_nvvm_read_ptx_sreg_ntid_x : 764 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 765 GCCBuiltin<"__nvvm_read_ptx_sreg_ntid_x">; 766 def int_nvvm_read_ptx_sreg_ntid_y : 767 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 768 GCCBuiltin<"__nvvm_read_ptx_sreg_ntid_y">; 769 def int_nvvm_read_ptx_sreg_ntid_z : 770 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 771 GCCBuiltin<"__nvvm_read_ptx_sreg_ntid_z">; 772 773 def int_nvvm_read_ptx_sreg_ctaid_x : 774 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 775 GCCBuiltin<"__nvvm_read_ptx_sreg_ctaid_x">; 776 def int_nvvm_read_ptx_sreg_ctaid_y : 777 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 778 GCCBuiltin<"__nvvm_read_ptx_sreg_ctaid_y">; 779 def int_nvvm_read_ptx_sreg_ctaid_z : 780 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 781 GCCBuiltin<"__nvvm_read_ptx_sreg_ctaid_z">; 782 783 def int_nvvm_read_ptx_sreg_nctaid_x : 784 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 785 GCCBuiltin<"__nvvm_read_ptx_sreg_nctaid_x">; 786 def int_nvvm_read_ptx_sreg_nctaid_y : 787 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 788 GCCBuiltin<"__nvvm_read_ptx_sreg_nctaid_y">; 789 def int_nvvm_read_ptx_sreg_nctaid_z : 790 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 791 GCCBuiltin<"__nvvm_read_ptx_sreg_nctaid_z">; 792 793 def int_nvvm_read_ptx_sreg_warpsize : 794 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 795 GCCBuiltin<"__nvvm_read_ptx_sreg_warpsize">; 796 797 798// Generated within nvvm. Use for ldu on sm_20 or later 799def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty], 800 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>], 801 "llvm.nvvm.ldu.global.i">; 802def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty], 803 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>], 804 "llvm.nvvm.ldu.global.f">; 805def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty], 806 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>], 807 "llvm.nvvm.ldu.global.p">; 808 809// Generated within nvvm. Use for ldg on sm_35 or later 810def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty], 811 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>], 812 "llvm.nvvm.ldg.global.i">; 813def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty], 814 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>], 815 "llvm.nvvm.ldg.global.f">; 816def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty], 817 [LLVMAnyPointerType<LLVMMatchType<0>>], [IntrReadMem, NoCapture<0>], 818 "llvm.nvvm.ldg.global.p">; 819 820// Use for generic pointers 821// - These intrinsics are used to convert address spaces. 822// - The input pointer and output pointer must have the same type, except for 823// the address-space. (This restriction is not enforced here as there is 824// currently no way to describe it). 825// - This complements the llvm bitcast, which can be used to cast one type 826// of pointer to another type of pointer, while the address space remains 827// the same. 828def int_nvvm_ptr_local_to_gen: Intrinsic<[llvm_anyptr_ty], 829 [llvm_anyptr_ty], [IntrNoMem], 830 "llvm.nvvm.ptr.local.to.gen">; 831def int_nvvm_ptr_shared_to_gen: Intrinsic<[llvm_anyptr_ty], 832 [llvm_anyptr_ty], [IntrNoMem], 833 "llvm.nvvm.ptr.shared.to.gen">; 834def int_nvvm_ptr_global_to_gen: Intrinsic<[llvm_anyptr_ty], 835 [llvm_anyptr_ty], [IntrNoMem], 836 "llvm.nvvm.ptr.global.to.gen">; 837def int_nvvm_ptr_constant_to_gen: Intrinsic<[llvm_anyptr_ty], 838 [llvm_anyptr_ty], [IntrNoMem], 839 "llvm.nvvm.ptr.constant.to.gen">; 840 841def int_nvvm_ptr_gen_to_global: Intrinsic<[llvm_anyptr_ty], 842 [llvm_anyptr_ty], [IntrNoMem], 843 "llvm.nvvm.ptr.gen.to.global">; 844def int_nvvm_ptr_gen_to_shared: Intrinsic<[llvm_anyptr_ty], 845 [llvm_anyptr_ty], [IntrNoMem], 846 "llvm.nvvm.ptr.gen.to.shared">; 847def int_nvvm_ptr_gen_to_local: Intrinsic<[llvm_anyptr_ty], 848 [llvm_anyptr_ty], [IntrNoMem], 849 "llvm.nvvm.ptr.gen.to.local">; 850def int_nvvm_ptr_gen_to_constant: Intrinsic<[llvm_anyptr_ty], 851 [llvm_anyptr_ty], [IntrNoMem], 852 "llvm.nvvm.ptr.gen.to.constant">; 853 854// Used in nvvm internally to help address space opt and ptx code generation 855// This is for params that are passed to kernel functions by pointer by-val. 856def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty], 857 [llvm_anyptr_ty], 858 [IntrNoMem], 859 "llvm.nvvm.ptr.gen.to.param">; 860 861// Move intrinsics, used in nvvm internally 862 863def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem], 864 "llvm.nvvm.move.i16">; 865def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem], 866 "llvm.nvvm.move.i32">; 867def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem], 868 "llvm.nvvm.move.i64">; 869def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty], 870 [IntrNoMem], "llvm.nvvm.move.float">; 871def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty], 872 [IntrNoMem], "llvm.nvvm.move.double">; 873def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], 874 [IntrNoMem, NoCapture<0>], "llvm.nvvm.move.ptr">; 875 876 877// For getting the handle from a texture or surface variable 878def int_nvvm_texsurf_handle 879 : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_anyi64ptr_ty], 880 [IntrNoMem], "llvm.nvvm.texsurf.handle">; 881def int_nvvm_texsurf_handle_internal 882 : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty], 883 [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">; 884 885/// Error / Warn 886def int_nvvm_compiler_error : 887 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">; 888def int_nvvm_compiler_warn : 889 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">; 890 891def int_nvvm_reflect : 892 Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.reflect">; 893 894// isspacep.{const, global, local, shared} 895def int_nvvm_isspacep_const 896 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 897 "llvm.nvvm.isspacep.const">, 898 GCCBuiltin<"__nvvm_isspacep_const">; 899def int_nvvm_isspacep_global 900 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 901 "llvm.nvvm.isspacep.global">, 902 GCCBuiltin<"__nvvm_isspacep_global">; 903def int_nvvm_isspacep_local 904 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 905 "llvm.nvvm.isspacep.local">, 906 GCCBuiltin<"__nvvm_isspacep_local">; 907def int_nvvm_isspacep_shared 908 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 909 "llvm.nvvm.isspacep.shared">, 910 GCCBuiltin<"__nvvm_isspacep_shared">; 911 912// Environment register read 913def int_nvvm_read_ptx_sreg_envreg0 914 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 915 "llvm.nvvm.read.ptx.sreg.envreg0">, 916 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">; 917def int_nvvm_read_ptx_sreg_envreg1 918 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 919 "llvm.nvvm.read.ptx.sreg.envreg1">, 920 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">; 921def int_nvvm_read_ptx_sreg_envreg2 922 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 923 "llvm.nvvm.read.ptx.sreg.envreg2">, 924 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">; 925def int_nvvm_read_ptx_sreg_envreg3 926 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 927 "llvm.nvvm.read.ptx.sreg.envreg3">, 928 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">; 929def int_nvvm_read_ptx_sreg_envreg4 930 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 931 "llvm.nvvm.read.ptx.sreg.envreg4">, 932 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">; 933def int_nvvm_read_ptx_sreg_envreg5 934 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 935 "llvm.nvvm.read.ptx.sreg.envreg5">, 936 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">; 937def int_nvvm_read_ptx_sreg_envreg6 938 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 939 "llvm.nvvm.read.ptx.sreg.envreg6">, 940 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">; 941def int_nvvm_read_ptx_sreg_envreg7 942 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 943 "llvm.nvvm.read.ptx.sreg.envreg7">, 944 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">; 945def int_nvvm_read_ptx_sreg_envreg8 946 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 947 "llvm.nvvm.read.ptx.sreg.envreg8">, 948 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">; 949def int_nvvm_read_ptx_sreg_envreg9 950 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 951 "llvm.nvvm.read.ptx.sreg.envreg9">, 952 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">; 953def int_nvvm_read_ptx_sreg_envreg10 954 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 955 "llvm.nvvm.read.ptx.sreg.envreg10">, 956 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">; 957def int_nvvm_read_ptx_sreg_envreg11 958 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 959 "llvm.nvvm.read.ptx.sreg.envreg11">, 960 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">; 961def int_nvvm_read_ptx_sreg_envreg12 962 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 963 "llvm.nvvm.read.ptx.sreg.envreg12">, 964 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">; 965def int_nvvm_read_ptx_sreg_envreg13 966 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 967 "llvm.nvvm.read.ptx.sreg.envreg13">, 968 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">; 969def int_nvvm_read_ptx_sreg_envreg14 970 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 971 "llvm.nvvm.read.ptx.sreg.envreg14">, 972 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">; 973def int_nvvm_read_ptx_sreg_envreg15 974 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 975 "llvm.nvvm.read.ptx.sreg.envreg15">, 976 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">; 977def int_nvvm_read_ptx_sreg_envreg16 978 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 979 "llvm.nvvm.read.ptx.sreg.envreg16">, 980 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">; 981def int_nvvm_read_ptx_sreg_envreg17 982 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 983 "llvm.nvvm.read.ptx.sreg.envreg17">, 984 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">; 985def int_nvvm_read_ptx_sreg_envreg18 986 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 987 "llvm.nvvm.read.ptx.sreg.envreg18">, 988 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">; 989def int_nvvm_read_ptx_sreg_envreg19 990 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 991 "llvm.nvvm.read.ptx.sreg.envreg19">, 992 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">; 993def int_nvvm_read_ptx_sreg_envreg20 994 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 995 "llvm.nvvm.read.ptx.sreg.envreg20">, 996 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">; 997def int_nvvm_read_ptx_sreg_envreg21 998 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 999 "llvm.nvvm.read.ptx.sreg.envreg21">, 1000 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">; 1001def int_nvvm_read_ptx_sreg_envreg22 1002 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1003 "llvm.nvvm.read.ptx.sreg.envreg22">, 1004 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">; 1005def int_nvvm_read_ptx_sreg_envreg23 1006 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1007 "llvm.nvvm.read.ptx.sreg.envreg23">, 1008 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">; 1009def int_nvvm_read_ptx_sreg_envreg24 1010 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1011 "llvm.nvvm.read.ptx.sreg.envreg24">, 1012 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">; 1013def int_nvvm_read_ptx_sreg_envreg25 1014 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1015 "llvm.nvvm.read.ptx.sreg.envreg25">, 1016 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">; 1017def int_nvvm_read_ptx_sreg_envreg26 1018 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1019 "llvm.nvvm.read.ptx.sreg.envreg26">, 1020 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">; 1021def int_nvvm_read_ptx_sreg_envreg27 1022 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1023 "llvm.nvvm.read.ptx.sreg.envreg27">, 1024 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">; 1025def int_nvvm_read_ptx_sreg_envreg28 1026 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1027 "llvm.nvvm.read.ptx.sreg.envreg28">, 1028 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">; 1029def int_nvvm_read_ptx_sreg_envreg29 1030 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1031 "llvm.nvvm.read.ptx.sreg.envreg29">, 1032 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">; 1033def int_nvvm_read_ptx_sreg_envreg30 1034 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1035 "llvm.nvvm.read.ptx.sreg.envreg30">, 1036 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">; 1037def int_nvvm_read_ptx_sreg_envreg31 1038 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1039 "llvm.nvvm.read.ptx.sreg.envreg31">, 1040 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">; 1041 1042 1043// Texture Fetch 1044def int_nvvm_tex_1d_v4f32_i32 1045 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1046 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], 1047 "llvm.nvvm.tex.1d.v4f32.i32">; 1048def int_nvvm_tex_1d_v4f32_f32 1049 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1050 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], 1051 "llvm.nvvm.tex.1d.v4f32.f32">; 1052def int_nvvm_tex_1d_level_v4f32_f32 1053 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1054 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1055 "llvm.nvvm.tex.1d.level.v4f32.f32">; 1056def int_nvvm_tex_1d_grad_v4f32_f32 1057 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1058 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1059 llvm_float_ty], [], 1060 "llvm.nvvm.tex.1d.grad.v4f32.f32">; 1061def int_nvvm_tex_1d_v4i32_i32 1062 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1063 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], 1064 "llvm.nvvm.tex.1d.v4i32.i32">; 1065def int_nvvm_tex_1d_v4i32_f32 1066 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1067 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], 1068 "llvm.nvvm.tex.1d.v4i32.f32">; 1069def int_nvvm_tex_1d_level_v4i32_f32 1070 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1071 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1072 "llvm.nvvm.tex.1d.level.v4i32.f32.level">; 1073def int_nvvm_tex_1d_grad_v4i32_f32 1074 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1075 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1076 llvm_float_ty], [], 1077 "llvm.nvvm.tex.1d.grad.v4i32.f32">; 1078 1079def int_nvvm_tex_1d_array_v4f32_i32 1080 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1081 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1082 "llvm.nvvm.tex.1d.array.v4f32.i32">; 1083def int_nvvm_tex_1d_array_v4f32_f32 1084 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1085 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1086 "llvm.nvvm.tex.1d.array.v4f32.f32">; 1087def int_nvvm_tex_1d_array_level_v4f32_f32 1088 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1089 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1090 llvm_float_ty], [], 1091 "llvm.nvvm.tex.1d.array.level.v4f32.f32">; 1092def int_nvvm_tex_1d_array_grad_v4f32_f32 1093 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1094 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1095 llvm_float_ty, llvm_float_ty], [], 1096 "llvm.nvvm.tex.1d.array.grad.v4f32.f32">; 1097def int_nvvm_tex_1d_array_v4i32_i32 1098 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1099 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1100 "llvm.nvvm.tex.1d.array.v4i32.i32">; 1101def int_nvvm_tex_1d_array_v4i32_f32 1102 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1103 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1104 "llvm.nvvm.tex.1d.array.v4i32.f32">; 1105def int_nvvm_tex_1d_array_level_v4i32_f32 1106 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1107 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1108 llvm_float_ty], [], 1109 "llvm.nvvm.tex.1d.array.level.v4i32.f32">; 1110def int_nvvm_tex_1d_array_grad_v4i32_f32 1111 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1112 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1113 llvm_float_ty, llvm_float_ty], [], 1114 "llvm.nvvm.tex.1d.array.grad.v4i32.f32">; 1115 1116def int_nvvm_tex_2d_v4f32_i32 1117 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1118 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1119 "llvm.nvvm.tex.2d.v4f32.i32">; 1120def int_nvvm_tex_2d_v4f32_f32 1121 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1122 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1123 "llvm.nvvm.tex.2d.v4f32.f32">; 1124def int_nvvm_tex_2d_level_v4f32_f32 1125 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1126 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1127 llvm_float_ty], [], 1128 "llvm.nvvm.tex.2d.level.v4f32.f32">; 1129def int_nvvm_tex_2d_grad_v4f32_f32 1130 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1131 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1132 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1133 "llvm.nvvm.tex.2d.grad.v4f32.f32">; 1134def int_nvvm_tex_2d_v4i32_i32 1135 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1136 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1137 "llvm.nvvm.tex.2d.v4i32.i32">; 1138def int_nvvm_tex_2d_v4i32_f32 1139 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1140 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1141 "llvm.nvvm.tex.2d.v4i32.f32">; 1142def int_nvvm_tex_2d_level_v4i32_f32 1143 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1144 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1145 llvm_float_ty], [], 1146 "llvm.nvvm.tex.2d.level.v4i32.f32">; 1147def int_nvvm_tex_2d_grad_v4i32_f32 1148 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1149 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1150 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1151 "llvm.nvvm.tex.2d.grad.v4i32.f32">; 1152 1153def int_nvvm_tex_2d_array_v4f32_i32 1154 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1155 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1156 llvm_i32_ty], [], 1157 "llvm.nvvm.tex.2d.array.v4f32.i32">; 1158def int_nvvm_tex_2d_array_v4f32_f32 1159 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1160 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1161 llvm_float_ty], [], 1162 "llvm.nvvm.tex.2d.array.v4f32.f32">; 1163def int_nvvm_tex_2d_array_level_v4f32_f32 1164 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1165 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1166 llvm_float_ty, llvm_float_ty], [], 1167 "llvm.nvvm.tex.2d.array.level.v4f32.f32">; 1168def int_nvvm_tex_2d_array_grad_v4f32_f32 1169 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1170 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1171 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1172 llvm_float_ty], [], 1173 "llvm.nvvm.tex.2d.array.grad.v4f32.f32">; 1174def int_nvvm_tex_2d_array_v4i32_i32 1175 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1176 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1177 llvm_i32_ty], [], 1178 "llvm.nvvm.tex.2d.array.v4i32.i32">; 1179def int_nvvm_tex_2d_array_v4i32_f32 1180 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1181 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1182 llvm_float_ty], [], 1183 "llvm.nvvm.tex.2d.array.v4i32.f32">; 1184def int_nvvm_tex_2d_array_level_v4i32_f32 1185 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1186 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1187 llvm_float_ty, llvm_float_ty], [], 1188 "llvm.nvvm.tex.2d.array.level.v4i32.f32">; 1189def int_nvvm_tex_2d_array_grad_v4i32_f32 1190 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1191 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1192 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1193 llvm_float_ty], [], 1194 "llvm.nvvm.tex.2d.array.grad.v4i32.f32">; 1195 1196def int_nvvm_tex_3d_v4f32_i32 1197 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1198 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1199 [], "llvm.nvvm.tex.3d.v4f32.i32">; 1200def int_nvvm_tex_3d_v4f32_f32 1201 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1202 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1203 llvm_float_ty], [], 1204 "llvm.nvvm.tex.3d.v4f32.f32">; 1205def int_nvvm_tex_3d_level_v4f32_f32 1206 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1207 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1208 llvm_float_ty, llvm_float_ty], [], 1209 "llvm.nvvm.tex.3d.level.v4f32.f32">; 1210def int_nvvm_tex_3d_grad_v4f32_f32 1211 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1212 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1213 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1214 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1215 "llvm.nvvm.tex.3d.grad.v4f32.f32">; 1216def int_nvvm_tex_3d_v4i32_i32 1217 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1218 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1219 [], "llvm.nvvm.tex.3d.v4i32.i32">; 1220def int_nvvm_tex_3d_v4i32_f32 1221 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1222 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1223 llvm_float_ty], [], 1224 "llvm.nvvm.tex.3d.v4i32.f32">; 1225def int_nvvm_tex_3d_level_v4i32_f32 1226 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1227 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1228 llvm_float_ty, llvm_float_ty], [], 1229 "llvm.nvvm.tex.3d.level.v4i32.f32">; 1230def int_nvvm_tex_3d_grad_v4i32_f32 1231 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1232 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1233 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1234 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1235 "llvm.nvvm.tex.3d.grad.v4i32.f32">; 1236 1237// Surface Load 1238def int_nvvm_suld_1d_i8_trap 1239 : Intrinsic<[llvm_i16_ty], 1240 [llvm_i64_ty, llvm_i32_ty], [], 1241 "llvm.nvvm.suld.1d.i8.trap">; 1242def int_nvvm_suld_1d_i16_trap 1243 : Intrinsic<[llvm_i16_ty], 1244 [llvm_i64_ty, llvm_i32_ty], [], 1245 "llvm.nvvm.suld.1d.i16.trap">; 1246def int_nvvm_suld_1d_i32_trap 1247 : Intrinsic<[llvm_i32_ty], 1248 [llvm_i64_ty, llvm_i32_ty], [], 1249 "llvm.nvvm.suld.1d.i32.trap">; 1250def int_nvvm_suld_1d_v2i8_trap 1251 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1252 [llvm_i64_ty, llvm_i32_ty], [], 1253 "llvm.nvvm.suld.1d.v2i8.trap">; 1254def int_nvvm_suld_1d_v2i16_trap 1255 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1256 [llvm_i64_ty, llvm_i32_ty], [], 1257 "llvm.nvvm.suld.1d.v2i16.trap">; 1258def int_nvvm_suld_1d_v2i32_trap 1259 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1260 [llvm_i64_ty, llvm_i32_ty], [], 1261 "llvm.nvvm.suld.1d.v2i32.trap">; 1262def int_nvvm_suld_1d_v4i8_trap 1263 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1264 [llvm_i64_ty, llvm_i32_ty], [], 1265 "llvm.nvvm.suld.1d.v4i8.trap">; 1266def int_nvvm_suld_1d_v4i16_trap 1267 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1268 [llvm_i64_ty, llvm_i32_ty], [], 1269 "llvm.nvvm.suld.1d.v4i16.trap">; 1270def int_nvvm_suld_1d_v4i32_trap 1271 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1272 [llvm_i64_ty, llvm_i32_ty], [], 1273 "llvm.nvvm.suld.1d.v4i32.trap">; 1274 1275def int_nvvm_suld_1d_array_i8_trap 1276 : Intrinsic<[llvm_i16_ty], 1277 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1278 "llvm.nvvm.suld.1d.array.i8.trap">; 1279def int_nvvm_suld_1d_array_i16_trap 1280 : Intrinsic<[llvm_i16_ty], 1281 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1282 "llvm.nvvm.suld.1d.array.i16.trap">; 1283def int_nvvm_suld_1d_array_i32_trap 1284 : Intrinsic<[llvm_i32_ty], 1285 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1286 "llvm.nvvm.suld.1d.array.i32.trap">; 1287def int_nvvm_suld_1d_array_v2i8_trap 1288 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1289 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1290 "llvm.nvvm.suld.1d.array.v2i8.trap">; 1291def int_nvvm_suld_1d_array_v2i16_trap 1292 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1293 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1294 "llvm.nvvm.suld.1d.array.v2i16.trap">; 1295def int_nvvm_suld_1d_array_v2i32_trap 1296 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1297 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1298 "llvm.nvvm.suld.1d.array.v2i32.trap">; 1299def int_nvvm_suld_1d_array_v4i8_trap 1300 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1301 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1302 "llvm.nvvm.suld.1d.array.v4i8.trap">; 1303def int_nvvm_suld_1d_array_v4i16_trap 1304 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1305 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1306 "llvm.nvvm.suld.1d.array.v4i16.trap">; 1307def int_nvvm_suld_1d_array_v4i32_trap 1308 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1309 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1310 "llvm.nvvm.suld.1d.array.v4i32.trap">; 1311 1312def int_nvvm_suld_2d_i8_trap 1313 : Intrinsic<[llvm_i16_ty], 1314 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1315 "llvm.nvvm.suld.2d.i8.trap">; 1316def int_nvvm_suld_2d_i16_trap 1317 : Intrinsic<[llvm_i16_ty], 1318 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1319 "llvm.nvvm.suld.2d.i16.trap">; 1320def int_nvvm_suld_2d_i32_trap 1321 : Intrinsic<[llvm_i32_ty], 1322 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1323 "llvm.nvvm.suld.2d.i32.trap">; 1324def int_nvvm_suld_2d_v2i8_trap 1325 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1326 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1327 "llvm.nvvm.suld.2d.v2i8.trap">; 1328def int_nvvm_suld_2d_v2i16_trap 1329 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1330 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1331 "llvm.nvvm.suld.2d.v2i16.trap">; 1332def int_nvvm_suld_2d_v2i32_trap 1333 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1334 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1335 "llvm.nvvm.suld.2d.v2i32.trap">; 1336def int_nvvm_suld_2d_v4i8_trap 1337 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1338 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1339 "llvm.nvvm.suld.2d.v4i8.trap">; 1340def int_nvvm_suld_2d_v4i16_trap 1341 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1342 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1343 "llvm.nvvm.suld.2d.v4i16.trap">; 1344def int_nvvm_suld_2d_v4i32_trap 1345 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1346 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1347 "llvm.nvvm.suld.2d.v4i32.trap">; 1348 1349def int_nvvm_suld_2d_array_i8_trap 1350 : Intrinsic<[llvm_i16_ty], 1351 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1352 "llvm.nvvm.suld.2d.array.i8.trap">; 1353def int_nvvm_suld_2d_array_i16_trap 1354 : Intrinsic<[llvm_i16_ty], 1355 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1356 "llvm.nvvm.suld.2d.array.i16.trap">; 1357def int_nvvm_suld_2d_array_i32_trap 1358 : Intrinsic<[llvm_i32_ty], 1359 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1360 "llvm.nvvm.suld.2d.array.i32.trap">; 1361def int_nvvm_suld_2d_array_v2i8_trap 1362 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1363 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1364 "llvm.nvvm.suld.2d.array.v2i8.trap">; 1365def int_nvvm_suld_2d_array_v2i16_trap 1366 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1367 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1368 "llvm.nvvm.suld.2d.array.v2i16.trap">; 1369def int_nvvm_suld_2d_array_v2i32_trap 1370 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1371 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1372 "llvm.nvvm.suld.2d.array.v2i32.trap">; 1373def int_nvvm_suld_2d_array_v4i8_trap 1374 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1375 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1376 "llvm.nvvm.suld.2d.array.v4i8.trap">; 1377def int_nvvm_suld_2d_array_v4i16_trap 1378 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1379 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1380 "llvm.nvvm.suld.2d.array.v4i16.trap">; 1381def int_nvvm_suld_2d_array_v4i32_trap 1382 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1383 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1384 "llvm.nvvm.suld.2d.array.v4i32.trap">; 1385 1386def int_nvvm_suld_3d_i8_trap 1387 : Intrinsic<[llvm_i16_ty], 1388 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1389 "llvm.nvvm.suld.3d.i8.trap">; 1390def int_nvvm_suld_3d_i16_trap 1391 : Intrinsic<[llvm_i16_ty], 1392 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1393 "llvm.nvvm.suld.3d.i16.trap">; 1394def int_nvvm_suld_3d_i32_trap 1395 : Intrinsic<[llvm_i32_ty], 1396 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1397 "llvm.nvvm.suld.3d.i32.trap">; 1398def int_nvvm_suld_3d_v2i8_trap 1399 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1400 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1401 "llvm.nvvm.suld.3d.v2i8.trap">; 1402def int_nvvm_suld_3d_v2i16_trap 1403 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1404 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1405 "llvm.nvvm.suld.3d.v2i16.trap">; 1406def int_nvvm_suld_3d_v2i32_trap 1407 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1408 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1409 "llvm.nvvm.suld.3d.v2i32.trap">; 1410def int_nvvm_suld_3d_v4i8_trap 1411 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1412 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1413 "llvm.nvvm.suld.3d.v4i8.trap">; 1414def int_nvvm_suld_3d_v4i16_trap 1415 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1416 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1417 "llvm.nvvm.suld.3d.v4i16.trap">; 1418def int_nvvm_suld_3d_v4i32_trap 1419 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1420 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1421 "llvm.nvvm.suld.3d.v4i32.trap">; 1422 1423//===- Texture Query ------------------------------------------------------===// 1424 1425def int_nvvm_txq_channel_order 1426 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1427 "llvm.nvvm.txq.channel.order">, 1428 GCCBuiltin<"__nvvm_txq_channel_order">; 1429def int_nvvm_txq_channel_data_type 1430 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1431 "llvm.nvvm.txq.channel.data.type">, 1432 GCCBuiltin<"__nvvm_txq_channel_data_type">; 1433def int_nvvm_txq_width 1434 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1435 "llvm.nvvm.txq.width">, 1436 GCCBuiltin<"__nvvm_txq_width">; 1437def int_nvvm_txq_height 1438 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1439 "llvm.nvvm.txq.height">, 1440 GCCBuiltin<"__nvvm_txq_height">; 1441def int_nvvm_txq_depth 1442 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1443 "llvm.nvvm.txq.depth">, 1444 GCCBuiltin<"__nvvm_txq_depth">; 1445def int_nvvm_txq_array_size 1446 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1447 "llvm.nvvm.txq.array.size">, 1448 GCCBuiltin<"__nvvm_txq_array_size">; 1449def int_nvvm_txq_num_samples 1450 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1451 "llvm.nvvm.txq.num.samples">, 1452 GCCBuiltin<"__nvvm_txq_num_samples">; 1453def int_nvvm_txq_num_mipmap_levels 1454 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1455 "llvm.nvvm.txq.num.mipmap.levels">, 1456 GCCBuiltin<"__nvvm_txq_num_mipmap_levels">; 1457 1458//===- Surface Query ------------------------------------------------------===// 1459 1460def int_nvvm_suq_channel_order 1461 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1462 "llvm.nvvm.suq.channel.order">, 1463 GCCBuiltin<"__nvvm_suq_channel_order">; 1464def int_nvvm_suq_channel_data_type 1465 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1466 "llvm.nvvm.suq.channel.data.type">, 1467 GCCBuiltin<"__nvvm_suq_channel_data_type">; 1468def int_nvvm_suq_width 1469 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1470 "llvm.nvvm.suq.width">, 1471 GCCBuiltin<"__nvvm_suq_width">; 1472def int_nvvm_suq_height 1473 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1474 "llvm.nvvm.suq.height">, 1475 GCCBuiltin<"__nvvm_suq_height">; 1476def int_nvvm_suq_depth 1477 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1478 "llvm.nvvm.suq.depth">, 1479 GCCBuiltin<"__nvvm_suq_depth">; 1480def int_nvvm_suq_array_size 1481 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 1482 "llvm.nvvm.suq.array.size">, 1483 GCCBuiltin<"__nvvm_suq_array_size">; 1484 1485 1486//===- Handle Query -------------------------------------------------------===// 1487 1488def int_nvvm_istypep_sampler 1489 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], 1490 "llvm.nvvm.istypep.sampler">, 1491 GCCBuiltin<"__nvvm_istypep_sampler">; 1492def int_nvvm_istypep_surface 1493 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], 1494 "llvm.nvvm.istypep.surface">, 1495 GCCBuiltin<"__nvvm_istypep_surface">; 1496def int_nvvm_istypep_texture 1497 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], 1498 "llvm.nvvm.istypep.texture">, 1499 GCCBuiltin<"__nvvm_istypep_texture">; 1500 1501 1502 1503//===- Surface Stores -----------------------------------------------------===// 1504 1505// Unformatted 1506 1507def int_nvvm_sust_b_1d_i8_trap 1508 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 1509 "llvm.nvvm.sust.b.1d.i8.trap">, 1510 GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">; 1511def int_nvvm_sust_b_1d_i16_trap 1512 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 1513 "llvm.nvvm.sust.b.1d.i16.trap">, 1514 GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">; 1515def int_nvvm_sust_b_1d_i32_trap 1516 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1517 "llvm.nvvm.sust.b.1d.i32.trap">, 1518 GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">; 1519def int_nvvm_sust_b_1d_v2i8_trap 1520 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 1521 "llvm.nvvm.sust.b.1d.v2i8.trap">, 1522 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">; 1523def int_nvvm_sust_b_1d_v2i16_trap 1524 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 1525 "llvm.nvvm.sust.b.1d.v2i16.trap">, 1526 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">; 1527def int_nvvm_sust_b_1d_v2i32_trap 1528 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1529 "llvm.nvvm.sust.b.1d.v2i32.trap">, 1530 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">; 1531def int_nvvm_sust_b_1d_v4i8_trap 1532 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 1533 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1534 "llvm.nvvm.sust.b.1d.v4i8.trap">, 1535 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">; 1536def int_nvvm_sust_b_1d_v4i16_trap 1537 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 1538 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1539 "llvm.nvvm.sust.b.1d.v4i16.trap">, 1540 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">; 1541def int_nvvm_sust_b_1d_v4i32_trap 1542 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1543 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1544 "llvm.nvvm.sust.b.1d.v4i32.trap">, 1545 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">; 1546 1547 1548def int_nvvm_sust_b_1d_array_i8_trap 1549 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1550 "llvm.nvvm.sust.b.1d.array.i8.trap">, 1551 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">; 1552def int_nvvm_sust_b_1d_array_i16_trap 1553 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1554 "llvm.nvvm.sust.b.1d.array.i16.trap">, 1555 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">; 1556def int_nvvm_sust_b_1d_array_i32_trap 1557 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1558 "llvm.nvvm.sust.b.1d.array.i32.trap">, 1559 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">; 1560def int_nvvm_sust_b_1d_array_v2i8_trap 1561 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1562 llvm_i16_ty, llvm_i16_ty], [], 1563 "llvm.nvvm.sust.b.1d.array.v2i8.trap">, 1564 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">; 1565def int_nvvm_sust_b_1d_array_v2i16_trap 1566 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1567 llvm_i16_ty, llvm_i16_ty], [], 1568 "llvm.nvvm.sust.b.1d.array.v2i16.trap">, 1569 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">; 1570def int_nvvm_sust_b_1d_array_v2i32_trap 1571 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1572 llvm_i32_ty, llvm_i32_ty], [], 1573 "llvm.nvvm.sust.b.1d.array.v2i32.trap">, 1574 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">; 1575def int_nvvm_sust_b_1d_array_v4i8_trap 1576 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1577 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1578 "llvm.nvvm.sust.b.1d.array.v4i8.trap">, 1579 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">; 1580def int_nvvm_sust_b_1d_array_v4i16_trap 1581 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1582 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1583 "llvm.nvvm.sust.b.1d.array.v4i16.trap">, 1584 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">; 1585def int_nvvm_sust_b_1d_array_v4i32_trap 1586 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1587 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1588 "llvm.nvvm.sust.b.1d.array.v4i32.trap">, 1589 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">; 1590 1591 1592def int_nvvm_sust_b_2d_i8_trap 1593 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1594 "llvm.nvvm.sust.b.2d.i8.trap">, 1595 GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">; 1596def int_nvvm_sust_b_2d_i16_trap 1597 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1598 "llvm.nvvm.sust.b.2d.i16.trap">, 1599 GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">; 1600def int_nvvm_sust_b_2d_i32_trap 1601 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1602 "llvm.nvvm.sust.b.2d.i32.trap">, 1603 GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">; 1604def int_nvvm_sust_b_2d_v2i8_trap 1605 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1606 llvm_i16_ty, llvm_i16_ty], [], 1607 "llvm.nvvm.sust.b.2d.v2i8.trap">, 1608 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">; 1609def int_nvvm_sust_b_2d_v2i16_trap 1610 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1611 llvm_i16_ty, llvm_i16_ty], [], 1612 "llvm.nvvm.sust.b.2d.v2i16.trap">, 1613 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">; 1614def int_nvvm_sust_b_2d_v2i32_trap 1615 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1616 llvm_i32_ty, llvm_i32_ty], [], 1617 "llvm.nvvm.sust.b.2d.v2i32.trap">, 1618 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">; 1619def int_nvvm_sust_b_2d_v4i8_trap 1620 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1621 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1622 "llvm.nvvm.sust.b.2d.v4i8.trap">, 1623 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">; 1624def int_nvvm_sust_b_2d_v4i16_trap 1625 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1626 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1627 "llvm.nvvm.sust.b.2d.v4i16.trap">, 1628 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">; 1629def int_nvvm_sust_b_2d_v4i32_trap 1630 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1631 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1632 "llvm.nvvm.sust.b.2d.v4i32.trap">, 1633 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">; 1634 1635 1636def int_nvvm_sust_b_2d_array_i8_trap 1637 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1638 llvm_i32_ty, llvm_i16_ty], [], 1639 "llvm.nvvm.sust.b.2d.array.i8.trap">, 1640 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">; 1641def int_nvvm_sust_b_2d_array_i16_trap 1642 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1643 llvm_i32_ty, llvm_i16_ty], [], 1644 "llvm.nvvm.sust.b.2d.array.i16.trap">, 1645 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">; 1646def int_nvvm_sust_b_2d_array_i32_trap 1647 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1648 llvm_i32_ty, llvm_i32_ty], [], 1649 "llvm.nvvm.sust.b.2d.array.i32.trap">, 1650 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">; 1651def int_nvvm_sust_b_2d_array_v2i8_trap 1652 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1653 llvm_i16_ty, llvm_i16_ty], [], 1654 "llvm.nvvm.sust.b.2d.array.v2i8.trap">, 1655 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">; 1656def int_nvvm_sust_b_2d_array_v2i16_trap 1657 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1658 llvm_i16_ty, llvm_i16_ty], [], 1659 "llvm.nvvm.sust.b.2d.array.v2i16.trap">, 1660 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">; 1661def int_nvvm_sust_b_2d_array_v2i32_trap 1662 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1663 llvm_i32_ty, llvm_i32_ty], [], 1664 "llvm.nvvm.sust.b.2d.array.v2i32.trap">, 1665 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">; 1666def int_nvvm_sust_b_2d_array_v4i8_trap 1667 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1668 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1669 "llvm.nvvm.sust.b.2d.array.v4i8.trap">, 1670 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">; 1671def int_nvvm_sust_b_2d_array_v4i16_trap 1672 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1673 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1674 "llvm.nvvm.sust.b.2d.array.v4i16.trap">, 1675 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">; 1676def int_nvvm_sust_b_2d_array_v4i32_trap 1677 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1678 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1679 "llvm.nvvm.sust.b.2d.array.v4i32.trap">, 1680 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">; 1681 1682 1683def int_nvvm_sust_b_3d_i8_trap 1684 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1685 llvm_i32_ty, llvm_i16_ty], [], 1686 "llvm.nvvm.sust.b.3d.i8.trap">, 1687 GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">; 1688def int_nvvm_sust_b_3d_i16_trap 1689 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1690 llvm_i32_ty, llvm_i16_ty], [], 1691 "llvm.nvvm.sust.b.3d.i16.trap">, 1692 GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">; 1693def int_nvvm_sust_b_3d_i32_trap 1694 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1695 llvm_i32_ty, llvm_i32_ty], [], 1696 "llvm.nvvm.sust.b.3d.i32.trap">, 1697 GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">; 1698def int_nvvm_sust_b_3d_v2i8_trap 1699 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1700 llvm_i16_ty, llvm_i16_ty], [], 1701 "llvm.nvvm.sust.b.3d.v2i8.trap">, 1702 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">; 1703def int_nvvm_sust_b_3d_v2i16_trap 1704 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1705 llvm_i16_ty, llvm_i16_ty], [], 1706 "llvm.nvvm.sust.b.3d.v2i16.trap">, 1707 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">; 1708def int_nvvm_sust_b_3d_v2i32_trap 1709 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1710 llvm_i32_ty, llvm_i32_ty], [], 1711 "llvm.nvvm.sust.b.3d.v2i32.trap">, 1712 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">; 1713def int_nvvm_sust_b_3d_v4i8_trap 1714 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1715 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1716 "llvm.nvvm.sust.b.3d.v4i8.trap">, 1717 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">; 1718def int_nvvm_sust_b_3d_v4i16_trap 1719 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1720 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1721 "llvm.nvvm.sust.b.3d.v4i16.trap">, 1722 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">; 1723def int_nvvm_sust_b_3d_v4i32_trap 1724 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1725 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1726 "llvm.nvvm.sust.b.3d.v4i32.trap">, 1727 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">; 1728 1729// Formatted 1730 1731def int_nvvm_sust_p_1d_i8_trap 1732 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 1733 "llvm.nvvm.sust.p.1d.i8.trap">, 1734 GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">; 1735def int_nvvm_sust_p_1d_i16_trap 1736 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 1737 "llvm.nvvm.sust.p.1d.i16.trap">, 1738 GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">; 1739def int_nvvm_sust_p_1d_i32_trap 1740 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1741 "llvm.nvvm.sust.p.1d.i32.trap">, 1742 GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">; 1743def int_nvvm_sust_p_1d_v2i8_trap 1744 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 1745 "llvm.nvvm.sust.p.1d.v2i8.trap">, 1746 GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">; 1747def int_nvvm_sust_p_1d_v2i16_trap 1748 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 1749 "llvm.nvvm.sust.p.1d.v2i16.trap">, 1750 GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">; 1751def int_nvvm_sust_p_1d_v2i32_trap 1752 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1753 "llvm.nvvm.sust.p.1d.v2i32.trap">, 1754 GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">; 1755def int_nvvm_sust_p_1d_v4i8_trap 1756 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 1757 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1758 "llvm.nvvm.sust.p.1d.v4i8.trap">, 1759 GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">; 1760def int_nvvm_sust_p_1d_v4i16_trap 1761 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 1762 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1763 "llvm.nvvm.sust.p.1d.v4i16.trap">, 1764 GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">; 1765def int_nvvm_sust_p_1d_v4i32_trap 1766 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1767 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1768 "llvm.nvvm.sust.p.1d.v4i32.trap">, 1769 GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">; 1770 1771 1772def int_nvvm_sust_p_1d_array_i8_trap 1773 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1774 "llvm.nvvm.sust.p.1d.array.i8.trap">, 1775 GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">; 1776def int_nvvm_sust_p_1d_array_i16_trap 1777 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1778 "llvm.nvvm.sust.p.1d.array.i16.trap">, 1779 GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">; 1780def int_nvvm_sust_p_1d_array_i32_trap 1781 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1782 "llvm.nvvm.sust.p.1d.array.i32.trap">, 1783 GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">; 1784def int_nvvm_sust_p_1d_array_v2i8_trap 1785 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1786 llvm_i16_ty, llvm_i16_ty], [], 1787 "llvm.nvvm.sust.p.1d.array.v2i8.trap">, 1788 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">; 1789def int_nvvm_sust_p_1d_array_v2i16_trap 1790 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1791 llvm_i16_ty, llvm_i16_ty], [], 1792 "llvm.nvvm.sust.p.1d.array.v2i16.trap">, 1793 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">; 1794def int_nvvm_sust_p_1d_array_v2i32_trap 1795 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1796 llvm_i32_ty, llvm_i32_ty], [], 1797 "llvm.nvvm.sust.p.1d.array.v2i32.trap">, 1798 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">; 1799def int_nvvm_sust_p_1d_array_v4i8_trap 1800 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1801 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1802 "llvm.nvvm.sust.p.1d.array.v4i8.trap">, 1803 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">; 1804def int_nvvm_sust_p_1d_array_v4i16_trap 1805 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1806 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1807 "llvm.nvvm.sust.p.1d.array.v4i16.trap">, 1808 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">; 1809def int_nvvm_sust_p_1d_array_v4i32_trap 1810 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1811 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1812 "llvm.nvvm.sust.p.1d.array.v4i32.trap">, 1813 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">; 1814 1815 1816def int_nvvm_sust_p_2d_i8_trap 1817 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1818 "llvm.nvvm.sust.p.2d.i8.trap">, 1819 GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">; 1820def int_nvvm_sust_p_2d_i16_trap 1821 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 1822 "llvm.nvvm.sust.p.2d.i16.trap">, 1823 GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">; 1824def int_nvvm_sust_p_2d_i32_trap 1825 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1826 "llvm.nvvm.sust.p.2d.i32.trap">, 1827 GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">; 1828def int_nvvm_sust_p_2d_v2i8_trap 1829 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1830 llvm_i16_ty, llvm_i16_ty], [], 1831 "llvm.nvvm.sust.p.2d.v2i8.trap">, 1832 GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">; 1833def int_nvvm_sust_p_2d_v2i16_trap 1834 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1835 llvm_i16_ty, llvm_i16_ty], [], 1836 "llvm.nvvm.sust.p.2d.v2i16.trap">, 1837 GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">; 1838def int_nvvm_sust_p_2d_v2i32_trap 1839 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1840 llvm_i32_ty, llvm_i32_ty], [], 1841 "llvm.nvvm.sust.p.2d.v2i32.trap">, 1842 GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">; 1843def int_nvvm_sust_p_2d_v4i8_trap 1844 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1845 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1846 "llvm.nvvm.sust.p.2d.v4i8.trap">, 1847 GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">; 1848def int_nvvm_sust_p_2d_v4i16_trap 1849 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 1850 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1851 "llvm.nvvm.sust.p.2d.v4i16.trap">, 1852 GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">; 1853def int_nvvm_sust_p_2d_v4i32_trap 1854 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1855 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1856 "llvm.nvvm.sust.p.2d.v4i32.trap">, 1857 GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">; 1858 1859 1860def int_nvvm_sust_p_2d_array_i8_trap 1861 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1862 llvm_i32_ty, llvm_i16_ty], [], 1863 "llvm.nvvm.sust.p.2d.array.i8.trap">, 1864 GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">; 1865def int_nvvm_sust_p_2d_array_i16_trap 1866 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1867 llvm_i32_ty, llvm_i16_ty], [], 1868 "llvm.nvvm.sust.p.2d.array.i16.trap">, 1869 GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">; 1870def int_nvvm_sust_p_2d_array_i32_trap 1871 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1872 llvm_i32_ty, llvm_i32_ty], [], 1873 "llvm.nvvm.sust.p.2d.array.i32.trap">, 1874 GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">; 1875def int_nvvm_sust_p_2d_array_v2i8_trap 1876 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1877 llvm_i16_ty, llvm_i16_ty], [], 1878 "llvm.nvvm.sust.p.2d.array.v2i8.trap">, 1879 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">; 1880def int_nvvm_sust_p_2d_array_v2i16_trap 1881 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1882 llvm_i16_ty, llvm_i16_ty], [], 1883 "llvm.nvvm.sust.p.2d.array.v2i16.trap">, 1884 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">; 1885def int_nvvm_sust_p_2d_array_v2i32_trap 1886 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1887 llvm_i32_ty, llvm_i32_ty], [], 1888 "llvm.nvvm.sust.p.2d.array.v2i32.trap">, 1889 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">; 1890def int_nvvm_sust_p_2d_array_v4i8_trap 1891 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1892 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1893 "llvm.nvvm.sust.p.2d.array.v4i8.trap">, 1894 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">; 1895def int_nvvm_sust_p_2d_array_v4i16_trap 1896 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1897 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1898 "llvm.nvvm.sust.p.2d.array.v4i16.trap">, 1899 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">; 1900def int_nvvm_sust_p_2d_array_v4i32_trap 1901 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1902 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1903 "llvm.nvvm.sust.p.2d.array.v4i32.trap">, 1904 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">; 1905 1906 1907def int_nvvm_sust_p_3d_i8_trap 1908 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1909 llvm_i32_ty, llvm_i16_ty], [], 1910 "llvm.nvvm.sust.p.3d.i8.trap">, 1911 GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">; 1912def int_nvvm_sust_p_3d_i16_trap 1913 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1914 llvm_i32_ty, llvm_i16_ty], [], 1915 "llvm.nvvm.sust.p.3d.i16.trap">, 1916 GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">; 1917def int_nvvm_sust_p_3d_i32_trap 1918 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1919 llvm_i32_ty, llvm_i32_ty], [], 1920 "llvm.nvvm.sust.p.3d.i32.trap">, 1921 GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">; 1922def int_nvvm_sust_p_3d_v2i8_trap 1923 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1924 llvm_i16_ty, llvm_i16_ty], [], 1925 "llvm.nvvm.sust.p.3d.v2i8.trap">, 1926 GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">; 1927def int_nvvm_sust_p_3d_v2i16_trap 1928 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1929 llvm_i16_ty, llvm_i16_ty], [], 1930 "llvm.nvvm.sust.p.3d.v2i16.trap">, 1931 GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">; 1932def int_nvvm_sust_p_3d_v2i32_trap 1933 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1934 llvm_i32_ty, llvm_i32_ty], [], 1935 "llvm.nvvm.sust.p.3d.v2i32.trap">, 1936 GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">; 1937def int_nvvm_sust_p_3d_v4i8_trap 1938 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1939 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1940 "llvm.nvvm.sust.p.3d.v4i8.trap">, 1941 GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">; 1942def int_nvvm_sust_p_3d_v4i16_trap 1943 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1944 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 1945 "llvm.nvvm.sust.p.3d.v4i16.trap">, 1946 GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">; 1947def int_nvvm_sust_p_3d_v4i32_trap 1948 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 1949 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1950 "llvm.nvvm.sust.p.3d.v4i32.trap">, 1951 GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">; 1952 1953def int_nvvm_rotate_b32 1954 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 1955 [IntrNoMem], "llvm.nvvm.rotate.b32">, 1956 GCCBuiltin<"__nvvm_rotate_b32">; 1957 1958def int_nvvm_rotate_b64 1959 :Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], 1960 [IntrNoMem], "llvm.nvvm.rotate.b64">, 1961 GCCBuiltin<"__nvvm_rotate_b64">; 1962 1963def int_nvvm_rotate_right_b64 1964 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], 1965 [IntrNoMem], "llvm.nvvm.rotate.right.b64">, 1966 GCCBuiltin<"__nvvm_rotate_right_b64">; 1967 1968def int_nvvm_swap_lo_hi_b64 1969 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], 1970 [IntrNoMem], "llvm.nvvm.swap.lo.hi.b64">, 1971 GCCBuiltin<"__nvvm_swap_lo_hi_b64">; 1972 1973 1974// Old PTX back-end intrinsics retained here for backwards-compatibility 1975 1976multiclass PTXReadSpecialRegisterIntrinsic_v4i32<string prefix> { 1977// FIXME: Do we need the 128-bit integer type version? 1978// def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem]>; 1979 1980// FIXME: Enable this once v4i32 support is enabled in back-end. 1981// def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>; 1982 1983 def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 1984 GCCBuiltin<!strconcat(prefix, "_x")>; 1985 def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 1986 GCCBuiltin<!strconcat(prefix, "_y")>; 1987 def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 1988 GCCBuiltin<!strconcat(prefix, "_z")>; 1989 def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 1990 GCCBuiltin<!strconcat(prefix, "_w")>; 1991} 1992 1993class PTXReadSpecialRegisterIntrinsic_r32<string name> 1994 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 1995 GCCBuiltin<name>; 1996 1997class PTXReadSpecialRegisterIntrinsic_r64<string name> 1998 : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>, 1999 GCCBuiltin<name>; 2000 2001defm int_ptx_read_tid : PTXReadSpecialRegisterIntrinsic_v4i32 2002 <"__builtin_ptx_read_tid">; 2003defm int_ptx_read_ntid : PTXReadSpecialRegisterIntrinsic_v4i32 2004 <"__builtin_ptx_read_ntid">; 2005 2006def int_ptx_read_laneid : PTXReadSpecialRegisterIntrinsic_r32 2007 <"__builtin_ptx_read_laneid">; 2008def int_ptx_read_warpid : PTXReadSpecialRegisterIntrinsic_r32 2009 <"__builtin_ptx_read_warpid">; 2010def int_ptx_read_nwarpid : PTXReadSpecialRegisterIntrinsic_r32 2011 <"__builtin_ptx_read_nwarpid">; 2012 2013defm int_ptx_read_ctaid : PTXReadSpecialRegisterIntrinsic_v4i32 2014 <"__builtin_ptx_read_ctaid">; 2015defm int_ptx_read_nctaid : PTXReadSpecialRegisterIntrinsic_v4i32 2016 <"__builtin_ptx_read_nctaid">; 2017 2018def int_ptx_read_smid : PTXReadSpecialRegisterIntrinsic_r32 2019 <"__builtin_ptx_read_smid">; 2020def int_ptx_read_nsmid : PTXReadSpecialRegisterIntrinsic_r32 2021 <"__builtin_ptx_read_nsmid">; 2022def int_ptx_read_gridid : PTXReadSpecialRegisterIntrinsic_r32 2023 <"__builtin_ptx_read_gridid">; 2024 2025def int_ptx_read_lanemask_eq : PTXReadSpecialRegisterIntrinsic_r32 2026 <"__builtin_ptx_read_lanemask_eq">; 2027def int_ptx_read_lanemask_le : PTXReadSpecialRegisterIntrinsic_r32 2028 <"__builtin_ptx_read_lanemask_le">; 2029def int_ptx_read_lanemask_lt : PTXReadSpecialRegisterIntrinsic_r32 2030 <"__builtin_ptx_read_lanemask_lt">; 2031def int_ptx_read_lanemask_ge : PTXReadSpecialRegisterIntrinsic_r32 2032 <"__builtin_ptx_read_lanemask_ge">; 2033def int_ptx_read_lanemask_gt : PTXReadSpecialRegisterIntrinsic_r32 2034 <"__builtin_ptx_read_lanemask_gt">; 2035 2036def int_ptx_read_clock : PTXReadSpecialRegisterIntrinsic_r32 2037 <"__builtin_ptx_read_clock">; 2038def int_ptx_read_clock64 : PTXReadSpecialRegisterIntrinsic_r64 2039 <"__builtin_ptx_read_clock64">; 2040 2041def int_ptx_read_pm0 : PTXReadSpecialRegisterIntrinsic_r32 2042 <"__builtin_ptx_read_pm0">; 2043def int_ptx_read_pm1 : PTXReadSpecialRegisterIntrinsic_r32 2044 <"__builtin_ptx_read_pm1">; 2045def int_ptx_read_pm2 : PTXReadSpecialRegisterIntrinsic_r32 2046 <"__builtin_ptx_read_pm2">; 2047def int_ptx_read_pm3 : PTXReadSpecialRegisterIntrinsic_r32 2048 <"__builtin_ptx_read_pm3">; 2049 2050def int_ptx_bar_sync : Intrinsic<[], [llvm_i32_ty], []>, 2051 GCCBuiltin<"__builtin_ptx_bar_sync">; 2052