1 /* Copyright (C) 2015 Broadcom 2 * 3 * Permission is hereby granted, free of charge, to any person obtaining a 4 * copy of this software and associated documentation files (the "Software"), 5 * to deal in the Software without restriction, including without limitation 6 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 * and/or sell copies of the Software, and to permit persons to whom the 8 * Software is furnished to do so, subject to the following conditions: 9 * 10 * The above copyright notice and this permission notice (including the next 11 * paragraph) shall be included in all copies or substantial portions of the 12 * Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20 * IN THE SOFTWARE. 21 */ 22 23 #ifndef _NIR_BUILDER_OPCODES_ 24 #define _NIR_BUILDER_OPCODES_ 25 26 27 28 static inline nir_ssa_def * 29 nir_b2f16(nir_builder *build, nir_ssa_def *src0) 30 { 31 return nir_build_alu(build, nir_op_b2f16, src0, NULL, NULL, NULL); 32 } 33 static inline nir_ssa_def * 34 nir_b2f32(nir_builder *build, nir_ssa_def *src0) 35 { 36 return nir_build_alu(build, nir_op_b2f32, src0, NULL, NULL, NULL); 37 } 38 static inline nir_ssa_def * 39 nir_b2f64(nir_builder *build, nir_ssa_def *src0) 40 { 41 return nir_build_alu(build, nir_op_b2f64, src0, NULL, NULL, NULL); 42 } 43 static inline nir_ssa_def * 44 nir_b2i1(nir_builder *build, nir_ssa_def *src0) 45 { 46 return nir_build_alu(build, nir_op_b2i1, src0, NULL, NULL, NULL); 47 } 48 static inline nir_ssa_def * 49 nir_b2i16(nir_builder *build, nir_ssa_def *src0) 50 { 51 return nir_build_alu(build, nir_op_b2i16, src0, NULL, NULL, NULL); 52 } 53 static inline nir_ssa_def * 54 nir_b2i32(nir_builder *build, nir_ssa_def *src0) 55 { 56 return nir_build_alu(build, nir_op_b2i32, src0, NULL, NULL, NULL); 57 } 58 static inline nir_ssa_def * 59 nir_b2i64(nir_builder *build, nir_ssa_def *src0) 60 { 61 return nir_build_alu(build, nir_op_b2i64, src0, NULL, NULL, NULL); 62 } 63 static inline nir_ssa_def * 64 nir_b2i8(nir_builder *build, nir_ssa_def *src0) 65 { 66 return nir_build_alu(build, nir_op_b2i8, src0, NULL, NULL, NULL); 67 } 68 static inline nir_ssa_def * 69 nir_b32all_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 70 { 71 return nir_build_alu(build, nir_op_b32all_fequal2, src0, src1, NULL, NULL); 72 } 73 static inline nir_ssa_def * 74 nir_b32all_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 75 { 76 return nir_build_alu(build, nir_op_b32all_fequal3, src0, src1, NULL, NULL); 77 } 78 static inline nir_ssa_def * 79 nir_b32all_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 80 { 81 return nir_build_alu(build, nir_op_b32all_fequal4, src0, src1, NULL, NULL); 82 } 83 static inline nir_ssa_def * 84 nir_b32all_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 85 { 86 return nir_build_alu(build, nir_op_b32all_iequal2, src0, src1, NULL, NULL); 87 } 88 static inline nir_ssa_def * 89 nir_b32all_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 90 { 91 return nir_build_alu(build, nir_op_b32all_iequal3, src0, src1, NULL, NULL); 92 } 93 static inline nir_ssa_def * 94 nir_b32all_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 95 { 96 return nir_build_alu(build, nir_op_b32all_iequal4, src0, src1, NULL, NULL); 97 } 98 static inline nir_ssa_def * 99 nir_b32any_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 100 { 101 return nir_build_alu(build, nir_op_b32any_fnequal2, src0, src1, NULL, NULL); 102 } 103 static inline nir_ssa_def * 104 nir_b32any_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 105 { 106 return nir_build_alu(build, nir_op_b32any_fnequal3, src0, src1, NULL, NULL); 107 } 108 static inline nir_ssa_def * 109 nir_b32any_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 110 { 111 return nir_build_alu(build, nir_op_b32any_fnequal4, src0, src1, NULL, NULL); 112 } 113 static inline nir_ssa_def * 114 nir_b32any_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 115 { 116 return nir_build_alu(build, nir_op_b32any_inequal2, src0, src1, NULL, NULL); 117 } 118 static inline nir_ssa_def * 119 nir_b32any_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 120 { 121 return nir_build_alu(build, nir_op_b32any_inequal3, src0, src1, NULL, NULL); 122 } 123 static inline nir_ssa_def * 124 nir_b32any_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 125 { 126 return nir_build_alu(build, nir_op_b32any_inequal4, src0, src1, NULL, NULL); 127 } 128 static inline nir_ssa_def * 129 nir_b32csel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 130 { 131 return nir_build_alu(build, nir_op_b32csel, src0, src1, src2, NULL); 132 } 133 static inline nir_ssa_def * 134 nir_ball_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 135 { 136 return nir_build_alu(build, nir_op_ball_fequal2, src0, src1, NULL, NULL); 137 } 138 static inline nir_ssa_def * 139 nir_ball_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 140 { 141 return nir_build_alu(build, nir_op_ball_fequal3, src0, src1, NULL, NULL); 142 } 143 static inline nir_ssa_def * 144 nir_ball_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 145 { 146 return nir_build_alu(build, nir_op_ball_fequal4, src0, src1, NULL, NULL); 147 } 148 static inline nir_ssa_def * 149 nir_ball_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 150 { 151 return nir_build_alu(build, nir_op_ball_iequal2, src0, src1, NULL, NULL); 152 } 153 static inline nir_ssa_def * 154 nir_ball_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 155 { 156 return nir_build_alu(build, nir_op_ball_iequal3, src0, src1, NULL, NULL); 157 } 158 static inline nir_ssa_def * 159 nir_ball_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 160 { 161 return nir_build_alu(build, nir_op_ball_iequal4, src0, src1, NULL, NULL); 162 } 163 static inline nir_ssa_def * 164 nir_bany_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 165 { 166 return nir_build_alu(build, nir_op_bany_fnequal2, src0, src1, NULL, NULL); 167 } 168 static inline nir_ssa_def * 169 nir_bany_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 170 { 171 return nir_build_alu(build, nir_op_bany_fnequal3, src0, src1, NULL, NULL); 172 } 173 static inline nir_ssa_def * 174 nir_bany_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 175 { 176 return nir_build_alu(build, nir_op_bany_fnequal4, src0, src1, NULL, NULL); 177 } 178 static inline nir_ssa_def * 179 nir_bany_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 180 { 181 return nir_build_alu(build, nir_op_bany_inequal2, src0, src1, NULL, NULL); 182 } 183 static inline nir_ssa_def * 184 nir_bany_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 185 { 186 return nir_build_alu(build, nir_op_bany_inequal3, src0, src1, NULL, NULL); 187 } 188 static inline nir_ssa_def * 189 nir_bany_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 190 { 191 return nir_build_alu(build, nir_op_bany_inequal4, src0, src1, NULL, NULL); 192 } 193 static inline nir_ssa_def * 194 nir_bcsel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 195 { 196 return nir_build_alu(build, nir_op_bcsel, src0, src1, src2, NULL); 197 } 198 static inline nir_ssa_def * 199 nir_bfi(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 200 { 201 return nir_build_alu(build, nir_op_bfi, src0, src1, src2, NULL); 202 } 203 static inline nir_ssa_def * 204 nir_bfm(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 205 { 206 return nir_build_alu(build, nir_op_bfm, src0, src1, NULL, NULL); 207 } 208 static inline nir_ssa_def * 209 nir_bit_count(nir_builder *build, nir_ssa_def *src0) 210 { 211 return nir_build_alu(build, nir_op_bit_count, src0, NULL, NULL, NULL); 212 } 213 static inline nir_ssa_def * 214 nir_bitfield_insert(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 215 { 216 return nir_build_alu(build, nir_op_bitfield_insert, src0, src1, src2, src3); 217 } 218 static inline nir_ssa_def * 219 nir_bitfield_reverse(nir_builder *build, nir_ssa_def *src0) 220 { 221 return nir_build_alu(build, nir_op_bitfield_reverse, src0, NULL, NULL, NULL); 222 } 223 static inline nir_ssa_def * 224 nir_cube_face_coord(nir_builder *build, nir_ssa_def *src0) 225 { 226 return nir_build_alu(build, nir_op_cube_face_coord, src0, NULL, NULL, NULL); 227 } 228 static inline nir_ssa_def * 229 nir_cube_face_index(nir_builder *build, nir_ssa_def *src0) 230 { 231 return nir_build_alu(build, nir_op_cube_face_index, src0, NULL, NULL, NULL); 232 } 233 static inline nir_ssa_def * 234 nir_extract_i16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 235 { 236 return nir_build_alu(build, nir_op_extract_i16, src0, src1, NULL, NULL); 237 } 238 static inline nir_ssa_def * 239 nir_extract_i8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 240 { 241 return nir_build_alu(build, nir_op_extract_i8, src0, src1, NULL, NULL); 242 } 243 static inline nir_ssa_def * 244 nir_extract_u16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 245 { 246 return nir_build_alu(build, nir_op_extract_u16, src0, src1, NULL, NULL); 247 } 248 static inline nir_ssa_def * 249 nir_extract_u8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 250 { 251 return nir_build_alu(build, nir_op_extract_u8, src0, src1, NULL, NULL); 252 } 253 static inline nir_ssa_def * 254 nir_f2b1(nir_builder *build, nir_ssa_def *src0) 255 { 256 return nir_build_alu(build, nir_op_f2b1, src0, NULL, NULL, NULL); 257 } 258 static inline nir_ssa_def * 259 nir_f2b32(nir_builder *build, nir_ssa_def *src0) 260 { 261 return nir_build_alu(build, nir_op_f2b32, src0, NULL, NULL, NULL); 262 } 263 static inline nir_ssa_def * 264 nir_f2f16(nir_builder *build, nir_ssa_def *src0) 265 { 266 return nir_build_alu(build, nir_op_f2f16, src0, NULL, NULL, NULL); 267 } 268 static inline nir_ssa_def * 269 nir_f2f16_rtne(nir_builder *build, nir_ssa_def *src0) 270 { 271 return nir_build_alu(build, nir_op_f2f16_rtne, src0, NULL, NULL, NULL); 272 } 273 static inline nir_ssa_def * 274 nir_f2f16_rtz(nir_builder *build, nir_ssa_def *src0) 275 { 276 return nir_build_alu(build, nir_op_f2f16_rtz, src0, NULL, NULL, NULL); 277 } 278 static inline nir_ssa_def * 279 nir_f2f32(nir_builder *build, nir_ssa_def *src0) 280 { 281 return nir_build_alu(build, nir_op_f2f32, src0, NULL, NULL, NULL); 282 } 283 static inline nir_ssa_def * 284 nir_f2f64(nir_builder *build, nir_ssa_def *src0) 285 { 286 return nir_build_alu(build, nir_op_f2f64, src0, NULL, NULL, NULL); 287 } 288 static inline nir_ssa_def * 289 nir_f2i1(nir_builder *build, nir_ssa_def *src0) 290 { 291 return nir_build_alu(build, nir_op_f2i1, src0, NULL, NULL, NULL); 292 } 293 static inline nir_ssa_def * 294 nir_f2i16(nir_builder *build, nir_ssa_def *src0) 295 { 296 return nir_build_alu(build, nir_op_f2i16, src0, NULL, NULL, NULL); 297 } 298 static inline nir_ssa_def * 299 nir_f2i32(nir_builder *build, nir_ssa_def *src0) 300 { 301 return nir_build_alu(build, nir_op_f2i32, src0, NULL, NULL, NULL); 302 } 303 static inline nir_ssa_def * 304 nir_f2i64(nir_builder *build, nir_ssa_def *src0) 305 { 306 return nir_build_alu(build, nir_op_f2i64, src0, NULL, NULL, NULL); 307 } 308 static inline nir_ssa_def * 309 nir_f2i8(nir_builder *build, nir_ssa_def *src0) 310 { 311 return nir_build_alu(build, nir_op_f2i8, src0, NULL, NULL, NULL); 312 } 313 static inline nir_ssa_def * 314 nir_f2u1(nir_builder *build, nir_ssa_def *src0) 315 { 316 return nir_build_alu(build, nir_op_f2u1, src0, NULL, NULL, NULL); 317 } 318 static inline nir_ssa_def * 319 nir_f2u16(nir_builder *build, nir_ssa_def *src0) 320 { 321 return nir_build_alu(build, nir_op_f2u16, src0, NULL, NULL, NULL); 322 } 323 static inline nir_ssa_def * 324 nir_f2u32(nir_builder *build, nir_ssa_def *src0) 325 { 326 return nir_build_alu(build, nir_op_f2u32, src0, NULL, NULL, NULL); 327 } 328 static inline nir_ssa_def * 329 nir_f2u64(nir_builder *build, nir_ssa_def *src0) 330 { 331 return nir_build_alu(build, nir_op_f2u64, src0, NULL, NULL, NULL); 332 } 333 static inline nir_ssa_def * 334 nir_f2u8(nir_builder *build, nir_ssa_def *src0) 335 { 336 return nir_build_alu(build, nir_op_f2u8, src0, NULL, NULL, NULL); 337 } 338 static inline nir_ssa_def * 339 nir_fabs(nir_builder *build, nir_ssa_def *src0) 340 { 341 return nir_build_alu(build, nir_op_fabs, src0, NULL, NULL, NULL); 342 } 343 static inline nir_ssa_def * 344 nir_fadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 345 { 346 return nir_build_alu(build, nir_op_fadd, src0, src1, NULL, NULL); 347 } 348 static inline nir_ssa_def * 349 nir_fall_equal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 350 { 351 return nir_build_alu(build, nir_op_fall_equal2, src0, src1, NULL, NULL); 352 } 353 static inline nir_ssa_def * 354 nir_fall_equal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 355 { 356 return nir_build_alu(build, nir_op_fall_equal3, src0, src1, NULL, NULL); 357 } 358 static inline nir_ssa_def * 359 nir_fall_equal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 360 { 361 return nir_build_alu(build, nir_op_fall_equal4, src0, src1, NULL, NULL); 362 } 363 static inline nir_ssa_def * 364 nir_fand(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 365 { 366 return nir_build_alu(build, nir_op_fand, src0, src1, NULL, NULL); 367 } 368 static inline nir_ssa_def * 369 nir_fany_nequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 370 { 371 return nir_build_alu(build, nir_op_fany_nequal2, src0, src1, NULL, NULL); 372 } 373 static inline nir_ssa_def * 374 nir_fany_nequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 375 { 376 return nir_build_alu(build, nir_op_fany_nequal3, src0, src1, NULL, NULL); 377 } 378 static inline nir_ssa_def * 379 nir_fany_nequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 380 { 381 return nir_build_alu(build, nir_op_fany_nequal4, src0, src1, NULL, NULL); 382 } 383 static inline nir_ssa_def * 384 nir_fceil(nir_builder *build, nir_ssa_def *src0) 385 { 386 return nir_build_alu(build, nir_op_fceil, src0, NULL, NULL, NULL); 387 } 388 static inline nir_ssa_def * 389 nir_fcos(nir_builder *build, nir_ssa_def *src0) 390 { 391 return nir_build_alu(build, nir_op_fcos, src0, NULL, NULL, NULL); 392 } 393 static inline nir_ssa_def * 394 nir_fcsel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 395 { 396 return nir_build_alu(build, nir_op_fcsel, src0, src1, src2, NULL); 397 } 398 static inline nir_ssa_def * 399 nir_fddx(nir_builder *build, nir_ssa_def *src0) 400 { 401 return nir_build_alu(build, nir_op_fddx, src0, NULL, NULL, NULL); 402 } 403 static inline nir_ssa_def * 404 nir_fddx_coarse(nir_builder *build, nir_ssa_def *src0) 405 { 406 return nir_build_alu(build, nir_op_fddx_coarse, src0, NULL, NULL, NULL); 407 } 408 static inline nir_ssa_def * 409 nir_fddx_fine(nir_builder *build, nir_ssa_def *src0) 410 { 411 return nir_build_alu(build, nir_op_fddx_fine, src0, NULL, NULL, NULL); 412 } 413 static inline nir_ssa_def * 414 nir_fddy(nir_builder *build, nir_ssa_def *src0) 415 { 416 return nir_build_alu(build, nir_op_fddy, src0, NULL, NULL, NULL); 417 } 418 static inline nir_ssa_def * 419 nir_fddy_coarse(nir_builder *build, nir_ssa_def *src0) 420 { 421 return nir_build_alu(build, nir_op_fddy_coarse, src0, NULL, NULL, NULL); 422 } 423 static inline nir_ssa_def * 424 nir_fddy_fine(nir_builder *build, nir_ssa_def *src0) 425 { 426 return nir_build_alu(build, nir_op_fddy_fine, src0, NULL, NULL, NULL); 427 } 428 static inline nir_ssa_def * 429 nir_fdiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 430 { 431 return nir_build_alu(build, nir_op_fdiv, src0, src1, NULL, NULL); 432 } 433 static inline nir_ssa_def * 434 nir_fdot2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 435 { 436 return nir_build_alu(build, nir_op_fdot2, src0, src1, NULL, NULL); 437 } 438 static inline nir_ssa_def * 439 nir_fdot3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 440 { 441 return nir_build_alu(build, nir_op_fdot3, src0, src1, NULL, NULL); 442 } 443 static inline nir_ssa_def * 444 nir_fdot4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 445 { 446 return nir_build_alu(build, nir_op_fdot4, src0, src1, NULL, NULL); 447 } 448 static inline nir_ssa_def * 449 nir_fdot_replicated2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 450 { 451 return nir_build_alu(build, nir_op_fdot_replicated2, src0, src1, NULL, NULL); 452 } 453 static inline nir_ssa_def * 454 nir_fdot_replicated3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 455 { 456 return nir_build_alu(build, nir_op_fdot_replicated3, src0, src1, NULL, NULL); 457 } 458 static inline nir_ssa_def * 459 nir_fdot_replicated4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 460 { 461 return nir_build_alu(build, nir_op_fdot_replicated4, src0, src1, NULL, NULL); 462 } 463 static inline nir_ssa_def * 464 nir_fdph(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 465 { 466 return nir_build_alu(build, nir_op_fdph, src0, src1, NULL, NULL); 467 } 468 static inline nir_ssa_def * 469 nir_fdph_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 470 { 471 return nir_build_alu(build, nir_op_fdph_replicated, src0, src1, NULL, NULL); 472 } 473 static inline nir_ssa_def * 474 nir_feq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 475 { 476 return nir_build_alu(build, nir_op_feq, src0, src1, NULL, NULL); 477 } 478 static inline nir_ssa_def * 479 nir_feq32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 480 { 481 return nir_build_alu(build, nir_op_feq32, src0, src1, NULL, NULL); 482 } 483 static inline nir_ssa_def * 484 nir_fexp2(nir_builder *build, nir_ssa_def *src0) 485 { 486 return nir_build_alu(build, nir_op_fexp2, src0, NULL, NULL, NULL); 487 } 488 static inline nir_ssa_def * 489 nir_ffloor(nir_builder *build, nir_ssa_def *src0) 490 { 491 return nir_build_alu(build, nir_op_ffloor, src0, NULL, NULL, NULL); 492 } 493 static inline nir_ssa_def * 494 nir_ffma(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 495 { 496 return nir_build_alu(build, nir_op_ffma, src0, src1, src2, NULL); 497 } 498 static inline nir_ssa_def * 499 nir_ffract(nir_builder *build, nir_ssa_def *src0) 500 { 501 return nir_build_alu(build, nir_op_ffract, src0, NULL, NULL, NULL); 502 } 503 static inline nir_ssa_def * 504 nir_fge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 505 { 506 return nir_build_alu(build, nir_op_fge, src0, src1, NULL, NULL); 507 } 508 static inline nir_ssa_def * 509 nir_fge32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 510 { 511 return nir_build_alu(build, nir_op_fge32, src0, src1, NULL, NULL); 512 } 513 static inline nir_ssa_def * 514 nir_find_lsb(nir_builder *build, nir_ssa_def *src0) 515 { 516 return nir_build_alu(build, nir_op_find_lsb, src0, NULL, NULL, NULL); 517 } 518 static inline nir_ssa_def * 519 nir_flog2(nir_builder *build, nir_ssa_def *src0) 520 { 521 return nir_build_alu(build, nir_op_flog2, src0, NULL, NULL, NULL); 522 } 523 static inline nir_ssa_def * 524 nir_flrp(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 525 { 526 return nir_build_alu(build, nir_op_flrp, src0, src1, src2, NULL); 527 } 528 static inline nir_ssa_def * 529 nir_flt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 530 { 531 return nir_build_alu(build, nir_op_flt, src0, src1, NULL, NULL); 532 } 533 static inline nir_ssa_def * 534 nir_flt32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 535 { 536 return nir_build_alu(build, nir_op_flt32, src0, src1, NULL, NULL); 537 } 538 static inline nir_ssa_def * 539 nir_fmax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 540 { 541 return nir_build_alu(build, nir_op_fmax, src0, src1, NULL, NULL); 542 } 543 static inline nir_ssa_def * 544 nir_fmax3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 545 { 546 return nir_build_alu(build, nir_op_fmax3, src0, src1, src2, NULL); 547 } 548 static inline nir_ssa_def * 549 nir_fmed3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 550 { 551 return nir_build_alu(build, nir_op_fmed3, src0, src1, src2, NULL); 552 } 553 static inline nir_ssa_def * 554 nir_fmin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 555 { 556 return nir_build_alu(build, nir_op_fmin, src0, src1, NULL, NULL); 557 } 558 static inline nir_ssa_def * 559 nir_fmin3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 560 { 561 return nir_build_alu(build, nir_op_fmin3, src0, src1, src2, NULL); 562 } 563 static inline nir_ssa_def * 564 nir_fmod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 565 { 566 return nir_build_alu(build, nir_op_fmod, src0, src1, NULL, NULL); 567 } 568 static inline nir_ssa_def * 569 nir_fmov(nir_builder *build, nir_ssa_def *src0) 570 { 571 return nir_build_alu(build, nir_op_fmov, src0, NULL, NULL, NULL); 572 } 573 static inline nir_ssa_def * 574 nir_fmul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 575 { 576 return nir_build_alu(build, nir_op_fmul, src0, src1, NULL, NULL); 577 } 578 static inline nir_ssa_def * 579 nir_fne(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 580 { 581 return nir_build_alu(build, nir_op_fne, src0, src1, NULL, NULL); 582 } 583 static inline nir_ssa_def * 584 nir_fne32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 585 { 586 return nir_build_alu(build, nir_op_fne32, src0, src1, NULL, NULL); 587 } 588 static inline nir_ssa_def * 589 nir_fneg(nir_builder *build, nir_ssa_def *src0) 590 { 591 return nir_build_alu(build, nir_op_fneg, src0, NULL, NULL, NULL); 592 } 593 static inline nir_ssa_def * 594 nir_fnoise1_1(nir_builder *build, nir_ssa_def *src0) 595 { 596 return nir_build_alu(build, nir_op_fnoise1_1, src0, NULL, NULL, NULL); 597 } 598 static inline nir_ssa_def * 599 nir_fnoise1_2(nir_builder *build, nir_ssa_def *src0) 600 { 601 return nir_build_alu(build, nir_op_fnoise1_2, src0, NULL, NULL, NULL); 602 } 603 static inline nir_ssa_def * 604 nir_fnoise1_3(nir_builder *build, nir_ssa_def *src0) 605 { 606 return nir_build_alu(build, nir_op_fnoise1_3, src0, NULL, NULL, NULL); 607 } 608 static inline nir_ssa_def * 609 nir_fnoise1_4(nir_builder *build, nir_ssa_def *src0) 610 { 611 return nir_build_alu(build, nir_op_fnoise1_4, src0, NULL, NULL, NULL); 612 } 613 static inline nir_ssa_def * 614 nir_fnoise2_1(nir_builder *build, nir_ssa_def *src0) 615 { 616 return nir_build_alu(build, nir_op_fnoise2_1, src0, NULL, NULL, NULL); 617 } 618 static inline nir_ssa_def * 619 nir_fnoise2_2(nir_builder *build, nir_ssa_def *src0) 620 { 621 return nir_build_alu(build, nir_op_fnoise2_2, src0, NULL, NULL, NULL); 622 } 623 static inline nir_ssa_def * 624 nir_fnoise2_3(nir_builder *build, nir_ssa_def *src0) 625 { 626 return nir_build_alu(build, nir_op_fnoise2_3, src0, NULL, NULL, NULL); 627 } 628 static inline nir_ssa_def * 629 nir_fnoise2_4(nir_builder *build, nir_ssa_def *src0) 630 { 631 return nir_build_alu(build, nir_op_fnoise2_4, src0, NULL, NULL, NULL); 632 } 633 static inline nir_ssa_def * 634 nir_fnoise3_1(nir_builder *build, nir_ssa_def *src0) 635 { 636 return nir_build_alu(build, nir_op_fnoise3_1, src0, NULL, NULL, NULL); 637 } 638 static inline nir_ssa_def * 639 nir_fnoise3_2(nir_builder *build, nir_ssa_def *src0) 640 { 641 return nir_build_alu(build, nir_op_fnoise3_2, src0, NULL, NULL, NULL); 642 } 643 static inline nir_ssa_def * 644 nir_fnoise3_3(nir_builder *build, nir_ssa_def *src0) 645 { 646 return nir_build_alu(build, nir_op_fnoise3_3, src0, NULL, NULL, NULL); 647 } 648 static inline nir_ssa_def * 649 nir_fnoise3_4(nir_builder *build, nir_ssa_def *src0) 650 { 651 return nir_build_alu(build, nir_op_fnoise3_4, src0, NULL, NULL, NULL); 652 } 653 static inline nir_ssa_def * 654 nir_fnoise4_1(nir_builder *build, nir_ssa_def *src0) 655 { 656 return nir_build_alu(build, nir_op_fnoise4_1, src0, NULL, NULL, NULL); 657 } 658 static inline nir_ssa_def * 659 nir_fnoise4_2(nir_builder *build, nir_ssa_def *src0) 660 { 661 return nir_build_alu(build, nir_op_fnoise4_2, src0, NULL, NULL, NULL); 662 } 663 static inline nir_ssa_def * 664 nir_fnoise4_3(nir_builder *build, nir_ssa_def *src0) 665 { 666 return nir_build_alu(build, nir_op_fnoise4_3, src0, NULL, NULL, NULL); 667 } 668 static inline nir_ssa_def * 669 nir_fnoise4_4(nir_builder *build, nir_ssa_def *src0) 670 { 671 return nir_build_alu(build, nir_op_fnoise4_4, src0, NULL, NULL, NULL); 672 } 673 static inline nir_ssa_def * 674 nir_fnot(nir_builder *build, nir_ssa_def *src0) 675 { 676 return nir_build_alu(build, nir_op_fnot, src0, NULL, NULL, NULL); 677 } 678 static inline nir_ssa_def * 679 nir_for(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 680 { 681 return nir_build_alu(build, nir_op_for, src0, src1, NULL, NULL); 682 } 683 static inline nir_ssa_def * 684 nir_fpow(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 685 { 686 return nir_build_alu(build, nir_op_fpow, src0, src1, NULL, NULL); 687 } 688 static inline nir_ssa_def * 689 nir_fquantize2f16(nir_builder *build, nir_ssa_def *src0) 690 { 691 return nir_build_alu(build, nir_op_fquantize2f16, src0, NULL, NULL, NULL); 692 } 693 static inline nir_ssa_def * 694 nir_frcp(nir_builder *build, nir_ssa_def *src0) 695 { 696 return nir_build_alu(build, nir_op_frcp, src0, NULL, NULL, NULL); 697 } 698 static inline nir_ssa_def * 699 nir_frem(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 700 { 701 return nir_build_alu(build, nir_op_frem, src0, src1, NULL, NULL); 702 } 703 static inline nir_ssa_def * 704 nir_frexp_exp(nir_builder *build, nir_ssa_def *src0) 705 { 706 return nir_build_alu(build, nir_op_frexp_exp, src0, NULL, NULL, NULL); 707 } 708 static inline nir_ssa_def * 709 nir_frexp_sig(nir_builder *build, nir_ssa_def *src0) 710 { 711 return nir_build_alu(build, nir_op_frexp_sig, src0, NULL, NULL, NULL); 712 } 713 static inline nir_ssa_def * 714 nir_fround_even(nir_builder *build, nir_ssa_def *src0) 715 { 716 return nir_build_alu(build, nir_op_fround_even, src0, NULL, NULL, NULL); 717 } 718 static inline nir_ssa_def * 719 nir_frsq(nir_builder *build, nir_ssa_def *src0) 720 { 721 return nir_build_alu(build, nir_op_frsq, src0, NULL, NULL, NULL); 722 } 723 static inline nir_ssa_def * 724 nir_fsat(nir_builder *build, nir_ssa_def *src0) 725 { 726 return nir_build_alu(build, nir_op_fsat, src0, NULL, NULL, NULL); 727 } 728 static inline nir_ssa_def * 729 nir_fsign(nir_builder *build, nir_ssa_def *src0) 730 { 731 return nir_build_alu(build, nir_op_fsign, src0, NULL, NULL, NULL); 732 } 733 static inline nir_ssa_def * 734 nir_fsin(nir_builder *build, nir_ssa_def *src0) 735 { 736 return nir_build_alu(build, nir_op_fsin, src0, NULL, NULL, NULL); 737 } 738 static inline nir_ssa_def * 739 nir_fsqrt(nir_builder *build, nir_ssa_def *src0) 740 { 741 return nir_build_alu(build, nir_op_fsqrt, src0, NULL, NULL, NULL); 742 } 743 static inline nir_ssa_def * 744 nir_fsub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 745 { 746 return nir_build_alu(build, nir_op_fsub, src0, src1, NULL, NULL); 747 } 748 static inline nir_ssa_def * 749 nir_ftrunc(nir_builder *build, nir_ssa_def *src0) 750 { 751 return nir_build_alu(build, nir_op_ftrunc, src0, NULL, NULL, NULL); 752 } 753 static inline nir_ssa_def * 754 nir_fxor(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 755 { 756 return nir_build_alu(build, nir_op_fxor, src0, src1, NULL, NULL); 757 } 758 static inline nir_ssa_def * 759 nir_i2b1(nir_builder *build, nir_ssa_def *src0) 760 { 761 return nir_build_alu(build, nir_op_i2b1, src0, NULL, NULL, NULL); 762 } 763 static inline nir_ssa_def * 764 nir_i2b32(nir_builder *build, nir_ssa_def *src0) 765 { 766 return nir_build_alu(build, nir_op_i2b32, src0, NULL, NULL, NULL); 767 } 768 static inline nir_ssa_def * 769 nir_i2f16(nir_builder *build, nir_ssa_def *src0) 770 { 771 return nir_build_alu(build, nir_op_i2f16, src0, NULL, NULL, NULL); 772 } 773 static inline nir_ssa_def * 774 nir_i2f32(nir_builder *build, nir_ssa_def *src0) 775 { 776 return nir_build_alu(build, nir_op_i2f32, src0, NULL, NULL, NULL); 777 } 778 static inline nir_ssa_def * 779 nir_i2f64(nir_builder *build, nir_ssa_def *src0) 780 { 781 return nir_build_alu(build, nir_op_i2f64, src0, NULL, NULL, NULL); 782 } 783 static inline nir_ssa_def * 784 nir_i2i1(nir_builder *build, nir_ssa_def *src0) 785 { 786 return nir_build_alu(build, nir_op_i2i1, src0, NULL, NULL, NULL); 787 } 788 static inline nir_ssa_def * 789 nir_i2i16(nir_builder *build, nir_ssa_def *src0) 790 { 791 return nir_build_alu(build, nir_op_i2i16, src0, NULL, NULL, NULL); 792 } 793 static inline nir_ssa_def * 794 nir_i2i32(nir_builder *build, nir_ssa_def *src0) 795 { 796 return nir_build_alu(build, nir_op_i2i32, src0, NULL, NULL, NULL); 797 } 798 static inline nir_ssa_def * 799 nir_i2i64(nir_builder *build, nir_ssa_def *src0) 800 { 801 return nir_build_alu(build, nir_op_i2i64, src0, NULL, NULL, NULL); 802 } 803 static inline nir_ssa_def * 804 nir_i2i8(nir_builder *build, nir_ssa_def *src0) 805 { 806 return nir_build_alu(build, nir_op_i2i8, src0, NULL, NULL, NULL); 807 } 808 static inline nir_ssa_def * 809 nir_iabs(nir_builder *build, nir_ssa_def *src0) 810 { 811 return nir_build_alu(build, nir_op_iabs, src0, NULL, NULL, NULL); 812 } 813 static inline nir_ssa_def * 814 nir_iadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 815 { 816 return nir_build_alu(build, nir_op_iadd, src0, src1, NULL, NULL); 817 } 818 static inline nir_ssa_def * 819 nir_iadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 820 { 821 return nir_build_alu(build, nir_op_iadd_sat, src0, src1, NULL, NULL); 822 } 823 static inline nir_ssa_def * 824 nir_iand(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 825 { 826 return nir_build_alu(build, nir_op_iand, src0, src1, NULL, NULL); 827 } 828 static inline nir_ssa_def * 829 nir_ibfe(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 830 { 831 return nir_build_alu(build, nir_op_ibfe, src0, src1, src2, NULL); 832 } 833 static inline nir_ssa_def * 834 nir_ibitfield_extract(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 835 { 836 return nir_build_alu(build, nir_op_ibitfield_extract, src0, src1, src2, NULL); 837 } 838 static inline nir_ssa_def * 839 nir_idiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 840 { 841 return nir_build_alu(build, nir_op_idiv, src0, src1, NULL, NULL); 842 } 843 static inline nir_ssa_def * 844 nir_ieq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 845 { 846 return nir_build_alu(build, nir_op_ieq, src0, src1, NULL, NULL); 847 } 848 static inline nir_ssa_def * 849 nir_ieq32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 850 { 851 return nir_build_alu(build, nir_op_ieq32, src0, src1, NULL, NULL); 852 } 853 static inline nir_ssa_def * 854 nir_ifind_msb(nir_builder *build, nir_ssa_def *src0) 855 { 856 return nir_build_alu(build, nir_op_ifind_msb, src0, NULL, NULL, NULL); 857 } 858 static inline nir_ssa_def * 859 nir_ige(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 860 { 861 return nir_build_alu(build, nir_op_ige, src0, src1, NULL, NULL); 862 } 863 static inline nir_ssa_def * 864 nir_ige32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 865 { 866 return nir_build_alu(build, nir_op_ige32, src0, src1, NULL, NULL); 867 } 868 static inline nir_ssa_def * 869 nir_ihadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 870 { 871 return nir_build_alu(build, nir_op_ihadd, src0, src1, NULL, NULL); 872 } 873 static inline nir_ssa_def * 874 nir_ilt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 875 { 876 return nir_build_alu(build, nir_op_ilt, src0, src1, NULL, NULL); 877 } 878 static inline nir_ssa_def * 879 nir_ilt32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 880 { 881 return nir_build_alu(build, nir_op_ilt32, src0, src1, NULL, NULL); 882 } 883 static inline nir_ssa_def * 884 nir_imax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 885 { 886 return nir_build_alu(build, nir_op_imax, src0, src1, NULL, NULL); 887 } 888 static inline nir_ssa_def * 889 nir_imax3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 890 { 891 return nir_build_alu(build, nir_op_imax3, src0, src1, src2, NULL); 892 } 893 static inline nir_ssa_def * 894 nir_imed3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 895 { 896 return nir_build_alu(build, nir_op_imed3, src0, src1, src2, NULL); 897 } 898 static inline nir_ssa_def * 899 nir_imin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 900 { 901 return nir_build_alu(build, nir_op_imin, src0, src1, NULL, NULL); 902 } 903 static inline nir_ssa_def * 904 nir_imin3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 905 { 906 return nir_build_alu(build, nir_op_imin3, src0, src1, src2, NULL); 907 } 908 static inline nir_ssa_def * 909 nir_imod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 910 { 911 return nir_build_alu(build, nir_op_imod, src0, src1, NULL, NULL); 912 } 913 static inline nir_ssa_def * 914 nir_imov(nir_builder *build, nir_ssa_def *src0) 915 { 916 return nir_build_alu(build, nir_op_imov, src0, NULL, NULL, NULL); 917 } 918 static inline nir_ssa_def * 919 nir_imul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 920 { 921 return nir_build_alu(build, nir_op_imul, src0, src1, NULL, NULL); 922 } 923 static inline nir_ssa_def * 924 nir_imul_2x32_64(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 925 { 926 return nir_build_alu(build, nir_op_imul_2x32_64, src0, src1, NULL, NULL); 927 } 928 static inline nir_ssa_def * 929 nir_imul_high(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 930 { 931 return nir_build_alu(build, nir_op_imul_high, src0, src1, NULL, NULL); 932 } 933 static inline nir_ssa_def * 934 nir_ine(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 935 { 936 return nir_build_alu(build, nir_op_ine, src0, src1, NULL, NULL); 937 } 938 static inline nir_ssa_def * 939 nir_ine32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 940 { 941 return nir_build_alu(build, nir_op_ine32, src0, src1, NULL, NULL); 942 } 943 static inline nir_ssa_def * 944 nir_ineg(nir_builder *build, nir_ssa_def *src0) 945 { 946 return nir_build_alu(build, nir_op_ineg, src0, NULL, NULL, NULL); 947 } 948 static inline nir_ssa_def * 949 nir_inot(nir_builder *build, nir_ssa_def *src0) 950 { 951 return nir_build_alu(build, nir_op_inot, src0, NULL, NULL, NULL); 952 } 953 static inline nir_ssa_def * 954 nir_ior(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 955 { 956 return nir_build_alu(build, nir_op_ior, src0, src1, NULL, NULL); 957 } 958 static inline nir_ssa_def * 959 nir_irem(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 960 { 961 return nir_build_alu(build, nir_op_irem, src0, src1, NULL, NULL); 962 } 963 static inline nir_ssa_def * 964 nir_irhadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 965 { 966 return nir_build_alu(build, nir_op_irhadd, src0, src1, NULL, NULL); 967 } 968 static inline nir_ssa_def * 969 nir_ishl(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 970 { 971 return nir_build_alu(build, nir_op_ishl, src0, src1, NULL, NULL); 972 } 973 static inline nir_ssa_def * 974 nir_ishr(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 975 { 976 return nir_build_alu(build, nir_op_ishr, src0, src1, NULL, NULL); 977 } 978 static inline nir_ssa_def * 979 nir_isign(nir_builder *build, nir_ssa_def *src0) 980 { 981 return nir_build_alu(build, nir_op_isign, src0, NULL, NULL, NULL); 982 } 983 static inline nir_ssa_def * 984 nir_isub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 985 { 986 return nir_build_alu(build, nir_op_isub, src0, src1, NULL, NULL); 987 } 988 static inline nir_ssa_def * 989 nir_isub_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 990 { 991 return nir_build_alu(build, nir_op_isub_sat, src0, src1, NULL, NULL); 992 } 993 static inline nir_ssa_def * 994 nir_ixor(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 995 { 996 return nir_build_alu(build, nir_op_ixor, src0, src1, NULL, NULL); 997 } 998 static inline nir_ssa_def * 999 nir_ldexp(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1000 { 1001 return nir_build_alu(build, nir_op_ldexp, src0, src1, NULL, NULL); 1002 } 1003 static inline nir_ssa_def * 1004 nir_pack_32_2x16(nir_builder *build, nir_ssa_def *src0) 1005 { 1006 return nir_build_alu(build, nir_op_pack_32_2x16, src0, NULL, NULL, NULL); 1007 } 1008 static inline nir_ssa_def * 1009 nir_pack_32_2x16_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1010 { 1011 return nir_build_alu(build, nir_op_pack_32_2x16_split, src0, src1, NULL, NULL); 1012 } 1013 static inline nir_ssa_def * 1014 nir_pack_64_2x32(nir_builder *build, nir_ssa_def *src0) 1015 { 1016 return nir_build_alu(build, nir_op_pack_64_2x32, src0, NULL, NULL, NULL); 1017 } 1018 static inline nir_ssa_def * 1019 nir_pack_64_2x32_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1020 { 1021 return nir_build_alu(build, nir_op_pack_64_2x32_split, src0, src1, NULL, NULL); 1022 } 1023 static inline nir_ssa_def * 1024 nir_pack_64_4x16(nir_builder *build, nir_ssa_def *src0) 1025 { 1026 return nir_build_alu(build, nir_op_pack_64_4x16, src0, NULL, NULL, NULL); 1027 } 1028 static inline nir_ssa_def * 1029 nir_pack_half_2x16(nir_builder *build, nir_ssa_def *src0) 1030 { 1031 return nir_build_alu(build, nir_op_pack_half_2x16, src0, NULL, NULL, NULL); 1032 } 1033 static inline nir_ssa_def * 1034 nir_pack_half_2x16_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1035 { 1036 return nir_build_alu(build, nir_op_pack_half_2x16_split, src0, src1, NULL, NULL); 1037 } 1038 static inline nir_ssa_def * 1039 nir_pack_snorm_2x16(nir_builder *build, nir_ssa_def *src0) 1040 { 1041 return nir_build_alu(build, nir_op_pack_snorm_2x16, src0, NULL, NULL, NULL); 1042 } 1043 static inline nir_ssa_def * 1044 nir_pack_snorm_4x8(nir_builder *build, nir_ssa_def *src0) 1045 { 1046 return nir_build_alu(build, nir_op_pack_snorm_4x8, src0, NULL, NULL, NULL); 1047 } 1048 static inline nir_ssa_def * 1049 nir_pack_unorm_2x16(nir_builder *build, nir_ssa_def *src0) 1050 { 1051 return nir_build_alu(build, nir_op_pack_unorm_2x16, src0, NULL, NULL, NULL); 1052 } 1053 static inline nir_ssa_def * 1054 nir_pack_unorm_4x8(nir_builder *build, nir_ssa_def *src0) 1055 { 1056 return nir_build_alu(build, nir_op_pack_unorm_4x8, src0, NULL, NULL, NULL); 1057 } 1058 static inline nir_ssa_def * 1059 nir_pack_uvec2_to_uint(nir_builder *build, nir_ssa_def *src0) 1060 { 1061 return nir_build_alu(build, nir_op_pack_uvec2_to_uint, src0, NULL, NULL, NULL); 1062 } 1063 static inline nir_ssa_def * 1064 nir_pack_uvec4_to_uint(nir_builder *build, nir_ssa_def *src0) 1065 { 1066 return nir_build_alu(build, nir_op_pack_uvec4_to_uint, src0, NULL, NULL, NULL); 1067 } 1068 static inline nir_ssa_def * 1069 nir_seq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1070 { 1071 return nir_build_alu(build, nir_op_seq, src0, src1, NULL, NULL); 1072 } 1073 static inline nir_ssa_def * 1074 nir_sge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1075 { 1076 return nir_build_alu(build, nir_op_sge, src0, src1, NULL, NULL); 1077 } 1078 static inline nir_ssa_def * 1079 nir_slt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1080 { 1081 return nir_build_alu(build, nir_op_slt, src0, src1, NULL, NULL); 1082 } 1083 static inline nir_ssa_def * 1084 nir_sne(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1085 { 1086 return nir_build_alu(build, nir_op_sne, src0, src1, NULL, NULL); 1087 } 1088 static inline nir_ssa_def * 1089 nir_u2f16(nir_builder *build, nir_ssa_def *src0) 1090 { 1091 return nir_build_alu(build, nir_op_u2f16, src0, NULL, NULL, NULL); 1092 } 1093 static inline nir_ssa_def * 1094 nir_u2f32(nir_builder *build, nir_ssa_def *src0) 1095 { 1096 return nir_build_alu(build, nir_op_u2f32, src0, NULL, NULL, NULL); 1097 } 1098 static inline nir_ssa_def * 1099 nir_u2f64(nir_builder *build, nir_ssa_def *src0) 1100 { 1101 return nir_build_alu(build, nir_op_u2f64, src0, NULL, NULL, NULL); 1102 } 1103 static inline nir_ssa_def * 1104 nir_u2u1(nir_builder *build, nir_ssa_def *src0) 1105 { 1106 return nir_build_alu(build, nir_op_u2u1, src0, NULL, NULL, NULL); 1107 } 1108 static inline nir_ssa_def * 1109 nir_u2u16(nir_builder *build, nir_ssa_def *src0) 1110 { 1111 return nir_build_alu(build, nir_op_u2u16, src0, NULL, NULL, NULL); 1112 } 1113 static inline nir_ssa_def * 1114 nir_u2u32(nir_builder *build, nir_ssa_def *src0) 1115 { 1116 return nir_build_alu(build, nir_op_u2u32, src0, NULL, NULL, NULL); 1117 } 1118 static inline nir_ssa_def * 1119 nir_u2u64(nir_builder *build, nir_ssa_def *src0) 1120 { 1121 return nir_build_alu(build, nir_op_u2u64, src0, NULL, NULL, NULL); 1122 } 1123 static inline nir_ssa_def * 1124 nir_u2u8(nir_builder *build, nir_ssa_def *src0) 1125 { 1126 return nir_build_alu(build, nir_op_u2u8, src0, NULL, NULL, NULL); 1127 } 1128 static inline nir_ssa_def * 1129 nir_uadd_carry(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1130 { 1131 return nir_build_alu(build, nir_op_uadd_carry, src0, src1, NULL, NULL); 1132 } 1133 static inline nir_ssa_def * 1134 nir_uadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1135 { 1136 return nir_build_alu(build, nir_op_uadd_sat, src0, src1, NULL, NULL); 1137 } 1138 static inline nir_ssa_def * 1139 nir_ubfe(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1140 { 1141 return nir_build_alu(build, nir_op_ubfe, src0, src1, src2, NULL); 1142 } 1143 static inline nir_ssa_def * 1144 nir_ubitfield_extract(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1145 { 1146 return nir_build_alu(build, nir_op_ubitfield_extract, src0, src1, src2, NULL); 1147 } 1148 static inline nir_ssa_def * 1149 nir_udiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1150 { 1151 return nir_build_alu(build, nir_op_udiv, src0, src1, NULL, NULL); 1152 } 1153 static inline nir_ssa_def * 1154 nir_ufind_msb(nir_builder *build, nir_ssa_def *src0) 1155 { 1156 return nir_build_alu(build, nir_op_ufind_msb, src0, NULL, NULL, NULL); 1157 } 1158 static inline nir_ssa_def * 1159 nir_uge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1160 { 1161 return nir_build_alu(build, nir_op_uge, src0, src1, NULL, NULL); 1162 } 1163 static inline nir_ssa_def * 1164 nir_uge32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1165 { 1166 return nir_build_alu(build, nir_op_uge32, src0, src1, NULL, NULL); 1167 } 1168 static inline nir_ssa_def * 1169 nir_uhadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1170 { 1171 return nir_build_alu(build, nir_op_uhadd, src0, src1, NULL, NULL); 1172 } 1173 static inline nir_ssa_def * 1174 nir_ult(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1175 { 1176 return nir_build_alu(build, nir_op_ult, src0, src1, NULL, NULL); 1177 } 1178 static inline nir_ssa_def * 1179 nir_ult32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1180 { 1181 return nir_build_alu(build, nir_op_ult32, src0, src1, NULL, NULL); 1182 } 1183 static inline nir_ssa_def * 1184 nir_umax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1185 { 1186 return nir_build_alu(build, nir_op_umax, src0, src1, NULL, NULL); 1187 } 1188 static inline nir_ssa_def * 1189 nir_umax3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1190 { 1191 return nir_build_alu(build, nir_op_umax3, src0, src1, src2, NULL); 1192 } 1193 static inline nir_ssa_def * 1194 nir_umax_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1195 { 1196 return nir_build_alu(build, nir_op_umax_4x8, src0, src1, NULL, NULL); 1197 } 1198 static inline nir_ssa_def * 1199 nir_umed3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1200 { 1201 return nir_build_alu(build, nir_op_umed3, src0, src1, src2, NULL); 1202 } 1203 static inline nir_ssa_def * 1204 nir_umin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1205 { 1206 return nir_build_alu(build, nir_op_umin, src0, src1, NULL, NULL); 1207 } 1208 static inline nir_ssa_def * 1209 nir_umin3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1210 { 1211 return nir_build_alu(build, nir_op_umin3, src0, src1, src2, NULL); 1212 } 1213 static inline nir_ssa_def * 1214 nir_umin_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1215 { 1216 return nir_build_alu(build, nir_op_umin_4x8, src0, src1, NULL, NULL); 1217 } 1218 static inline nir_ssa_def * 1219 nir_umod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1220 { 1221 return nir_build_alu(build, nir_op_umod, src0, src1, NULL, NULL); 1222 } 1223 static inline nir_ssa_def * 1224 nir_umul_2x32_64(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1225 { 1226 return nir_build_alu(build, nir_op_umul_2x32_64, src0, src1, NULL, NULL); 1227 } 1228 static inline nir_ssa_def * 1229 nir_umul_high(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1230 { 1231 return nir_build_alu(build, nir_op_umul_high, src0, src1, NULL, NULL); 1232 } 1233 static inline nir_ssa_def * 1234 nir_umul_unorm_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1235 { 1236 return nir_build_alu(build, nir_op_umul_unorm_4x8, src0, src1, NULL, NULL); 1237 } 1238 static inline nir_ssa_def * 1239 nir_unpack_32_2x16(nir_builder *build, nir_ssa_def *src0) 1240 { 1241 return nir_build_alu(build, nir_op_unpack_32_2x16, src0, NULL, NULL, NULL); 1242 } 1243 static inline nir_ssa_def * 1244 nir_unpack_32_2x16_split_x(nir_builder *build, nir_ssa_def *src0) 1245 { 1246 return nir_build_alu(build, nir_op_unpack_32_2x16_split_x, src0, NULL, NULL, NULL); 1247 } 1248 static inline nir_ssa_def * 1249 nir_unpack_32_2x16_split_y(nir_builder *build, nir_ssa_def *src0) 1250 { 1251 return nir_build_alu(build, nir_op_unpack_32_2x16_split_y, src0, NULL, NULL, NULL); 1252 } 1253 static inline nir_ssa_def * 1254 nir_unpack_64_2x32(nir_builder *build, nir_ssa_def *src0) 1255 { 1256 return nir_build_alu(build, nir_op_unpack_64_2x32, src0, NULL, NULL, NULL); 1257 } 1258 static inline nir_ssa_def * 1259 nir_unpack_64_2x32_split_x(nir_builder *build, nir_ssa_def *src0) 1260 { 1261 return nir_build_alu(build, nir_op_unpack_64_2x32_split_x, src0, NULL, NULL, NULL); 1262 } 1263 static inline nir_ssa_def * 1264 nir_unpack_64_2x32_split_y(nir_builder *build, nir_ssa_def *src0) 1265 { 1266 return nir_build_alu(build, nir_op_unpack_64_2x32_split_y, src0, NULL, NULL, NULL); 1267 } 1268 static inline nir_ssa_def * 1269 nir_unpack_64_4x16(nir_builder *build, nir_ssa_def *src0) 1270 { 1271 return nir_build_alu(build, nir_op_unpack_64_4x16, src0, NULL, NULL, NULL); 1272 } 1273 static inline nir_ssa_def * 1274 nir_unpack_half_2x16(nir_builder *build, nir_ssa_def *src0) 1275 { 1276 return nir_build_alu(build, nir_op_unpack_half_2x16, src0, NULL, NULL, NULL); 1277 } 1278 static inline nir_ssa_def * 1279 nir_unpack_half_2x16_split_x(nir_builder *build, nir_ssa_def *src0) 1280 { 1281 return nir_build_alu(build, nir_op_unpack_half_2x16_split_x, src0, NULL, NULL, NULL); 1282 } 1283 static inline nir_ssa_def * 1284 nir_unpack_half_2x16_split_y(nir_builder *build, nir_ssa_def *src0) 1285 { 1286 return nir_build_alu(build, nir_op_unpack_half_2x16_split_y, src0, NULL, NULL, NULL); 1287 } 1288 static inline nir_ssa_def * 1289 nir_unpack_snorm_2x16(nir_builder *build, nir_ssa_def *src0) 1290 { 1291 return nir_build_alu(build, nir_op_unpack_snorm_2x16, src0, NULL, NULL, NULL); 1292 } 1293 static inline nir_ssa_def * 1294 nir_unpack_snorm_4x8(nir_builder *build, nir_ssa_def *src0) 1295 { 1296 return nir_build_alu(build, nir_op_unpack_snorm_4x8, src0, NULL, NULL, NULL); 1297 } 1298 static inline nir_ssa_def * 1299 nir_unpack_unorm_2x16(nir_builder *build, nir_ssa_def *src0) 1300 { 1301 return nir_build_alu(build, nir_op_unpack_unorm_2x16, src0, NULL, NULL, NULL); 1302 } 1303 static inline nir_ssa_def * 1304 nir_unpack_unorm_4x8(nir_builder *build, nir_ssa_def *src0) 1305 { 1306 return nir_build_alu(build, nir_op_unpack_unorm_4x8, src0, NULL, NULL, NULL); 1307 } 1308 static inline nir_ssa_def * 1309 nir_urhadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1310 { 1311 return nir_build_alu(build, nir_op_urhadd, src0, src1, NULL, NULL); 1312 } 1313 static inline nir_ssa_def * 1314 nir_usadd_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1315 { 1316 return nir_build_alu(build, nir_op_usadd_4x8, src0, src1, NULL, NULL); 1317 } 1318 static inline nir_ssa_def * 1319 nir_ushr(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1320 { 1321 return nir_build_alu(build, nir_op_ushr, src0, src1, NULL, NULL); 1322 } 1323 static inline nir_ssa_def * 1324 nir_ussub_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1325 { 1326 return nir_build_alu(build, nir_op_ussub_4x8, src0, src1, NULL, NULL); 1327 } 1328 static inline nir_ssa_def * 1329 nir_usub_borrow(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1330 { 1331 return nir_build_alu(build, nir_op_usub_borrow, src0, src1, NULL, NULL); 1332 } 1333 static inline nir_ssa_def * 1334 nir_usub_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1335 { 1336 return nir_build_alu(build, nir_op_usub_sat, src0, src1, NULL, NULL); 1337 } 1338 static inline nir_ssa_def * 1339 nir_vec2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1340 { 1341 return nir_build_alu(build, nir_op_vec2, src0, src1, NULL, NULL); 1342 } 1343 static inline nir_ssa_def * 1344 nir_vec3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1345 { 1346 return nir_build_alu(build, nir_op_vec3, src0, src1, src2, NULL); 1347 } 1348 static inline nir_ssa_def * 1349 nir_vec4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 1350 { 1351 return nir_build_alu(build, nir_op_vec4, src0, src1, src2, src3); 1352 } 1353 1354 /* Generic builder for system values. */ 1355 static inline nir_ssa_def * 1356 nir_load_system_value(nir_builder *build, nir_intrinsic_op op, int index, 1357 unsigned bit_size) 1358 { 1359 nir_intrinsic_instr *load = nir_intrinsic_instr_create(build->shader, op); 1360 load->num_components = nir_intrinsic_infos[op].dest_components; 1361 load->const_index[0] = index; 1362 nir_ssa_dest_init(&load->instr, &load->dest, 1363 nir_intrinsic_infos[op].dest_components, bit_size, NULL); 1364 nir_builder_instr_insert(build, &load->instr); 1365 return &load->dest.ssa; 1366 } 1367 1368 1369 1370 1371 static inline nir_ssa_def * 1372 nir_load_alpha_ref_float(nir_builder *build) 1373 { 1374 return nir_load_system_value(build, nir_intrinsic_load_alpha_ref_float, 1375 0, 32); 1376 } 1377 1378 static inline nir_ssa_def * 1379 nir_load_base_instance(nir_builder *build) 1380 { 1381 return nir_load_system_value(build, nir_intrinsic_load_base_instance, 1382 0, 32); 1383 } 1384 1385 static inline nir_ssa_def * 1386 nir_load_base_vertex(nir_builder *build) 1387 { 1388 return nir_load_system_value(build, nir_intrinsic_load_base_vertex, 1389 0, 32); 1390 } 1391 1392 static inline nir_ssa_def * 1393 nir_load_blend_const_color_a_float(nir_builder *build) 1394 { 1395 return nir_load_system_value(build, nir_intrinsic_load_blend_const_color_a_float, 1396 0, 32); 1397 } 1398 1399 static inline nir_ssa_def * 1400 nir_load_blend_const_color_aaaa8888_unorm(nir_builder *build) 1401 { 1402 return nir_load_system_value(build, nir_intrinsic_load_blend_const_color_aaaa8888_unorm, 1403 0, 32); 1404 } 1405 1406 static inline nir_ssa_def * 1407 nir_load_blend_const_color_b_float(nir_builder *build) 1408 { 1409 return nir_load_system_value(build, nir_intrinsic_load_blend_const_color_b_float, 1410 0, 32); 1411 } 1412 1413 static inline nir_ssa_def * 1414 nir_load_blend_const_color_g_float(nir_builder *build) 1415 { 1416 return nir_load_system_value(build, nir_intrinsic_load_blend_const_color_g_float, 1417 0, 32); 1418 } 1419 1420 static inline nir_ssa_def * 1421 nir_load_blend_const_color_r_float(nir_builder *build) 1422 { 1423 return nir_load_system_value(build, nir_intrinsic_load_blend_const_color_r_float, 1424 0, 32); 1425 } 1426 1427 static inline nir_ssa_def * 1428 nir_load_blend_const_color_rgba8888_unorm(nir_builder *build) 1429 { 1430 return nir_load_system_value(build, nir_intrinsic_load_blend_const_color_rgba8888_unorm, 1431 0, 32); 1432 } 1433 1434 static inline nir_ssa_def * 1435 nir_load_draw_id(nir_builder *build) 1436 { 1437 return nir_load_system_value(build, nir_intrinsic_load_draw_id, 1438 0, 32); 1439 } 1440 1441 static inline nir_ssa_def * 1442 nir_load_first_vertex(nir_builder *build) 1443 { 1444 return nir_load_system_value(build, nir_intrinsic_load_first_vertex, 1445 0, 32); 1446 } 1447 1448 static inline nir_ssa_def * 1449 nir_load_frag_coord(nir_builder *build) 1450 { 1451 return nir_load_system_value(build, nir_intrinsic_load_frag_coord, 1452 0, 32); 1453 } 1454 1455 static inline nir_ssa_def * 1456 nir_load_front_face(nir_builder *build, unsigned bit_size) 1457 { 1458 return nir_load_system_value(build, nir_intrinsic_load_front_face, 1459 0, bit_size); 1460 } 1461 1462 static inline nir_ssa_def * 1463 nir_load_global_invocation_id(nir_builder *build, unsigned bit_size) 1464 { 1465 return nir_load_system_value(build, nir_intrinsic_load_global_invocation_id, 1466 0, bit_size); 1467 } 1468 1469 static inline nir_ssa_def * 1470 nir_load_global_invocation_index(nir_builder *build, unsigned bit_size) 1471 { 1472 return nir_load_system_value(build, nir_intrinsic_load_global_invocation_index, 1473 0, bit_size); 1474 } 1475 1476 static inline nir_ssa_def * 1477 nir_load_helper_invocation(nir_builder *build, unsigned bit_size) 1478 { 1479 return nir_load_system_value(build, nir_intrinsic_load_helper_invocation, 1480 0, bit_size); 1481 } 1482 1483 static inline nir_ssa_def * 1484 nir_load_instance_id(nir_builder *build) 1485 { 1486 return nir_load_system_value(build, nir_intrinsic_load_instance_id, 1487 0, 32); 1488 } 1489 1490 static inline nir_ssa_def * 1491 nir_load_invocation_id(nir_builder *build) 1492 { 1493 return nir_load_system_value(build, nir_intrinsic_load_invocation_id, 1494 0, 32); 1495 } 1496 1497 static inline nir_ssa_def * 1498 nir_load_is_indexed_draw(nir_builder *build) 1499 { 1500 return nir_load_system_value(build, nir_intrinsic_load_is_indexed_draw, 1501 0, 32); 1502 } 1503 1504 static inline nir_ssa_def * 1505 nir_load_layer_id(nir_builder *build) 1506 { 1507 return nir_load_system_value(build, nir_intrinsic_load_layer_id, 1508 0, 32); 1509 } 1510 1511 static inline nir_ssa_def * 1512 nir_load_local_group_size(nir_builder *build) 1513 { 1514 return nir_load_system_value(build, nir_intrinsic_load_local_group_size, 1515 0, 32); 1516 } 1517 1518 static inline nir_ssa_def * 1519 nir_load_local_invocation_id(nir_builder *build) 1520 { 1521 return nir_load_system_value(build, nir_intrinsic_load_local_invocation_id, 1522 0, 32); 1523 } 1524 1525 static inline nir_ssa_def * 1526 nir_load_local_invocation_index(nir_builder *build) 1527 { 1528 return nir_load_system_value(build, nir_intrinsic_load_local_invocation_index, 1529 0, 32); 1530 } 1531 1532 static inline nir_ssa_def * 1533 nir_load_num_subgroups(nir_builder *build) 1534 { 1535 return nir_load_system_value(build, nir_intrinsic_load_num_subgroups, 1536 0, 32); 1537 } 1538 1539 static inline nir_ssa_def * 1540 nir_load_num_work_groups(nir_builder *build) 1541 { 1542 return nir_load_system_value(build, nir_intrinsic_load_num_work_groups, 1543 0, 32); 1544 } 1545 1546 static inline nir_ssa_def * 1547 nir_load_patch_vertices_in(nir_builder *build) 1548 { 1549 return nir_load_system_value(build, nir_intrinsic_load_patch_vertices_in, 1550 0, 32); 1551 } 1552 1553 static inline nir_ssa_def * 1554 nir_load_primitive_id(nir_builder *build) 1555 { 1556 return nir_load_system_value(build, nir_intrinsic_load_primitive_id, 1557 0, 32); 1558 } 1559 1560 static inline nir_ssa_def * 1561 nir_load_sample_id(nir_builder *build) 1562 { 1563 return nir_load_system_value(build, nir_intrinsic_load_sample_id, 1564 0, 32); 1565 } 1566 1567 static inline nir_ssa_def * 1568 nir_load_sample_id_no_per_sample(nir_builder *build) 1569 { 1570 return nir_load_system_value(build, nir_intrinsic_load_sample_id_no_per_sample, 1571 0, 32); 1572 } 1573 1574 static inline nir_ssa_def * 1575 nir_load_sample_mask_in(nir_builder *build) 1576 { 1577 return nir_load_system_value(build, nir_intrinsic_load_sample_mask_in, 1578 0, 32); 1579 } 1580 1581 static inline nir_ssa_def * 1582 nir_load_sample_pos(nir_builder *build) 1583 { 1584 return nir_load_system_value(build, nir_intrinsic_load_sample_pos, 1585 0, 32); 1586 } 1587 1588 static inline nir_ssa_def * 1589 nir_load_subgroup_eq_mask(nir_builder *build, unsigned bit_size) 1590 { 1591 return nir_load_system_value(build, nir_intrinsic_load_subgroup_eq_mask, 1592 0, bit_size); 1593 } 1594 1595 static inline nir_ssa_def * 1596 nir_load_subgroup_ge_mask(nir_builder *build, unsigned bit_size) 1597 { 1598 return nir_load_system_value(build, nir_intrinsic_load_subgroup_ge_mask, 1599 0, bit_size); 1600 } 1601 1602 static inline nir_ssa_def * 1603 nir_load_subgroup_gt_mask(nir_builder *build, unsigned bit_size) 1604 { 1605 return nir_load_system_value(build, nir_intrinsic_load_subgroup_gt_mask, 1606 0, bit_size); 1607 } 1608 1609 static inline nir_ssa_def * 1610 nir_load_subgroup_id(nir_builder *build) 1611 { 1612 return nir_load_system_value(build, nir_intrinsic_load_subgroup_id, 1613 0, 32); 1614 } 1615 1616 static inline nir_ssa_def * 1617 nir_load_subgroup_invocation(nir_builder *build) 1618 { 1619 return nir_load_system_value(build, nir_intrinsic_load_subgroup_invocation, 1620 0, 32); 1621 } 1622 1623 static inline nir_ssa_def * 1624 nir_load_subgroup_le_mask(nir_builder *build, unsigned bit_size) 1625 { 1626 return nir_load_system_value(build, nir_intrinsic_load_subgroup_le_mask, 1627 0, bit_size); 1628 } 1629 1630 static inline nir_ssa_def * 1631 nir_load_subgroup_lt_mask(nir_builder *build, unsigned bit_size) 1632 { 1633 return nir_load_system_value(build, nir_intrinsic_load_subgroup_lt_mask, 1634 0, bit_size); 1635 } 1636 1637 static inline nir_ssa_def * 1638 nir_load_subgroup_size(nir_builder *build) 1639 { 1640 return nir_load_system_value(build, nir_intrinsic_load_subgroup_size, 1641 0, 32); 1642 } 1643 1644 static inline nir_ssa_def * 1645 nir_load_tess_coord(nir_builder *build) 1646 { 1647 return nir_load_system_value(build, nir_intrinsic_load_tess_coord, 1648 0, 32); 1649 } 1650 1651 static inline nir_ssa_def * 1652 nir_load_tess_level_inner(nir_builder *build) 1653 { 1654 return nir_load_system_value(build, nir_intrinsic_load_tess_level_inner, 1655 0, 32); 1656 } 1657 1658 static inline nir_ssa_def * 1659 nir_load_tess_level_outer(nir_builder *build) 1660 { 1661 return nir_load_system_value(build, nir_intrinsic_load_tess_level_outer, 1662 0, 32); 1663 } 1664 1665 static inline nir_ssa_def * 1666 nir_load_user_clip_plane(nir_builder *build, unsigned nir_intrinsic_ucp_id) 1667 { 1668 return nir_load_system_value(build, nir_intrinsic_load_user_clip_plane, 1669 nir_intrinsic_ucp_id, 32); 1670 } 1671 1672 static inline nir_ssa_def * 1673 nir_load_vertex_id(nir_builder *build) 1674 { 1675 return nir_load_system_value(build, nir_intrinsic_load_vertex_id, 1676 0, 32); 1677 } 1678 1679 static inline nir_ssa_def * 1680 nir_load_vertex_id_zero_base(nir_builder *build) 1681 { 1682 return nir_load_system_value(build, nir_intrinsic_load_vertex_id_zero_base, 1683 0, 32); 1684 } 1685 1686 static inline nir_ssa_def * 1687 nir_load_view_index(nir_builder *build) 1688 { 1689 return nir_load_system_value(build, nir_intrinsic_load_view_index, 1690 0, 32); 1691 } 1692 1693 static inline nir_ssa_def * 1694 nir_load_viewport_offset(nir_builder *build) 1695 { 1696 return nir_load_system_value(build, nir_intrinsic_load_viewport_offset, 1697 0, 32); 1698 } 1699 1700 static inline nir_ssa_def * 1701 nir_load_viewport_scale(nir_builder *build) 1702 { 1703 return nir_load_system_value(build, nir_intrinsic_load_viewport_scale, 1704 0, 32); 1705 } 1706 1707 static inline nir_ssa_def * 1708 nir_load_viewport_x_scale(nir_builder *build) 1709 { 1710 return nir_load_system_value(build, nir_intrinsic_load_viewport_x_scale, 1711 0, 32); 1712 } 1713 1714 static inline nir_ssa_def * 1715 nir_load_viewport_y_scale(nir_builder *build) 1716 { 1717 return nir_load_system_value(build, nir_intrinsic_load_viewport_y_scale, 1718 0, 32); 1719 } 1720 1721 static inline nir_ssa_def * 1722 nir_load_viewport_z_offset(nir_builder *build) 1723 { 1724 return nir_load_system_value(build, nir_intrinsic_load_viewport_z_offset, 1725 0, 32); 1726 } 1727 1728 static inline nir_ssa_def * 1729 nir_load_viewport_z_scale(nir_builder *build) 1730 { 1731 return nir_load_system_value(build, nir_intrinsic_load_viewport_z_scale, 1732 0, 32); 1733 } 1734 1735 static inline nir_ssa_def * 1736 nir_load_work_dim(nir_builder *build) 1737 { 1738 return nir_load_system_value(build, nir_intrinsic_load_work_dim, 1739 0, 32); 1740 } 1741 1742 static inline nir_ssa_def * 1743 nir_load_work_group_id(nir_builder *build) 1744 { 1745 return nir_load_system_value(build, nir_intrinsic_load_work_group_id, 1746 0, 32); 1747 } 1748 1749 #endif /* _NIR_BUILDER_OPCODES_ */ 1750