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 def int_nvvm_bar_warp_sync : 754 Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>, 755 GCCBuiltin<"__nvvm_bar_warp_sync">; 756 757 // barrier.sync id[, cnt] 758 def int_nvvm_barrier_sync : 759 Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>, 760 GCCBuiltin<"__nvvm_barrier_sync">; 761 def int_nvvm_barrier_sync_cnt : 762 Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [IntrConvergent]>, 763 GCCBuiltin<"__nvvm_barrier_sync_cnt">; 764 765 // Membar 766 def int_nvvm_membar_cta : GCCBuiltin<"__nvvm_membar_cta">, 767 Intrinsic<[], [], []>; 768 def int_nvvm_membar_gl : GCCBuiltin<"__nvvm_membar_gl">, 769 Intrinsic<[], [], []>; 770 def int_nvvm_membar_sys : GCCBuiltin<"__nvvm_membar_sys">, 771 Intrinsic<[], [], []>; 772 773 // Generated within nvvm. Use for ldu on sm_20 or later. Second arg is the 774 // pointer's alignment. 775 def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty], 776 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty], 777 [IntrReadMem, IntrArgMemOnly, NoCapture<0>], 778 "llvm.nvvm.ldu.global.i">; 779 def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty], 780 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty], 781 [IntrReadMem, IntrArgMemOnly, NoCapture<0>], 782 "llvm.nvvm.ldu.global.f">; 783 def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty], 784 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty], 785 [IntrReadMem, IntrArgMemOnly, NoCapture<0>], 786 "llvm.nvvm.ldu.global.p">; 787 788 // Generated within nvvm. Use for ldg on sm_35 or later. Second arg is the 789 // pointer's alignment. 790 def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty], 791 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty], 792 [IntrReadMem, IntrArgMemOnly, NoCapture<0>], 793 "llvm.nvvm.ldg.global.i">; 794 def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty], 795 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty], 796 [IntrReadMem, IntrArgMemOnly, NoCapture<0>], 797 "llvm.nvvm.ldg.global.f">; 798 def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty], 799 [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty], 800 [IntrReadMem, IntrArgMemOnly, NoCapture<0>], 801 "llvm.nvvm.ldg.global.p">; 802 803 // Use for generic pointers 804 // - These intrinsics are used to convert address spaces. 805 // - The input pointer and output pointer must have the same type, except for 806 // the address-space. (This restriction is not enforced here as there is 807 // currently no way to describe it). 808 // - This complements the llvm bitcast, which can be used to cast one type 809 // of pointer to another type of pointer, while the address space remains 810 // the same. 811 def int_nvvm_ptr_local_to_gen: Intrinsic<[llvm_anyptr_ty], 812 [llvm_anyptr_ty], [IntrNoMem], 813 "llvm.nvvm.ptr.local.to.gen">; 814 def int_nvvm_ptr_shared_to_gen: Intrinsic<[llvm_anyptr_ty], 815 [llvm_anyptr_ty], [IntrNoMem], 816 "llvm.nvvm.ptr.shared.to.gen">; 817 def int_nvvm_ptr_global_to_gen: Intrinsic<[llvm_anyptr_ty], 818 [llvm_anyptr_ty], [IntrNoMem], 819 "llvm.nvvm.ptr.global.to.gen">; 820 def int_nvvm_ptr_constant_to_gen: Intrinsic<[llvm_anyptr_ty], 821 [llvm_anyptr_ty], [IntrNoMem], 822 "llvm.nvvm.ptr.constant.to.gen">; 823 824 def int_nvvm_ptr_gen_to_global: Intrinsic<[llvm_anyptr_ty], 825 [llvm_anyptr_ty], [IntrNoMem], 826 "llvm.nvvm.ptr.gen.to.global">; 827 def int_nvvm_ptr_gen_to_shared: Intrinsic<[llvm_anyptr_ty], 828 [llvm_anyptr_ty], [IntrNoMem], 829 "llvm.nvvm.ptr.gen.to.shared">; 830 def int_nvvm_ptr_gen_to_local: Intrinsic<[llvm_anyptr_ty], 831 [llvm_anyptr_ty], [IntrNoMem], 832 "llvm.nvvm.ptr.gen.to.local">; 833 def int_nvvm_ptr_gen_to_constant: Intrinsic<[llvm_anyptr_ty], 834 [llvm_anyptr_ty], [IntrNoMem], 835 "llvm.nvvm.ptr.gen.to.constant">; 836 837 // Used in nvvm internally to help address space opt and ptx code generation 838 // This is for params that are passed to kernel functions by pointer by-val. 839 def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty], 840 [llvm_anyptr_ty], 841 [IntrNoMem], 842 "llvm.nvvm.ptr.gen.to.param">; 843 844 // Move intrinsics, used in nvvm internally 845 846 def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem], 847 "llvm.nvvm.move.i16">; 848 def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem], 849 "llvm.nvvm.move.i32">; 850 def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem], 851 "llvm.nvvm.move.i64">; 852 def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty], 853 [IntrNoMem], "llvm.nvvm.move.float">; 854 def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty], 855 [IntrNoMem], "llvm.nvvm.move.double">; 856 def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], 857 [IntrNoMem, NoCapture<0>], "llvm.nvvm.move.ptr">; 858 859 860 // For getting the handle from a texture or surface variable 861 def int_nvvm_texsurf_handle 862 : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_anyi64ptr_ty], 863 [IntrNoMem], "llvm.nvvm.texsurf.handle">; 864 def int_nvvm_texsurf_handle_internal 865 : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty], 866 [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">; 867 868 /// Error / Warn 869 def int_nvvm_compiler_error : 870 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">; 871 def int_nvvm_compiler_warn : 872 Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">; 873 874 def int_nvvm_reflect : 875 Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.reflect">; 876 877 // isspacep.{const, global, local, shared} 878 def int_nvvm_isspacep_const 879 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 880 "llvm.nvvm.isspacep.const">, 881 GCCBuiltin<"__nvvm_isspacep_const">; 882 def int_nvvm_isspacep_global 883 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 884 "llvm.nvvm.isspacep.global">, 885 GCCBuiltin<"__nvvm_isspacep_global">; 886 def int_nvvm_isspacep_local 887 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 888 "llvm.nvvm.isspacep.local">, 889 GCCBuiltin<"__nvvm_isspacep_local">; 890 def int_nvvm_isspacep_shared 891 : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], 892 "llvm.nvvm.isspacep.shared">, 893 GCCBuiltin<"__nvvm_isspacep_shared">; 894 895 // Environment register read 896 def int_nvvm_read_ptx_sreg_envreg0 897 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 898 "llvm.nvvm.read.ptx.sreg.envreg0">, 899 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">; 900 def int_nvvm_read_ptx_sreg_envreg1 901 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 902 "llvm.nvvm.read.ptx.sreg.envreg1">, 903 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">; 904 def int_nvvm_read_ptx_sreg_envreg2 905 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 906 "llvm.nvvm.read.ptx.sreg.envreg2">, 907 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">; 908 def int_nvvm_read_ptx_sreg_envreg3 909 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 910 "llvm.nvvm.read.ptx.sreg.envreg3">, 911 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">; 912 def int_nvvm_read_ptx_sreg_envreg4 913 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 914 "llvm.nvvm.read.ptx.sreg.envreg4">, 915 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">; 916 def int_nvvm_read_ptx_sreg_envreg5 917 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 918 "llvm.nvvm.read.ptx.sreg.envreg5">, 919 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">; 920 def int_nvvm_read_ptx_sreg_envreg6 921 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 922 "llvm.nvvm.read.ptx.sreg.envreg6">, 923 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">; 924 def int_nvvm_read_ptx_sreg_envreg7 925 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 926 "llvm.nvvm.read.ptx.sreg.envreg7">, 927 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">; 928 def int_nvvm_read_ptx_sreg_envreg8 929 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 930 "llvm.nvvm.read.ptx.sreg.envreg8">, 931 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">; 932 def int_nvvm_read_ptx_sreg_envreg9 933 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 934 "llvm.nvvm.read.ptx.sreg.envreg9">, 935 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">; 936 def int_nvvm_read_ptx_sreg_envreg10 937 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 938 "llvm.nvvm.read.ptx.sreg.envreg10">, 939 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">; 940 def int_nvvm_read_ptx_sreg_envreg11 941 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 942 "llvm.nvvm.read.ptx.sreg.envreg11">, 943 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">; 944 def int_nvvm_read_ptx_sreg_envreg12 945 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 946 "llvm.nvvm.read.ptx.sreg.envreg12">, 947 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">; 948 def int_nvvm_read_ptx_sreg_envreg13 949 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 950 "llvm.nvvm.read.ptx.sreg.envreg13">, 951 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">; 952 def int_nvvm_read_ptx_sreg_envreg14 953 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 954 "llvm.nvvm.read.ptx.sreg.envreg14">, 955 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">; 956 def int_nvvm_read_ptx_sreg_envreg15 957 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 958 "llvm.nvvm.read.ptx.sreg.envreg15">, 959 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">; 960 def int_nvvm_read_ptx_sreg_envreg16 961 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 962 "llvm.nvvm.read.ptx.sreg.envreg16">, 963 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">; 964 def int_nvvm_read_ptx_sreg_envreg17 965 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 966 "llvm.nvvm.read.ptx.sreg.envreg17">, 967 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">; 968 def int_nvvm_read_ptx_sreg_envreg18 969 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 970 "llvm.nvvm.read.ptx.sreg.envreg18">, 971 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">; 972 def int_nvvm_read_ptx_sreg_envreg19 973 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 974 "llvm.nvvm.read.ptx.sreg.envreg19">, 975 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">; 976 def int_nvvm_read_ptx_sreg_envreg20 977 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 978 "llvm.nvvm.read.ptx.sreg.envreg20">, 979 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">; 980 def int_nvvm_read_ptx_sreg_envreg21 981 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 982 "llvm.nvvm.read.ptx.sreg.envreg21">, 983 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">; 984 def int_nvvm_read_ptx_sreg_envreg22 985 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 986 "llvm.nvvm.read.ptx.sreg.envreg22">, 987 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">; 988 def int_nvvm_read_ptx_sreg_envreg23 989 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 990 "llvm.nvvm.read.ptx.sreg.envreg23">, 991 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">; 992 def int_nvvm_read_ptx_sreg_envreg24 993 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 994 "llvm.nvvm.read.ptx.sreg.envreg24">, 995 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">; 996 def int_nvvm_read_ptx_sreg_envreg25 997 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 998 "llvm.nvvm.read.ptx.sreg.envreg25">, 999 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">; 1000 def int_nvvm_read_ptx_sreg_envreg26 1001 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1002 "llvm.nvvm.read.ptx.sreg.envreg26">, 1003 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">; 1004 def int_nvvm_read_ptx_sreg_envreg27 1005 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1006 "llvm.nvvm.read.ptx.sreg.envreg27">, 1007 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">; 1008 def int_nvvm_read_ptx_sreg_envreg28 1009 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1010 "llvm.nvvm.read.ptx.sreg.envreg28">, 1011 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">; 1012 def int_nvvm_read_ptx_sreg_envreg29 1013 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1014 "llvm.nvvm.read.ptx.sreg.envreg29">, 1015 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">; 1016 def int_nvvm_read_ptx_sreg_envreg30 1017 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1018 "llvm.nvvm.read.ptx.sreg.envreg30">, 1019 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">; 1020 def int_nvvm_read_ptx_sreg_envreg31 1021 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], 1022 "llvm.nvvm.read.ptx.sreg.envreg31">, 1023 GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">; 1024 1025 1026 // Texture Fetch 1027 // texmode_independent 1028 def int_nvvm_tex_1d_v4f32_s32 1029 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1030 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], 1031 "llvm.nvvm.tex.1d.v4f32.s32">; 1032 def int_nvvm_tex_1d_v4f32_f32 1033 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1034 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], 1035 "llvm.nvvm.tex.1d.v4f32.f32">; 1036 def int_nvvm_tex_1d_level_v4f32_f32 1037 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1038 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1039 "llvm.nvvm.tex.1d.level.v4f32.f32">; 1040 def int_nvvm_tex_1d_grad_v4f32_f32 1041 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1042 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1043 llvm_float_ty], [], 1044 "llvm.nvvm.tex.1d.grad.v4f32.f32">; 1045 def int_nvvm_tex_1d_v4s32_s32 1046 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1047 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], 1048 "llvm.nvvm.tex.1d.v4s32.s32">; 1049 def int_nvvm_tex_1d_v4s32_f32 1050 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1051 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], 1052 "llvm.nvvm.tex.1d.v4s32.f32">; 1053 def int_nvvm_tex_1d_level_v4s32_f32 1054 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1055 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1056 "llvm.nvvm.tex.1d.level.v4s32.f32">; 1057 def int_nvvm_tex_1d_grad_v4s32_f32 1058 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1059 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1060 llvm_float_ty], [], 1061 "llvm.nvvm.tex.1d.grad.v4s32.f32">; 1062 def int_nvvm_tex_1d_v4u32_s32 1063 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1064 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], 1065 "llvm.nvvm.tex.1d.v4u32.s32">; 1066 def int_nvvm_tex_1d_v4u32_f32 1067 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1068 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], 1069 "llvm.nvvm.tex.1d.v4u32.f32">; 1070 def int_nvvm_tex_1d_level_v4u32_f32 1071 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1072 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1073 "llvm.nvvm.tex.1d.level.v4u32.f32">; 1074 def int_nvvm_tex_1d_grad_v4u32_f32 1075 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1076 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1077 llvm_float_ty], [], 1078 "llvm.nvvm.tex.1d.grad.v4u32.f32">; 1079 1080 def int_nvvm_tex_1d_array_v4f32_s32 1081 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1082 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1083 "llvm.nvvm.tex.1d.array.v4f32.s32">; 1084 def int_nvvm_tex_1d_array_v4f32_f32 1085 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1086 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1087 "llvm.nvvm.tex.1d.array.v4f32.f32">; 1088 def int_nvvm_tex_1d_array_level_v4f32_f32 1089 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1090 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1091 llvm_float_ty], [], 1092 "llvm.nvvm.tex.1d.array.level.v4f32.f32">; 1093 def int_nvvm_tex_1d_array_grad_v4f32_f32 1094 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1095 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1096 llvm_float_ty, llvm_float_ty], [], 1097 "llvm.nvvm.tex.1d.array.grad.v4f32.f32">; 1098 def int_nvvm_tex_1d_array_v4s32_s32 1099 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1100 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1101 "llvm.nvvm.tex.1d.array.v4s32.s32">; 1102 def int_nvvm_tex_1d_array_v4s32_f32 1103 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1104 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1105 "llvm.nvvm.tex.1d.array.v4s32.f32">; 1106 def int_nvvm_tex_1d_array_level_v4s32_f32 1107 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1108 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1109 llvm_float_ty], [], 1110 "llvm.nvvm.tex.1d.array.level.v4s32.f32">; 1111 def int_nvvm_tex_1d_array_grad_v4s32_f32 1112 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1113 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1114 llvm_float_ty, llvm_float_ty], [], 1115 "llvm.nvvm.tex.1d.array.grad.v4s32.f32">; 1116 def int_nvvm_tex_1d_array_v4u32_s32 1117 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1118 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1119 "llvm.nvvm.tex.1d.array.v4u32.s32">; 1120 def int_nvvm_tex_1d_array_v4u32_f32 1121 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1122 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1123 "llvm.nvvm.tex.1d.array.v4u32.f32">; 1124 def int_nvvm_tex_1d_array_level_v4u32_f32 1125 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1126 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1127 llvm_float_ty], [], 1128 "llvm.nvvm.tex.1d.array.level.v4u32.f32">; 1129 def int_nvvm_tex_1d_array_grad_v4u32_f32 1130 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1131 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1132 llvm_float_ty, llvm_float_ty], [], 1133 "llvm.nvvm.tex.1d.array.grad.v4u32.f32">; 1134 1135 def int_nvvm_tex_2d_v4f32_s32 1136 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1137 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1138 "llvm.nvvm.tex.2d.v4f32.s32">; 1139 def int_nvvm_tex_2d_v4f32_f32 1140 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1141 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1142 "llvm.nvvm.tex.2d.v4f32.f32">; 1143 def int_nvvm_tex_2d_level_v4f32_f32 1144 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1145 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1146 llvm_float_ty], [], 1147 "llvm.nvvm.tex.2d.level.v4f32.f32">; 1148 def int_nvvm_tex_2d_grad_v4f32_f32 1149 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1150 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1151 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1152 "llvm.nvvm.tex.2d.grad.v4f32.f32">; 1153 def int_nvvm_tex_2d_v4s32_s32 1154 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1155 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1156 "llvm.nvvm.tex.2d.v4s32.s32">; 1157 def int_nvvm_tex_2d_v4s32_f32 1158 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1159 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1160 "llvm.nvvm.tex.2d.v4s32.f32">; 1161 def int_nvvm_tex_2d_level_v4s32_f32 1162 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1163 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1164 llvm_float_ty], [], 1165 "llvm.nvvm.tex.2d.level.v4s32.f32">; 1166 def int_nvvm_tex_2d_grad_v4s32_f32 1167 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1168 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1169 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1170 "llvm.nvvm.tex.2d.grad.v4s32.f32">; 1171 def int_nvvm_tex_2d_v4u32_s32 1172 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1173 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1174 "llvm.nvvm.tex.2d.v4u32.s32">; 1175 def int_nvvm_tex_2d_v4u32_f32 1176 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1177 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1178 "llvm.nvvm.tex.2d.v4u32.f32">; 1179 def int_nvvm_tex_2d_level_v4u32_f32 1180 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1181 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1182 llvm_float_ty], [], 1183 "llvm.nvvm.tex.2d.level.v4u32.f32">; 1184 def int_nvvm_tex_2d_grad_v4u32_f32 1185 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1186 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1187 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1188 "llvm.nvvm.tex.2d.grad.v4u32.f32">; 1189 1190 def int_nvvm_tex_2d_array_v4f32_s32 1191 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1192 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1193 llvm_i32_ty], [], 1194 "llvm.nvvm.tex.2d.array.v4f32.s32">; 1195 def int_nvvm_tex_2d_array_v4f32_f32 1196 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1197 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1198 llvm_float_ty], [], 1199 "llvm.nvvm.tex.2d.array.v4f32.f32">; 1200 def int_nvvm_tex_2d_array_level_v4f32_f32 1201 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1202 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1203 llvm_float_ty, llvm_float_ty], [], 1204 "llvm.nvvm.tex.2d.array.level.v4f32.f32">; 1205 def int_nvvm_tex_2d_array_grad_v4f32_f32 1206 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1207 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1208 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1209 llvm_float_ty], [], 1210 "llvm.nvvm.tex.2d.array.grad.v4f32.f32">; 1211 def int_nvvm_tex_2d_array_v4s32_s32 1212 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1213 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1214 llvm_i32_ty], [], 1215 "llvm.nvvm.tex.2d.array.v4s32.s32">; 1216 def int_nvvm_tex_2d_array_v4s32_f32 1217 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1218 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1219 llvm_float_ty], [], 1220 "llvm.nvvm.tex.2d.array.v4s32.f32">; 1221 def int_nvvm_tex_2d_array_level_v4s32_f32 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_float_ty, 1224 llvm_float_ty, llvm_float_ty], [], 1225 "llvm.nvvm.tex.2d.array.level.v4s32.f32">; 1226 def int_nvvm_tex_2d_array_grad_v4s32_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, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1230 llvm_float_ty], [], 1231 "llvm.nvvm.tex.2d.array.grad.v4s32.f32">; 1232 def int_nvvm_tex_2d_array_v4u32_s32 1233 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1234 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1235 llvm_i32_ty], [], 1236 "llvm.nvvm.tex.2d.array.v4u32.s32">; 1237 def int_nvvm_tex_2d_array_v4u32_f32 1238 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1239 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1240 llvm_float_ty], [], 1241 "llvm.nvvm.tex.2d.array.v4u32.f32">; 1242 def int_nvvm_tex_2d_array_level_v4u32_f32 1243 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1244 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1245 llvm_float_ty, llvm_float_ty], [], 1246 "llvm.nvvm.tex.2d.array.level.v4u32.f32">; 1247 def int_nvvm_tex_2d_array_grad_v4u32_f32 1248 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1249 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1250 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1251 llvm_float_ty], [], 1252 "llvm.nvvm.tex.2d.array.grad.v4u32.f32">; 1253 1254 def int_nvvm_tex_3d_v4f32_s32 1255 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1256 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1257 [], "llvm.nvvm.tex.3d.v4f32.s32">; 1258 def int_nvvm_tex_3d_v4f32_f32 1259 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1260 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1261 llvm_float_ty], [], 1262 "llvm.nvvm.tex.3d.v4f32.f32">; 1263 def int_nvvm_tex_3d_level_v4f32_f32 1264 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1265 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1266 llvm_float_ty, llvm_float_ty], [], 1267 "llvm.nvvm.tex.3d.level.v4f32.f32">; 1268 def int_nvvm_tex_3d_grad_v4f32_f32 1269 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1270 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1271 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1272 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1273 "llvm.nvvm.tex.3d.grad.v4f32.f32">; 1274 def int_nvvm_tex_3d_v4s32_s32 1275 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1276 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1277 [], "llvm.nvvm.tex.3d.v4s32.s32">; 1278 def int_nvvm_tex_3d_v4s32_f32 1279 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1280 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1281 llvm_float_ty], [], 1282 "llvm.nvvm.tex.3d.v4s32.f32">; 1283 def int_nvvm_tex_3d_level_v4s32_f32 1284 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1285 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1286 llvm_float_ty, llvm_float_ty], [], 1287 "llvm.nvvm.tex.3d.level.v4s32.f32">; 1288 def int_nvvm_tex_3d_grad_v4s32_f32 1289 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1290 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1291 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1292 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1293 "llvm.nvvm.tex.3d.grad.v4s32.f32">; 1294 def int_nvvm_tex_3d_v4u32_s32 1295 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1296 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1297 [], "llvm.nvvm.tex.3d.v4u32.s32">; 1298 def int_nvvm_tex_3d_v4u32_f32 1299 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1300 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1301 llvm_float_ty], [], 1302 "llvm.nvvm.tex.3d.v4u32.f32">; 1303 def int_nvvm_tex_3d_level_v4u32_f32 1304 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1305 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1306 llvm_float_ty, llvm_float_ty], [], 1307 "llvm.nvvm.tex.3d.level.v4u32.f32">; 1308 def int_nvvm_tex_3d_grad_v4u32_f32 1309 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1310 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1311 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1312 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1313 "llvm.nvvm.tex.3d.grad.v4u32.f32">; 1314 1315 def int_nvvm_tex_cube_v4f32_f32 1316 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1317 [llvm_i64_ty, llvm_i64_ty, 1318 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1319 "llvm.nvvm.tex.cube.v4f32.f32">; 1320 def int_nvvm_tex_cube_level_v4f32_f32 1321 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1322 [llvm_i64_ty, llvm_i64_ty, 1323 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1324 "llvm.nvvm.tex.cube.level.v4f32.f32">; 1325 def int_nvvm_tex_cube_v4s32_f32 1326 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1327 [llvm_i64_ty, llvm_i64_ty, 1328 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1329 "llvm.nvvm.tex.cube.v4s32.f32">; 1330 def int_nvvm_tex_cube_level_v4s32_f32 1331 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1332 [llvm_i64_ty, llvm_i64_ty, 1333 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1334 "llvm.nvvm.tex.cube.level.v4s32.f32">; 1335 def int_nvvm_tex_cube_v4u32_f32 1336 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1337 [llvm_i64_ty, llvm_i64_ty, 1338 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1339 "llvm.nvvm.tex.cube.v4u32.f32">; 1340 def int_nvvm_tex_cube_level_v4u32_f32 1341 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1342 [llvm_i64_ty, llvm_i64_ty, 1343 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1344 "llvm.nvvm.tex.cube.level.v4u32.f32">; 1345 1346 def int_nvvm_tex_cube_array_v4f32_f32 1347 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1348 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, 1349 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1350 "llvm.nvvm.tex.cube.array.v4f32.f32">; 1351 def int_nvvm_tex_cube_array_level_v4f32_f32 1352 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1353 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, 1354 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1355 "llvm.nvvm.tex.cube.array.level.v4f32.f32">; 1356 def int_nvvm_tex_cube_array_v4s32_f32 1357 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1358 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, 1359 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1360 "llvm.nvvm.tex.cube.array.v4s32.f32">; 1361 def int_nvvm_tex_cube_array_level_v4s32_f32 1362 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1363 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, 1364 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1365 "llvm.nvvm.tex.cube.array.level.v4s32.f32">; 1366 def int_nvvm_tex_cube_array_v4u32_f32 1367 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1368 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, 1369 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1370 "llvm.nvvm.tex.cube.array.v4u32.f32">; 1371 def int_nvvm_tex_cube_array_level_v4u32_f32 1372 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1373 [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, 1374 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1375 "llvm.nvvm.tex.cube.array.level.v4u32.f32">; 1376 1377 def int_nvvm_tld4_r_2d_v4f32_f32 1378 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1379 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1380 "llvm.nvvm.tld4.r.2d.v4f32.f32">; 1381 def int_nvvm_tld4_g_2d_v4f32_f32 1382 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1383 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1384 "llvm.nvvm.tld4.g.2d.v4f32.f32">; 1385 def int_nvvm_tld4_b_2d_v4f32_f32 1386 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1387 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1388 "llvm.nvvm.tld4.b.2d.v4f32.f32">; 1389 def int_nvvm_tld4_a_2d_v4f32_f32 1390 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1391 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1392 "llvm.nvvm.tld4.a.2d.v4f32.f32">; 1393 def int_nvvm_tld4_r_2d_v4s32_f32 1394 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1395 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1396 "llvm.nvvm.tld4.r.2d.v4s32.f32">; 1397 def int_nvvm_tld4_g_2d_v4s32_f32 1398 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1399 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1400 "llvm.nvvm.tld4.g.2d.v4s32.f32">; 1401 def int_nvvm_tld4_b_2d_v4s32_f32 1402 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1403 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1404 "llvm.nvvm.tld4.b.2d.v4s32.f32">; 1405 def int_nvvm_tld4_a_2d_v4s32_f32 1406 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1407 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1408 "llvm.nvvm.tld4.a.2d.v4s32.f32">; 1409 def int_nvvm_tld4_r_2d_v4u32_f32 1410 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1411 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1412 "llvm.nvvm.tld4.r.2d.v4u32.f32">; 1413 def int_nvvm_tld4_g_2d_v4u32_f32 1414 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1415 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1416 "llvm.nvvm.tld4.g.2d.v4u32.f32">; 1417 def int_nvvm_tld4_b_2d_v4u32_f32 1418 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1419 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1420 "llvm.nvvm.tld4.b.2d.v4u32.f32">; 1421 def int_nvvm_tld4_a_2d_v4u32_f32 1422 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1423 [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1424 "llvm.nvvm.tld4.a.2d.v4u32.f32">; 1425 1426 1427 // texmode_unified 1428 def int_nvvm_tex_unified_1d_v4f32_s32 1429 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1430 [llvm_i64_ty, llvm_i32_ty], [], 1431 "llvm.nvvm.tex.unified.1d.v4f32.s32">; 1432 def int_nvvm_tex_unified_1d_v4f32_f32 1433 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1434 [llvm_i64_ty, llvm_float_ty], [], 1435 "llvm.nvvm.tex.unified.1d.v4f32.f32">; 1436 def int_nvvm_tex_unified_1d_level_v4f32_f32 1437 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1438 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1439 "llvm.nvvm.tex.unified.1d.level.v4f32.f32">; 1440 def int_nvvm_tex_unified_1d_grad_v4f32_f32 1441 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1442 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1443 llvm_float_ty], [], 1444 "llvm.nvvm.tex.unified.1d.grad.v4f32.f32">; 1445 def int_nvvm_tex_unified_1d_v4s32_s32 1446 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1447 [llvm_i64_ty, llvm_i32_ty], [], 1448 "llvm.nvvm.tex.unified.1d.v4s32.s32">; 1449 def int_nvvm_tex_unified_1d_v4s32_f32 1450 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1451 [llvm_i64_ty, llvm_float_ty], [], 1452 "llvm.nvvm.tex.unified.1d.v4s32.f32">; 1453 def int_nvvm_tex_unified_1d_level_v4s32_f32 1454 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1455 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1456 "llvm.nvvm.tex.unified.1d.level.v4s32.f32">; 1457 def int_nvvm_tex_unified_1d_grad_v4s32_f32 1458 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1459 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1460 llvm_float_ty], [], 1461 "llvm.nvvm.tex.unified.1d.grad.v4s32.f32">; 1462 def int_nvvm_tex_unified_1d_v4u32_s32 1463 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1464 [llvm_i64_ty, llvm_i32_ty], [], 1465 "llvm.nvvm.tex.unified.1d.v4u32.s32">; 1466 def int_nvvm_tex_unified_1d_v4u32_f32 1467 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1468 [llvm_i64_ty, llvm_float_ty], [], 1469 "llvm.nvvm.tex.unified.1d.v4u32.f32">; 1470 def int_nvvm_tex_unified_1d_level_v4u32_f32 1471 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1472 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1473 "llvm.nvvm.tex.unified.1d.level.v4u32.f32">; 1474 def int_nvvm_tex_unified_1d_grad_v4u32_f32 1475 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1476 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1477 llvm_float_ty], [], 1478 "llvm.nvvm.tex.unified.1d.grad.v4u32.f32">; 1479 1480 def int_nvvm_tex_unified_1d_array_v4f32_s32 1481 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1482 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1483 "llvm.nvvm.tex.unified.1d.array.v4f32.s32">; 1484 def int_nvvm_tex_unified_1d_array_v4f32_f32 1485 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1486 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1487 "llvm.nvvm.tex.unified.1d.array.v4f32.f32">; 1488 def int_nvvm_tex_unified_1d_array_level_v4f32_f32 1489 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1490 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1491 llvm_float_ty], [], 1492 "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32">; 1493 def int_nvvm_tex_unified_1d_array_grad_v4f32_f32 1494 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1495 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1496 llvm_float_ty, llvm_float_ty], [], 1497 "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32">; 1498 def int_nvvm_tex_unified_1d_array_v4s32_s32 1499 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1500 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1501 "llvm.nvvm.tex.unified.1d.array.v4s32.s32">; 1502 def int_nvvm_tex_unified_1d_array_v4s32_f32 1503 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1504 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1505 "llvm.nvvm.tex.unified.1d.array.v4s32.f32">; 1506 def int_nvvm_tex_unified_1d_array_level_v4s32_f32 1507 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1508 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1509 llvm_float_ty], [], 1510 "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32">; 1511 def int_nvvm_tex_unified_1d_array_grad_v4s32_f32 1512 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1513 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1514 llvm_float_ty, llvm_float_ty], [], 1515 "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32">; 1516 def int_nvvm_tex_unified_1d_array_v4u32_s32 1517 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1518 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1519 "llvm.nvvm.tex.unified.1d.array.v4u32.s32">; 1520 def int_nvvm_tex_unified_1d_array_v4u32_f32 1521 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1522 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], 1523 "llvm.nvvm.tex.unified.1d.array.v4u32.f32">; 1524 def int_nvvm_tex_unified_1d_array_level_v4u32_f32 1525 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1526 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1527 llvm_float_ty], [], 1528 "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32">; 1529 def int_nvvm_tex_unified_1d_array_grad_v4u32_f32 1530 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1531 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1532 llvm_float_ty, llvm_float_ty], [], 1533 "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32">; 1534 1535 def int_nvvm_tex_unified_2d_v4f32_s32 1536 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1537 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1538 "llvm.nvvm.tex.unified.2d.v4f32.s32">; 1539 def int_nvvm_tex_unified_2d_v4f32_f32 1540 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1541 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1542 "llvm.nvvm.tex.unified.2d.v4f32.f32">; 1543 def int_nvvm_tex_unified_2d_level_v4f32_f32 1544 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1545 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1546 llvm_float_ty], [], 1547 "llvm.nvvm.tex.unified.2d.level.v4f32.f32">; 1548 def int_nvvm_tex_unified_2d_grad_v4f32_f32 1549 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1550 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1551 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1552 "llvm.nvvm.tex.unified.2d.grad.v4f32.f32">; 1553 def int_nvvm_tex_unified_2d_v4s32_s32 1554 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1555 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1556 "llvm.nvvm.tex.unified.2d.v4s32.s32">; 1557 def int_nvvm_tex_unified_2d_v4s32_f32 1558 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1559 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1560 "llvm.nvvm.tex.unified.2d.v4s32.f32">; 1561 def int_nvvm_tex_unified_2d_level_v4s32_f32 1562 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1563 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1564 llvm_float_ty], [], 1565 "llvm.nvvm.tex.unified.2d.level.v4s32.f32">; 1566 def int_nvvm_tex_unified_2d_grad_v4s32_f32 1567 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1568 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1569 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1570 "llvm.nvvm.tex.unified.2d.grad.v4s32.f32">; 1571 def int_nvvm_tex_unified_2d_v4u32_s32 1572 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1573 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1574 "llvm.nvvm.tex.unified.2d.v4u32.s32">; 1575 def int_nvvm_tex_unified_2d_v4u32_f32 1576 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1577 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1578 "llvm.nvvm.tex.unified.2d.v4u32.f32">; 1579 def int_nvvm_tex_unified_2d_level_v4u32_f32 1580 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1581 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1582 llvm_float_ty], [], 1583 "llvm.nvvm.tex.unified.2d.level.v4u32.f32">; 1584 def int_nvvm_tex_unified_2d_grad_v4u32_f32 1585 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1586 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1587 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1588 "llvm.nvvm.tex.unified.2d.grad.v4u32.f32">; 1589 1590 def int_nvvm_tex_unified_2d_array_v4f32_s32 1591 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1592 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1593 llvm_i32_ty], [], 1594 "llvm.nvvm.tex.unified.2d.array.v4f32.s32">; 1595 def int_nvvm_tex_unified_2d_array_v4f32_f32 1596 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1597 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1598 llvm_float_ty], [], 1599 "llvm.nvvm.tex.unified.2d.array.v4f32.f32">; 1600 def int_nvvm_tex_unified_2d_array_level_v4f32_f32 1601 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1602 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1603 llvm_float_ty, llvm_float_ty], [], 1604 "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32">; 1605 def int_nvvm_tex_unified_2d_array_grad_v4f32_f32 1606 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1607 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1608 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1609 llvm_float_ty], [], 1610 "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32">; 1611 def int_nvvm_tex_unified_2d_array_v4s32_s32 1612 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1613 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1614 llvm_i32_ty], [], 1615 "llvm.nvvm.tex.unified.2d.array.v4s32.s32">; 1616 def int_nvvm_tex_unified_2d_array_v4s32_f32 1617 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1618 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1619 llvm_float_ty], [], 1620 "llvm.nvvm.tex.unified.2d.array.v4s32.f32">; 1621 def int_nvvm_tex_unified_2d_array_level_v4s32_f32 1622 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1623 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1624 llvm_float_ty, llvm_float_ty], [], 1625 "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32">; 1626 def int_nvvm_tex_unified_2d_array_grad_v4s32_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, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1630 llvm_float_ty], [], 1631 "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32">; 1632 def int_nvvm_tex_unified_2d_array_v4u32_s32 1633 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1634 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 1635 llvm_i32_ty], [], 1636 "llvm.nvvm.tex.unified.2d.array.v4u32.s32">; 1637 def int_nvvm_tex_unified_2d_array_v4u32_f32 1638 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1639 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1640 llvm_float_ty], [], 1641 "llvm.nvvm.tex.unified.2d.array.v4u32.f32">; 1642 def int_nvvm_tex_unified_2d_array_level_v4u32_f32 1643 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1644 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1645 llvm_float_ty, llvm_float_ty], [], 1646 "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32">; 1647 def int_nvvm_tex_unified_2d_array_grad_v4u32_f32 1648 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1649 [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, 1650 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1651 llvm_float_ty], [], 1652 "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32">; 1653 1654 def int_nvvm_tex_unified_3d_v4f32_s32 1655 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1656 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1657 [], "llvm.nvvm.tex.unified.3d.v4f32.s32">; 1658 def int_nvvm_tex_unified_3d_v4f32_f32 1659 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1660 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1661 llvm_float_ty], [], 1662 "llvm.nvvm.tex.unified.3d.v4f32.f32">; 1663 def int_nvvm_tex_unified_3d_level_v4f32_f32 1664 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1665 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1666 llvm_float_ty, llvm_float_ty], [], 1667 "llvm.nvvm.tex.unified.3d.level.v4f32.f32">; 1668 def int_nvvm_tex_unified_3d_grad_v4f32_f32 1669 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1670 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1671 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1672 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1673 "llvm.nvvm.tex.unified.3d.grad.v4f32.f32">; 1674 def int_nvvm_tex_unified_3d_v4s32_s32 1675 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1676 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1677 [], "llvm.nvvm.tex.unified.3d.v4s32.s32">; 1678 def int_nvvm_tex_unified_3d_v4s32_f32 1679 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1680 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1681 llvm_float_ty], [], 1682 "llvm.nvvm.tex.unified.3d.v4s32.f32">; 1683 def int_nvvm_tex_unified_3d_level_v4s32_f32 1684 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1685 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1686 llvm_float_ty, llvm_float_ty], [], 1687 "llvm.nvvm.tex.unified.3d.level.v4s32.f32">; 1688 def int_nvvm_tex_unified_3d_grad_v4s32_f32 1689 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1690 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1691 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1692 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1693 "llvm.nvvm.tex.unified.3d.grad.v4s32.f32">; 1694 def int_nvvm_tex_unified_3d_v4u32_s32 1695 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1696 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1697 [], "llvm.nvvm.tex.unified.3d.v4u32.s32">; 1698 def int_nvvm_tex_unified_3d_v4u32_f32 1699 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1700 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1701 llvm_float_ty], [], 1702 "llvm.nvvm.tex.unified.3d.v4u32.f32">; 1703 def int_nvvm_tex_unified_3d_level_v4u32_f32 1704 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1705 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1706 llvm_float_ty, llvm_float_ty], [], 1707 "llvm.nvvm.tex.unified.3d.level.v4u32.f32">; 1708 def int_nvvm_tex_unified_3d_grad_v4u32_f32 1709 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1710 [llvm_i64_ty, llvm_float_ty, llvm_float_ty, 1711 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, 1712 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1713 "llvm.nvvm.tex.unified.3d.grad.v4u32.f32">; 1714 1715 def int_nvvm_tex_unified_cube_v4f32_f32 1716 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1717 [llvm_i64_ty, 1718 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1719 "llvm.nvvm.tex.unified.cube.v4f32.f32">; 1720 def int_nvvm_tex_unified_cube_level_v4f32_f32 1721 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1722 [llvm_i64_ty, 1723 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1724 "llvm.nvvm.tex.unified.cube.level.v4f32.f32">; 1725 def int_nvvm_tex_unified_cube_v4s32_f32 1726 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1727 [llvm_i64_ty, 1728 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1729 "llvm.nvvm.tex.unified.cube.v4s32.f32">; 1730 def int_nvvm_tex_unified_cube_level_v4s32_f32 1731 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1732 [llvm_i64_ty, 1733 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1734 "llvm.nvvm.tex.unified.cube.level.v4s32.f32">; 1735 def int_nvvm_tex_unified_cube_v4u32_f32 1736 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1737 [llvm_i64_ty, 1738 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1739 "llvm.nvvm.tex.unified.cube.v4u32.f32">; 1740 def int_nvvm_tex_unified_cube_level_v4u32_f32 1741 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1742 [llvm_i64_ty, 1743 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1744 "llvm.nvvm.tex.unified.cube.level.v4u32.f32">; 1745 1746 def int_nvvm_tex_unified_cube_array_v4f32_f32 1747 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1748 [llvm_i64_ty, llvm_i32_ty, 1749 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1750 "llvm.nvvm.tex.unified.cube.array.v4f32.f32">; 1751 def int_nvvm_tex_unified_cube_array_level_v4f32_f32 1752 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1753 [llvm_i64_ty, llvm_i32_ty, 1754 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1755 "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32">; 1756 def int_nvvm_tex_unified_cube_array_v4s32_f32 1757 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1758 [llvm_i64_ty, llvm_i32_ty, 1759 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1760 "llvm.nvvm.tex.unified.cube.array.v4s32.f32">; 1761 def int_nvvm_tex_unified_cube_array_level_v4s32_f32 1762 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1763 [llvm_i64_ty, llvm_i32_ty, 1764 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1765 "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32">; 1766 def int_nvvm_tex_unified_cube_array_v4u32_f32 1767 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1768 [llvm_i64_ty, llvm_i32_ty, 1769 llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1770 "llvm.nvvm.tex.unified.cube.array.v4u32.f32">; 1771 def int_nvvm_tex_unified_cube_array_level_v4u32_f32 1772 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1773 [llvm_i64_ty, llvm_i32_ty, 1774 llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], 1775 "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32">; 1776 1777 def int_nvvm_tld4_unified_r_2d_v4f32_f32 1778 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1779 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1780 "llvm.nvvm.tld4.unified.r.2d.v4f32.f32">; 1781 def int_nvvm_tld4_unified_g_2d_v4f32_f32 1782 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1783 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1784 "llvm.nvvm.tld4.unified.g.2d.v4f32.f32">; 1785 def int_nvvm_tld4_unified_b_2d_v4f32_f32 1786 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1787 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1788 "llvm.nvvm.tld4.unified.b.2d.v4f32.f32">; 1789 def int_nvvm_tld4_unified_a_2d_v4f32_f32 1790 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], 1791 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1792 "llvm.nvvm.tld4.unified.a.2d.v4f32.f32">; 1793 def int_nvvm_tld4_unified_r_2d_v4s32_f32 1794 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1795 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1796 "llvm.nvvm.tld4.unified.r.2d.v4s32.f32">; 1797 def int_nvvm_tld4_unified_g_2d_v4s32_f32 1798 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1799 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1800 "llvm.nvvm.tld4.unified.g.2d.v4s32.f32">; 1801 def int_nvvm_tld4_unified_b_2d_v4s32_f32 1802 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1803 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1804 "llvm.nvvm.tld4.unified.b.2d.v4s32.f32">; 1805 def int_nvvm_tld4_unified_a_2d_v4s32_f32 1806 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1807 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1808 "llvm.nvvm.tld4.unified.a.2d.v4s32.f32">; 1809 def int_nvvm_tld4_unified_r_2d_v4u32_f32 1810 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1811 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1812 "llvm.nvvm.tld4.unified.r.2d.v4u32.f32">; 1813 def int_nvvm_tld4_unified_g_2d_v4u32_f32 1814 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1815 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1816 "llvm.nvvm.tld4.unified.g.2d.v4u32.f32">; 1817 def int_nvvm_tld4_unified_b_2d_v4u32_f32 1818 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1819 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1820 "llvm.nvvm.tld4.unified.b.2d.v4u32.f32">; 1821 def int_nvvm_tld4_unified_a_2d_v4u32_f32 1822 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1823 [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], 1824 "llvm.nvvm.tld4.unified.a.2d.v4u32.f32">; 1825 1826 1827 //=== Surface Load 1828 // .clamp variants 1829 def int_nvvm_suld_1d_i8_clamp 1830 : Intrinsic<[llvm_i16_ty], 1831 [llvm_i64_ty, llvm_i32_ty], [], 1832 "llvm.nvvm.suld.1d.i8.clamp">; 1833 def int_nvvm_suld_1d_i16_clamp 1834 : Intrinsic<[llvm_i16_ty], 1835 [llvm_i64_ty, llvm_i32_ty], [], 1836 "llvm.nvvm.suld.1d.i16.clamp">; 1837 def int_nvvm_suld_1d_i32_clamp 1838 : Intrinsic<[llvm_i32_ty], 1839 [llvm_i64_ty, llvm_i32_ty], [], 1840 "llvm.nvvm.suld.1d.i32.clamp">; 1841 def int_nvvm_suld_1d_i64_clamp 1842 : Intrinsic<[llvm_i64_ty], 1843 [llvm_i64_ty, llvm_i32_ty], [], 1844 "llvm.nvvm.suld.1d.i64.clamp">; 1845 def int_nvvm_suld_1d_v2i8_clamp 1846 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1847 [llvm_i64_ty, llvm_i32_ty], [], 1848 "llvm.nvvm.suld.1d.v2i8.clamp">; 1849 def int_nvvm_suld_1d_v2i16_clamp 1850 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1851 [llvm_i64_ty, llvm_i32_ty], [], 1852 "llvm.nvvm.suld.1d.v2i16.clamp">; 1853 def int_nvvm_suld_1d_v2i32_clamp 1854 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1855 [llvm_i64_ty, llvm_i32_ty], [], 1856 "llvm.nvvm.suld.1d.v2i32.clamp">; 1857 def int_nvvm_suld_1d_v2i64_clamp 1858 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 1859 [llvm_i64_ty, llvm_i32_ty], [], 1860 "llvm.nvvm.suld.1d.v2i64.clamp">; 1861 def int_nvvm_suld_1d_v4i8_clamp 1862 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1863 [llvm_i64_ty, llvm_i32_ty], [], 1864 "llvm.nvvm.suld.1d.v4i8.clamp">; 1865 def int_nvvm_suld_1d_v4i16_clamp 1866 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1867 [llvm_i64_ty, llvm_i32_ty], [], 1868 "llvm.nvvm.suld.1d.v4i16.clamp">; 1869 def int_nvvm_suld_1d_v4i32_clamp 1870 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1871 [llvm_i64_ty, llvm_i32_ty], [], 1872 "llvm.nvvm.suld.1d.v4i32.clamp">; 1873 1874 def int_nvvm_suld_1d_array_i8_clamp 1875 : Intrinsic<[llvm_i16_ty], 1876 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1877 "llvm.nvvm.suld.1d.array.i8.clamp">; 1878 def int_nvvm_suld_1d_array_i16_clamp 1879 : Intrinsic<[llvm_i16_ty], 1880 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1881 "llvm.nvvm.suld.1d.array.i16.clamp">; 1882 def int_nvvm_suld_1d_array_i32_clamp 1883 : Intrinsic<[llvm_i32_ty], 1884 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1885 "llvm.nvvm.suld.1d.array.i32.clamp">; 1886 def int_nvvm_suld_1d_array_i64_clamp 1887 : Intrinsic<[llvm_i64_ty], 1888 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1889 "llvm.nvvm.suld.1d.array.i64.clamp">; 1890 def int_nvvm_suld_1d_array_v2i8_clamp 1891 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1892 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1893 "llvm.nvvm.suld.1d.array.v2i8.clamp">; 1894 def int_nvvm_suld_1d_array_v2i16_clamp 1895 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1896 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1897 "llvm.nvvm.suld.1d.array.v2i16.clamp">; 1898 def int_nvvm_suld_1d_array_v2i32_clamp 1899 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1900 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1901 "llvm.nvvm.suld.1d.array.v2i32.clamp">; 1902 def int_nvvm_suld_1d_array_v2i64_clamp 1903 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 1904 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1905 "llvm.nvvm.suld.1d.array.v2i64.clamp">; 1906 def int_nvvm_suld_1d_array_v4i8_clamp 1907 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1908 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1909 "llvm.nvvm.suld.1d.array.v4i8.clamp">; 1910 def int_nvvm_suld_1d_array_v4i16_clamp 1911 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1912 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1913 "llvm.nvvm.suld.1d.array.v4i16.clamp">; 1914 def int_nvvm_suld_1d_array_v4i32_clamp 1915 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1916 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1917 "llvm.nvvm.suld.1d.array.v4i32.clamp">; 1918 1919 def int_nvvm_suld_2d_i8_clamp 1920 : Intrinsic<[llvm_i16_ty], 1921 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1922 "llvm.nvvm.suld.2d.i8.clamp">; 1923 def int_nvvm_suld_2d_i16_clamp 1924 : Intrinsic<[llvm_i16_ty], 1925 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1926 "llvm.nvvm.suld.2d.i16.clamp">; 1927 def int_nvvm_suld_2d_i32_clamp 1928 : Intrinsic<[llvm_i32_ty], 1929 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1930 "llvm.nvvm.suld.2d.i32.clamp">; 1931 def int_nvvm_suld_2d_i64_clamp 1932 : Intrinsic<[llvm_i64_ty], 1933 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1934 "llvm.nvvm.suld.2d.i64.clamp">; 1935 def int_nvvm_suld_2d_v2i8_clamp 1936 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1937 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1938 "llvm.nvvm.suld.2d.v2i8.clamp">; 1939 def int_nvvm_suld_2d_v2i16_clamp 1940 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1941 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1942 "llvm.nvvm.suld.2d.v2i16.clamp">; 1943 def int_nvvm_suld_2d_v2i32_clamp 1944 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1945 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1946 "llvm.nvvm.suld.2d.v2i32.clamp">; 1947 def int_nvvm_suld_2d_v2i64_clamp 1948 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 1949 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1950 "llvm.nvvm.suld.2d.v2i64.clamp">; 1951 def int_nvvm_suld_2d_v4i8_clamp 1952 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1953 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1954 "llvm.nvvm.suld.2d.v4i8.clamp">; 1955 def int_nvvm_suld_2d_v4i16_clamp 1956 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1957 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1958 "llvm.nvvm.suld.2d.v4i16.clamp">; 1959 def int_nvvm_suld_2d_v4i32_clamp 1960 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 1961 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 1962 "llvm.nvvm.suld.2d.v4i32.clamp">; 1963 1964 def int_nvvm_suld_2d_array_i8_clamp 1965 : Intrinsic<[llvm_i16_ty], 1966 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1967 "llvm.nvvm.suld.2d.array.i8.clamp">; 1968 def int_nvvm_suld_2d_array_i16_clamp 1969 : Intrinsic<[llvm_i16_ty], 1970 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1971 "llvm.nvvm.suld.2d.array.i16.clamp">; 1972 def int_nvvm_suld_2d_array_i32_clamp 1973 : Intrinsic<[llvm_i32_ty], 1974 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1975 "llvm.nvvm.suld.2d.array.i32.clamp">; 1976 def int_nvvm_suld_2d_array_i64_clamp 1977 : Intrinsic<[llvm_i64_ty], 1978 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1979 "llvm.nvvm.suld.2d.array.i64.clamp">; 1980 def int_nvvm_suld_2d_array_v2i8_clamp 1981 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1982 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1983 "llvm.nvvm.suld.2d.array.v2i8.clamp">; 1984 def int_nvvm_suld_2d_array_v2i16_clamp 1985 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 1986 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1987 "llvm.nvvm.suld.2d.array.v2i16.clamp">; 1988 def int_nvvm_suld_2d_array_v2i32_clamp 1989 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 1990 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1991 "llvm.nvvm.suld.2d.array.v2i32.clamp">; 1992 def int_nvvm_suld_2d_array_v2i64_clamp 1993 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 1994 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1995 "llvm.nvvm.suld.2d.array.v2i64.clamp">; 1996 def int_nvvm_suld_2d_array_v4i8_clamp 1997 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 1998 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 1999 "llvm.nvvm.suld.2d.array.v4i8.clamp">; 2000 def int_nvvm_suld_2d_array_v4i16_clamp 2001 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2002 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2003 "llvm.nvvm.suld.2d.array.v4i16.clamp">; 2004 def int_nvvm_suld_2d_array_v4i32_clamp 2005 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2006 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2007 "llvm.nvvm.suld.2d.array.v4i32.clamp">; 2008 2009 def int_nvvm_suld_3d_i8_clamp 2010 : Intrinsic<[llvm_i16_ty], 2011 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2012 "llvm.nvvm.suld.3d.i8.clamp">; 2013 def int_nvvm_suld_3d_i16_clamp 2014 : Intrinsic<[llvm_i16_ty], 2015 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2016 "llvm.nvvm.suld.3d.i16.clamp">; 2017 def int_nvvm_suld_3d_i32_clamp 2018 : Intrinsic<[llvm_i32_ty], 2019 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2020 "llvm.nvvm.suld.3d.i32.clamp">; 2021 def int_nvvm_suld_3d_i64_clamp 2022 : Intrinsic<[llvm_i64_ty], 2023 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2024 "llvm.nvvm.suld.3d.i64.clamp">; 2025 def int_nvvm_suld_3d_v2i8_clamp 2026 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2027 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2028 "llvm.nvvm.suld.3d.v2i8.clamp">; 2029 def int_nvvm_suld_3d_v2i16_clamp 2030 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2031 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2032 "llvm.nvvm.suld.3d.v2i16.clamp">; 2033 def int_nvvm_suld_3d_v2i32_clamp 2034 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2035 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2036 "llvm.nvvm.suld.3d.v2i32.clamp">; 2037 def int_nvvm_suld_3d_v2i64_clamp 2038 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2039 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2040 "llvm.nvvm.suld.3d.v2i64.clamp">; 2041 def int_nvvm_suld_3d_v4i8_clamp 2042 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2043 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2044 "llvm.nvvm.suld.3d.v4i8.clamp">; 2045 def int_nvvm_suld_3d_v4i16_clamp 2046 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2047 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2048 "llvm.nvvm.suld.3d.v4i16.clamp">; 2049 def int_nvvm_suld_3d_v4i32_clamp 2050 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2051 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2052 "llvm.nvvm.suld.3d.v4i32.clamp">; 2053 2054 // .trap variants 2055 def int_nvvm_suld_1d_i8_trap 2056 : Intrinsic<[llvm_i16_ty], 2057 [llvm_i64_ty, llvm_i32_ty], [], 2058 "llvm.nvvm.suld.1d.i8.trap">; 2059 def int_nvvm_suld_1d_i16_trap 2060 : Intrinsic<[llvm_i16_ty], 2061 [llvm_i64_ty, llvm_i32_ty], [], 2062 "llvm.nvvm.suld.1d.i16.trap">; 2063 def int_nvvm_suld_1d_i32_trap 2064 : Intrinsic<[llvm_i32_ty], 2065 [llvm_i64_ty, llvm_i32_ty], [], 2066 "llvm.nvvm.suld.1d.i32.trap">; 2067 def int_nvvm_suld_1d_i64_trap 2068 : Intrinsic<[llvm_i64_ty], 2069 [llvm_i64_ty, llvm_i32_ty], [], 2070 "llvm.nvvm.suld.1d.i64.trap">; 2071 def int_nvvm_suld_1d_v2i8_trap 2072 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2073 [llvm_i64_ty, llvm_i32_ty], [], 2074 "llvm.nvvm.suld.1d.v2i8.trap">; 2075 def int_nvvm_suld_1d_v2i16_trap 2076 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2077 [llvm_i64_ty, llvm_i32_ty], [], 2078 "llvm.nvvm.suld.1d.v2i16.trap">; 2079 def int_nvvm_suld_1d_v2i32_trap 2080 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2081 [llvm_i64_ty, llvm_i32_ty], [], 2082 "llvm.nvvm.suld.1d.v2i32.trap">; 2083 def int_nvvm_suld_1d_v2i64_trap 2084 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2085 [llvm_i64_ty, llvm_i32_ty], [], 2086 "llvm.nvvm.suld.1d.v2i64.trap">; 2087 def int_nvvm_suld_1d_v4i8_trap 2088 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2089 [llvm_i64_ty, llvm_i32_ty], [], 2090 "llvm.nvvm.suld.1d.v4i8.trap">; 2091 def int_nvvm_suld_1d_v4i16_trap 2092 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2093 [llvm_i64_ty, llvm_i32_ty], [], 2094 "llvm.nvvm.suld.1d.v4i16.trap">; 2095 def int_nvvm_suld_1d_v4i32_trap 2096 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2097 [llvm_i64_ty, llvm_i32_ty], [], 2098 "llvm.nvvm.suld.1d.v4i32.trap">; 2099 2100 def int_nvvm_suld_1d_array_i8_trap 2101 : Intrinsic<[llvm_i16_ty], 2102 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2103 "llvm.nvvm.suld.1d.array.i8.trap">; 2104 def int_nvvm_suld_1d_array_i16_trap 2105 : Intrinsic<[llvm_i16_ty], 2106 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2107 "llvm.nvvm.suld.1d.array.i16.trap">; 2108 def int_nvvm_suld_1d_array_i32_trap 2109 : Intrinsic<[llvm_i32_ty], 2110 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2111 "llvm.nvvm.suld.1d.array.i32.trap">; 2112 def int_nvvm_suld_1d_array_i64_trap 2113 : Intrinsic<[llvm_i64_ty], 2114 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2115 "llvm.nvvm.suld.1d.array.i64.trap">; 2116 def int_nvvm_suld_1d_array_v2i8_trap 2117 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2118 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2119 "llvm.nvvm.suld.1d.array.v2i8.trap">; 2120 def int_nvvm_suld_1d_array_v2i16_trap 2121 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2122 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2123 "llvm.nvvm.suld.1d.array.v2i16.trap">; 2124 def int_nvvm_suld_1d_array_v2i32_trap 2125 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2126 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2127 "llvm.nvvm.suld.1d.array.v2i32.trap">; 2128 def int_nvvm_suld_1d_array_v2i64_trap 2129 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2130 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2131 "llvm.nvvm.suld.1d.array.v2i64.trap">; 2132 def int_nvvm_suld_1d_array_v4i8_trap 2133 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2134 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2135 "llvm.nvvm.suld.1d.array.v4i8.trap">; 2136 def int_nvvm_suld_1d_array_v4i16_trap 2137 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2138 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2139 "llvm.nvvm.suld.1d.array.v4i16.trap">; 2140 def int_nvvm_suld_1d_array_v4i32_trap 2141 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2142 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2143 "llvm.nvvm.suld.1d.array.v4i32.trap">; 2144 2145 def int_nvvm_suld_2d_i8_trap 2146 : Intrinsic<[llvm_i16_ty], 2147 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2148 "llvm.nvvm.suld.2d.i8.trap">; 2149 def int_nvvm_suld_2d_i16_trap 2150 : Intrinsic<[llvm_i16_ty], 2151 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2152 "llvm.nvvm.suld.2d.i16.trap">; 2153 def int_nvvm_suld_2d_i32_trap 2154 : Intrinsic<[llvm_i32_ty], 2155 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2156 "llvm.nvvm.suld.2d.i32.trap">; 2157 def int_nvvm_suld_2d_i64_trap 2158 : Intrinsic<[llvm_i64_ty], 2159 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2160 "llvm.nvvm.suld.2d.i64.trap">; 2161 def int_nvvm_suld_2d_v2i8_trap 2162 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2163 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2164 "llvm.nvvm.suld.2d.v2i8.trap">; 2165 def int_nvvm_suld_2d_v2i16_trap 2166 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2167 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2168 "llvm.nvvm.suld.2d.v2i16.trap">; 2169 def int_nvvm_suld_2d_v2i32_trap 2170 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2171 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2172 "llvm.nvvm.suld.2d.v2i32.trap">; 2173 def int_nvvm_suld_2d_v2i64_trap 2174 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2175 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2176 "llvm.nvvm.suld.2d.v2i64.trap">; 2177 def int_nvvm_suld_2d_v4i8_trap 2178 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2179 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2180 "llvm.nvvm.suld.2d.v4i8.trap">; 2181 def int_nvvm_suld_2d_v4i16_trap 2182 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2183 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2184 "llvm.nvvm.suld.2d.v4i16.trap">; 2185 def int_nvvm_suld_2d_v4i32_trap 2186 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2187 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2188 "llvm.nvvm.suld.2d.v4i32.trap">; 2189 2190 def int_nvvm_suld_2d_array_i8_trap 2191 : Intrinsic<[llvm_i16_ty], 2192 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2193 "llvm.nvvm.suld.2d.array.i8.trap">; 2194 def int_nvvm_suld_2d_array_i16_trap 2195 : Intrinsic<[llvm_i16_ty], 2196 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2197 "llvm.nvvm.suld.2d.array.i16.trap">; 2198 def int_nvvm_suld_2d_array_i32_trap 2199 : Intrinsic<[llvm_i32_ty], 2200 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2201 "llvm.nvvm.suld.2d.array.i32.trap">; 2202 def int_nvvm_suld_2d_array_i64_trap 2203 : Intrinsic<[llvm_i64_ty], 2204 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2205 "llvm.nvvm.suld.2d.array.i64.trap">; 2206 def int_nvvm_suld_2d_array_v2i8_trap 2207 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2208 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2209 "llvm.nvvm.suld.2d.array.v2i8.trap">; 2210 def int_nvvm_suld_2d_array_v2i16_trap 2211 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2212 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2213 "llvm.nvvm.suld.2d.array.v2i16.trap">; 2214 def int_nvvm_suld_2d_array_v2i32_trap 2215 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2216 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2217 "llvm.nvvm.suld.2d.array.v2i32.trap">; 2218 def int_nvvm_suld_2d_array_v2i64_trap 2219 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2220 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2221 "llvm.nvvm.suld.2d.array.v2i64.trap">; 2222 def int_nvvm_suld_2d_array_v4i8_trap 2223 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2224 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2225 "llvm.nvvm.suld.2d.array.v4i8.trap">; 2226 def int_nvvm_suld_2d_array_v4i16_trap 2227 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2228 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2229 "llvm.nvvm.suld.2d.array.v4i16.trap">; 2230 def int_nvvm_suld_2d_array_v4i32_trap 2231 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2232 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2233 "llvm.nvvm.suld.2d.array.v4i32.trap">; 2234 2235 def int_nvvm_suld_3d_i8_trap 2236 : Intrinsic<[llvm_i16_ty], 2237 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2238 "llvm.nvvm.suld.3d.i8.trap">; 2239 def int_nvvm_suld_3d_i16_trap 2240 : Intrinsic<[llvm_i16_ty], 2241 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2242 "llvm.nvvm.suld.3d.i16.trap">; 2243 def int_nvvm_suld_3d_i32_trap 2244 : Intrinsic<[llvm_i32_ty], 2245 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2246 "llvm.nvvm.suld.3d.i32.trap">; 2247 def int_nvvm_suld_3d_i64_trap 2248 : Intrinsic<[llvm_i64_ty], 2249 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2250 "llvm.nvvm.suld.3d.i64.trap">; 2251 def int_nvvm_suld_3d_v2i8_trap 2252 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2253 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2254 "llvm.nvvm.suld.3d.v2i8.trap">; 2255 def int_nvvm_suld_3d_v2i16_trap 2256 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2257 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2258 "llvm.nvvm.suld.3d.v2i16.trap">; 2259 def int_nvvm_suld_3d_v2i32_trap 2260 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2261 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2262 "llvm.nvvm.suld.3d.v2i32.trap">; 2263 def int_nvvm_suld_3d_v2i64_trap 2264 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2265 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2266 "llvm.nvvm.suld.3d.v2i64.trap">; 2267 def int_nvvm_suld_3d_v4i8_trap 2268 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2269 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2270 "llvm.nvvm.suld.3d.v4i8.trap">; 2271 def int_nvvm_suld_3d_v4i16_trap 2272 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2273 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2274 "llvm.nvvm.suld.3d.v4i16.trap">; 2275 def int_nvvm_suld_3d_v4i32_trap 2276 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2277 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2278 "llvm.nvvm.suld.3d.v4i32.trap">; 2279 2280 // .zero variants 2281 def int_nvvm_suld_1d_i8_zero 2282 : Intrinsic<[llvm_i16_ty], 2283 [llvm_i64_ty, llvm_i32_ty], [], 2284 "llvm.nvvm.suld.1d.i8.zero">; 2285 def int_nvvm_suld_1d_i16_zero 2286 : Intrinsic<[llvm_i16_ty], 2287 [llvm_i64_ty, llvm_i32_ty], [], 2288 "llvm.nvvm.suld.1d.i16.zero">; 2289 def int_nvvm_suld_1d_i32_zero 2290 : Intrinsic<[llvm_i32_ty], 2291 [llvm_i64_ty, llvm_i32_ty], [], 2292 "llvm.nvvm.suld.1d.i32.zero">; 2293 def int_nvvm_suld_1d_i64_zero 2294 : Intrinsic<[llvm_i64_ty], 2295 [llvm_i64_ty, llvm_i32_ty], [], 2296 "llvm.nvvm.suld.1d.i64.zero">; 2297 def int_nvvm_suld_1d_v2i8_zero 2298 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2299 [llvm_i64_ty, llvm_i32_ty], [], 2300 "llvm.nvvm.suld.1d.v2i8.zero">; 2301 def int_nvvm_suld_1d_v2i16_zero 2302 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2303 [llvm_i64_ty, llvm_i32_ty], [], 2304 "llvm.nvvm.suld.1d.v2i16.zero">; 2305 def int_nvvm_suld_1d_v2i32_zero 2306 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2307 [llvm_i64_ty, llvm_i32_ty], [], 2308 "llvm.nvvm.suld.1d.v2i32.zero">; 2309 def int_nvvm_suld_1d_v2i64_zero 2310 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2311 [llvm_i64_ty, llvm_i32_ty], [], 2312 "llvm.nvvm.suld.1d.v2i64.zero">; 2313 def int_nvvm_suld_1d_v4i8_zero 2314 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2315 [llvm_i64_ty, llvm_i32_ty], [], 2316 "llvm.nvvm.suld.1d.v4i8.zero">; 2317 def int_nvvm_suld_1d_v4i16_zero 2318 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2319 [llvm_i64_ty, llvm_i32_ty], [], 2320 "llvm.nvvm.suld.1d.v4i16.zero">; 2321 def int_nvvm_suld_1d_v4i32_zero 2322 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2323 [llvm_i64_ty, llvm_i32_ty], [], 2324 "llvm.nvvm.suld.1d.v4i32.zero">; 2325 2326 def int_nvvm_suld_1d_array_i8_zero 2327 : Intrinsic<[llvm_i16_ty], 2328 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2329 "llvm.nvvm.suld.1d.array.i8.zero">; 2330 def int_nvvm_suld_1d_array_i16_zero 2331 : Intrinsic<[llvm_i16_ty], 2332 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2333 "llvm.nvvm.suld.1d.array.i16.zero">; 2334 def int_nvvm_suld_1d_array_i32_zero 2335 : Intrinsic<[llvm_i32_ty], 2336 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2337 "llvm.nvvm.suld.1d.array.i32.zero">; 2338 def int_nvvm_suld_1d_array_i64_zero 2339 : Intrinsic<[llvm_i64_ty], 2340 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2341 "llvm.nvvm.suld.1d.array.i64.zero">; 2342 def int_nvvm_suld_1d_array_v2i8_zero 2343 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2344 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2345 "llvm.nvvm.suld.1d.array.v2i8.zero">; 2346 def int_nvvm_suld_1d_array_v2i16_zero 2347 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2348 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2349 "llvm.nvvm.suld.1d.array.v2i16.zero">; 2350 def int_nvvm_suld_1d_array_v2i32_zero 2351 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2352 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2353 "llvm.nvvm.suld.1d.array.v2i32.zero">; 2354 def int_nvvm_suld_1d_array_v2i64_zero 2355 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2356 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2357 "llvm.nvvm.suld.1d.array.v2i64.zero">; 2358 def int_nvvm_suld_1d_array_v4i8_zero 2359 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2360 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2361 "llvm.nvvm.suld.1d.array.v4i8.zero">; 2362 def int_nvvm_suld_1d_array_v4i16_zero 2363 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2364 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2365 "llvm.nvvm.suld.1d.array.v4i16.zero">; 2366 def int_nvvm_suld_1d_array_v4i32_zero 2367 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2368 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2369 "llvm.nvvm.suld.1d.array.v4i32.zero">; 2370 2371 def int_nvvm_suld_2d_i8_zero 2372 : Intrinsic<[llvm_i16_ty], 2373 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2374 "llvm.nvvm.suld.2d.i8.zero">; 2375 def int_nvvm_suld_2d_i16_zero 2376 : Intrinsic<[llvm_i16_ty], 2377 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2378 "llvm.nvvm.suld.2d.i16.zero">; 2379 def int_nvvm_suld_2d_i32_zero 2380 : Intrinsic<[llvm_i32_ty], 2381 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2382 "llvm.nvvm.suld.2d.i32.zero">; 2383 def int_nvvm_suld_2d_i64_zero 2384 : Intrinsic<[llvm_i64_ty], 2385 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2386 "llvm.nvvm.suld.2d.i64.zero">; 2387 def int_nvvm_suld_2d_v2i8_zero 2388 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2389 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2390 "llvm.nvvm.suld.2d.v2i8.zero">; 2391 def int_nvvm_suld_2d_v2i16_zero 2392 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2393 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2394 "llvm.nvvm.suld.2d.v2i16.zero">; 2395 def int_nvvm_suld_2d_v2i32_zero 2396 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2397 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2398 "llvm.nvvm.suld.2d.v2i32.zero">; 2399 def int_nvvm_suld_2d_v2i64_zero 2400 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2401 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2402 "llvm.nvvm.suld.2d.v2i64.zero">; 2403 def int_nvvm_suld_2d_v4i8_zero 2404 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2405 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2406 "llvm.nvvm.suld.2d.v4i8.zero">; 2407 def int_nvvm_suld_2d_v4i16_zero 2408 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2409 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2410 "llvm.nvvm.suld.2d.v4i16.zero">; 2411 def int_nvvm_suld_2d_v4i32_zero 2412 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2413 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2414 "llvm.nvvm.suld.2d.v4i32.zero">; 2415 2416 def int_nvvm_suld_2d_array_i8_zero 2417 : Intrinsic<[llvm_i16_ty], 2418 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2419 "llvm.nvvm.suld.2d.array.i8.zero">; 2420 def int_nvvm_suld_2d_array_i16_zero 2421 : Intrinsic<[llvm_i16_ty], 2422 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2423 "llvm.nvvm.suld.2d.array.i16.zero">; 2424 def int_nvvm_suld_2d_array_i32_zero 2425 : Intrinsic<[llvm_i32_ty], 2426 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2427 "llvm.nvvm.suld.2d.array.i32.zero">; 2428 def int_nvvm_suld_2d_array_i64_zero 2429 : Intrinsic<[llvm_i64_ty], 2430 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2431 "llvm.nvvm.suld.2d.array.i64.zero">; 2432 def int_nvvm_suld_2d_array_v2i8_zero 2433 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2434 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2435 "llvm.nvvm.suld.2d.array.v2i8.zero">; 2436 def int_nvvm_suld_2d_array_v2i16_zero 2437 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2438 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2439 "llvm.nvvm.suld.2d.array.v2i16.zero">; 2440 def int_nvvm_suld_2d_array_v2i32_zero 2441 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2442 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2443 "llvm.nvvm.suld.2d.array.v2i32.zero">; 2444 def int_nvvm_suld_2d_array_v2i64_zero 2445 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2446 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2447 "llvm.nvvm.suld.2d.array.v2i64.zero">; 2448 def int_nvvm_suld_2d_array_v4i8_zero 2449 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2450 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2451 "llvm.nvvm.suld.2d.array.v4i8.zero">; 2452 def int_nvvm_suld_2d_array_v4i16_zero 2453 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2454 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2455 "llvm.nvvm.suld.2d.array.v4i16.zero">; 2456 def int_nvvm_suld_2d_array_v4i32_zero 2457 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2458 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2459 "llvm.nvvm.suld.2d.array.v4i32.zero">; 2460 2461 def int_nvvm_suld_3d_i8_zero 2462 : Intrinsic<[llvm_i16_ty], 2463 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2464 "llvm.nvvm.suld.3d.i8.zero">; 2465 def int_nvvm_suld_3d_i16_zero 2466 : Intrinsic<[llvm_i16_ty], 2467 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2468 "llvm.nvvm.suld.3d.i16.zero">; 2469 def int_nvvm_suld_3d_i32_zero 2470 : Intrinsic<[llvm_i32_ty], 2471 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2472 "llvm.nvvm.suld.3d.i32.zero">; 2473 def int_nvvm_suld_3d_i64_zero 2474 : Intrinsic<[llvm_i64_ty], 2475 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2476 "llvm.nvvm.suld.3d.i64.zero">; 2477 def int_nvvm_suld_3d_v2i8_zero 2478 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2479 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2480 "llvm.nvvm.suld.3d.v2i8.zero">; 2481 def int_nvvm_suld_3d_v2i16_zero 2482 : Intrinsic<[llvm_i16_ty, llvm_i16_ty], 2483 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2484 "llvm.nvvm.suld.3d.v2i16.zero">; 2485 def int_nvvm_suld_3d_v2i32_zero 2486 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], 2487 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2488 "llvm.nvvm.suld.3d.v2i32.zero">; 2489 def int_nvvm_suld_3d_v2i64_zero 2490 : Intrinsic<[llvm_i64_ty, llvm_i64_ty], 2491 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2492 "llvm.nvvm.suld.3d.v2i64.zero">; 2493 def int_nvvm_suld_3d_v4i8_zero 2494 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2495 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2496 "llvm.nvvm.suld.3d.v4i8.zero">; 2497 def int_nvvm_suld_3d_v4i16_zero 2498 : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], 2499 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2500 "llvm.nvvm.suld.3d.v4i16.zero">; 2501 def int_nvvm_suld_3d_v4i32_zero 2502 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 2503 [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2504 "llvm.nvvm.suld.3d.v4i32.zero">; 2505 2506 //===- Texture Query ------------------------------------------------------===// 2507 2508 def int_nvvm_txq_channel_order 2509 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2510 "llvm.nvvm.txq.channel.order">, 2511 GCCBuiltin<"__nvvm_txq_channel_order">; 2512 def int_nvvm_txq_channel_data_type 2513 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2514 "llvm.nvvm.txq.channel.data.type">, 2515 GCCBuiltin<"__nvvm_txq_channel_data_type">; 2516 def int_nvvm_txq_width 2517 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2518 "llvm.nvvm.txq.width">, 2519 GCCBuiltin<"__nvvm_txq_width">; 2520 def int_nvvm_txq_height 2521 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2522 "llvm.nvvm.txq.height">, 2523 GCCBuiltin<"__nvvm_txq_height">; 2524 def int_nvvm_txq_depth 2525 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2526 "llvm.nvvm.txq.depth">, 2527 GCCBuiltin<"__nvvm_txq_depth">; 2528 def int_nvvm_txq_array_size 2529 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2530 "llvm.nvvm.txq.array.size">, 2531 GCCBuiltin<"__nvvm_txq_array_size">; 2532 def int_nvvm_txq_num_samples 2533 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2534 "llvm.nvvm.txq.num.samples">, 2535 GCCBuiltin<"__nvvm_txq_num_samples">; 2536 def int_nvvm_txq_num_mipmap_levels 2537 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2538 "llvm.nvvm.txq.num.mipmap.levels">, 2539 GCCBuiltin<"__nvvm_txq_num_mipmap_levels">; 2540 2541 //===- Surface Query ------------------------------------------------------===// 2542 2543 def int_nvvm_suq_channel_order 2544 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2545 "llvm.nvvm.suq.channel.order">, 2546 GCCBuiltin<"__nvvm_suq_channel_order">; 2547 def int_nvvm_suq_channel_data_type 2548 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2549 "llvm.nvvm.suq.channel.data.type">, 2550 GCCBuiltin<"__nvvm_suq_channel_data_type">; 2551 def int_nvvm_suq_width 2552 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2553 "llvm.nvvm.suq.width">, 2554 GCCBuiltin<"__nvvm_suq_width">; 2555 def int_nvvm_suq_height 2556 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2557 "llvm.nvvm.suq.height">, 2558 GCCBuiltin<"__nvvm_suq_height">; 2559 def int_nvvm_suq_depth 2560 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2561 "llvm.nvvm.suq.depth">, 2562 GCCBuiltin<"__nvvm_suq_depth">; 2563 def int_nvvm_suq_array_size 2564 : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], 2565 "llvm.nvvm.suq.array.size">, 2566 GCCBuiltin<"__nvvm_suq_array_size">; 2567 2568 2569 //===- Handle Query -------------------------------------------------------===// 2570 2571 def int_nvvm_istypep_sampler 2572 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], 2573 "llvm.nvvm.istypep.sampler">, 2574 GCCBuiltin<"__nvvm_istypep_sampler">; 2575 def int_nvvm_istypep_surface 2576 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], 2577 "llvm.nvvm.istypep.surface">, 2578 GCCBuiltin<"__nvvm_istypep_surface">; 2579 def int_nvvm_istypep_texture 2580 : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], 2581 "llvm.nvvm.istypep.texture">, 2582 GCCBuiltin<"__nvvm_istypep_texture">; 2583 2584 2585 2586 //===- Surface Stores -----------------------------------------------------===// 2587 2588 // Unformatted 2589 // .clamp variant 2590 def int_nvvm_sust_b_1d_i8_clamp 2591 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 2592 "llvm.nvvm.sust.b.1d.i8.clamp">, 2593 GCCBuiltin<"__nvvm_sust_b_1d_i8_clamp">; 2594 def int_nvvm_sust_b_1d_i16_clamp 2595 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 2596 "llvm.nvvm.sust.b.1d.i16.clamp">, 2597 GCCBuiltin<"__nvvm_sust_b_1d_i16_clamp">; 2598 def int_nvvm_sust_b_1d_i32_clamp 2599 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2600 "llvm.nvvm.sust.b.1d.i32.clamp">, 2601 GCCBuiltin<"__nvvm_sust_b_1d_i32_clamp">; 2602 def int_nvvm_sust_b_1d_i64_clamp 2603 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [], 2604 "llvm.nvvm.sust.b.1d.i64.clamp">, 2605 GCCBuiltin<"__nvvm_sust_b_1d_i64_clamp">; 2606 def int_nvvm_sust_b_1d_v2i8_clamp 2607 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 2608 "llvm.nvvm.sust.b.1d.v2i8.clamp">, 2609 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_clamp">; 2610 def int_nvvm_sust_b_1d_v2i16_clamp 2611 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 2612 "llvm.nvvm.sust.b.1d.v2i16.clamp">, 2613 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_clamp">; 2614 def int_nvvm_sust_b_1d_v2i32_clamp 2615 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2616 "llvm.nvvm.sust.b.1d.v2i32.clamp">, 2617 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_clamp">; 2618 def int_nvvm_sust_b_1d_v2i64_clamp 2619 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], 2620 "llvm.nvvm.sust.b.1d.v2i64.clamp">, 2621 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_clamp">; 2622 def int_nvvm_sust_b_1d_v4i8_clamp 2623 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 2624 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2625 "llvm.nvvm.sust.b.1d.v4i8.clamp">, 2626 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_clamp">; 2627 def int_nvvm_sust_b_1d_v4i16_clamp 2628 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 2629 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2630 "llvm.nvvm.sust.b.1d.v4i16.clamp">, 2631 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_clamp">; 2632 def int_nvvm_sust_b_1d_v4i32_clamp 2633 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2634 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2635 "llvm.nvvm.sust.b.1d.v4i32.clamp">, 2636 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_clamp">; 2637 2638 2639 def int_nvvm_sust_b_1d_array_i8_clamp 2640 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2641 "llvm.nvvm.sust.b.1d.array.i8.clamp">, 2642 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_clamp">; 2643 def int_nvvm_sust_b_1d_array_i16_clamp 2644 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2645 "llvm.nvvm.sust.b.1d.array.i16.clamp">, 2646 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_clamp">; 2647 def int_nvvm_sust_b_1d_array_i32_clamp 2648 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2649 "llvm.nvvm.sust.b.1d.array.i32.clamp">, 2650 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_clamp">; 2651 def int_nvvm_sust_b_1d_array_i64_clamp 2652 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], 2653 "llvm.nvvm.sust.b.1d.array.i64.clamp">, 2654 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_clamp">; 2655 def int_nvvm_sust_b_1d_array_v2i8_clamp 2656 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2657 llvm_i16_ty, llvm_i16_ty], [], 2658 "llvm.nvvm.sust.b.1d.array.v2i8.clamp">, 2659 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_clamp">; 2660 def int_nvvm_sust_b_1d_array_v2i16_clamp 2661 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2662 llvm_i16_ty, llvm_i16_ty], [], 2663 "llvm.nvvm.sust.b.1d.array.v2i16.clamp">, 2664 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_clamp">; 2665 def int_nvvm_sust_b_1d_array_v2i32_clamp 2666 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2667 llvm_i32_ty, llvm_i32_ty], [], 2668 "llvm.nvvm.sust.b.1d.array.v2i32.clamp">, 2669 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_clamp">; 2670 def int_nvvm_sust_b_1d_array_v2i64_clamp 2671 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2672 llvm_i64_ty, llvm_i64_ty], [], 2673 "llvm.nvvm.sust.b.1d.array.v2i64.clamp">, 2674 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_clamp">; 2675 def int_nvvm_sust_b_1d_array_v4i8_clamp 2676 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 2677 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2678 "llvm.nvvm.sust.b.1d.array.v4i8.clamp">, 2679 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_clamp">; 2680 def int_nvvm_sust_b_1d_array_v4i16_clamp 2681 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 2682 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2683 "llvm.nvvm.sust.b.1d.array.v4i16.clamp">, 2684 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_clamp">; 2685 def int_nvvm_sust_b_1d_array_v4i32_clamp 2686 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2687 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2688 "llvm.nvvm.sust.b.1d.array.v4i32.clamp">, 2689 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_clamp">; 2690 2691 2692 def int_nvvm_sust_b_2d_i8_clamp 2693 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2694 "llvm.nvvm.sust.b.2d.i8.clamp">, 2695 GCCBuiltin<"__nvvm_sust_b_2d_i8_clamp">; 2696 def int_nvvm_sust_b_2d_i16_clamp 2697 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2698 "llvm.nvvm.sust.b.2d.i16.clamp">, 2699 GCCBuiltin<"__nvvm_sust_b_2d_i16_clamp">; 2700 def int_nvvm_sust_b_2d_i32_clamp 2701 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2702 "llvm.nvvm.sust.b.2d.i32.clamp">, 2703 GCCBuiltin<"__nvvm_sust_b_2d_i32_clamp">; 2704 def int_nvvm_sust_b_2d_i64_clamp 2705 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], 2706 "llvm.nvvm.sust.b.2d.i64.clamp">, 2707 GCCBuiltin<"__nvvm_sust_b_2d_i64_clamp">; 2708 def int_nvvm_sust_b_2d_v2i8_clamp 2709 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2710 llvm_i16_ty, llvm_i16_ty], [], 2711 "llvm.nvvm.sust.b.2d.v2i8.clamp">, 2712 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_clamp">; 2713 def int_nvvm_sust_b_2d_v2i16_clamp 2714 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2715 llvm_i16_ty, llvm_i16_ty], [], 2716 "llvm.nvvm.sust.b.2d.v2i16.clamp">, 2717 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_clamp">; 2718 def int_nvvm_sust_b_2d_v2i32_clamp 2719 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2720 llvm_i32_ty, llvm_i32_ty], [], 2721 "llvm.nvvm.sust.b.2d.v2i32.clamp">, 2722 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_clamp">; 2723 def int_nvvm_sust_b_2d_v2i64_clamp 2724 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2725 llvm_i64_ty, llvm_i64_ty], [], 2726 "llvm.nvvm.sust.b.2d.v2i64.clamp">, 2727 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_clamp">; 2728 def int_nvvm_sust_b_2d_v4i8_clamp 2729 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 2730 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2731 "llvm.nvvm.sust.b.2d.v4i8.clamp">, 2732 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_clamp">; 2733 def int_nvvm_sust_b_2d_v4i16_clamp 2734 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 2735 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2736 "llvm.nvvm.sust.b.2d.v4i16.clamp">, 2737 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_clamp">; 2738 def int_nvvm_sust_b_2d_v4i32_clamp 2739 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2740 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2741 "llvm.nvvm.sust.b.2d.v4i32.clamp">, 2742 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_clamp">; 2743 2744 2745 def int_nvvm_sust_b_2d_array_i8_clamp 2746 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2747 llvm_i32_ty, llvm_i16_ty], [], 2748 "llvm.nvvm.sust.b.2d.array.i8.clamp">, 2749 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_clamp">; 2750 def int_nvvm_sust_b_2d_array_i16_clamp 2751 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2752 llvm_i32_ty, llvm_i16_ty], [], 2753 "llvm.nvvm.sust.b.2d.array.i16.clamp">, 2754 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_clamp">; 2755 def int_nvvm_sust_b_2d_array_i32_clamp 2756 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2757 llvm_i32_ty, llvm_i32_ty], [], 2758 "llvm.nvvm.sust.b.2d.array.i32.clamp">, 2759 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_clamp">; 2760 def int_nvvm_sust_b_2d_array_i64_clamp 2761 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2762 llvm_i32_ty, llvm_i64_ty], [], 2763 "llvm.nvvm.sust.b.2d.array.i64.clamp">, 2764 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_clamp">; 2765 def int_nvvm_sust_b_2d_array_v2i8_clamp 2766 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2767 llvm_i16_ty, llvm_i16_ty], [], 2768 "llvm.nvvm.sust.b.2d.array.v2i8.clamp">, 2769 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_clamp">; 2770 def int_nvvm_sust_b_2d_array_v2i16_clamp 2771 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2772 llvm_i16_ty, llvm_i16_ty], [], 2773 "llvm.nvvm.sust.b.2d.array.v2i16.clamp">, 2774 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_clamp">; 2775 def int_nvvm_sust_b_2d_array_v2i32_clamp 2776 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2777 llvm_i32_ty, llvm_i32_ty], [], 2778 "llvm.nvvm.sust.b.2d.array.v2i32.clamp">, 2779 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_clamp">; 2780 def int_nvvm_sust_b_2d_array_v2i64_clamp 2781 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2782 llvm_i64_ty, llvm_i64_ty], [], 2783 "llvm.nvvm.sust.b.2d.array.v2i64.clamp">, 2784 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_clamp">; 2785 def int_nvvm_sust_b_2d_array_v4i8_clamp 2786 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2787 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2788 "llvm.nvvm.sust.b.2d.array.v4i8.clamp">, 2789 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_clamp">; 2790 def int_nvvm_sust_b_2d_array_v4i16_clamp 2791 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2792 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2793 "llvm.nvvm.sust.b.2d.array.v4i16.clamp">, 2794 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_clamp">; 2795 def int_nvvm_sust_b_2d_array_v4i32_clamp 2796 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2797 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2798 "llvm.nvvm.sust.b.2d.array.v4i32.clamp">, 2799 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_clamp">; 2800 2801 2802 def int_nvvm_sust_b_3d_i8_clamp 2803 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2804 llvm_i32_ty, llvm_i16_ty], [], 2805 "llvm.nvvm.sust.b.3d.i8.clamp">, 2806 GCCBuiltin<"__nvvm_sust_b_3d_i8_clamp">; 2807 def int_nvvm_sust_b_3d_i16_clamp 2808 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2809 llvm_i32_ty, llvm_i16_ty], [], 2810 "llvm.nvvm.sust.b.3d.i16.clamp">, 2811 GCCBuiltin<"__nvvm_sust_b_3d_i16_clamp">; 2812 def int_nvvm_sust_b_3d_i32_clamp 2813 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2814 llvm_i32_ty, llvm_i32_ty], [], 2815 "llvm.nvvm.sust.b.3d.i32.clamp">, 2816 GCCBuiltin<"__nvvm_sust_b_3d_i32_clamp">; 2817 def int_nvvm_sust_b_3d_i64_clamp 2818 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2819 llvm_i32_ty, llvm_i64_ty], [], 2820 "llvm.nvvm.sust.b.3d.i64.clamp">, 2821 GCCBuiltin<"__nvvm_sust_b_3d_i64_clamp">; 2822 def int_nvvm_sust_b_3d_v2i8_clamp 2823 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2824 llvm_i16_ty, llvm_i16_ty], [], 2825 "llvm.nvvm.sust.b.3d.v2i8.clamp">, 2826 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_clamp">; 2827 def int_nvvm_sust_b_3d_v2i16_clamp 2828 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2829 llvm_i16_ty, llvm_i16_ty], [], 2830 "llvm.nvvm.sust.b.3d.v2i16.clamp">, 2831 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_clamp">; 2832 def int_nvvm_sust_b_3d_v2i32_clamp 2833 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2834 llvm_i32_ty, llvm_i32_ty], [], 2835 "llvm.nvvm.sust.b.3d.v2i32.clamp">, 2836 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_clamp">; 2837 def int_nvvm_sust_b_3d_v2i64_clamp 2838 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2839 llvm_i64_ty, llvm_i64_ty], [], 2840 "llvm.nvvm.sust.b.3d.v2i64.clamp">, 2841 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_clamp">; 2842 def int_nvvm_sust_b_3d_v4i8_clamp 2843 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2844 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2845 "llvm.nvvm.sust.b.3d.v4i8.clamp">, 2846 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_clamp">; 2847 def int_nvvm_sust_b_3d_v4i16_clamp 2848 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2849 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2850 "llvm.nvvm.sust.b.3d.v4i16.clamp">, 2851 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_clamp">; 2852 def int_nvvm_sust_b_3d_v4i32_clamp 2853 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2854 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2855 "llvm.nvvm.sust.b.3d.v4i32.clamp">, 2856 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_clamp">; 2857 2858 2859 // .trap variant 2860 def int_nvvm_sust_b_1d_i8_trap 2861 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 2862 "llvm.nvvm.sust.b.1d.i8.trap">, 2863 GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">; 2864 def int_nvvm_sust_b_1d_i16_trap 2865 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 2866 "llvm.nvvm.sust.b.1d.i16.trap">, 2867 GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">; 2868 def int_nvvm_sust_b_1d_i32_trap 2869 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 2870 "llvm.nvvm.sust.b.1d.i32.trap">, 2871 GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">; 2872 def int_nvvm_sust_b_1d_i64_trap 2873 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [], 2874 "llvm.nvvm.sust.b.1d.i64.trap">, 2875 GCCBuiltin<"__nvvm_sust_b_1d_i64_trap">; 2876 def int_nvvm_sust_b_1d_v2i8_trap 2877 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 2878 "llvm.nvvm.sust.b.1d.v2i8.trap">, 2879 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">; 2880 def int_nvvm_sust_b_1d_v2i16_trap 2881 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 2882 "llvm.nvvm.sust.b.1d.v2i16.trap">, 2883 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">; 2884 def int_nvvm_sust_b_1d_v2i32_trap 2885 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2886 "llvm.nvvm.sust.b.1d.v2i32.trap">, 2887 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">; 2888 def int_nvvm_sust_b_1d_v2i64_trap 2889 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], 2890 "llvm.nvvm.sust.b.1d.v2i64.trap">, 2891 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_trap">; 2892 def int_nvvm_sust_b_1d_v4i8_trap 2893 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 2894 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2895 "llvm.nvvm.sust.b.1d.v4i8.trap">, 2896 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">; 2897 def int_nvvm_sust_b_1d_v4i16_trap 2898 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 2899 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2900 "llvm.nvvm.sust.b.1d.v4i16.trap">, 2901 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">; 2902 def int_nvvm_sust_b_1d_v4i32_trap 2903 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2904 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2905 "llvm.nvvm.sust.b.1d.v4i32.trap">, 2906 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">; 2907 2908 2909 def int_nvvm_sust_b_1d_array_i8_trap 2910 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2911 "llvm.nvvm.sust.b.1d.array.i8.trap">, 2912 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">; 2913 def int_nvvm_sust_b_1d_array_i16_trap 2914 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2915 "llvm.nvvm.sust.b.1d.array.i16.trap">, 2916 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">; 2917 def int_nvvm_sust_b_1d_array_i32_trap 2918 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2919 "llvm.nvvm.sust.b.1d.array.i32.trap">, 2920 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">; 2921 def int_nvvm_sust_b_1d_array_i64_trap 2922 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], 2923 "llvm.nvvm.sust.b.1d.array.i64.trap">, 2924 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_trap">; 2925 def int_nvvm_sust_b_1d_array_v2i8_trap 2926 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2927 llvm_i16_ty, llvm_i16_ty], [], 2928 "llvm.nvvm.sust.b.1d.array.v2i8.trap">, 2929 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">; 2930 def int_nvvm_sust_b_1d_array_v2i16_trap 2931 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2932 llvm_i16_ty, llvm_i16_ty], [], 2933 "llvm.nvvm.sust.b.1d.array.v2i16.trap">, 2934 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">; 2935 def int_nvvm_sust_b_1d_array_v2i32_trap 2936 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2937 llvm_i32_ty, llvm_i32_ty], [], 2938 "llvm.nvvm.sust.b.1d.array.v2i32.trap">, 2939 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">; 2940 def int_nvvm_sust_b_1d_array_v2i64_trap 2941 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2942 llvm_i64_ty, llvm_i64_ty], [], 2943 "llvm.nvvm.sust.b.1d.array.v2i64.trap">, 2944 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_trap">; 2945 def int_nvvm_sust_b_1d_array_v4i8_trap 2946 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 2947 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2948 "llvm.nvvm.sust.b.1d.array.v4i8.trap">, 2949 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">; 2950 def int_nvvm_sust_b_1d_array_v4i16_trap 2951 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 2952 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 2953 "llvm.nvvm.sust.b.1d.array.v4i16.trap">, 2954 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">; 2955 def int_nvvm_sust_b_1d_array_v4i32_trap 2956 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 2957 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2958 "llvm.nvvm.sust.b.1d.array.v4i32.trap">, 2959 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">; 2960 2961 2962 def int_nvvm_sust_b_2d_i8_trap 2963 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2964 "llvm.nvvm.sust.b.2d.i8.trap">, 2965 GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">; 2966 def int_nvvm_sust_b_2d_i16_trap 2967 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 2968 "llvm.nvvm.sust.b.2d.i16.trap">, 2969 GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">; 2970 def int_nvvm_sust_b_2d_i32_trap 2971 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 2972 "llvm.nvvm.sust.b.2d.i32.trap">, 2973 GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">; 2974 def int_nvvm_sust_b_2d_i64_trap 2975 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], 2976 "llvm.nvvm.sust.b.2d.i64.trap">, 2977 GCCBuiltin<"__nvvm_sust_b_2d_i64_trap">; 2978 def int_nvvm_sust_b_2d_v2i8_trap 2979 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2980 llvm_i16_ty, llvm_i16_ty], [], 2981 "llvm.nvvm.sust.b.2d.v2i8.trap">, 2982 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">; 2983 def int_nvvm_sust_b_2d_v2i16_trap 2984 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2985 llvm_i16_ty, llvm_i16_ty], [], 2986 "llvm.nvvm.sust.b.2d.v2i16.trap">, 2987 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">; 2988 def int_nvvm_sust_b_2d_v2i32_trap 2989 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2990 llvm_i32_ty, llvm_i32_ty], [], 2991 "llvm.nvvm.sust.b.2d.v2i32.trap">, 2992 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">; 2993 def int_nvvm_sust_b_2d_v2i64_trap 2994 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 2995 llvm_i64_ty, llvm_i64_ty], [], 2996 "llvm.nvvm.sust.b.2d.v2i64.trap">, 2997 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_trap">; 2998 def int_nvvm_sust_b_2d_v4i8_trap 2999 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3000 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3001 "llvm.nvvm.sust.b.2d.v4i8.trap">, 3002 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">; 3003 def int_nvvm_sust_b_2d_v4i16_trap 3004 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3005 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3006 "llvm.nvvm.sust.b.2d.v4i16.trap">, 3007 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">; 3008 def int_nvvm_sust_b_2d_v4i32_trap 3009 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3010 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3011 "llvm.nvvm.sust.b.2d.v4i32.trap">, 3012 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">; 3013 3014 3015 def int_nvvm_sust_b_2d_array_i8_trap 3016 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3017 llvm_i32_ty, llvm_i16_ty], [], 3018 "llvm.nvvm.sust.b.2d.array.i8.trap">, 3019 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">; 3020 def int_nvvm_sust_b_2d_array_i16_trap 3021 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3022 llvm_i32_ty, llvm_i16_ty], [], 3023 "llvm.nvvm.sust.b.2d.array.i16.trap">, 3024 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">; 3025 def int_nvvm_sust_b_2d_array_i32_trap 3026 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3027 llvm_i32_ty, llvm_i32_ty], [], 3028 "llvm.nvvm.sust.b.2d.array.i32.trap">, 3029 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">; 3030 def int_nvvm_sust_b_2d_array_i64_trap 3031 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3032 llvm_i32_ty, llvm_i64_ty], [], 3033 "llvm.nvvm.sust.b.2d.array.i64.trap">, 3034 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_trap">; 3035 def int_nvvm_sust_b_2d_array_v2i8_trap 3036 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3037 llvm_i16_ty, llvm_i16_ty], [], 3038 "llvm.nvvm.sust.b.2d.array.v2i8.trap">, 3039 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">; 3040 def int_nvvm_sust_b_2d_array_v2i16_trap 3041 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3042 llvm_i16_ty, llvm_i16_ty], [], 3043 "llvm.nvvm.sust.b.2d.array.v2i16.trap">, 3044 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">; 3045 def int_nvvm_sust_b_2d_array_v2i32_trap 3046 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3047 llvm_i32_ty, llvm_i32_ty], [], 3048 "llvm.nvvm.sust.b.2d.array.v2i32.trap">, 3049 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">; 3050 def int_nvvm_sust_b_2d_array_v2i64_trap 3051 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3052 llvm_i64_ty, llvm_i64_ty], [], 3053 "llvm.nvvm.sust.b.2d.array.v2i64.trap">, 3054 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_trap">; 3055 def int_nvvm_sust_b_2d_array_v4i8_trap 3056 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3057 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3058 "llvm.nvvm.sust.b.2d.array.v4i8.trap">, 3059 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">; 3060 def int_nvvm_sust_b_2d_array_v4i16_trap 3061 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3062 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3063 "llvm.nvvm.sust.b.2d.array.v4i16.trap">, 3064 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">; 3065 def int_nvvm_sust_b_2d_array_v4i32_trap 3066 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3067 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3068 "llvm.nvvm.sust.b.2d.array.v4i32.trap">, 3069 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">; 3070 3071 3072 def int_nvvm_sust_b_3d_i8_trap 3073 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3074 llvm_i32_ty, llvm_i16_ty], [], 3075 "llvm.nvvm.sust.b.3d.i8.trap">, 3076 GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">; 3077 def int_nvvm_sust_b_3d_i16_trap 3078 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3079 llvm_i32_ty, llvm_i16_ty], [], 3080 "llvm.nvvm.sust.b.3d.i16.trap">, 3081 GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">; 3082 def int_nvvm_sust_b_3d_i32_trap 3083 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3084 llvm_i32_ty, llvm_i32_ty], [], 3085 "llvm.nvvm.sust.b.3d.i32.trap">, 3086 GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">; 3087 def int_nvvm_sust_b_3d_i64_trap 3088 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3089 llvm_i32_ty, llvm_i64_ty], [], 3090 "llvm.nvvm.sust.b.3d.i64.trap">, 3091 GCCBuiltin<"__nvvm_sust_b_3d_i64_trap">; 3092 def int_nvvm_sust_b_3d_v2i8_trap 3093 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3094 llvm_i16_ty, llvm_i16_ty], [], 3095 "llvm.nvvm.sust.b.3d.v2i8.trap">, 3096 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">; 3097 def int_nvvm_sust_b_3d_v2i16_trap 3098 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3099 llvm_i16_ty, llvm_i16_ty], [], 3100 "llvm.nvvm.sust.b.3d.v2i16.trap">, 3101 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">; 3102 def int_nvvm_sust_b_3d_v2i32_trap 3103 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3104 llvm_i32_ty, llvm_i32_ty], [], 3105 "llvm.nvvm.sust.b.3d.v2i32.trap">, 3106 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">; 3107 def int_nvvm_sust_b_3d_v2i64_trap 3108 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3109 llvm_i64_ty, llvm_i64_ty], [], 3110 "llvm.nvvm.sust.b.3d.v2i64.trap">, 3111 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_trap">; 3112 def int_nvvm_sust_b_3d_v4i8_trap 3113 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3114 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3115 "llvm.nvvm.sust.b.3d.v4i8.trap">, 3116 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">; 3117 def int_nvvm_sust_b_3d_v4i16_trap 3118 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3119 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3120 "llvm.nvvm.sust.b.3d.v4i16.trap">, 3121 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">; 3122 def int_nvvm_sust_b_3d_v4i32_trap 3123 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3124 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3125 "llvm.nvvm.sust.b.3d.v4i32.trap">, 3126 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">; 3127 3128 3129 // .zero variant 3130 def int_nvvm_sust_b_1d_i8_zero 3131 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 3132 "llvm.nvvm.sust.b.1d.i8.zero">, 3133 GCCBuiltin<"__nvvm_sust_b_1d_i8_zero">; 3134 def int_nvvm_sust_b_1d_i16_zero 3135 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 3136 "llvm.nvvm.sust.b.1d.i16.zero">, 3137 GCCBuiltin<"__nvvm_sust_b_1d_i16_zero">; 3138 def int_nvvm_sust_b_1d_i32_zero 3139 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 3140 "llvm.nvvm.sust.b.1d.i32.zero">, 3141 GCCBuiltin<"__nvvm_sust_b_1d_i32_zero">; 3142 def int_nvvm_sust_b_1d_i64_zero 3143 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [], 3144 "llvm.nvvm.sust.b.1d.i64.zero">, 3145 GCCBuiltin<"__nvvm_sust_b_1d_i64_zero">; 3146 def int_nvvm_sust_b_1d_v2i8_zero 3147 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 3148 "llvm.nvvm.sust.b.1d.v2i8.zero">, 3149 GCCBuiltin<"__nvvm_sust_b_1d_v2i8_zero">; 3150 def int_nvvm_sust_b_1d_v2i16_zero 3151 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 3152 "llvm.nvvm.sust.b.1d.v2i16.zero">, 3153 GCCBuiltin<"__nvvm_sust_b_1d_v2i16_zero">; 3154 def int_nvvm_sust_b_1d_v2i32_zero 3155 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3156 "llvm.nvvm.sust.b.1d.v2i32.zero">, 3157 GCCBuiltin<"__nvvm_sust_b_1d_v2i32_zero">; 3158 def int_nvvm_sust_b_1d_v2i64_zero 3159 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], 3160 "llvm.nvvm.sust.b.1d.v2i64.zero">, 3161 GCCBuiltin<"__nvvm_sust_b_1d_v2i64_zero">; 3162 def int_nvvm_sust_b_1d_v4i8_zero 3163 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 3164 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3165 "llvm.nvvm.sust.b.1d.v4i8.zero">, 3166 GCCBuiltin<"__nvvm_sust_b_1d_v4i8_zero">; 3167 def int_nvvm_sust_b_1d_v4i16_zero 3168 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 3169 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3170 "llvm.nvvm.sust.b.1d.v4i16.zero">, 3171 GCCBuiltin<"__nvvm_sust_b_1d_v4i16_zero">; 3172 def int_nvvm_sust_b_1d_v4i32_zero 3173 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3174 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3175 "llvm.nvvm.sust.b.1d.v4i32.zero">, 3176 GCCBuiltin<"__nvvm_sust_b_1d_v4i32_zero">; 3177 3178 3179 def int_nvvm_sust_b_1d_array_i8_zero 3180 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3181 "llvm.nvvm.sust.b.1d.array.i8.zero">, 3182 GCCBuiltin<"__nvvm_sust_b_1d_array_i8_zero">; 3183 def int_nvvm_sust_b_1d_array_i16_zero 3184 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3185 "llvm.nvvm.sust.b.1d.array.i16.zero">, 3186 GCCBuiltin<"__nvvm_sust_b_1d_array_i16_zero">; 3187 def int_nvvm_sust_b_1d_array_i32_zero 3188 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3189 "llvm.nvvm.sust.b.1d.array.i32.zero">, 3190 GCCBuiltin<"__nvvm_sust_b_1d_array_i32_zero">; 3191 def int_nvvm_sust_b_1d_array_i64_zero 3192 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], 3193 "llvm.nvvm.sust.b.1d.array.i64.zero">, 3194 GCCBuiltin<"__nvvm_sust_b_1d_array_i64_zero">; 3195 def int_nvvm_sust_b_1d_array_v2i8_zero 3196 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3197 llvm_i16_ty, llvm_i16_ty], [], 3198 "llvm.nvvm.sust.b.1d.array.v2i8.zero">, 3199 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_zero">; 3200 def int_nvvm_sust_b_1d_array_v2i16_zero 3201 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3202 llvm_i16_ty, llvm_i16_ty], [], 3203 "llvm.nvvm.sust.b.1d.array.v2i16.zero">, 3204 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_zero">; 3205 def int_nvvm_sust_b_1d_array_v2i32_zero 3206 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3207 llvm_i32_ty, llvm_i32_ty], [], 3208 "llvm.nvvm.sust.b.1d.array.v2i32.zero">, 3209 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_zero">; 3210 def int_nvvm_sust_b_1d_array_v2i64_zero 3211 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3212 llvm_i64_ty, llvm_i64_ty], [], 3213 "llvm.nvvm.sust.b.1d.array.v2i64.zero">, 3214 GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_zero">; 3215 def int_nvvm_sust_b_1d_array_v4i8_zero 3216 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3217 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3218 "llvm.nvvm.sust.b.1d.array.v4i8.zero">, 3219 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_zero">; 3220 def int_nvvm_sust_b_1d_array_v4i16_zero 3221 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3222 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3223 "llvm.nvvm.sust.b.1d.array.v4i16.zero">, 3224 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_zero">; 3225 def int_nvvm_sust_b_1d_array_v4i32_zero 3226 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3227 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3228 "llvm.nvvm.sust.b.1d.array.v4i32.zero">, 3229 GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_zero">; 3230 3231 3232 def int_nvvm_sust_b_2d_i8_zero 3233 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3234 "llvm.nvvm.sust.b.2d.i8.zero">, 3235 GCCBuiltin<"__nvvm_sust_b_2d_i8_zero">; 3236 def int_nvvm_sust_b_2d_i16_zero 3237 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3238 "llvm.nvvm.sust.b.2d.i16.zero">, 3239 GCCBuiltin<"__nvvm_sust_b_2d_i16_zero">; 3240 def int_nvvm_sust_b_2d_i32_zero 3241 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3242 "llvm.nvvm.sust.b.2d.i32.zero">, 3243 GCCBuiltin<"__nvvm_sust_b_2d_i32_zero">; 3244 def int_nvvm_sust_b_2d_i64_zero 3245 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], 3246 "llvm.nvvm.sust.b.2d.i64.zero">, 3247 GCCBuiltin<"__nvvm_sust_b_2d_i64_zero">; 3248 def int_nvvm_sust_b_2d_v2i8_zero 3249 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3250 llvm_i16_ty, llvm_i16_ty], [], 3251 "llvm.nvvm.sust.b.2d.v2i8.zero">, 3252 GCCBuiltin<"__nvvm_sust_b_2d_v2i8_zero">; 3253 def int_nvvm_sust_b_2d_v2i16_zero 3254 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3255 llvm_i16_ty, llvm_i16_ty], [], 3256 "llvm.nvvm.sust.b.2d.v2i16.zero">, 3257 GCCBuiltin<"__nvvm_sust_b_2d_v2i16_zero">; 3258 def int_nvvm_sust_b_2d_v2i32_zero 3259 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3260 llvm_i32_ty, llvm_i32_ty], [], 3261 "llvm.nvvm.sust.b.2d.v2i32.zero">, 3262 GCCBuiltin<"__nvvm_sust_b_2d_v2i32_zero">; 3263 def int_nvvm_sust_b_2d_v2i64_zero 3264 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3265 llvm_i64_ty, llvm_i64_ty], [], 3266 "llvm.nvvm.sust.b.2d.v2i64.zero">, 3267 GCCBuiltin<"__nvvm_sust_b_2d_v2i64_zero">; 3268 def int_nvvm_sust_b_2d_v4i8_zero 3269 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3270 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3271 "llvm.nvvm.sust.b.2d.v4i8.zero">, 3272 GCCBuiltin<"__nvvm_sust_b_2d_v4i8_zero">; 3273 def int_nvvm_sust_b_2d_v4i16_zero 3274 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3275 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3276 "llvm.nvvm.sust.b.2d.v4i16.zero">, 3277 GCCBuiltin<"__nvvm_sust_b_2d_v4i16_zero">; 3278 def int_nvvm_sust_b_2d_v4i32_zero 3279 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3280 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3281 "llvm.nvvm.sust.b.2d.v4i32.zero">, 3282 GCCBuiltin<"__nvvm_sust_b_2d_v4i32_zero">; 3283 3284 3285 def int_nvvm_sust_b_2d_array_i8_zero 3286 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3287 llvm_i32_ty, llvm_i16_ty], [], 3288 "llvm.nvvm.sust.b.2d.array.i8.zero">, 3289 GCCBuiltin<"__nvvm_sust_b_2d_array_i8_zero">; 3290 def int_nvvm_sust_b_2d_array_i16_zero 3291 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3292 llvm_i32_ty, llvm_i16_ty], [], 3293 "llvm.nvvm.sust.b.2d.array.i16.zero">, 3294 GCCBuiltin<"__nvvm_sust_b_2d_array_i16_zero">; 3295 def int_nvvm_sust_b_2d_array_i32_zero 3296 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3297 llvm_i32_ty, llvm_i32_ty], [], 3298 "llvm.nvvm.sust.b.2d.array.i32.zero">, 3299 GCCBuiltin<"__nvvm_sust_b_2d_array_i32_zero">; 3300 def int_nvvm_sust_b_2d_array_i64_zero 3301 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3302 llvm_i32_ty, llvm_i64_ty], [], 3303 "llvm.nvvm.sust.b.2d.array.i64.zero">, 3304 GCCBuiltin<"__nvvm_sust_b_2d_array_i64_zero">; 3305 def int_nvvm_sust_b_2d_array_v2i8_zero 3306 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3307 llvm_i16_ty, llvm_i16_ty], [], 3308 "llvm.nvvm.sust.b.2d.array.v2i8.zero">, 3309 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_zero">; 3310 def int_nvvm_sust_b_2d_array_v2i16_zero 3311 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3312 llvm_i16_ty, llvm_i16_ty], [], 3313 "llvm.nvvm.sust.b.2d.array.v2i16.zero">, 3314 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_zero">; 3315 def int_nvvm_sust_b_2d_array_v2i32_zero 3316 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3317 llvm_i32_ty, llvm_i32_ty], [], 3318 "llvm.nvvm.sust.b.2d.array.v2i32.zero">, 3319 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_zero">; 3320 def int_nvvm_sust_b_2d_array_v2i64_zero 3321 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3322 llvm_i64_ty, llvm_i64_ty], [], 3323 "llvm.nvvm.sust.b.2d.array.v2i64.zero">, 3324 GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_zero">; 3325 def int_nvvm_sust_b_2d_array_v4i8_zero 3326 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3327 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3328 "llvm.nvvm.sust.b.2d.array.v4i8.zero">, 3329 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_zero">; 3330 def int_nvvm_sust_b_2d_array_v4i16_zero 3331 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3332 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3333 "llvm.nvvm.sust.b.2d.array.v4i16.zero">, 3334 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_zero">; 3335 def int_nvvm_sust_b_2d_array_v4i32_zero 3336 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3337 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3338 "llvm.nvvm.sust.b.2d.array.v4i32.zero">, 3339 GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_zero">; 3340 3341 3342 def int_nvvm_sust_b_3d_i8_zero 3343 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3344 llvm_i32_ty, llvm_i16_ty], [], 3345 "llvm.nvvm.sust.b.3d.i8.zero">, 3346 GCCBuiltin<"__nvvm_sust_b_3d_i8_zero">; 3347 def int_nvvm_sust_b_3d_i16_zero 3348 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3349 llvm_i32_ty, llvm_i16_ty], [], 3350 "llvm.nvvm.sust.b.3d.i16.zero">, 3351 GCCBuiltin<"__nvvm_sust_b_3d_i16_zero">; 3352 def int_nvvm_sust_b_3d_i32_zero 3353 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3354 llvm_i32_ty, llvm_i32_ty], [], 3355 "llvm.nvvm.sust.b.3d.i32.zero">, 3356 GCCBuiltin<"__nvvm_sust_b_3d_i32_zero">; 3357 def int_nvvm_sust_b_3d_i64_zero 3358 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3359 llvm_i32_ty, llvm_i64_ty], [], 3360 "llvm.nvvm.sust.b.3d.i64.zero">, 3361 GCCBuiltin<"__nvvm_sust_b_3d_i64_zero">; 3362 def int_nvvm_sust_b_3d_v2i8_zero 3363 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3364 llvm_i16_ty, llvm_i16_ty], [], 3365 "llvm.nvvm.sust.b.3d.v2i8.zero">, 3366 GCCBuiltin<"__nvvm_sust_b_3d_v2i8_zero">; 3367 def int_nvvm_sust_b_3d_v2i16_zero 3368 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3369 llvm_i16_ty, llvm_i16_ty], [], 3370 "llvm.nvvm.sust.b.3d.v2i16.zero">, 3371 GCCBuiltin<"__nvvm_sust_b_3d_v2i16_zero">; 3372 def int_nvvm_sust_b_3d_v2i32_zero 3373 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3374 llvm_i32_ty, llvm_i32_ty], [], 3375 "llvm.nvvm.sust.b.3d.v2i32.zero">, 3376 GCCBuiltin<"__nvvm_sust_b_3d_v2i32_zero">; 3377 def int_nvvm_sust_b_3d_v2i64_zero 3378 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3379 llvm_i64_ty, llvm_i64_ty], [], 3380 "llvm.nvvm.sust.b.3d.v2i64.zero">, 3381 GCCBuiltin<"__nvvm_sust_b_3d_v2i64_zero">; 3382 def int_nvvm_sust_b_3d_v4i8_zero 3383 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3384 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3385 "llvm.nvvm.sust.b.3d.v4i8.zero">, 3386 GCCBuiltin<"__nvvm_sust_b_3d_v4i8_zero">; 3387 def int_nvvm_sust_b_3d_v4i16_zero 3388 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3389 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3390 "llvm.nvvm.sust.b.3d.v4i16.zero">, 3391 GCCBuiltin<"__nvvm_sust_b_3d_v4i16_zero">; 3392 def int_nvvm_sust_b_3d_v4i32_zero 3393 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3394 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3395 "llvm.nvvm.sust.b.3d.v4i32.zero">, 3396 GCCBuiltin<"__nvvm_sust_b_3d_v4i32_zero">; 3397 3398 3399 3400 // Formatted 3401 3402 def int_nvvm_sust_p_1d_i8_trap 3403 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 3404 "llvm.nvvm.sust.p.1d.i8.trap">, 3405 GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">; 3406 def int_nvvm_sust_p_1d_i16_trap 3407 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], 3408 "llvm.nvvm.sust.p.1d.i16.trap">, 3409 GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">; 3410 def int_nvvm_sust_p_1d_i32_trap 3411 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], 3412 "llvm.nvvm.sust.p.1d.i32.trap">, 3413 GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">; 3414 def int_nvvm_sust_p_1d_v2i8_trap 3415 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 3416 "llvm.nvvm.sust.p.1d.v2i8.trap">, 3417 GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">; 3418 def int_nvvm_sust_p_1d_v2i16_trap 3419 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], 3420 "llvm.nvvm.sust.p.1d.v2i16.trap">, 3421 GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">; 3422 def int_nvvm_sust_p_1d_v2i32_trap 3423 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3424 "llvm.nvvm.sust.p.1d.v2i32.trap">, 3425 GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">; 3426 def int_nvvm_sust_p_1d_v4i8_trap 3427 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 3428 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3429 "llvm.nvvm.sust.p.1d.v4i8.trap">, 3430 GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">; 3431 def int_nvvm_sust_p_1d_v4i16_trap 3432 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, 3433 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3434 "llvm.nvvm.sust.p.1d.v4i16.trap">, 3435 GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">; 3436 def int_nvvm_sust_p_1d_v4i32_trap 3437 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3438 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3439 "llvm.nvvm.sust.p.1d.v4i32.trap">, 3440 GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">; 3441 3442 3443 def int_nvvm_sust_p_1d_array_i8_trap 3444 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3445 "llvm.nvvm.sust.p.1d.array.i8.trap">, 3446 GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">; 3447 def int_nvvm_sust_p_1d_array_i16_trap 3448 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3449 "llvm.nvvm.sust.p.1d.array.i16.trap">, 3450 GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">; 3451 def int_nvvm_sust_p_1d_array_i32_trap 3452 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3453 "llvm.nvvm.sust.p.1d.array.i32.trap">, 3454 GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">; 3455 def int_nvvm_sust_p_1d_array_v2i8_trap 3456 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3457 llvm_i16_ty, llvm_i16_ty], [], 3458 "llvm.nvvm.sust.p.1d.array.v2i8.trap">, 3459 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">; 3460 def int_nvvm_sust_p_1d_array_v2i16_trap 3461 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3462 llvm_i16_ty, llvm_i16_ty], [], 3463 "llvm.nvvm.sust.p.1d.array.v2i16.trap">, 3464 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">; 3465 def int_nvvm_sust_p_1d_array_v2i32_trap 3466 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3467 llvm_i32_ty, llvm_i32_ty], [], 3468 "llvm.nvvm.sust.p.1d.array.v2i32.trap">, 3469 GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">; 3470 def int_nvvm_sust_p_1d_array_v4i8_trap 3471 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3472 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3473 "llvm.nvvm.sust.p.1d.array.v4i8.trap">, 3474 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">; 3475 def int_nvvm_sust_p_1d_array_v4i16_trap 3476 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3477 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3478 "llvm.nvvm.sust.p.1d.array.v4i16.trap">, 3479 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">; 3480 def int_nvvm_sust_p_1d_array_v4i32_trap 3481 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3482 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3483 "llvm.nvvm.sust.p.1d.array.v4i32.trap">, 3484 GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">; 3485 3486 3487 def int_nvvm_sust_p_2d_i8_trap 3488 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3489 "llvm.nvvm.sust.p.2d.i8.trap">, 3490 GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">; 3491 def int_nvvm_sust_p_2d_i16_trap 3492 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], 3493 "llvm.nvvm.sust.p.2d.i16.trap">, 3494 GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">; 3495 def int_nvvm_sust_p_2d_i32_trap 3496 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3497 "llvm.nvvm.sust.p.2d.i32.trap">, 3498 GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">; 3499 def int_nvvm_sust_p_2d_v2i8_trap 3500 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3501 llvm_i16_ty, llvm_i16_ty], [], 3502 "llvm.nvvm.sust.p.2d.v2i8.trap">, 3503 GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">; 3504 def int_nvvm_sust_p_2d_v2i16_trap 3505 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3506 llvm_i16_ty, llvm_i16_ty], [], 3507 "llvm.nvvm.sust.p.2d.v2i16.trap">, 3508 GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">; 3509 def int_nvvm_sust_p_2d_v2i32_trap 3510 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3511 llvm_i32_ty, llvm_i32_ty], [], 3512 "llvm.nvvm.sust.p.2d.v2i32.trap">, 3513 GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">; 3514 def int_nvvm_sust_p_2d_v4i8_trap 3515 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3516 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3517 "llvm.nvvm.sust.p.2d.v4i8.trap">, 3518 GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">; 3519 def int_nvvm_sust_p_2d_v4i16_trap 3520 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, 3521 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3522 "llvm.nvvm.sust.p.2d.v4i16.trap">, 3523 GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">; 3524 def int_nvvm_sust_p_2d_v4i32_trap 3525 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3526 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3527 "llvm.nvvm.sust.p.2d.v4i32.trap">, 3528 GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">; 3529 3530 3531 def int_nvvm_sust_p_2d_array_i8_trap 3532 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3533 llvm_i32_ty, llvm_i16_ty], [], 3534 "llvm.nvvm.sust.p.2d.array.i8.trap">, 3535 GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">; 3536 def int_nvvm_sust_p_2d_array_i16_trap 3537 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3538 llvm_i32_ty, llvm_i16_ty], [], 3539 "llvm.nvvm.sust.p.2d.array.i16.trap">, 3540 GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">; 3541 def int_nvvm_sust_p_2d_array_i32_trap 3542 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3543 llvm_i32_ty, llvm_i32_ty], [], 3544 "llvm.nvvm.sust.p.2d.array.i32.trap">, 3545 GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">; 3546 def int_nvvm_sust_p_2d_array_v2i8_trap 3547 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3548 llvm_i16_ty, llvm_i16_ty], [], 3549 "llvm.nvvm.sust.p.2d.array.v2i8.trap">, 3550 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">; 3551 def int_nvvm_sust_p_2d_array_v2i16_trap 3552 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3553 llvm_i16_ty, llvm_i16_ty], [], 3554 "llvm.nvvm.sust.p.2d.array.v2i16.trap">, 3555 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">; 3556 def int_nvvm_sust_p_2d_array_v2i32_trap 3557 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3558 llvm_i32_ty, llvm_i32_ty], [], 3559 "llvm.nvvm.sust.p.2d.array.v2i32.trap">, 3560 GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">; 3561 def int_nvvm_sust_p_2d_array_v4i8_trap 3562 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3563 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3564 "llvm.nvvm.sust.p.2d.array.v4i8.trap">, 3565 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">; 3566 def int_nvvm_sust_p_2d_array_v4i16_trap 3567 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3568 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3569 "llvm.nvvm.sust.p.2d.array.v4i16.trap">, 3570 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">; 3571 def int_nvvm_sust_p_2d_array_v4i32_trap 3572 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3573 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3574 "llvm.nvvm.sust.p.2d.array.v4i32.trap">, 3575 GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">; 3576 3577 3578 def int_nvvm_sust_p_3d_i8_trap 3579 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3580 llvm_i32_ty, llvm_i16_ty], [], 3581 "llvm.nvvm.sust.p.3d.i8.trap">, 3582 GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">; 3583 def int_nvvm_sust_p_3d_i16_trap 3584 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3585 llvm_i32_ty, llvm_i16_ty], [], 3586 "llvm.nvvm.sust.p.3d.i16.trap">, 3587 GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">; 3588 def int_nvvm_sust_p_3d_i32_trap 3589 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, 3590 llvm_i32_ty, llvm_i32_ty], [], 3591 "llvm.nvvm.sust.p.3d.i32.trap">, 3592 GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">; 3593 def int_nvvm_sust_p_3d_v2i8_trap 3594 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3595 llvm_i16_ty, llvm_i16_ty], [], 3596 "llvm.nvvm.sust.p.3d.v2i8.trap">, 3597 GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">; 3598 def int_nvvm_sust_p_3d_v2i16_trap 3599 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3600 llvm_i16_ty, llvm_i16_ty], [], 3601 "llvm.nvvm.sust.p.3d.v2i16.trap">, 3602 GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">; 3603 def int_nvvm_sust_p_3d_v2i32_trap 3604 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3605 llvm_i32_ty, llvm_i32_ty], [], 3606 "llvm.nvvm.sust.p.3d.v2i32.trap">, 3607 GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">; 3608 def int_nvvm_sust_p_3d_v4i8_trap 3609 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3610 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3611 "llvm.nvvm.sust.p.3d.v4i8.trap">, 3612 GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">; 3613 def int_nvvm_sust_p_3d_v4i16_trap 3614 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3615 llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], 3616 "llvm.nvvm.sust.p.3d.v4i16.trap">, 3617 GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">; 3618 def int_nvvm_sust_p_3d_v4i32_trap 3619 : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, 3620 llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], 3621 "llvm.nvvm.sust.p.3d.v4i32.trap">, 3622 GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">; 3623 3624 3625 def int_nvvm_rotate_b32 3626 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 3627 [IntrNoMem], "llvm.nvvm.rotate.b32">, 3628 GCCBuiltin<"__nvvm_rotate_b32">; 3629 3630 def int_nvvm_rotate_b64 3631 :Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], 3632 [IntrNoMem], "llvm.nvvm.rotate.b64">, 3633 GCCBuiltin<"__nvvm_rotate_b64">; 3634 3635 def int_nvvm_rotate_right_b64 3636 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], 3637 [IntrNoMem], "llvm.nvvm.rotate.right.b64">, 3638 GCCBuiltin<"__nvvm_rotate_right_b64">; 3639 3640 def int_nvvm_swap_lo_hi_b64 3641 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], 3642 [IntrNoMem], "llvm.nvvm.swap.lo.hi.b64">, 3643 GCCBuiltin<"__nvvm_swap_lo_hi_b64">; 3644 3645 3646 // Accessing special registers. 3647 multiclass PTXReadSRegIntrinsic_v4i32<string regname> { 3648 // FIXME: Do we need the 128-bit integer type version? 3649 // def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem]>; 3650 3651 // FIXME: Enable this once v4i32 support is enabled in back-end. 3652 // def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>; 3653 3654 def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 3655 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_x">; 3656 def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 3657 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_y">; 3658 def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 3659 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_z">; 3660 def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 3661 GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_w">; 3662 } 3663 3664 class PTXReadSRegIntrinsic_r32<string name> 3665 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, 3666 GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>; 3667 3668 class PTXReadSRegIntrinsic_r64<string name> 3669 : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>, 3670 GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>; 3671 3672 defm int_nvvm_read_ptx_sreg_tid : PTXReadSRegIntrinsic_v4i32<"tid">; 3673 defm int_nvvm_read_ptx_sreg_ntid : PTXReadSRegIntrinsic_v4i32<"ntid">; 3674 3675 def int_nvvm_read_ptx_sreg_laneid : PTXReadSRegIntrinsic_r32<"laneid">; 3676 def int_nvvm_read_ptx_sreg_warpid : PTXReadSRegIntrinsic_r32<"warpid">; 3677 def int_nvvm_read_ptx_sreg_nwarpid : PTXReadSRegIntrinsic_r32<"nwarpid">; 3678 3679 defm int_nvvm_read_ptx_sreg_ctaid : PTXReadSRegIntrinsic_v4i32<"ctaid">; 3680 defm int_nvvm_read_ptx_sreg_nctaid : PTXReadSRegIntrinsic_v4i32<"nctaid">; 3681 3682 def int_nvvm_read_ptx_sreg_smid : PTXReadSRegIntrinsic_r32<"smid">; 3683 def int_nvvm_read_ptx_sreg_nsmid : PTXReadSRegIntrinsic_r32<"nsmid">; 3684 def int_nvvm_read_ptx_sreg_gridid : PTXReadSRegIntrinsic_r32<"gridid">; 3685 3686 def int_nvvm_read_ptx_sreg_lanemask_eq : 3687 PTXReadSRegIntrinsic_r32<"lanemask_eq">; 3688 def int_nvvm_read_ptx_sreg_lanemask_le : 3689 PTXReadSRegIntrinsic_r32<"lanemask_le">; 3690 def int_nvvm_read_ptx_sreg_lanemask_lt : 3691 PTXReadSRegIntrinsic_r32<"lanemask_lt">; 3692 def int_nvvm_read_ptx_sreg_lanemask_ge : 3693 PTXReadSRegIntrinsic_r32<"lanemask_ge">; 3694 def int_nvvm_read_ptx_sreg_lanemask_gt : 3695 PTXReadSRegIntrinsic_r32<"lanemask_gt">; 3696 3697 def int_nvvm_read_ptx_sreg_clock : PTXReadSRegIntrinsic_r32<"clock">; 3698 def int_nvvm_read_ptx_sreg_clock64 : PTXReadSRegIntrinsic_r64<"clock64">; 3699 3700 def int_nvvm_read_ptx_sreg_pm0 : PTXReadSRegIntrinsic_r32<"pm0">; 3701 def int_nvvm_read_ptx_sreg_pm1 : PTXReadSRegIntrinsic_r32<"pm1">; 3702 def int_nvvm_read_ptx_sreg_pm2 : PTXReadSRegIntrinsic_r32<"pm2">; 3703 def int_nvvm_read_ptx_sreg_pm3 : PTXReadSRegIntrinsic_r32<"pm3">; 3704 3705 def int_nvvm_read_ptx_sreg_warpsize : PTXReadSRegIntrinsic_r32<"warpsize">; 3706 3707 // 3708 // SHUFFLE 3709 // 3710 3711 // shfl.down.b32 dest, val, offset, mask_and_clamp 3712 def int_nvvm_shfl_down_i32 : 3713 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3714 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.down.i32">, 3715 GCCBuiltin<"__nvvm_shfl_down_i32">; 3716 def int_nvvm_shfl_down_f32 : 3717 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3718 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.down.f32">, 3719 GCCBuiltin<"__nvvm_shfl_down_f32">; 3720 3721 // shfl.up.b32 dest, val, offset, mask_and_clamp 3722 def int_nvvm_shfl_up_i32 : 3723 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3724 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.up.i32">, 3725 GCCBuiltin<"__nvvm_shfl_up_i32">; 3726 def int_nvvm_shfl_up_f32 : 3727 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3728 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.up.f32">, 3729 GCCBuiltin<"__nvvm_shfl_up_f32">; 3730 3731 // shfl.bfly.b32 dest, val, offset, mask_and_clamp 3732 def int_nvvm_shfl_bfly_i32 : 3733 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3734 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.bfly.i32">, 3735 GCCBuiltin<"__nvvm_shfl_bfly_i32">; 3736 def int_nvvm_shfl_bfly_f32 : 3737 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3738 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.bfly.f32">, 3739 GCCBuiltin<"__nvvm_shfl_bfly_f32">; 3740 3741 // shfl.idx.b32 dest, val, lane, mask_and_clamp 3742 def int_nvvm_shfl_idx_i32 : 3743 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3744 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.idx.i32">, 3745 GCCBuiltin<"__nvvm_shfl_idx_i32">; 3746 def int_nvvm_shfl_idx_f32 : 3747 Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3748 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.idx.f32">, 3749 GCCBuiltin<"__nvvm_shfl_idx_f32">; 3750 3751 // Synchronizing shfl variants available in CUDA-9. 3752 // On sm_70 these don't have to be convergent, so we may eventually want to 3753 // implement non-convergent variant of this intrinsic. 3754 3755 // shfl.sync.down.b32 dest, threadmask, val, offset , mask_and_clamp 3756 def int_nvvm_shfl_sync_down_i32 : 3757 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3758 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.down.i32">, 3759 GCCBuiltin<"__nvvm_shfl_sync_down_i32">; 3760 def int_nvvm_shfl_sync_down_f32 : 3761 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3762 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.down.f32">, 3763 GCCBuiltin<"__nvvm_shfl_sync_down_f32">; 3764 3765 // shfl.sync.up.b32 dest, threadmask, val, offset, mask_and_clamp 3766 def int_nvvm_shfl_sync_up_i32 : 3767 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3768 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.up.i32">, 3769 GCCBuiltin<"__nvvm_shfl_sync_up_i32">; 3770 def int_nvvm_shfl_sync_up_f32 : 3771 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3772 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.up.f32">, 3773 GCCBuiltin<"__nvvm_shfl_sync_up_f32">; 3774 3775 // shfl.sync.bfly.b32 dest, threadmask, val, offset, mask_and_clamp 3776 def int_nvvm_shfl_sync_bfly_i32 : 3777 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3778 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.bfly.i32">, 3779 GCCBuiltin<"__nvvm_shfl_sync_bfly_i32">; 3780 def int_nvvm_shfl_sync_bfly_f32 : 3781 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3782 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.bfly.f32">, 3783 GCCBuiltin<"__nvvm_shfl_sync_bfly_f32">; 3784 3785 // shfl.sync.idx.b32 dest, threadmask, val, lane, mask_and_clamp 3786 def int_nvvm_shfl_sync_idx_i32 : 3787 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], 3788 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.idx.i32">, 3789 GCCBuiltin<"__nvvm_shfl_sync_idx_i32">; 3790 def int_nvvm_shfl_sync_idx_f32 : 3791 Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_float_ty, llvm_i32_ty, llvm_i32_ty], 3792 [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.sync.idx.f32">, 3793 GCCBuiltin<"__nvvm_shfl_sync_idx_f32">; 3794 3795 // 3796 // VOTE 3797 // 3798 3799 // vote.all pred 3800 def int_nvvm_vote_all : 3801 Intrinsic<[llvm_i1_ty], [llvm_i1_ty], 3802 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.all">, 3803 GCCBuiltin<"__nvvm_vote_all">; 3804 // vote.any pred 3805 def int_nvvm_vote_any : 3806 Intrinsic<[llvm_i1_ty], [llvm_i1_ty], 3807 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.any">, 3808 GCCBuiltin<"__nvvm_vote_any">; 3809 // vote.uni pred 3810 def int_nvvm_vote_uni : 3811 Intrinsic<[llvm_i1_ty], [llvm_i1_ty], 3812 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.uni">, 3813 GCCBuiltin<"__nvvm_vote_uni">; 3814 // vote.ballot pred 3815 def int_nvvm_vote_ballot : 3816 Intrinsic<[llvm_i32_ty], [llvm_i1_ty], 3817 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.ballot">, 3818 GCCBuiltin<"__nvvm_vote_ballot">; 3819 3820 // 3821 // VOTE.SYNC 3822 // 3823 3824 // vote.sync.all mask, pred 3825 def int_nvvm_vote_all_sync : 3826 Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty], 3827 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.all.sync">, 3828 GCCBuiltin<"__nvvm_vote_all_sync">; 3829 // vote.sync.any mask, pred 3830 def int_nvvm_vote_any_sync : 3831 Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty], 3832 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.any.sync">, 3833 GCCBuiltin<"__nvvm_vote_any_sync">; 3834 // vote.sync.uni mask, pred 3835 def int_nvvm_vote_uni_sync : 3836 Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty], 3837 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.uni.sync">, 3838 GCCBuiltin<"__nvvm_vote_uni_sync">; 3839 // vote.sync.ballot mask, pred 3840 def int_nvvm_vote_ballot_sync : 3841 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i1_ty], 3842 [IntrNoMem, IntrConvergent], "llvm.nvvm.vote.ballot.sync">, 3843 GCCBuiltin<"__nvvm_vote_ballot_sync">; 3844 3845 // 3846 // MATCH.SYNC 3847 // 3848 // match.any.sync.b32 mask, value 3849 def int_nvvm_match_any_sync_i32 : 3850 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], 3851 [IntrNoMem, IntrConvergent], "llvm.nvvm.match.any.sync.i32">, 3852 GCCBuiltin<"__nvvm_match_any_sync_i32">; 3853 // match.any.sync.b64 mask, value 3854 def int_nvvm_match_any_sync_i64 : 3855 Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i64_ty], 3856 [IntrNoMem, IntrConvergent], "llvm.nvvm.match.any.sync.i64">, 3857 GCCBuiltin<"__nvvm_match_any_sync_i64">; 3858 3859 // match.all instruction have two variants -- one returns a single value, another 3860 // returns a pair {value, predicate}. We currently only implement the latter as 3861 // that's the variant exposed by CUDA API. 3862 3863 // match.all.sync.b32p mask, value 3864 def int_nvvm_match_all_sync_i32p : 3865 Intrinsic<[llvm_i32_ty, llvm_i1_ty], [llvm_i32_ty, llvm_i32_ty], 3866 [IntrNoMem, IntrConvergent], "llvm.nvvm.match.all.sync.i32p">; 3867 // match.all.sync.b64p mask, value 3868 def int_nvvm_match_all_sync_i64p : 3869 Intrinsic<[llvm_i64_ty, llvm_i1_ty], [llvm_i32_ty, llvm_i64_ty], 3870 [IntrNoMem, IntrConvergent], "llvm.nvvm.match.all.sync.i64p">; 3871 3872 // 3873 // WMMA instructions 3874 // 3875 3876 // WMMA.LOAD 3877 class NVVM_WMMA_LD_ALSTS<string Abc, string Layout, string Space, 3878 string Type, LLVMType regty, int WithStride> 3879 : Intrinsic<!if(!eq(Abc#Type,"cf16"), 3880 [regty, regty, regty, regty], 3881 [regty, regty, regty, regty, 3882 regty, regty, regty, regty]), 3883 !if(WithStride, [llvm_ptr_ty, llvm_i32_ty], [llvm_ptr_ty]), 3884 [], // Properties must be set during instantiation. 3885 "llvm.nvvm.wmma.load."#Abc#".sync."#Layout#".m16n16k16" 3886 #Space 3887 #!if(WithStride,".stride","") 3888 #"."#Type>; 3889 3890 multiclass NVVM_WMMA_LD_ALST<string Abc, string Layout, string Space, 3891 string Type, LLVMType regty> { 3892 def _stride: NVVM_WMMA_LD_ALSTS<Abc, Layout, Space, Type, regty, 1>; 3893 def NAME : NVVM_WMMA_LD_ALSTS<Abc, Layout, Space, Type, regty, 0>; 3894 } 3895 3896 multiclass NVVM_WMMA_LD_ALT<string Abc, string Layout, 3897 string Type, LLVMType regty> { 3898 defm _global: NVVM_WMMA_LD_ALST<Abc, Layout, ".global", Type, regty>; 3899 defm _shared: NVVM_WMMA_LD_ALST<Abc, Layout, ".shared", Type, regty>; 3900 defm NAME: NVVM_WMMA_LD_ALST<Abc, Layout, "", Type, regty>; 3901 } 3902 3903 multiclass NVVM_WMMA_LD_AT<string Abc, string Type, LLVMType regty> { 3904 defm _row: NVVM_WMMA_LD_ALT<Abc, "row", Type, regty>; 3905 defm _col: NVVM_WMMA_LD_ALT<Abc, "col", Type, regty>; 3906 } 3907 3908 // For some reason ReadOnly<N> and NoCapture<N> confuses tblgen if they are 3909 // passed to Intrinsic<> form inside of a multiclass. Setting them globally 3910 // outside of the multiclass works. 3911 let IntrProperties = [IntrReadMem, IntrArgMemOnly, 3912 ReadOnly<0>, NoCapture<0>] in { 3913 defm int_nvvm_wmma_load_a_f16: NVVM_WMMA_LD_AT<"a", "f16", llvm_v2f16_ty>; 3914 defm int_nvvm_wmma_load_b_f16: NVVM_WMMA_LD_AT<"b", "f16", llvm_v2f16_ty>; 3915 defm int_nvvm_wmma_load_c_f16: NVVM_WMMA_LD_AT<"c", "f16", llvm_v2f16_ty>; 3916 defm int_nvvm_wmma_load_c_f32: NVVM_WMMA_LD_AT<"c", "f32", llvm_float_ty>; 3917 } 3918 3919 // WMMA.STORE.D 3920 class NVVM_WMMA_STD_LSTS<string Layout, string Space, 3921 string Type, LLVMType regty, int WithStride, 3922 // This is only used to create a typed empty array we 3923 // need to pass to !if below. 3924 list<LLVMType>Empty=[]> 3925 : Intrinsic<[], 3926 !listconcat( 3927 [llvm_ptr_ty], 3928 !if(!eq(Type,"f16"), 3929 [regty, regty, regty, regty], 3930 [regty, regty, regty, regty, 3931 regty, regty, regty, regty]), 3932 !if(WithStride, [llvm_i32_ty], Empty)), 3933 [], // Properties must be set during instantiation. 3934 "llvm.nvvm.wmma.store.d.sync."#Layout 3935 #".m16n16k16"#Space 3936 #!if(WithStride,".stride","") 3937 #"."#Type>; 3938 3939 multiclass NVVM_WMMA_STD_LST<string Layout, string Space, 3940 string Type, LLVMType regty> { 3941 def _stride: NVVM_WMMA_STD_LSTS<Layout, Space, Type, regty, 1>; 3942 def NAME: NVVM_WMMA_STD_LSTS<Layout, Space, Type, regty, 0>; 3943 } 3944 3945 multiclass NVVM_WMMA_STD_LT<string Layout, string Type, LLVMType regty> { 3946 defm _global: NVVM_WMMA_STD_LST<Layout, ".global", Type, regty>; 3947 defm _shared: NVVM_WMMA_STD_LST<Layout, ".shared", Type, regty>; 3948 defm NAME: NVVM_WMMA_STD_LST<Layout, "", Type, regty>; 3949 } 3950 3951 multiclass NVVM_WMMA_STD_T<string Type, LLVMType regty> { 3952 defm _row: NVVM_WMMA_STD_LT<"row", Type, regty>; 3953 defm _col: NVVM_WMMA_STD_LT<"col", Type, regty>; 3954 } 3955 3956 let IntrProperties = [IntrWriteMem, IntrArgMemOnly, 3957 WriteOnly<0>, NoCapture<0>] in { 3958 defm int_nvvm_wmma_store_d_f16: NVVM_WMMA_STD_T<"f16", llvm_v2f16_ty>; 3959 defm int_nvvm_wmma_store_d_f32: NVVM_WMMA_STD_T<"f32", llvm_float_ty>; 3960 } 3961 3962 // WMMA.MMA 3963 class NVVM_WMMA_MMA_ABDCS<string ALayout, string BLayout, 3964 string DType, LLVMType d_regty, 3965 string CType, LLVMType c_regty, 3966 string Satfinite = ""> 3967 : Intrinsic<!if(!eq(DType,"f16"), 3968 [d_regty, d_regty, d_regty, d_regty], 3969 [d_regty, d_regty, d_regty, d_regty, 3970 d_regty, d_regty, d_regty, d_regty]), 3971 !listconcat( 3972 [// A 3973 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, 3974 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, 3975 // B 3976 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, 3977 llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty, llvm_v2f16_ty], 3978 !if(!eq(CType,"f16"), 3979 [c_regty, c_regty, c_regty, c_regty], 3980 [c_regty, c_regty, c_regty, c_regty, 3981 c_regty, c_regty, c_regty, c_regty])), 3982 [IntrNoMem], 3983 "llvm.nvvm.wmma.mma.sync."#ALayout#"."#BLayout 3984 #".m16n16k16."#DType#"."#CType#Satfinite>; 3985 3986 multiclass NVVM_WMMA_MMA_ABDC<string ALayout, string BLayout, 3987 string DType, LLVMType d_regty, 3988 string CType, LLVMType c_regty> { 3989 def NAME : NVVM_WMMA_MMA_ABDCS<ALayout, BLayout, 3990 DType, d_regty, 3991 CType, c_regty>; 3992 def _satfinite: NVVM_WMMA_MMA_ABDCS<ALayout, BLayout, 3993 DType, d_regty, 3994 CType, c_regty,".satfinite">; 3995 } 3996 3997 multiclass NVVM_WMMA_MMA_ABD<string ALayout, string BLayout, 3998 string DType, LLVMType d_regty> { 3999 defm _f16: NVVM_WMMA_MMA_ABDC<ALayout, BLayout, DType, d_regty, 4000 "f16", llvm_v2f16_ty>; 4001 defm _f32: NVVM_WMMA_MMA_ABDC<ALayout, BLayout, DType, d_regty, 4002 "f32", llvm_float_ty>; 4003 } 4004 4005 multiclass NVVM_WMMA_MMA_AB<string ALayout, string BLayout> { 4006 defm _f16: NVVM_WMMA_MMA_ABD<ALayout, BLayout, "f16", llvm_v2f16_ty>; 4007 defm _f32: NVVM_WMMA_MMA_ABD<ALayout, BLayout, "f32", llvm_float_ty>; 4008 } 4009 4010 multiclass NVVM_WMMA_MMA_A<string ALayout> { 4011 defm _col: NVVM_WMMA_MMA_AB<ALayout, "col">; 4012 defm _row: NVVM_WMMA_MMA_AB<ALayout, "row">; 4013 } 4014 4015 defm int_nvvm_wmma_mma_sync_col: NVVM_WMMA_MMA_A<"col">; 4016 defm int_nvvm_wmma_mma_sync_row: NVVM_WMMA_MMA_A<"row">; 4017 4018 } // let TargetPrefix = "nvvm" 4019