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