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_amul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 30 { 31 return nir_build_alu(build, nir_op_amul, src0, src1, NULL, NULL); 32 } 33 static inline nir_ssa_def * 34 nir_b16all_fequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 35 { 36 return nir_build_alu(build, nir_op_b16all_fequal16, src0, src1, NULL, NULL); 37 } 38 static inline nir_ssa_def * 39 nir_b16all_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 40 { 41 return nir_build_alu(build, nir_op_b16all_fequal2, src0, src1, NULL, NULL); 42 } 43 static inline nir_ssa_def * 44 nir_b16all_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 45 { 46 return nir_build_alu(build, nir_op_b16all_fequal3, src0, src1, NULL, NULL); 47 } 48 static inline nir_ssa_def * 49 nir_b16all_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 50 { 51 return nir_build_alu(build, nir_op_b16all_fequal4, src0, src1, NULL, NULL); 52 } 53 static inline nir_ssa_def * 54 nir_b16all_fequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 55 { 56 return nir_build_alu(build, nir_op_b16all_fequal5, src0, src1, NULL, NULL); 57 } 58 static inline nir_ssa_def * 59 nir_b16all_fequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 60 { 61 return nir_build_alu(build, nir_op_b16all_fequal8, src0, src1, NULL, NULL); 62 } 63 static inline nir_ssa_def * 64 nir_b16all_iequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 65 { 66 return nir_build_alu(build, nir_op_b16all_iequal16, src0, src1, NULL, NULL); 67 } 68 static inline nir_ssa_def * 69 nir_b16all_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 70 { 71 return nir_build_alu(build, nir_op_b16all_iequal2, src0, src1, NULL, NULL); 72 } 73 static inline nir_ssa_def * 74 nir_b16all_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 75 { 76 return nir_build_alu(build, nir_op_b16all_iequal3, src0, src1, NULL, NULL); 77 } 78 static inline nir_ssa_def * 79 nir_b16all_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 80 { 81 return nir_build_alu(build, nir_op_b16all_iequal4, src0, src1, NULL, NULL); 82 } 83 static inline nir_ssa_def * 84 nir_b16all_iequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 85 { 86 return nir_build_alu(build, nir_op_b16all_iequal5, src0, src1, NULL, NULL); 87 } 88 static inline nir_ssa_def * 89 nir_b16all_iequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 90 { 91 return nir_build_alu(build, nir_op_b16all_iequal8, src0, src1, NULL, NULL); 92 } 93 static inline nir_ssa_def * 94 nir_b16any_fnequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 95 { 96 return nir_build_alu(build, nir_op_b16any_fnequal16, src0, src1, NULL, NULL); 97 } 98 static inline nir_ssa_def * 99 nir_b16any_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 100 { 101 return nir_build_alu(build, nir_op_b16any_fnequal2, src0, src1, NULL, NULL); 102 } 103 static inline nir_ssa_def * 104 nir_b16any_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 105 { 106 return nir_build_alu(build, nir_op_b16any_fnequal3, src0, src1, NULL, NULL); 107 } 108 static inline nir_ssa_def * 109 nir_b16any_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 110 { 111 return nir_build_alu(build, nir_op_b16any_fnequal4, src0, src1, NULL, NULL); 112 } 113 static inline nir_ssa_def * 114 nir_b16any_fnequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 115 { 116 return nir_build_alu(build, nir_op_b16any_fnequal5, src0, src1, NULL, NULL); 117 } 118 static inline nir_ssa_def * 119 nir_b16any_fnequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 120 { 121 return nir_build_alu(build, nir_op_b16any_fnequal8, src0, src1, NULL, NULL); 122 } 123 static inline nir_ssa_def * 124 nir_b16any_inequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 125 { 126 return nir_build_alu(build, nir_op_b16any_inequal16, src0, src1, NULL, NULL); 127 } 128 static inline nir_ssa_def * 129 nir_b16any_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 130 { 131 return nir_build_alu(build, nir_op_b16any_inequal2, src0, src1, NULL, NULL); 132 } 133 static inline nir_ssa_def * 134 nir_b16any_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 135 { 136 return nir_build_alu(build, nir_op_b16any_inequal3, src0, src1, NULL, NULL); 137 } 138 static inline nir_ssa_def * 139 nir_b16any_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 140 { 141 return nir_build_alu(build, nir_op_b16any_inequal4, src0, src1, NULL, NULL); 142 } 143 static inline nir_ssa_def * 144 nir_b16any_inequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 145 { 146 return nir_build_alu(build, nir_op_b16any_inequal5, src0, src1, NULL, NULL); 147 } 148 static inline nir_ssa_def * 149 nir_b16any_inequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 150 { 151 return nir_build_alu(build, nir_op_b16any_inequal8, src0, src1, NULL, NULL); 152 } 153 static inline nir_ssa_def * 154 nir_b16csel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 155 { 156 return nir_build_alu(build, nir_op_b16csel, src0, src1, src2, NULL); 157 } 158 static inline nir_ssa_def * 159 nir_b2b1(nir_builder *build, nir_ssa_def *src0) 160 { 161 return nir_build_alu(build, nir_op_b2b1, src0, NULL, NULL, NULL); 162 } 163 static inline nir_ssa_def * 164 nir_b2b16(nir_builder *build, nir_ssa_def *src0) 165 { 166 return nir_build_alu(build, nir_op_b2b16, src0, NULL, NULL, NULL); 167 } 168 static inline nir_ssa_def * 169 nir_b2b32(nir_builder *build, nir_ssa_def *src0) 170 { 171 return nir_build_alu(build, nir_op_b2b32, src0, NULL, NULL, NULL); 172 } 173 static inline nir_ssa_def * 174 nir_b2b8(nir_builder *build, nir_ssa_def *src0) 175 { 176 return nir_build_alu(build, nir_op_b2b8, src0, NULL, NULL, NULL); 177 } 178 static inline nir_ssa_def * 179 nir_b2f16(nir_builder *build, nir_ssa_def *src0) 180 { 181 return nir_build_alu(build, nir_op_b2f16, src0, NULL, NULL, NULL); 182 } 183 static inline nir_ssa_def * 184 nir_b2f32(nir_builder *build, nir_ssa_def *src0) 185 { 186 return nir_build_alu(build, nir_op_b2f32, src0, NULL, NULL, NULL); 187 } 188 static inline nir_ssa_def * 189 nir_b2f64(nir_builder *build, nir_ssa_def *src0) 190 { 191 return nir_build_alu(build, nir_op_b2f64, src0, NULL, NULL, NULL); 192 } 193 static inline nir_ssa_def * 194 nir_b2i1(nir_builder *build, nir_ssa_def *src0) 195 { 196 return nir_build_alu(build, nir_op_b2i1, src0, NULL, NULL, NULL); 197 } 198 static inline nir_ssa_def * 199 nir_b2i16(nir_builder *build, nir_ssa_def *src0) 200 { 201 return nir_build_alu(build, nir_op_b2i16, src0, NULL, NULL, NULL); 202 } 203 static inline nir_ssa_def * 204 nir_b2i32(nir_builder *build, nir_ssa_def *src0) 205 { 206 return nir_build_alu(build, nir_op_b2i32, src0, NULL, NULL, NULL); 207 } 208 static inline nir_ssa_def * 209 nir_b2i64(nir_builder *build, nir_ssa_def *src0) 210 { 211 return nir_build_alu(build, nir_op_b2i64, src0, NULL, NULL, NULL); 212 } 213 static inline nir_ssa_def * 214 nir_b2i8(nir_builder *build, nir_ssa_def *src0) 215 { 216 return nir_build_alu(build, nir_op_b2i8, src0, NULL, NULL, NULL); 217 } 218 static inline nir_ssa_def * 219 nir_b32all_fequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 220 { 221 return nir_build_alu(build, nir_op_b32all_fequal16, src0, src1, NULL, NULL); 222 } 223 static inline nir_ssa_def * 224 nir_b32all_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 225 { 226 return nir_build_alu(build, nir_op_b32all_fequal2, src0, src1, NULL, NULL); 227 } 228 static inline nir_ssa_def * 229 nir_b32all_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 230 { 231 return nir_build_alu(build, nir_op_b32all_fequal3, src0, src1, NULL, NULL); 232 } 233 static inline nir_ssa_def * 234 nir_b32all_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 235 { 236 return nir_build_alu(build, nir_op_b32all_fequal4, src0, src1, NULL, NULL); 237 } 238 static inline nir_ssa_def * 239 nir_b32all_fequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 240 { 241 return nir_build_alu(build, nir_op_b32all_fequal5, src0, src1, NULL, NULL); 242 } 243 static inline nir_ssa_def * 244 nir_b32all_fequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 245 { 246 return nir_build_alu(build, nir_op_b32all_fequal8, src0, src1, NULL, NULL); 247 } 248 static inline nir_ssa_def * 249 nir_b32all_iequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 250 { 251 return nir_build_alu(build, nir_op_b32all_iequal16, src0, src1, NULL, NULL); 252 } 253 static inline nir_ssa_def * 254 nir_b32all_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 255 { 256 return nir_build_alu(build, nir_op_b32all_iequal2, src0, src1, NULL, NULL); 257 } 258 static inline nir_ssa_def * 259 nir_b32all_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 260 { 261 return nir_build_alu(build, nir_op_b32all_iequal3, src0, src1, NULL, NULL); 262 } 263 static inline nir_ssa_def * 264 nir_b32all_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 265 { 266 return nir_build_alu(build, nir_op_b32all_iequal4, src0, src1, NULL, NULL); 267 } 268 static inline nir_ssa_def * 269 nir_b32all_iequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 270 { 271 return nir_build_alu(build, nir_op_b32all_iequal5, src0, src1, NULL, NULL); 272 } 273 static inline nir_ssa_def * 274 nir_b32all_iequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 275 { 276 return nir_build_alu(build, nir_op_b32all_iequal8, src0, src1, NULL, NULL); 277 } 278 static inline nir_ssa_def * 279 nir_b32any_fnequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 280 { 281 return nir_build_alu(build, nir_op_b32any_fnequal16, src0, src1, NULL, NULL); 282 } 283 static inline nir_ssa_def * 284 nir_b32any_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 285 { 286 return nir_build_alu(build, nir_op_b32any_fnequal2, src0, src1, NULL, NULL); 287 } 288 static inline nir_ssa_def * 289 nir_b32any_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 290 { 291 return nir_build_alu(build, nir_op_b32any_fnequal3, src0, src1, NULL, NULL); 292 } 293 static inline nir_ssa_def * 294 nir_b32any_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 295 { 296 return nir_build_alu(build, nir_op_b32any_fnequal4, src0, src1, NULL, NULL); 297 } 298 static inline nir_ssa_def * 299 nir_b32any_fnequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 300 { 301 return nir_build_alu(build, nir_op_b32any_fnequal5, src0, src1, NULL, NULL); 302 } 303 static inline nir_ssa_def * 304 nir_b32any_fnequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 305 { 306 return nir_build_alu(build, nir_op_b32any_fnequal8, src0, src1, NULL, NULL); 307 } 308 static inline nir_ssa_def * 309 nir_b32any_inequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 310 { 311 return nir_build_alu(build, nir_op_b32any_inequal16, src0, src1, NULL, NULL); 312 } 313 static inline nir_ssa_def * 314 nir_b32any_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 315 { 316 return nir_build_alu(build, nir_op_b32any_inequal2, src0, src1, NULL, NULL); 317 } 318 static inline nir_ssa_def * 319 nir_b32any_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 320 { 321 return nir_build_alu(build, nir_op_b32any_inequal3, src0, src1, NULL, NULL); 322 } 323 static inline nir_ssa_def * 324 nir_b32any_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 325 { 326 return nir_build_alu(build, nir_op_b32any_inequal4, src0, src1, NULL, NULL); 327 } 328 static inline nir_ssa_def * 329 nir_b32any_inequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 330 { 331 return nir_build_alu(build, nir_op_b32any_inequal5, src0, src1, NULL, NULL); 332 } 333 static inline nir_ssa_def * 334 nir_b32any_inequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 335 { 336 return nir_build_alu(build, nir_op_b32any_inequal8, src0, src1, NULL, NULL); 337 } 338 static inline nir_ssa_def * 339 nir_b32csel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 340 { 341 return nir_build_alu(build, nir_op_b32csel, src0, src1, src2, NULL); 342 } 343 static inline nir_ssa_def * 344 nir_b8all_fequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 345 { 346 return nir_build_alu(build, nir_op_b8all_fequal16, src0, src1, NULL, NULL); 347 } 348 static inline nir_ssa_def * 349 nir_b8all_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 350 { 351 return nir_build_alu(build, nir_op_b8all_fequal2, src0, src1, NULL, NULL); 352 } 353 static inline nir_ssa_def * 354 nir_b8all_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 355 { 356 return nir_build_alu(build, nir_op_b8all_fequal3, src0, src1, NULL, NULL); 357 } 358 static inline nir_ssa_def * 359 nir_b8all_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 360 { 361 return nir_build_alu(build, nir_op_b8all_fequal4, src0, src1, NULL, NULL); 362 } 363 static inline nir_ssa_def * 364 nir_b8all_fequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 365 { 366 return nir_build_alu(build, nir_op_b8all_fequal5, src0, src1, NULL, NULL); 367 } 368 static inline nir_ssa_def * 369 nir_b8all_fequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 370 { 371 return nir_build_alu(build, nir_op_b8all_fequal8, src0, src1, NULL, NULL); 372 } 373 static inline nir_ssa_def * 374 nir_b8all_iequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 375 { 376 return nir_build_alu(build, nir_op_b8all_iequal16, src0, src1, NULL, NULL); 377 } 378 static inline nir_ssa_def * 379 nir_b8all_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 380 { 381 return nir_build_alu(build, nir_op_b8all_iequal2, src0, src1, NULL, NULL); 382 } 383 static inline nir_ssa_def * 384 nir_b8all_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 385 { 386 return nir_build_alu(build, nir_op_b8all_iequal3, src0, src1, NULL, NULL); 387 } 388 static inline nir_ssa_def * 389 nir_b8all_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 390 { 391 return nir_build_alu(build, nir_op_b8all_iequal4, src0, src1, NULL, NULL); 392 } 393 static inline nir_ssa_def * 394 nir_b8all_iequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 395 { 396 return nir_build_alu(build, nir_op_b8all_iequal5, src0, src1, NULL, NULL); 397 } 398 static inline nir_ssa_def * 399 nir_b8all_iequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 400 { 401 return nir_build_alu(build, nir_op_b8all_iequal8, src0, src1, NULL, NULL); 402 } 403 static inline nir_ssa_def * 404 nir_b8any_fnequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 405 { 406 return nir_build_alu(build, nir_op_b8any_fnequal16, src0, src1, NULL, NULL); 407 } 408 static inline nir_ssa_def * 409 nir_b8any_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 410 { 411 return nir_build_alu(build, nir_op_b8any_fnequal2, src0, src1, NULL, NULL); 412 } 413 static inline nir_ssa_def * 414 nir_b8any_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 415 { 416 return nir_build_alu(build, nir_op_b8any_fnequal3, src0, src1, NULL, NULL); 417 } 418 static inline nir_ssa_def * 419 nir_b8any_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 420 { 421 return nir_build_alu(build, nir_op_b8any_fnequal4, src0, src1, NULL, NULL); 422 } 423 static inline nir_ssa_def * 424 nir_b8any_fnequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 425 { 426 return nir_build_alu(build, nir_op_b8any_fnequal5, src0, src1, NULL, NULL); 427 } 428 static inline nir_ssa_def * 429 nir_b8any_fnequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 430 { 431 return nir_build_alu(build, nir_op_b8any_fnequal8, src0, src1, NULL, NULL); 432 } 433 static inline nir_ssa_def * 434 nir_b8any_inequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 435 { 436 return nir_build_alu(build, nir_op_b8any_inequal16, src0, src1, NULL, NULL); 437 } 438 static inline nir_ssa_def * 439 nir_b8any_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 440 { 441 return nir_build_alu(build, nir_op_b8any_inequal2, src0, src1, NULL, NULL); 442 } 443 static inline nir_ssa_def * 444 nir_b8any_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 445 { 446 return nir_build_alu(build, nir_op_b8any_inequal3, src0, src1, NULL, NULL); 447 } 448 static inline nir_ssa_def * 449 nir_b8any_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 450 { 451 return nir_build_alu(build, nir_op_b8any_inequal4, src0, src1, NULL, NULL); 452 } 453 static inline nir_ssa_def * 454 nir_b8any_inequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 455 { 456 return nir_build_alu(build, nir_op_b8any_inequal5, src0, src1, NULL, NULL); 457 } 458 static inline nir_ssa_def * 459 nir_b8any_inequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 460 { 461 return nir_build_alu(build, nir_op_b8any_inequal8, src0, src1, NULL, NULL); 462 } 463 static inline nir_ssa_def * 464 nir_b8csel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 465 { 466 return nir_build_alu(build, nir_op_b8csel, src0, src1, src2, NULL); 467 } 468 static inline nir_ssa_def * 469 nir_ball_fequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 470 { 471 return nir_build_alu(build, nir_op_ball_fequal16, src0, src1, NULL, NULL); 472 } 473 static inline nir_ssa_def * 474 nir_ball_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 475 { 476 return nir_build_alu(build, nir_op_ball_fequal2, src0, src1, NULL, NULL); 477 } 478 static inline nir_ssa_def * 479 nir_ball_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 480 { 481 return nir_build_alu(build, nir_op_ball_fequal3, src0, src1, NULL, NULL); 482 } 483 static inline nir_ssa_def * 484 nir_ball_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 485 { 486 return nir_build_alu(build, nir_op_ball_fequal4, src0, src1, NULL, NULL); 487 } 488 static inline nir_ssa_def * 489 nir_ball_fequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 490 { 491 return nir_build_alu(build, nir_op_ball_fequal5, src0, src1, NULL, NULL); 492 } 493 static inline nir_ssa_def * 494 nir_ball_fequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 495 { 496 return nir_build_alu(build, nir_op_ball_fequal8, src0, src1, NULL, NULL); 497 } 498 static inline nir_ssa_def * 499 nir_ball_iequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 500 { 501 return nir_build_alu(build, nir_op_ball_iequal16, src0, src1, NULL, NULL); 502 } 503 static inline nir_ssa_def * 504 nir_ball_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 505 { 506 return nir_build_alu(build, nir_op_ball_iequal2, src0, src1, NULL, NULL); 507 } 508 static inline nir_ssa_def * 509 nir_ball_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 510 { 511 return nir_build_alu(build, nir_op_ball_iequal3, src0, src1, NULL, NULL); 512 } 513 static inline nir_ssa_def * 514 nir_ball_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 515 { 516 return nir_build_alu(build, nir_op_ball_iequal4, src0, src1, NULL, NULL); 517 } 518 static inline nir_ssa_def * 519 nir_ball_iequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 520 { 521 return nir_build_alu(build, nir_op_ball_iequal5, src0, src1, NULL, NULL); 522 } 523 static inline nir_ssa_def * 524 nir_ball_iequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 525 { 526 return nir_build_alu(build, nir_op_ball_iequal8, src0, src1, NULL, NULL); 527 } 528 static inline nir_ssa_def * 529 nir_bany_fnequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 530 { 531 return nir_build_alu(build, nir_op_bany_fnequal16, src0, src1, NULL, NULL); 532 } 533 static inline nir_ssa_def * 534 nir_bany_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 535 { 536 return nir_build_alu(build, nir_op_bany_fnequal2, src0, src1, NULL, NULL); 537 } 538 static inline nir_ssa_def * 539 nir_bany_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 540 { 541 return nir_build_alu(build, nir_op_bany_fnequal3, src0, src1, NULL, NULL); 542 } 543 static inline nir_ssa_def * 544 nir_bany_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 545 { 546 return nir_build_alu(build, nir_op_bany_fnequal4, src0, src1, NULL, NULL); 547 } 548 static inline nir_ssa_def * 549 nir_bany_fnequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 550 { 551 return nir_build_alu(build, nir_op_bany_fnequal5, src0, src1, NULL, NULL); 552 } 553 static inline nir_ssa_def * 554 nir_bany_fnequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 555 { 556 return nir_build_alu(build, nir_op_bany_fnequal8, src0, src1, NULL, NULL); 557 } 558 static inline nir_ssa_def * 559 nir_bany_inequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 560 { 561 return nir_build_alu(build, nir_op_bany_inequal16, src0, src1, NULL, NULL); 562 } 563 static inline nir_ssa_def * 564 nir_bany_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 565 { 566 return nir_build_alu(build, nir_op_bany_inequal2, src0, src1, NULL, NULL); 567 } 568 static inline nir_ssa_def * 569 nir_bany_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 570 { 571 return nir_build_alu(build, nir_op_bany_inequal3, src0, src1, NULL, NULL); 572 } 573 static inline nir_ssa_def * 574 nir_bany_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 575 { 576 return nir_build_alu(build, nir_op_bany_inequal4, src0, src1, NULL, NULL); 577 } 578 static inline nir_ssa_def * 579 nir_bany_inequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 580 { 581 return nir_build_alu(build, nir_op_bany_inequal5, src0, src1, NULL, NULL); 582 } 583 static inline nir_ssa_def * 584 nir_bany_inequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 585 { 586 return nir_build_alu(build, nir_op_bany_inequal8, src0, src1, NULL, NULL); 587 } 588 static inline nir_ssa_def * 589 nir_bcsel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 590 { 591 return nir_build_alu(build, nir_op_bcsel, src0, src1, src2, NULL); 592 } 593 static inline nir_ssa_def * 594 nir_bfi(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 595 { 596 return nir_build_alu(build, nir_op_bfi, src0, src1, src2, NULL); 597 } 598 static inline nir_ssa_def * 599 nir_bfm(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 600 { 601 return nir_build_alu(build, nir_op_bfm, src0, src1, NULL, NULL); 602 } 603 static inline nir_ssa_def * 604 nir_bit_count(nir_builder *build, nir_ssa_def *src0) 605 { 606 return nir_build_alu(build, nir_op_bit_count, src0, NULL, NULL, NULL); 607 } 608 static inline nir_ssa_def * 609 nir_bitfield_insert(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 610 { 611 return nir_build_alu(build, nir_op_bitfield_insert, src0, src1, src2, src3); 612 } 613 static inline nir_ssa_def * 614 nir_bitfield_reverse(nir_builder *build, nir_ssa_def *src0) 615 { 616 return nir_build_alu(build, nir_op_bitfield_reverse, src0, NULL, NULL, NULL); 617 } 618 static inline nir_ssa_def * 619 nir_bitfield_select(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 620 { 621 return nir_build_alu(build, nir_op_bitfield_select, src0, src1, src2, NULL); 622 } 623 static inline nir_ssa_def * 624 nir_cube_face_coord_amd(nir_builder *build, nir_ssa_def *src0) 625 { 626 return nir_build_alu(build, nir_op_cube_face_coord_amd, src0, NULL, NULL, NULL); 627 } 628 static inline nir_ssa_def * 629 nir_cube_face_index_amd(nir_builder *build, nir_ssa_def *src0) 630 { 631 return nir_build_alu(build, nir_op_cube_face_index_amd, src0, NULL, NULL, NULL); 632 } 633 static inline nir_ssa_def * 634 nir_cube_r600(nir_builder *build, nir_ssa_def *src0) 635 { 636 return nir_build_alu(build, nir_op_cube_r600, src0, NULL, NULL, NULL); 637 } 638 static inline nir_ssa_def * 639 nir_extract_i16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 640 { 641 return nir_build_alu(build, nir_op_extract_i16, src0, src1, NULL, NULL); 642 } 643 static inline nir_ssa_def * 644 nir_extract_i8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 645 { 646 return nir_build_alu(build, nir_op_extract_i8, src0, src1, NULL, NULL); 647 } 648 static inline nir_ssa_def * 649 nir_extract_u16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 650 { 651 return nir_build_alu(build, nir_op_extract_u16, src0, src1, NULL, NULL); 652 } 653 static inline nir_ssa_def * 654 nir_extract_u8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 655 { 656 return nir_build_alu(build, nir_op_extract_u8, src0, src1, NULL, NULL); 657 } 658 static inline nir_ssa_def * 659 nir_f2b1(nir_builder *build, nir_ssa_def *src0) 660 { 661 return nir_build_alu(build, nir_op_f2b1, src0, NULL, NULL, NULL); 662 } 663 static inline nir_ssa_def * 664 nir_f2b16(nir_builder *build, nir_ssa_def *src0) 665 { 666 return nir_build_alu(build, nir_op_f2b16, src0, NULL, NULL, NULL); 667 } 668 static inline nir_ssa_def * 669 nir_f2b32(nir_builder *build, nir_ssa_def *src0) 670 { 671 return nir_build_alu(build, nir_op_f2b32, src0, NULL, NULL, NULL); 672 } 673 static inline nir_ssa_def * 674 nir_f2b8(nir_builder *build, nir_ssa_def *src0) 675 { 676 return nir_build_alu(build, nir_op_f2b8, src0, NULL, NULL, NULL); 677 } 678 static inline nir_ssa_def * 679 nir_f2f16(nir_builder *build, nir_ssa_def *src0) 680 { 681 return nir_build_alu(build, nir_op_f2f16, src0, NULL, NULL, NULL); 682 } 683 static inline nir_ssa_def * 684 nir_f2f16_rtne(nir_builder *build, nir_ssa_def *src0) 685 { 686 return nir_build_alu(build, nir_op_f2f16_rtne, src0, NULL, NULL, NULL); 687 } 688 static inline nir_ssa_def * 689 nir_f2f16_rtz(nir_builder *build, nir_ssa_def *src0) 690 { 691 return nir_build_alu(build, nir_op_f2f16_rtz, src0, NULL, NULL, NULL); 692 } 693 static inline nir_ssa_def * 694 nir_f2f32(nir_builder *build, nir_ssa_def *src0) 695 { 696 return nir_build_alu(build, nir_op_f2f32, src0, NULL, NULL, NULL); 697 } 698 static inline nir_ssa_def * 699 nir_f2f64(nir_builder *build, nir_ssa_def *src0) 700 { 701 return nir_build_alu(build, nir_op_f2f64, src0, NULL, NULL, NULL); 702 } 703 static inline nir_ssa_def * 704 nir_f2fmp(nir_builder *build, nir_ssa_def *src0) 705 { 706 return nir_build_alu(build, nir_op_f2fmp, src0, NULL, NULL, NULL); 707 } 708 static inline nir_ssa_def * 709 nir_f2i1(nir_builder *build, nir_ssa_def *src0) 710 { 711 return nir_build_alu(build, nir_op_f2i1, src0, NULL, NULL, NULL); 712 } 713 static inline nir_ssa_def * 714 nir_f2i16(nir_builder *build, nir_ssa_def *src0) 715 { 716 return nir_build_alu(build, nir_op_f2i16, src0, NULL, NULL, NULL); 717 } 718 static inline nir_ssa_def * 719 nir_f2i32(nir_builder *build, nir_ssa_def *src0) 720 { 721 return nir_build_alu(build, nir_op_f2i32, src0, NULL, NULL, NULL); 722 } 723 static inline nir_ssa_def * 724 nir_f2i64(nir_builder *build, nir_ssa_def *src0) 725 { 726 return nir_build_alu(build, nir_op_f2i64, src0, NULL, NULL, NULL); 727 } 728 static inline nir_ssa_def * 729 nir_f2i8(nir_builder *build, nir_ssa_def *src0) 730 { 731 return nir_build_alu(build, nir_op_f2i8, src0, NULL, NULL, NULL); 732 } 733 static inline nir_ssa_def * 734 nir_f2imp(nir_builder *build, nir_ssa_def *src0) 735 { 736 return nir_build_alu(build, nir_op_f2imp, src0, NULL, NULL, NULL); 737 } 738 static inline nir_ssa_def * 739 nir_f2u1(nir_builder *build, nir_ssa_def *src0) 740 { 741 return nir_build_alu(build, nir_op_f2u1, src0, NULL, NULL, NULL); 742 } 743 static inline nir_ssa_def * 744 nir_f2u16(nir_builder *build, nir_ssa_def *src0) 745 { 746 return nir_build_alu(build, nir_op_f2u16, src0, NULL, NULL, NULL); 747 } 748 static inline nir_ssa_def * 749 nir_f2u32(nir_builder *build, nir_ssa_def *src0) 750 { 751 return nir_build_alu(build, nir_op_f2u32, src0, NULL, NULL, NULL); 752 } 753 static inline nir_ssa_def * 754 nir_f2u64(nir_builder *build, nir_ssa_def *src0) 755 { 756 return nir_build_alu(build, nir_op_f2u64, src0, NULL, NULL, NULL); 757 } 758 static inline nir_ssa_def * 759 nir_f2u8(nir_builder *build, nir_ssa_def *src0) 760 { 761 return nir_build_alu(build, nir_op_f2u8, src0, NULL, NULL, NULL); 762 } 763 static inline nir_ssa_def * 764 nir_f2ump(nir_builder *build, nir_ssa_def *src0) 765 { 766 return nir_build_alu(build, nir_op_f2ump, src0, NULL, NULL, NULL); 767 } 768 static inline nir_ssa_def * 769 nir_fabs(nir_builder *build, nir_ssa_def *src0) 770 { 771 return nir_build_alu(build, nir_op_fabs, src0, NULL, NULL, NULL); 772 } 773 static inline nir_ssa_def * 774 nir_fadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 775 { 776 return nir_build_alu(build, nir_op_fadd, src0, src1, NULL, NULL); 777 } 778 static inline nir_ssa_def * 779 nir_fall_equal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 780 { 781 return nir_build_alu(build, nir_op_fall_equal16, src0, src1, NULL, NULL); 782 } 783 static inline nir_ssa_def * 784 nir_fall_equal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 785 { 786 return nir_build_alu(build, nir_op_fall_equal2, src0, src1, NULL, NULL); 787 } 788 static inline nir_ssa_def * 789 nir_fall_equal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 790 { 791 return nir_build_alu(build, nir_op_fall_equal3, src0, src1, NULL, NULL); 792 } 793 static inline nir_ssa_def * 794 nir_fall_equal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 795 { 796 return nir_build_alu(build, nir_op_fall_equal4, src0, src1, NULL, NULL); 797 } 798 static inline nir_ssa_def * 799 nir_fall_equal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 800 { 801 return nir_build_alu(build, nir_op_fall_equal5, src0, src1, NULL, NULL); 802 } 803 static inline nir_ssa_def * 804 nir_fall_equal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 805 { 806 return nir_build_alu(build, nir_op_fall_equal8, src0, src1, NULL, NULL); 807 } 808 static inline nir_ssa_def * 809 nir_fany_nequal16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 810 { 811 return nir_build_alu(build, nir_op_fany_nequal16, src0, src1, NULL, NULL); 812 } 813 static inline nir_ssa_def * 814 nir_fany_nequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 815 { 816 return nir_build_alu(build, nir_op_fany_nequal2, src0, src1, NULL, NULL); 817 } 818 static inline nir_ssa_def * 819 nir_fany_nequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 820 { 821 return nir_build_alu(build, nir_op_fany_nequal3, src0, src1, NULL, NULL); 822 } 823 static inline nir_ssa_def * 824 nir_fany_nequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 825 { 826 return nir_build_alu(build, nir_op_fany_nequal4, src0, src1, NULL, NULL); 827 } 828 static inline nir_ssa_def * 829 nir_fany_nequal5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 830 { 831 return nir_build_alu(build, nir_op_fany_nequal5, src0, src1, NULL, NULL); 832 } 833 static inline nir_ssa_def * 834 nir_fany_nequal8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 835 { 836 return nir_build_alu(build, nir_op_fany_nequal8, src0, src1, NULL, NULL); 837 } 838 static inline nir_ssa_def * 839 nir_fceil(nir_builder *build, nir_ssa_def *src0) 840 { 841 return nir_build_alu(build, nir_op_fceil, src0, NULL, NULL, NULL); 842 } 843 static inline nir_ssa_def * 844 nir_fclamp_pos_mali(nir_builder *build, nir_ssa_def *src0) 845 { 846 return nir_build_alu(build, nir_op_fclamp_pos_mali, src0, NULL, NULL, NULL); 847 } 848 static inline nir_ssa_def * 849 nir_fcos(nir_builder *build, nir_ssa_def *src0) 850 { 851 return nir_build_alu(build, nir_op_fcos, src0, NULL, NULL, NULL); 852 } 853 static inline nir_ssa_def * 854 nir_fcos_r600(nir_builder *build, nir_ssa_def *src0) 855 { 856 return nir_build_alu(build, nir_op_fcos_r600, src0, NULL, NULL, NULL); 857 } 858 static inline nir_ssa_def * 859 nir_fcsel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 860 { 861 return nir_build_alu(build, nir_op_fcsel, src0, src1, src2, NULL); 862 } 863 static inline nir_ssa_def * 864 nir_fcsel_ge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 865 { 866 return nir_build_alu(build, nir_op_fcsel_ge, src0, src1, src2, NULL); 867 } 868 static inline nir_ssa_def * 869 nir_fcsel_gt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 870 { 871 return nir_build_alu(build, nir_op_fcsel_gt, src0, src1, src2, NULL); 872 } 873 static inline nir_ssa_def * 874 nir_fddx(nir_builder *build, nir_ssa_def *src0) 875 { 876 return nir_build_alu(build, nir_op_fddx, src0, NULL, NULL, NULL); 877 } 878 static inline nir_ssa_def * 879 nir_fddx_coarse(nir_builder *build, nir_ssa_def *src0) 880 { 881 return nir_build_alu(build, nir_op_fddx_coarse, src0, NULL, NULL, NULL); 882 } 883 static inline nir_ssa_def * 884 nir_fddx_fine(nir_builder *build, nir_ssa_def *src0) 885 { 886 return nir_build_alu(build, nir_op_fddx_fine, src0, NULL, NULL, NULL); 887 } 888 static inline nir_ssa_def * 889 nir_fddx_must_abs_mali(nir_builder *build, nir_ssa_def *src0) 890 { 891 return nir_build_alu(build, nir_op_fddx_must_abs_mali, src0, NULL, NULL, NULL); 892 } 893 static inline nir_ssa_def * 894 nir_fddy(nir_builder *build, nir_ssa_def *src0) 895 { 896 return nir_build_alu(build, nir_op_fddy, src0, NULL, NULL, NULL); 897 } 898 static inline nir_ssa_def * 899 nir_fddy_coarse(nir_builder *build, nir_ssa_def *src0) 900 { 901 return nir_build_alu(build, nir_op_fddy_coarse, src0, NULL, NULL, NULL); 902 } 903 static inline nir_ssa_def * 904 nir_fddy_fine(nir_builder *build, nir_ssa_def *src0) 905 { 906 return nir_build_alu(build, nir_op_fddy_fine, src0, NULL, NULL, NULL); 907 } 908 static inline nir_ssa_def * 909 nir_fddy_must_abs_mali(nir_builder *build, nir_ssa_def *src0) 910 { 911 return nir_build_alu(build, nir_op_fddy_must_abs_mali, src0, NULL, NULL, NULL); 912 } 913 static inline nir_ssa_def * 914 nir_fdiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 915 { 916 return nir_build_alu(build, nir_op_fdiv, src0, src1, NULL, NULL); 917 } 918 static inline nir_ssa_def * 919 nir_fdot16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 920 { 921 return nir_build_alu(build, nir_op_fdot16, src0, src1, NULL, NULL); 922 } 923 static inline nir_ssa_def * 924 nir_fdot16_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 925 { 926 return nir_build_alu(build, nir_op_fdot16_replicated, src0, src1, NULL, NULL); 927 } 928 static inline nir_ssa_def * 929 nir_fdot2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 930 { 931 return nir_build_alu(build, nir_op_fdot2, src0, src1, NULL, NULL); 932 } 933 static inline nir_ssa_def * 934 nir_fdot2_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 935 { 936 return nir_build_alu(build, nir_op_fdot2_replicated, src0, src1, NULL, NULL); 937 } 938 static inline nir_ssa_def * 939 nir_fdot3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 940 { 941 return nir_build_alu(build, nir_op_fdot3, src0, src1, NULL, NULL); 942 } 943 static inline nir_ssa_def * 944 nir_fdot3_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 945 { 946 return nir_build_alu(build, nir_op_fdot3_replicated, src0, src1, NULL, NULL); 947 } 948 static inline nir_ssa_def * 949 nir_fdot4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 950 { 951 return nir_build_alu(build, nir_op_fdot4, src0, src1, NULL, NULL); 952 } 953 static inline nir_ssa_def * 954 nir_fdot4_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 955 { 956 return nir_build_alu(build, nir_op_fdot4_replicated, src0, src1, NULL, NULL); 957 } 958 static inline nir_ssa_def * 959 nir_fdot5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 960 { 961 return nir_build_alu(build, nir_op_fdot5, src0, src1, NULL, NULL); 962 } 963 static inline nir_ssa_def * 964 nir_fdot5_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 965 { 966 return nir_build_alu(build, nir_op_fdot5_replicated, src0, src1, NULL, NULL); 967 } 968 static inline nir_ssa_def * 969 nir_fdot8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 970 { 971 return nir_build_alu(build, nir_op_fdot8, src0, src1, NULL, NULL); 972 } 973 static inline nir_ssa_def * 974 nir_fdot8_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 975 { 976 return nir_build_alu(build, nir_op_fdot8_replicated, src0, src1, NULL, NULL); 977 } 978 static inline nir_ssa_def * 979 nir_fdph(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 980 { 981 return nir_build_alu(build, nir_op_fdph, src0, src1, NULL, NULL); 982 } 983 static inline nir_ssa_def * 984 nir_fdph_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 985 { 986 return nir_build_alu(build, nir_op_fdph_replicated, src0, src1, NULL, NULL); 987 } 988 static inline nir_ssa_def * 989 nir_feq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 990 { 991 return nir_build_alu(build, nir_op_feq, src0, src1, NULL, NULL); 992 } 993 static inline nir_ssa_def * 994 nir_feq16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 995 { 996 return nir_build_alu(build, nir_op_feq16, src0, src1, NULL, NULL); 997 } 998 static inline nir_ssa_def * 999 nir_feq32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1000 { 1001 return nir_build_alu(build, nir_op_feq32, src0, src1, NULL, NULL); 1002 } 1003 static inline nir_ssa_def * 1004 nir_feq8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1005 { 1006 return nir_build_alu(build, nir_op_feq8, src0, src1, NULL, NULL); 1007 } 1008 static inline nir_ssa_def * 1009 nir_fexp2(nir_builder *build, nir_ssa_def *src0) 1010 { 1011 return nir_build_alu(build, nir_op_fexp2, src0, NULL, NULL, NULL); 1012 } 1013 static inline nir_ssa_def * 1014 nir_ffloor(nir_builder *build, nir_ssa_def *src0) 1015 { 1016 return nir_build_alu(build, nir_op_ffloor, src0, NULL, NULL, NULL); 1017 } 1018 static inline nir_ssa_def * 1019 nir_ffma(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1020 { 1021 return nir_build_alu(build, nir_op_ffma, src0, src1, src2, NULL); 1022 } 1023 static inline nir_ssa_def * 1024 nir_ffract(nir_builder *build, nir_ssa_def *src0) 1025 { 1026 return nir_build_alu(build, nir_op_ffract, src0, NULL, NULL, NULL); 1027 } 1028 static inline nir_ssa_def * 1029 nir_fge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1030 { 1031 return nir_build_alu(build, nir_op_fge, src0, src1, NULL, NULL); 1032 } 1033 static inline nir_ssa_def * 1034 nir_fge16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1035 { 1036 return nir_build_alu(build, nir_op_fge16, src0, src1, NULL, NULL); 1037 } 1038 static inline nir_ssa_def * 1039 nir_fge32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1040 { 1041 return nir_build_alu(build, nir_op_fge32, src0, src1, NULL, NULL); 1042 } 1043 static inline nir_ssa_def * 1044 nir_fge8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1045 { 1046 return nir_build_alu(build, nir_op_fge8, src0, src1, NULL, NULL); 1047 } 1048 static inline nir_ssa_def * 1049 nir_find_lsb(nir_builder *build, nir_ssa_def *src0) 1050 { 1051 return nir_build_alu(build, nir_op_find_lsb, src0, NULL, NULL, NULL); 1052 } 1053 static inline nir_ssa_def * 1054 nir_fisfinite(nir_builder *build, nir_ssa_def *src0) 1055 { 1056 return nir_build_alu(build, nir_op_fisfinite, src0, NULL, NULL, NULL); 1057 } 1058 static inline nir_ssa_def * 1059 nir_fisfinite32(nir_builder *build, nir_ssa_def *src0) 1060 { 1061 return nir_build_alu(build, nir_op_fisfinite32, src0, NULL, NULL, NULL); 1062 } 1063 static inline nir_ssa_def * 1064 nir_fisnormal(nir_builder *build, nir_ssa_def *src0) 1065 { 1066 return nir_build_alu(build, nir_op_fisnormal, src0, NULL, NULL, NULL); 1067 } 1068 static inline nir_ssa_def * 1069 nir_flog2(nir_builder *build, nir_ssa_def *src0) 1070 { 1071 return nir_build_alu(build, nir_op_flog2, src0, NULL, NULL, NULL); 1072 } 1073 static inline nir_ssa_def * 1074 nir_flrp(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1075 { 1076 return nir_build_alu(build, nir_op_flrp, src0, src1, src2, NULL); 1077 } 1078 static inline nir_ssa_def * 1079 nir_flt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1080 { 1081 return nir_build_alu(build, nir_op_flt, src0, src1, NULL, NULL); 1082 } 1083 static inline nir_ssa_def * 1084 nir_flt16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1085 { 1086 return nir_build_alu(build, nir_op_flt16, src0, src1, NULL, NULL); 1087 } 1088 static inline nir_ssa_def * 1089 nir_flt32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1090 { 1091 return nir_build_alu(build, nir_op_flt32, src0, src1, NULL, NULL); 1092 } 1093 static inline nir_ssa_def * 1094 nir_flt8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1095 { 1096 return nir_build_alu(build, nir_op_flt8, src0, src1, NULL, NULL); 1097 } 1098 static inline nir_ssa_def * 1099 nir_fmax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1100 { 1101 return nir_build_alu(build, nir_op_fmax, src0, src1, NULL, NULL); 1102 } 1103 static inline nir_ssa_def * 1104 nir_fmin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1105 { 1106 return nir_build_alu(build, nir_op_fmin, src0, src1, NULL, NULL); 1107 } 1108 static inline nir_ssa_def * 1109 nir_fmod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1110 { 1111 return nir_build_alu(build, nir_op_fmod, src0, src1, NULL, NULL); 1112 } 1113 static inline nir_ssa_def * 1114 nir_fmul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1115 { 1116 return nir_build_alu(build, nir_op_fmul, src0, src1, NULL, NULL); 1117 } 1118 static inline nir_ssa_def * 1119 nir_fneg(nir_builder *build, nir_ssa_def *src0) 1120 { 1121 return nir_build_alu(build, nir_op_fneg, src0, NULL, NULL, NULL); 1122 } 1123 static inline nir_ssa_def * 1124 nir_fneu(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1125 { 1126 return nir_build_alu(build, nir_op_fneu, src0, src1, NULL, NULL); 1127 } 1128 static inline nir_ssa_def * 1129 nir_fneu16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1130 { 1131 return nir_build_alu(build, nir_op_fneu16, src0, src1, NULL, NULL); 1132 } 1133 static inline nir_ssa_def * 1134 nir_fneu32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1135 { 1136 return nir_build_alu(build, nir_op_fneu32, src0, src1, NULL, NULL); 1137 } 1138 static inline nir_ssa_def * 1139 nir_fneu8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1140 { 1141 return nir_build_alu(build, nir_op_fneu8, src0, src1, NULL, NULL); 1142 } 1143 static inline nir_ssa_def * 1144 nir_fpow(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1145 { 1146 return nir_build_alu(build, nir_op_fpow, src0, src1, NULL, NULL); 1147 } 1148 static inline nir_ssa_def * 1149 nir_fquantize2f16(nir_builder *build, nir_ssa_def *src0) 1150 { 1151 return nir_build_alu(build, nir_op_fquantize2f16, src0, NULL, NULL, NULL); 1152 } 1153 static inline nir_ssa_def * 1154 nir_frcp(nir_builder *build, nir_ssa_def *src0) 1155 { 1156 return nir_build_alu(build, nir_op_frcp, src0, NULL, NULL, NULL); 1157 } 1158 static inline nir_ssa_def * 1159 nir_frem(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1160 { 1161 return nir_build_alu(build, nir_op_frem, src0, src1, NULL, NULL); 1162 } 1163 static inline nir_ssa_def * 1164 nir_frexp_exp(nir_builder *build, nir_ssa_def *src0) 1165 { 1166 return nir_build_alu(build, nir_op_frexp_exp, src0, NULL, NULL, NULL); 1167 } 1168 static inline nir_ssa_def * 1169 nir_frexp_sig(nir_builder *build, nir_ssa_def *src0) 1170 { 1171 return nir_build_alu(build, nir_op_frexp_sig, src0, NULL, NULL, NULL); 1172 } 1173 static inline nir_ssa_def * 1174 nir_fround_even(nir_builder *build, nir_ssa_def *src0) 1175 { 1176 return nir_build_alu(build, nir_op_fround_even, src0, NULL, NULL, NULL); 1177 } 1178 static inline nir_ssa_def * 1179 nir_frsq(nir_builder *build, nir_ssa_def *src0) 1180 { 1181 return nir_build_alu(build, nir_op_frsq, src0, NULL, NULL, NULL); 1182 } 1183 static inline nir_ssa_def * 1184 nir_fsat(nir_builder *build, nir_ssa_def *src0) 1185 { 1186 return nir_build_alu(build, nir_op_fsat, src0, NULL, NULL, NULL); 1187 } 1188 static inline nir_ssa_def * 1189 nir_fsat_signed_mali(nir_builder *build, nir_ssa_def *src0) 1190 { 1191 return nir_build_alu(build, nir_op_fsat_signed_mali, src0, NULL, NULL, NULL); 1192 } 1193 static inline nir_ssa_def * 1194 nir_fsign(nir_builder *build, nir_ssa_def *src0) 1195 { 1196 return nir_build_alu(build, nir_op_fsign, src0, NULL, NULL, NULL); 1197 } 1198 static inline nir_ssa_def * 1199 nir_fsin(nir_builder *build, nir_ssa_def *src0) 1200 { 1201 return nir_build_alu(build, nir_op_fsin, src0, NULL, NULL, NULL); 1202 } 1203 static inline nir_ssa_def * 1204 nir_fsin_agx(nir_builder *build, nir_ssa_def *src0) 1205 { 1206 return nir_build_alu(build, nir_op_fsin_agx, src0, NULL, NULL, NULL); 1207 } 1208 static inline nir_ssa_def * 1209 nir_fsin_r600(nir_builder *build, nir_ssa_def *src0) 1210 { 1211 return nir_build_alu(build, nir_op_fsin_r600, src0, NULL, NULL, NULL); 1212 } 1213 static inline nir_ssa_def * 1214 nir_fsqrt(nir_builder *build, nir_ssa_def *src0) 1215 { 1216 return nir_build_alu(build, nir_op_fsqrt, src0, NULL, NULL, NULL); 1217 } 1218 static inline nir_ssa_def * 1219 nir_fsub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1220 { 1221 return nir_build_alu(build, nir_op_fsub, src0, src1, NULL, NULL); 1222 } 1223 static inline nir_ssa_def * 1224 nir_fsum2(nir_builder *build, nir_ssa_def *src0) 1225 { 1226 return nir_build_alu(build, nir_op_fsum2, src0, NULL, NULL, NULL); 1227 } 1228 static inline nir_ssa_def * 1229 nir_fsum3(nir_builder *build, nir_ssa_def *src0) 1230 { 1231 return nir_build_alu(build, nir_op_fsum3, src0, NULL, NULL, NULL); 1232 } 1233 static inline nir_ssa_def * 1234 nir_fsum4(nir_builder *build, nir_ssa_def *src0) 1235 { 1236 return nir_build_alu(build, nir_op_fsum4, src0, NULL, NULL, NULL); 1237 } 1238 static inline nir_ssa_def * 1239 nir_ftrunc(nir_builder *build, nir_ssa_def *src0) 1240 { 1241 return nir_build_alu(build, nir_op_ftrunc, src0, NULL, NULL, NULL); 1242 } 1243 static inline nir_ssa_def * 1244 nir_i2b1(nir_builder *build, nir_ssa_def *src0) 1245 { 1246 return nir_build_alu(build, nir_op_i2b1, src0, NULL, NULL, NULL); 1247 } 1248 static inline nir_ssa_def * 1249 nir_i2b16(nir_builder *build, nir_ssa_def *src0) 1250 { 1251 return nir_build_alu(build, nir_op_i2b16, src0, NULL, NULL, NULL); 1252 } 1253 static inline nir_ssa_def * 1254 nir_i2b32(nir_builder *build, nir_ssa_def *src0) 1255 { 1256 return nir_build_alu(build, nir_op_i2b32, src0, NULL, NULL, NULL); 1257 } 1258 static inline nir_ssa_def * 1259 nir_i2b8(nir_builder *build, nir_ssa_def *src0) 1260 { 1261 return nir_build_alu(build, nir_op_i2b8, src0, NULL, NULL, NULL); 1262 } 1263 static inline nir_ssa_def * 1264 nir_i2f16(nir_builder *build, nir_ssa_def *src0) 1265 { 1266 return nir_build_alu(build, nir_op_i2f16, src0, NULL, NULL, NULL); 1267 } 1268 static inline nir_ssa_def * 1269 nir_i2f32(nir_builder *build, nir_ssa_def *src0) 1270 { 1271 return nir_build_alu(build, nir_op_i2f32, src0, NULL, NULL, NULL); 1272 } 1273 static inline nir_ssa_def * 1274 nir_i2f64(nir_builder *build, nir_ssa_def *src0) 1275 { 1276 return nir_build_alu(build, nir_op_i2f64, src0, NULL, NULL, NULL); 1277 } 1278 static inline nir_ssa_def * 1279 nir_i2fmp(nir_builder *build, nir_ssa_def *src0) 1280 { 1281 return nir_build_alu(build, nir_op_i2fmp, src0, NULL, NULL, NULL); 1282 } 1283 static inline nir_ssa_def * 1284 nir_i2i1(nir_builder *build, nir_ssa_def *src0) 1285 { 1286 return nir_build_alu(build, nir_op_i2i1, src0, NULL, NULL, NULL); 1287 } 1288 static inline nir_ssa_def * 1289 nir_i2i16(nir_builder *build, nir_ssa_def *src0) 1290 { 1291 return nir_build_alu(build, nir_op_i2i16, src0, NULL, NULL, NULL); 1292 } 1293 static inline nir_ssa_def * 1294 nir_i2i32(nir_builder *build, nir_ssa_def *src0) 1295 { 1296 return nir_build_alu(build, nir_op_i2i32, src0, NULL, NULL, NULL); 1297 } 1298 static inline nir_ssa_def * 1299 nir_i2i64(nir_builder *build, nir_ssa_def *src0) 1300 { 1301 return nir_build_alu(build, nir_op_i2i64, src0, NULL, NULL, NULL); 1302 } 1303 static inline nir_ssa_def * 1304 nir_i2i8(nir_builder *build, nir_ssa_def *src0) 1305 { 1306 return nir_build_alu(build, nir_op_i2i8, src0, NULL, NULL, NULL); 1307 } 1308 static inline nir_ssa_def * 1309 nir_i2imp(nir_builder *build, nir_ssa_def *src0) 1310 { 1311 return nir_build_alu(build, nir_op_i2imp, src0, NULL, NULL, NULL); 1312 } 1313 static inline nir_ssa_def * 1314 nir_i32csel_ge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1315 { 1316 return nir_build_alu(build, nir_op_i32csel_ge, src0, src1, src2, NULL); 1317 } 1318 static inline nir_ssa_def * 1319 nir_i32csel_gt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1320 { 1321 return nir_build_alu(build, nir_op_i32csel_gt, src0, src1, src2, NULL); 1322 } 1323 static inline nir_ssa_def * 1324 nir_iabs(nir_builder *build, nir_ssa_def *src0) 1325 { 1326 return nir_build_alu(build, nir_op_iabs, src0, NULL, NULL, NULL); 1327 } 1328 static inline nir_ssa_def * 1329 nir_iadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1330 { 1331 return nir_build_alu(build, nir_op_iadd, src0, src1, NULL, NULL); 1332 } 1333 static inline nir_ssa_def * 1334 nir_iadd3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1335 { 1336 return nir_build_alu(build, nir_op_iadd3, src0, src1, src2, NULL); 1337 } 1338 static inline nir_ssa_def * 1339 nir_iadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1340 { 1341 return nir_build_alu(build, nir_op_iadd_sat, src0, src1, NULL, NULL); 1342 } 1343 static inline nir_ssa_def * 1344 nir_iand(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1345 { 1346 return nir_build_alu(build, nir_op_iand, src0, src1, NULL, NULL); 1347 } 1348 static inline nir_ssa_def * 1349 nir_ibfe(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1350 { 1351 return nir_build_alu(build, nir_op_ibfe, src0, src1, src2, NULL); 1352 } 1353 static inline nir_ssa_def * 1354 nir_ibitfield_extract(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1355 { 1356 return nir_build_alu(build, nir_op_ibitfield_extract, src0, src1, src2, NULL); 1357 } 1358 static inline nir_ssa_def * 1359 nir_idiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1360 { 1361 return nir_build_alu(build, nir_op_idiv, src0, src1, NULL, NULL); 1362 } 1363 static inline nir_ssa_def * 1364 nir_ieq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1365 { 1366 return nir_build_alu(build, nir_op_ieq, src0, src1, NULL, NULL); 1367 } 1368 static inline nir_ssa_def * 1369 nir_ieq16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1370 { 1371 return nir_build_alu(build, nir_op_ieq16, src0, src1, NULL, NULL); 1372 } 1373 static inline nir_ssa_def * 1374 nir_ieq32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1375 { 1376 return nir_build_alu(build, nir_op_ieq32, src0, src1, NULL, NULL); 1377 } 1378 static inline nir_ssa_def * 1379 nir_ieq8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1380 { 1381 return nir_build_alu(build, nir_op_ieq8, src0, src1, NULL, NULL); 1382 } 1383 static inline nir_ssa_def * 1384 nir_ifind_msb(nir_builder *build, nir_ssa_def *src0) 1385 { 1386 return nir_build_alu(build, nir_op_ifind_msb, src0, NULL, NULL, NULL); 1387 } 1388 static inline nir_ssa_def * 1389 nir_ifind_msb_rev(nir_builder *build, nir_ssa_def *src0) 1390 { 1391 return nir_build_alu(build, nir_op_ifind_msb_rev, src0, NULL, NULL, NULL); 1392 } 1393 static inline nir_ssa_def * 1394 nir_ige(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1395 { 1396 return nir_build_alu(build, nir_op_ige, src0, src1, NULL, NULL); 1397 } 1398 static inline nir_ssa_def * 1399 nir_ige16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1400 { 1401 return nir_build_alu(build, nir_op_ige16, src0, src1, NULL, NULL); 1402 } 1403 static inline nir_ssa_def * 1404 nir_ige32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1405 { 1406 return nir_build_alu(build, nir_op_ige32, src0, src1, NULL, NULL); 1407 } 1408 static inline nir_ssa_def * 1409 nir_ige8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1410 { 1411 return nir_build_alu(build, nir_op_ige8, src0, src1, NULL, NULL); 1412 } 1413 static inline nir_ssa_def * 1414 nir_ihadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1415 { 1416 return nir_build_alu(build, nir_op_ihadd, src0, src1, NULL, NULL); 1417 } 1418 static inline nir_ssa_def * 1419 nir_ilt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1420 { 1421 return nir_build_alu(build, nir_op_ilt, src0, src1, NULL, NULL); 1422 } 1423 static inline nir_ssa_def * 1424 nir_ilt16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1425 { 1426 return nir_build_alu(build, nir_op_ilt16, src0, src1, NULL, NULL); 1427 } 1428 static inline nir_ssa_def * 1429 nir_ilt32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1430 { 1431 return nir_build_alu(build, nir_op_ilt32, src0, src1, NULL, NULL); 1432 } 1433 static inline nir_ssa_def * 1434 nir_ilt8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1435 { 1436 return nir_build_alu(build, nir_op_ilt8, src0, src1, NULL, NULL); 1437 } 1438 static inline nir_ssa_def * 1439 nir_imad24_ir3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1440 { 1441 return nir_build_alu(build, nir_op_imad24_ir3, src0, src1, src2, NULL); 1442 } 1443 static inline nir_ssa_def * 1444 nir_imadsh_mix16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1445 { 1446 return nir_build_alu(build, nir_op_imadsh_mix16, src0, src1, src2, NULL); 1447 } 1448 static inline nir_ssa_def * 1449 nir_imax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1450 { 1451 return nir_build_alu(build, nir_op_imax, src0, src1, NULL, NULL); 1452 } 1453 static inline nir_ssa_def * 1454 nir_imin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1455 { 1456 return nir_build_alu(build, nir_op_imin, src0, src1, NULL, NULL); 1457 } 1458 static inline nir_ssa_def * 1459 nir_imod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1460 { 1461 return nir_build_alu(build, nir_op_imod, src0, src1, NULL, NULL); 1462 } 1463 static inline nir_ssa_def * 1464 nir_imul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1465 { 1466 return nir_build_alu(build, nir_op_imul, src0, src1, NULL, NULL); 1467 } 1468 static inline nir_ssa_def * 1469 nir_imul24(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1470 { 1471 return nir_build_alu(build, nir_op_imul24, src0, src1, NULL, NULL); 1472 } 1473 static inline nir_ssa_def * 1474 nir_imul24_relaxed(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1475 { 1476 return nir_build_alu(build, nir_op_imul24_relaxed, src0, src1, NULL, NULL); 1477 } 1478 static inline nir_ssa_def * 1479 nir_imul_2x32_64(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1480 { 1481 return nir_build_alu(build, nir_op_imul_2x32_64, src0, src1, NULL, NULL); 1482 } 1483 static inline nir_ssa_def * 1484 nir_imul_32x16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1485 { 1486 return nir_build_alu(build, nir_op_imul_32x16, src0, src1, NULL, NULL); 1487 } 1488 static inline nir_ssa_def * 1489 nir_imul_high(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1490 { 1491 return nir_build_alu(build, nir_op_imul_high, src0, src1, NULL, NULL); 1492 } 1493 static inline nir_ssa_def * 1494 nir_ine(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1495 { 1496 return nir_build_alu(build, nir_op_ine, src0, src1, NULL, NULL); 1497 } 1498 static inline nir_ssa_def * 1499 nir_ine16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1500 { 1501 return nir_build_alu(build, nir_op_ine16, src0, src1, NULL, NULL); 1502 } 1503 static inline nir_ssa_def * 1504 nir_ine32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1505 { 1506 return nir_build_alu(build, nir_op_ine32, src0, src1, NULL, NULL); 1507 } 1508 static inline nir_ssa_def * 1509 nir_ine8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1510 { 1511 return nir_build_alu(build, nir_op_ine8, src0, src1, NULL, NULL); 1512 } 1513 static inline nir_ssa_def * 1514 nir_ineg(nir_builder *build, nir_ssa_def *src0) 1515 { 1516 return nir_build_alu(build, nir_op_ineg, src0, NULL, NULL, NULL); 1517 } 1518 static inline nir_ssa_def * 1519 nir_inot(nir_builder *build, nir_ssa_def *src0) 1520 { 1521 return nir_build_alu(build, nir_op_inot, src0, NULL, NULL, NULL); 1522 } 1523 static inline nir_ssa_def * 1524 nir_insert_u16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1525 { 1526 return nir_build_alu(build, nir_op_insert_u16, src0, src1, NULL, NULL); 1527 } 1528 static inline nir_ssa_def * 1529 nir_insert_u8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1530 { 1531 return nir_build_alu(build, nir_op_insert_u8, src0, src1, NULL, NULL); 1532 } 1533 static inline nir_ssa_def * 1534 nir_ior(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1535 { 1536 return nir_build_alu(build, nir_op_ior, src0, src1, NULL, NULL); 1537 } 1538 static inline nir_ssa_def * 1539 nir_irem(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1540 { 1541 return nir_build_alu(build, nir_op_irem, src0, src1, NULL, NULL); 1542 } 1543 static inline nir_ssa_def * 1544 nir_irhadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1545 { 1546 return nir_build_alu(build, nir_op_irhadd, src0, src1, NULL, NULL); 1547 } 1548 static inline nir_ssa_def * 1549 nir_ishl(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1550 { 1551 return nir_build_alu(build, nir_op_ishl, src0, src1, NULL, NULL); 1552 } 1553 static inline nir_ssa_def * 1554 nir_ishr(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1555 { 1556 return nir_build_alu(build, nir_op_ishr, src0, src1, NULL, NULL); 1557 } 1558 static inline nir_ssa_def * 1559 nir_isign(nir_builder *build, nir_ssa_def *src0) 1560 { 1561 return nir_build_alu(build, nir_op_isign, src0, NULL, NULL, NULL); 1562 } 1563 static inline nir_ssa_def * 1564 nir_isub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1565 { 1566 return nir_build_alu(build, nir_op_isub, src0, src1, NULL, NULL); 1567 } 1568 static inline nir_ssa_def * 1569 nir_isub_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1570 { 1571 return nir_build_alu(build, nir_op_isub_sat, src0, src1, NULL, NULL); 1572 } 1573 static inline nir_ssa_def * 1574 nir_ixor(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1575 { 1576 return nir_build_alu(build, nir_op_ixor, src0, src1, NULL, NULL); 1577 } 1578 static inline nir_ssa_def * 1579 nir_ldexp(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1580 { 1581 return nir_build_alu(build, nir_op_ldexp, src0, src1, NULL, NULL); 1582 } 1583 static inline nir_ssa_def * 1584 nir_mov(nir_builder *build, nir_ssa_def *src0) 1585 { 1586 return nir_build_alu(build, nir_op_mov, src0, NULL, NULL, NULL); 1587 } 1588 static inline nir_ssa_def * 1589 nir_pack_32_2x16(nir_builder *build, nir_ssa_def *src0) 1590 { 1591 return nir_build_alu(build, nir_op_pack_32_2x16, src0, NULL, NULL, NULL); 1592 } 1593 static inline nir_ssa_def * 1594 nir_pack_32_2x16_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1595 { 1596 return nir_build_alu(build, nir_op_pack_32_2x16_split, src0, src1, NULL, NULL); 1597 } 1598 static inline nir_ssa_def * 1599 nir_pack_32_4x8(nir_builder *build, nir_ssa_def *src0) 1600 { 1601 return nir_build_alu(build, nir_op_pack_32_4x8, src0, NULL, NULL, NULL); 1602 } 1603 static inline nir_ssa_def * 1604 nir_pack_32_4x8_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 1605 { 1606 return nir_build_alu(build, nir_op_pack_32_4x8_split, src0, src1, src2, src3); 1607 } 1608 static inline nir_ssa_def * 1609 nir_pack_64_2x32(nir_builder *build, nir_ssa_def *src0) 1610 { 1611 return nir_build_alu(build, nir_op_pack_64_2x32, src0, NULL, NULL, NULL); 1612 } 1613 static inline nir_ssa_def * 1614 nir_pack_64_2x32_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1615 { 1616 return nir_build_alu(build, nir_op_pack_64_2x32_split, src0, src1, NULL, NULL); 1617 } 1618 static inline nir_ssa_def * 1619 nir_pack_64_4x16(nir_builder *build, nir_ssa_def *src0) 1620 { 1621 return nir_build_alu(build, nir_op_pack_64_4x16, src0, NULL, NULL, NULL); 1622 } 1623 static inline nir_ssa_def * 1624 nir_pack_double_2x32_dxil(nir_builder *build, nir_ssa_def *src0) 1625 { 1626 return nir_build_alu(build, nir_op_pack_double_2x32_dxil, src0, NULL, NULL, NULL); 1627 } 1628 static inline nir_ssa_def * 1629 nir_pack_half_2x16(nir_builder *build, nir_ssa_def *src0) 1630 { 1631 return nir_build_alu(build, nir_op_pack_half_2x16, src0, NULL, NULL, NULL); 1632 } 1633 static inline nir_ssa_def * 1634 nir_pack_half_2x16_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1635 { 1636 return nir_build_alu(build, nir_op_pack_half_2x16_split, src0, src1, NULL, NULL); 1637 } 1638 static inline nir_ssa_def * 1639 nir_pack_snorm_2x16(nir_builder *build, nir_ssa_def *src0) 1640 { 1641 return nir_build_alu(build, nir_op_pack_snorm_2x16, src0, NULL, NULL, NULL); 1642 } 1643 static inline nir_ssa_def * 1644 nir_pack_snorm_4x8(nir_builder *build, nir_ssa_def *src0) 1645 { 1646 return nir_build_alu(build, nir_op_pack_snorm_4x8, src0, NULL, NULL, NULL); 1647 } 1648 static inline nir_ssa_def * 1649 nir_pack_unorm_2x16(nir_builder *build, nir_ssa_def *src0) 1650 { 1651 return nir_build_alu(build, nir_op_pack_unorm_2x16, src0, NULL, NULL, NULL); 1652 } 1653 static inline nir_ssa_def * 1654 nir_pack_unorm_4x8(nir_builder *build, nir_ssa_def *src0) 1655 { 1656 return nir_build_alu(build, nir_op_pack_unorm_4x8, src0, NULL, NULL, NULL); 1657 } 1658 static inline nir_ssa_def * 1659 nir_pack_uvec2_to_uint(nir_builder *build, nir_ssa_def *src0) 1660 { 1661 return nir_build_alu(build, nir_op_pack_uvec2_to_uint, src0, NULL, NULL, NULL); 1662 } 1663 static inline nir_ssa_def * 1664 nir_pack_uvec4_to_uint(nir_builder *build, nir_ssa_def *src0) 1665 { 1666 return nir_build_alu(build, nir_op_pack_uvec4_to_uint, src0, NULL, NULL, NULL); 1667 } 1668 static inline nir_ssa_def * 1669 nir_sad_u8x4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1670 { 1671 return nir_build_alu(build, nir_op_sad_u8x4, src0, src1, src2, NULL); 1672 } 1673 static inline nir_ssa_def * 1674 nir_sdot_2x16_iadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1675 { 1676 return nir_build_alu(build, nir_op_sdot_2x16_iadd, src0, src1, src2, NULL); 1677 } 1678 static inline nir_ssa_def * 1679 nir_sdot_2x16_iadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1680 { 1681 return nir_build_alu(build, nir_op_sdot_2x16_iadd_sat, src0, src1, src2, NULL); 1682 } 1683 static inline nir_ssa_def * 1684 nir_sdot_4x8_iadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1685 { 1686 return nir_build_alu(build, nir_op_sdot_4x8_iadd, src0, src1, src2, NULL); 1687 } 1688 static inline nir_ssa_def * 1689 nir_sdot_4x8_iadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1690 { 1691 return nir_build_alu(build, nir_op_sdot_4x8_iadd_sat, src0, src1, src2, NULL); 1692 } 1693 static inline nir_ssa_def * 1694 nir_seq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1695 { 1696 return nir_build_alu(build, nir_op_seq, src0, src1, NULL, NULL); 1697 } 1698 static inline nir_ssa_def * 1699 nir_sge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1700 { 1701 return nir_build_alu(build, nir_op_sge, src0, src1, NULL, NULL); 1702 } 1703 static inline nir_ssa_def * 1704 nir_slt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1705 { 1706 return nir_build_alu(build, nir_op_slt, src0, src1, NULL, NULL); 1707 } 1708 static inline nir_ssa_def * 1709 nir_sne(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1710 { 1711 return nir_build_alu(build, nir_op_sne, src0, src1, NULL, NULL); 1712 } 1713 static inline nir_ssa_def * 1714 nir_sudot_4x8_iadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1715 { 1716 return nir_build_alu(build, nir_op_sudot_4x8_iadd, src0, src1, src2, NULL); 1717 } 1718 static inline nir_ssa_def * 1719 nir_sudot_4x8_iadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1720 { 1721 return nir_build_alu(build, nir_op_sudot_4x8_iadd_sat, src0, src1, src2, NULL); 1722 } 1723 static inline nir_ssa_def * 1724 nir_u2f16(nir_builder *build, nir_ssa_def *src0) 1725 { 1726 return nir_build_alu(build, nir_op_u2f16, src0, NULL, NULL, NULL); 1727 } 1728 static inline nir_ssa_def * 1729 nir_u2f32(nir_builder *build, nir_ssa_def *src0) 1730 { 1731 return nir_build_alu(build, nir_op_u2f32, src0, NULL, NULL, NULL); 1732 } 1733 static inline nir_ssa_def * 1734 nir_u2f64(nir_builder *build, nir_ssa_def *src0) 1735 { 1736 return nir_build_alu(build, nir_op_u2f64, src0, NULL, NULL, NULL); 1737 } 1738 static inline nir_ssa_def * 1739 nir_u2fmp(nir_builder *build, nir_ssa_def *src0) 1740 { 1741 return nir_build_alu(build, nir_op_u2fmp, src0, NULL, NULL, NULL); 1742 } 1743 static inline nir_ssa_def * 1744 nir_u2u1(nir_builder *build, nir_ssa_def *src0) 1745 { 1746 return nir_build_alu(build, nir_op_u2u1, src0, NULL, NULL, NULL); 1747 } 1748 static inline nir_ssa_def * 1749 nir_u2u16(nir_builder *build, nir_ssa_def *src0) 1750 { 1751 return nir_build_alu(build, nir_op_u2u16, src0, NULL, NULL, NULL); 1752 } 1753 static inline nir_ssa_def * 1754 nir_u2u32(nir_builder *build, nir_ssa_def *src0) 1755 { 1756 return nir_build_alu(build, nir_op_u2u32, src0, NULL, NULL, NULL); 1757 } 1758 static inline nir_ssa_def * 1759 nir_u2u64(nir_builder *build, nir_ssa_def *src0) 1760 { 1761 return nir_build_alu(build, nir_op_u2u64, src0, NULL, NULL, NULL); 1762 } 1763 static inline nir_ssa_def * 1764 nir_u2u8(nir_builder *build, nir_ssa_def *src0) 1765 { 1766 return nir_build_alu(build, nir_op_u2u8, src0, NULL, NULL, NULL); 1767 } 1768 static inline nir_ssa_def * 1769 nir_uabs_isub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1770 { 1771 return nir_build_alu(build, nir_op_uabs_isub, src0, src1, NULL, NULL); 1772 } 1773 static inline nir_ssa_def * 1774 nir_uabs_usub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1775 { 1776 return nir_build_alu(build, nir_op_uabs_usub, src0, src1, NULL, NULL); 1777 } 1778 static inline nir_ssa_def * 1779 nir_uadd_carry(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1780 { 1781 return nir_build_alu(build, nir_op_uadd_carry, src0, src1, NULL, NULL); 1782 } 1783 static inline nir_ssa_def * 1784 nir_uadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1785 { 1786 return nir_build_alu(build, nir_op_uadd_sat, src0, src1, NULL, NULL); 1787 } 1788 static inline nir_ssa_def * 1789 nir_ubfe(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1790 { 1791 return nir_build_alu(build, nir_op_ubfe, src0, src1, src2, NULL); 1792 } 1793 static inline nir_ssa_def * 1794 nir_ubitfield_extract(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1795 { 1796 return nir_build_alu(build, nir_op_ubitfield_extract, src0, src1, src2, NULL); 1797 } 1798 static inline nir_ssa_def * 1799 nir_uclz(nir_builder *build, nir_ssa_def *src0) 1800 { 1801 return nir_build_alu(build, nir_op_uclz, src0, NULL, NULL, NULL); 1802 } 1803 static inline nir_ssa_def * 1804 nir_udiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1805 { 1806 return nir_build_alu(build, nir_op_udiv, src0, src1, NULL, NULL); 1807 } 1808 static inline nir_ssa_def * 1809 nir_udot_2x16_uadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1810 { 1811 return nir_build_alu(build, nir_op_udot_2x16_uadd, src0, src1, src2, NULL); 1812 } 1813 static inline nir_ssa_def * 1814 nir_udot_2x16_uadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1815 { 1816 return nir_build_alu(build, nir_op_udot_2x16_uadd_sat, src0, src1, src2, NULL); 1817 } 1818 static inline nir_ssa_def * 1819 nir_udot_4x8_uadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1820 { 1821 return nir_build_alu(build, nir_op_udot_4x8_uadd, src0, src1, src2, NULL); 1822 } 1823 static inline nir_ssa_def * 1824 nir_udot_4x8_uadd_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1825 { 1826 return nir_build_alu(build, nir_op_udot_4x8_uadd_sat, src0, src1, src2, NULL); 1827 } 1828 static inline nir_ssa_def * 1829 nir_ufind_msb(nir_builder *build, nir_ssa_def *src0) 1830 { 1831 return nir_build_alu(build, nir_op_ufind_msb, src0, NULL, NULL, NULL); 1832 } 1833 static inline nir_ssa_def * 1834 nir_ufind_msb_rev(nir_builder *build, nir_ssa_def *src0) 1835 { 1836 return nir_build_alu(build, nir_op_ufind_msb_rev, src0, NULL, NULL, NULL); 1837 } 1838 static inline nir_ssa_def * 1839 nir_uge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1840 { 1841 return nir_build_alu(build, nir_op_uge, src0, src1, NULL, NULL); 1842 } 1843 static inline nir_ssa_def * 1844 nir_uge16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1845 { 1846 return nir_build_alu(build, nir_op_uge16, src0, src1, NULL, NULL); 1847 } 1848 static inline nir_ssa_def * 1849 nir_uge32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1850 { 1851 return nir_build_alu(build, nir_op_uge32, src0, src1, NULL, NULL); 1852 } 1853 static inline nir_ssa_def * 1854 nir_uge8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1855 { 1856 return nir_build_alu(build, nir_op_uge8, src0, src1, NULL, NULL); 1857 } 1858 static inline nir_ssa_def * 1859 nir_uhadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1860 { 1861 return nir_build_alu(build, nir_op_uhadd, src0, src1, NULL, NULL); 1862 } 1863 static inline nir_ssa_def * 1864 nir_ult(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1865 { 1866 return nir_build_alu(build, nir_op_ult, src0, src1, NULL, NULL); 1867 } 1868 static inline nir_ssa_def * 1869 nir_ult16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1870 { 1871 return nir_build_alu(build, nir_op_ult16, src0, src1, NULL, NULL); 1872 } 1873 static inline nir_ssa_def * 1874 nir_ult32(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1875 { 1876 return nir_build_alu(build, nir_op_ult32, src0, src1, NULL, NULL); 1877 } 1878 static inline nir_ssa_def * 1879 nir_ult8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1880 { 1881 return nir_build_alu(build, nir_op_ult8, src0, src1, NULL, NULL); 1882 } 1883 static inline nir_ssa_def * 1884 nir_umad24(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1885 { 1886 return nir_build_alu(build, nir_op_umad24, src0, src1, src2, NULL); 1887 } 1888 static inline nir_ssa_def * 1889 nir_umad24_relaxed(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 1890 { 1891 return nir_build_alu(build, nir_op_umad24_relaxed, src0, src1, src2, NULL); 1892 } 1893 static inline nir_ssa_def * 1894 nir_umax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1895 { 1896 return nir_build_alu(build, nir_op_umax, src0, src1, NULL, NULL); 1897 } 1898 static inline nir_ssa_def * 1899 nir_umax_4x8_vc4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1900 { 1901 return nir_build_alu(build, nir_op_umax_4x8_vc4, src0, src1, NULL, NULL); 1902 } 1903 static inline nir_ssa_def * 1904 nir_umin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1905 { 1906 return nir_build_alu(build, nir_op_umin, src0, src1, NULL, NULL); 1907 } 1908 static inline nir_ssa_def * 1909 nir_umin_4x8_vc4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1910 { 1911 return nir_build_alu(build, nir_op_umin_4x8_vc4, src0, src1, NULL, NULL); 1912 } 1913 static inline nir_ssa_def * 1914 nir_umod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1915 { 1916 return nir_build_alu(build, nir_op_umod, src0, src1, NULL, NULL); 1917 } 1918 static inline nir_ssa_def * 1919 nir_umul24(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1920 { 1921 return nir_build_alu(build, nir_op_umul24, src0, src1, NULL, NULL); 1922 } 1923 static inline nir_ssa_def * 1924 nir_umul24_relaxed(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1925 { 1926 return nir_build_alu(build, nir_op_umul24_relaxed, src0, src1, NULL, NULL); 1927 } 1928 static inline nir_ssa_def * 1929 nir_umul_2x32_64(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1930 { 1931 return nir_build_alu(build, nir_op_umul_2x32_64, src0, src1, NULL, NULL); 1932 } 1933 static inline nir_ssa_def * 1934 nir_umul_32x16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1935 { 1936 return nir_build_alu(build, nir_op_umul_32x16, src0, src1, NULL, NULL); 1937 } 1938 static inline nir_ssa_def * 1939 nir_umul_high(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1940 { 1941 return nir_build_alu(build, nir_op_umul_high, src0, src1, NULL, NULL); 1942 } 1943 static inline nir_ssa_def * 1944 nir_umul_low(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1945 { 1946 return nir_build_alu(build, nir_op_umul_low, src0, src1, NULL, NULL); 1947 } 1948 static inline nir_ssa_def * 1949 nir_umul_unorm_4x8_vc4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 1950 { 1951 return nir_build_alu(build, nir_op_umul_unorm_4x8_vc4, src0, src1, NULL, NULL); 1952 } 1953 static inline nir_ssa_def * 1954 nir_unpack_32_2x16(nir_builder *build, nir_ssa_def *src0) 1955 { 1956 return nir_build_alu(build, nir_op_unpack_32_2x16, src0, NULL, NULL, NULL); 1957 } 1958 static inline nir_ssa_def * 1959 nir_unpack_32_2x16_split_x(nir_builder *build, nir_ssa_def *src0) 1960 { 1961 return nir_build_alu(build, nir_op_unpack_32_2x16_split_x, src0, NULL, NULL, NULL); 1962 } 1963 static inline nir_ssa_def * 1964 nir_unpack_32_2x16_split_y(nir_builder *build, nir_ssa_def *src0) 1965 { 1966 return nir_build_alu(build, nir_op_unpack_32_2x16_split_y, src0, NULL, NULL, NULL); 1967 } 1968 static inline nir_ssa_def * 1969 nir_unpack_32_4x8(nir_builder *build, nir_ssa_def *src0) 1970 { 1971 return nir_build_alu(build, nir_op_unpack_32_4x8, src0, NULL, NULL, NULL); 1972 } 1973 static inline nir_ssa_def * 1974 nir_unpack_64_2x32(nir_builder *build, nir_ssa_def *src0) 1975 { 1976 return nir_build_alu(build, nir_op_unpack_64_2x32, src0, NULL, NULL, NULL); 1977 } 1978 static inline nir_ssa_def * 1979 nir_unpack_64_2x32_split_x(nir_builder *build, nir_ssa_def *src0) 1980 { 1981 return nir_build_alu(build, nir_op_unpack_64_2x32_split_x, src0, NULL, NULL, NULL); 1982 } 1983 static inline nir_ssa_def * 1984 nir_unpack_64_2x32_split_y(nir_builder *build, nir_ssa_def *src0) 1985 { 1986 return nir_build_alu(build, nir_op_unpack_64_2x32_split_y, src0, NULL, NULL, NULL); 1987 } 1988 static inline nir_ssa_def * 1989 nir_unpack_64_4x16(nir_builder *build, nir_ssa_def *src0) 1990 { 1991 return nir_build_alu(build, nir_op_unpack_64_4x16, src0, NULL, NULL, NULL); 1992 } 1993 static inline nir_ssa_def * 1994 nir_unpack_double_2x32_dxil(nir_builder *build, nir_ssa_def *src0) 1995 { 1996 return nir_build_alu(build, nir_op_unpack_double_2x32_dxil, src0, NULL, NULL, NULL); 1997 } 1998 static inline nir_ssa_def * 1999 nir_unpack_half_2x16(nir_builder *build, nir_ssa_def *src0) 2000 { 2001 return nir_build_alu(build, nir_op_unpack_half_2x16, src0, NULL, NULL, NULL); 2002 } 2003 static inline nir_ssa_def * 2004 nir_unpack_half_2x16_flush_to_zero(nir_builder *build, nir_ssa_def *src0) 2005 { 2006 return nir_build_alu(build, nir_op_unpack_half_2x16_flush_to_zero, src0, NULL, NULL, NULL); 2007 } 2008 static inline nir_ssa_def * 2009 nir_unpack_half_2x16_split_x(nir_builder *build, nir_ssa_def *src0) 2010 { 2011 return nir_build_alu(build, nir_op_unpack_half_2x16_split_x, src0, NULL, NULL, NULL); 2012 } 2013 static inline nir_ssa_def * 2014 nir_unpack_half_2x16_split_x_flush_to_zero(nir_builder *build, nir_ssa_def *src0) 2015 { 2016 return nir_build_alu(build, nir_op_unpack_half_2x16_split_x_flush_to_zero, src0, NULL, NULL, NULL); 2017 } 2018 static inline nir_ssa_def * 2019 nir_unpack_half_2x16_split_y(nir_builder *build, nir_ssa_def *src0) 2020 { 2021 return nir_build_alu(build, nir_op_unpack_half_2x16_split_y, src0, NULL, NULL, NULL); 2022 } 2023 static inline nir_ssa_def * 2024 nir_unpack_half_2x16_split_y_flush_to_zero(nir_builder *build, nir_ssa_def *src0) 2025 { 2026 return nir_build_alu(build, nir_op_unpack_half_2x16_split_y_flush_to_zero, src0, NULL, NULL, NULL); 2027 } 2028 static inline nir_ssa_def * 2029 nir_unpack_snorm_2x16(nir_builder *build, nir_ssa_def *src0) 2030 { 2031 return nir_build_alu(build, nir_op_unpack_snorm_2x16, src0, NULL, NULL, NULL); 2032 } 2033 static inline nir_ssa_def * 2034 nir_unpack_snorm_4x8(nir_builder *build, nir_ssa_def *src0) 2035 { 2036 return nir_build_alu(build, nir_op_unpack_snorm_4x8, src0, NULL, NULL, NULL); 2037 } 2038 static inline nir_ssa_def * 2039 nir_unpack_unorm_2x16(nir_builder *build, nir_ssa_def *src0) 2040 { 2041 return nir_build_alu(build, nir_op_unpack_unorm_2x16, src0, NULL, NULL, NULL); 2042 } 2043 static inline nir_ssa_def * 2044 nir_unpack_unorm_4x8(nir_builder *build, nir_ssa_def *src0) 2045 { 2046 return nir_build_alu(build, nir_op_unpack_unorm_4x8, src0, NULL, NULL, NULL); 2047 } 2048 static inline nir_ssa_def * 2049 nir_urhadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2050 { 2051 return nir_build_alu(build, nir_op_urhadd, src0, src1, NULL, NULL); 2052 } 2053 static inline nir_ssa_def * 2054 nir_urol(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2055 { 2056 return nir_build_alu(build, nir_op_urol, src0, src1, NULL, NULL); 2057 } 2058 static inline nir_ssa_def * 2059 nir_uror(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2060 { 2061 return nir_build_alu(build, nir_op_uror, src0, src1, NULL, NULL); 2062 } 2063 static inline nir_ssa_def * 2064 nir_usadd_4x8_vc4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2065 { 2066 return nir_build_alu(build, nir_op_usadd_4x8_vc4, src0, src1, NULL, NULL); 2067 } 2068 static inline nir_ssa_def * 2069 nir_ushr(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2070 { 2071 return nir_build_alu(build, nir_op_ushr, src0, src1, NULL, NULL); 2072 } 2073 static inline nir_ssa_def * 2074 nir_ussub_4x8_vc4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2075 { 2076 return nir_build_alu(build, nir_op_ussub_4x8_vc4, src0, src1, NULL, NULL); 2077 } 2078 static inline nir_ssa_def * 2079 nir_usub_borrow(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2080 { 2081 return nir_build_alu(build, nir_op_usub_borrow, src0, src1, NULL, NULL); 2082 } 2083 static inline nir_ssa_def * 2084 nir_usub_sat(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2085 { 2086 return nir_build_alu(build, nir_op_usub_sat, src0, src1, NULL, NULL); 2087 } 2088 static inline nir_ssa_def * 2089 nir_vec16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, nir_ssa_def *src5, nir_ssa_def *src6, nir_ssa_def *src7, nir_ssa_def *src8, nir_ssa_def *src9, nir_ssa_def *src10, nir_ssa_def *src11, nir_ssa_def *src12, nir_ssa_def *src13, nir_ssa_def *src14, nir_ssa_def *src15) 2090 { 2091 nir_ssa_def *srcs[16] = {src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15}; 2092 return nir_build_alu_src_arr(build, nir_op_vec16, srcs); 2093 } 2094 static inline nir_ssa_def * 2095 nir_vec2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 2096 { 2097 return nir_build_alu(build, nir_op_vec2, src0, src1, NULL, NULL); 2098 } 2099 static inline nir_ssa_def * 2100 nir_vec3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 2101 { 2102 return nir_build_alu(build, nir_op_vec3, src0, src1, src2, NULL); 2103 } 2104 static inline nir_ssa_def * 2105 nir_vec4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 2106 { 2107 return nir_build_alu(build, nir_op_vec4, src0, src1, src2, src3); 2108 } 2109 static inline nir_ssa_def * 2110 nir_vec5(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4) 2111 { 2112 nir_ssa_def *srcs[5] = {src0, src1, src2, src3, src4}; 2113 return nir_build_alu_src_arr(build, nir_op_vec5, srcs); 2114 } 2115 static inline nir_ssa_def * 2116 nir_vec8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, nir_ssa_def *src5, nir_ssa_def *src6, nir_ssa_def *src7) 2117 { 2118 nir_ssa_def *srcs[8] = {src0, src1, src2, src3, src4, src5, src6, src7}; 2119 return nir_build_alu_src_arr(build, nir_op_vec8, srcs); 2120 } 2121 2122 struct _nir_accept_ray_intersection_indices { 2123 int _; /* exists to avoid empty initializers */ 2124 }; 2125 struct _nir_addr_mode_is_indices { 2126 int _; /* exists to avoid empty initializers */ 2127 nir_variable_mode memory_modes; 2128 }; 2129 struct _nir_alloc_vertices_and_primitives_amd_indices { 2130 int _; /* exists to avoid empty initializers */ 2131 }; 2132 struct _nir_atomic_counter_add_indices { 2133 int _; /* exists to avoid empty initializers */ 2134 int base; 2135 }; 2136 struct _nir_atomic_counter_add_deref_indices { 2137 int _; /* exists to avoid empty initializers */ 2138 }; 2139 struct _nir_atomic_counter_and_indices { 2140 int _; /* exists to avoid empty initializers */ 2141 int base; 2142 }; 2143 struct _nir_atomic_counter_and_deref_indices { 2144 int _; /* exists to avoid empty initializers */ 2145 }; 2146 struct _nir_atomic_counter_comp_swap_indices { 2147 int _; /* exists to avoid empty initializers */ 2148 int base; 2149 }; 2150 struct _nir_atomic_counter_comp_swap_deref_indices { 2151 int _; /* exists to avoid empty initializers */ 2152 }; 2153 struct _nir_atomic_counter_exchange_indices { 2154 int _; /* exists to avoid empty initializers */ 2155 int base; 2156 }; 2157 struct _nir_atomic_counter_exchange_deref_indices { 2158 int _; /* exists to avoid empty initializers */ 2159 }; 2160 struct _nir_atomic_counter_inc_indices { 2161 int _; /* exists to avoid empty initializers */ 2162 int base; 2163 }; 2164 struct _nir_atomic_counter_inc_deref_indices { 2165 int _; /* exists to avoid empty initializers */ 2166 }; 2167 struct _nir_atomic_counter_max_indices { 2168 int _; /* exists to avoid empty initializers */ 2169 int base; 2170 }; 2171 struct _nir_atomic_counter_max_deref_indices { 2172 int _; /* exists to avoid empty initializers */ 2173 }; 2174 struct _nir_atomic_counter_min_indices { 2175 int _; /* exists to avoid empty initializers */ 2176 int base; 2177 }; 2178 struct _nir_atomic_counter_min_deref_indices { 2179 int _; /* exists to avoid empty initializers */ 2180 }; 2181 struct _nir_atomic_counter_or_indices { 2182 int _; /* exists to avoid empty initializers */ 2183 int base; 2184 }; 2185 struct _nir_atomic_counter_or_deref_indices { 2186 int _; /* exists to avoid empty initializers */ 2187 }; 2188 struct _nir_atomic_counter_post_dec_indices { 2189 int _; /* exists to avoid empty initializers */ 2190 int base; 2191 }; 2192 struct _nir_atomic_counter_post_dec_deref_indices { 2193 int _; /* exists to avoid empty initializers */ 2194 }; 2195 struct _nir_atomic_counter_pre_dec_indices { 2196 int _; /* exists to avoid empty initializers */ 2197 int base; 2198 }; 2199 struct _nir_atomic_counter_pre_dec_deref_indices { 2200 int _; /* exists to avoid empty initializers */ 2201 }; 2202 struct _nir_atomic_counter_read_indices { 2203 int _; /* exists to avoid empty initializers */ 2204 int base; 2205 }; 2206 struct _nir_atomic_counter_read_deref_indices { 2207 int _; /* exists to avoid empty initializers */ 2208 }; 2209 struct _nir_atomic_counter_xor_indices { 2210 int _; /* exists to avoid empty initializers */ 2211 int base; 2212 }; 2213 struct _nir_atomic_counter_xor_deref_indices { 2214 int _; /* exists to avoid empty initializers */ 2215 }; 2216 struct _nir_ballot_indices { 2217 int _; /* exists to avoid empty initializers */ 2218 }; 2219 struct _nir_ballot_bit_count_exclusive_indices { 2220 int _; /* exists to avoid empty initializers */ 2221 }; 2222 struct _nir_ballot_bit_count_inclusive_indices { 2223 int _; /* exists to avoid empty initializers */ 2224 }; 2225 struct _nir_ballot_bit_count_reduce_indices { 2226 int _; /* exists to avoid empty initializers */ 2227 }; 2228 struct _nir_ballot_bitfield_extract_indices { 2229 int _; /* exists to avoid empty initializers */ 2230 }; 2231 struct _nir_ballot_find_lsb_indices { 2232 int _; /* exists to avoid empty initializers */ 2233 }; 2234 struct _nir_ballot_find_msb_indices { 2235 int _; /* exists to avoid empty initializers */ 2236 }; 2237 struct _nir_begin_invocation_interlock_indices { 2238 int _; /* exists to avoid empty initializers */ 2239 }; 2240 struct _nir_bindless_image_atomic_add_indices { 2241 int _; /* exists to avoid empty initializers */ 2242 enum glsl_sampler_dim image_dim; 2243 bool image_array; 2244 enum pipe_format format; 2245 enum gl_access_qualifier access; 2246 }; 2247 struct _nir_bindless_image_atomic_and_indices { 2248 int _; /* exists to avoid empty initializers */ 2249 enum glsl_sampler_dim image_dim; 2250 bool image_array; 2251 enum pipe_format format; 2252 enum gl_access_qualifier access; 2253 }; 2254 struct _nir_bindless_image_atomic_comp_swap_indices { 2255 int _; /* exists to avoid empty initializers */ 2256 enum glsl_sampler_dim image_dim; 2257 bool image_array; 2258 enum pipe_format format; 2259 enum gl_access_qualifier access; 2260 }; 2261 struct _nir_bindless_image_atomic_dec_wrap_indices { 2262 int _; /* exists to avoid empty initializers */ 2263 enum glsl_sampler_dim image_dim; 2264 bool image_array; 2265 enum pipe_format format; 2266 enum gl_access_qualifier access; 2267 }; 2268 struct _nir_bindless_image_atomic_exchange_indices { 2269 int _; /* exists to avoid empty initializers */ 2270 enum glsl_sampler_dim image_dim; 2271 bool image_array; 2272 enum pipe_format format; 2273 enum gl_access_qualifier access; 2274 }; 2275 struct _nir_bindless_image_atomic_fadd_indices { 2276 int _; /* exists to avoid empty initializers */ 2277 enum glsl_sampler_dim image_dim; 2278 bool image_array; 2279 enum pipe_format format; 2280 enum gl_access_qualifier access; 2281 }; 2282 struct _nir_bindless_image_atomic_fmax_indices { 2283 int _; /* exists to avoid empty initializers */ 2284 enum glsl_sampler_dim image_dim; 2285 bool image_array; 2286 enum pipe_format format; 2287 enum gl_access_qualifier access; 2288 }; 2289 struct _nir_bindless_image_atomic_fmin_indices { 2290 int _; /* exists to avoid empty initializers */ 2291 enum glsl_sampler_dim image_dim; 2292 bool image_array; 2293 enum pipe_format format; 2294 enum gl_access_qualifier access; 2295 }; 2296 struct _nir_bindless_image_atomic_imax_indices { 2297 int _; /* exists to avoid empty initializers */ 2298 enum glsl_sampler_dim image_dim; 2299 bool image_array; 2300 enum pipe_format format; 2301 enum gl_access_qualifier access; 2302 }; 2303 struct _nir_bindless_image_atomic_imin_indices { 2304 int _; /* exists to avoid empty initializers */ 2305 enum glsl_sampler_dim image_dim; 2306 bool image_array; 2307 enum pipe_format format; 2308 enum gl_access_qualifier access; 2309 }; 2310 struct _nir_bindless_image_atomic_inc_wrap_indices { 2311 int _; /* exists to avoid empty initializers */ 2312 enum glsl_sampler_dim image_dim; 2313 bool image_array; 2314 enum pipe_format format; 2315 enum gl_access_qualifier access; 2316 }; 2317 struct _nir_bindless_image_atomic_or_indices { 2318 int _; /* exists to avoid empty initializers */ 2319 enum glsl_sampler_dim image_dim; 2320 bool image_array; 2321 enum pipe_format format; 2322 enum gl_access_qualifier access; 2323 }; 2324 struct _nir_bindless_image_atomic_umax_indices { 2325 int _; /* exists to avoid empty initializers */ 2326 enum glsl_sampler_dim image_dim; 2327 bool image_array; 2328 enum pipe_format format; 2329 enum gl_access_qualifier access; 2330 }; 2331 struct _nir_bindless_image_atomic_umin_indices { 2332 int _; /* exists to avoid empty initializers */ 2333 enum glsl_sampler_dim image_dim; 2334 bool image_array; 2335 enum pipe_format format; 2336 enum gl_access_qualifier access; 2337 }; 2338 struct _nir_bindless_image_atomic_xor_indices { 2339 int _; /* exists to avoid empty initializers */ 2340 enum glsl_sampler_dim image_dim; 2341 bool image_array; 2342 enum pipe_format format; 2343 enum gl_access_qualifier access; 2344 }; 2345 struct _nir_bindless_image_format_indices { 2346 int _; /* exists to avoid empty initializers */ 2347 enum glsl_sampler_dim image_dim; 2348 bool image_array; 2349 enum pipe_format format; 2350 enum gl_access_qualifier access; 2351 }; 2352 struct _nir_bindless_image_load_indices { 2353 int _; /* exists to avoid empty initializers */ 2354 enum glsl_sampler_dim image_dim; 2355 bool image_array; 2356 enum pipe_format format; 2357 enum gl_access_qualifier access; 2358 nir_alu_type dest_type; 2359 }; 2360 struct _nir_bindless_image_load_raw_intel_indices { 2361 int _; /* exists to avoid empty initializers */ 2362 enum glsl_sampler_dim image_dim; 2363 bool image_array; 2364 enum pipe_format format; 2365 enum gl_access_qualifier access; 2366 }; 2367 struct _nir_bindless_image_order_indices { 2368 int _; /* exists to avoid empty initializers */ 2369 enum glsl_sampler_dim image_dim; 2370 bool image_array; 2371 enum pipe_format format; 2372 enum gl_access_qualifier access; 2373 }; 2374 struct _nir_bindless_image_samples_indices { 2375 int _; /* exists to avoid empty initializers */ 2376 enum glsl_sampler_dim image_dim; 2377 bool image_array; 2378 enum pipe_format format; 2379 enum gl_access_qualifier access; 2380 }; 2381 struct _nir_bindless_image_size_indices { 2382 int _; /* exists to avoid empty initializers */ 2383 enum glsl_sampler_dim image_dim; 2384 bool image_array; 2385 enum pipe_format format; 2386 enum gl_access_qualifier access; 2387 }; 2388 struct _nir_bindless_image_sparse_load_indices { 2389 int _; /* exists to avoid empty initializers */ 2390 enum glsl_sampler_dim image_dim; 2391 bool image_array; 2392 enum pipe_format format; 2393 enum gl_access_qualifier access; 2394 nir_alu_type dest_type; 2395 }; 2396 struct _nir_bindless_image_store_indices { 2397 int _; /* exists to avoid empty initializers */ 2398 enum glsl_sampler_dim image_dim; 2399 bool image_array; 2400 enum pipe_format format; 2401 enum gl_access_qualifier access; 2402 nir_alu_type src_type; 2403 }; 2404 struct _nir_bindless_image_store_raw_intel_indices { 2405 int _; /* exists to avoid empty initializers */ 2406 enum glsl_sampler_dim image_dim; 2407 bool image_array; 2408 enum pipe_format format; 2409 enum gl_access_qualifier access; 2410 }; 2411 struct _nir_bindless_resource_ir3_indices { 2412 int _; /* exists to avoid empty initializers */ 2413 unsigned desc_set; 2414 }; 2415 struct _nir_btd_retire_intel_indices { 2416 int _; /* exists to avoid empty initializers */ 2417 }; 2418 struct _nir_btd_spawn_intel_indices { 2419 int _; /* exists to avoid empty initializers */ 2420 }; 2421 struct _nir_btd_stack_push_intel_indices { 2422 int _; /* exists to avoid empty initializers */ 2423 unsigned stack_size; 2424 }; 2425 struct _nir_bvh64_intersect_ray_amd_indices { 2426 int _; /* exists to avoid empty initializers */ 2427 }; 2428 struct _nir_byte_permute_amd_indices { 2429 int _; /* exists to avoid empty initializers */ 2430 }; 2431 struct _nir_cond_end_ir3_indices { 2432 int _; /* exists to avoid empty initializers */ 2433 }; 2434 struct _nir_control_barrier_indices { 2435 int _; /* exists to avoid empty initializers */ 2436 }; 2437 struct _nir_convert_alu_types_indices { 2438 int _; /* exists to avoid empty initializers */ 2439 nir_alu_type src_type; 2440 nir_alu_type dest_type; 2441 nir_rounding_mode rounding_mode; 2442 unsigned saturate; 2443 }; 2444 struct _nir_copy_deref_indices { 2445 int _; /* exists to avoid empty initializers */ 2446 enum gl_access_qualifier dst_access; 2447 enum gl_access_qualifier src_access; 2448 }; 2449 struct _nir_demote_indices { 2450 int _; /* exists to avoid empty initializers */ 2451 }; 2452 struct _nir_demote_if_indices { 2453 int _; /* exists to avoid empty initializers */ 2454 }; 2455 struct _nir_deref_atomic_add_indices { 2456 int _; /* exists to avoid empty initializers */ 2457 enum gl_access_qualifier access; 2458 }; 2459 struct _nir_deref_atomic_and_indices { 2460 int _; /* exists to avoid empty initializers */ 2461 enum gl_access_qualifier access; 2462 }; 2463 struct _nir_deref_atomic_comp_swap_indices { 2464 int _; /* exists to avoid empty initializers */ 2465 enum gl_access_qualifier access; 2466 }; 2467 struct _nir_deref_atomic_exchange_indices { 2468 int _; /* exists to avoid empty initializers */ 2469 enum gl_access_qualifier access; 2470 }; 2471 struct _nir_deref_atomic_fadd_indices { 2472 int _; /* exists to avoid empty initializers */ 2473 enum gl_access_qualifier access; 2474 }; 2475 struct _nir_deref_atomic_fcomp_swap_indices { 2476 int _; /* exists to avoid empty initializers */ 2477 enum gl_access_qualifier access; 2478 }; 2479 struct _nir_deref_atomic_fmax_indices { 2480 int _; /* exists to avoid empty initializers */ 2481 enum gl_access_qualifier access; 2482 }; 2483 struct _nir_deref_atomic_fmin_indices { 2484 int _; /* exists to avoid empty initializers */ 2485 enum gl_access_qualifier access; 2486 }; 2487 struct _nir_deref_atomic_imax_indices { 2488 int _; /* exists to avoid empty initializers */ 2489 enum gl_access_qualifier access; 2490 }; 2491 struct _nir_deref_atomic_imin_indices { 2492 int _; /* exists to avoid empty initializers */ 2493 enum gl_access_qualifier access; 2494 }; 2495 struct _nir_deref_atomic_or_indices { 2496 int _; /* exists to avoid empty initializers */ 2497 enum gl_access_qualifier access; 2498 }; 2499 struct _nir_deref_atomic_umax_indices { 2500 int _; /* exists to avoid empty initializers */ 2501 enum gl_access_qualifier access; 2502 }; 2503 struct _nir_deref_atomic_umin_indices { 2504 int _; /* exists to avoid empty initializers */ 2505 enum gl_access_qualifier access; 2506 }; 2507 struct _nir_deref_atomic_xor_indices { 2508 int _; /* exists to avoid empty initializers */ 2509 enum gl_access_qualifier access; 2510 }; 2511 struct _nir_deref_buffer_array_length_indices { 2512 int _; /* exists to avoid empty initializers */ 2513 enum gl_access_qualifier access; 2514 }; 2515 struct _nir_deref_mode_is_indices { 2516 int _; /* exists to avoid empty initializers */ 2517 nir_variable_mode memory_modes; 2518 }; 2519 struct _nir_discard_indices { 2520 int _; /* exists to avoid empty initializers */ 2521 }; 2522 struct _nir_discard_if_indices { 2523 int _; /* exists to avoid empty initializers */ 2524 }; 2525 struct _nir_elect_indices { 2526 int _; /* exists to avoid empty initializers */ 2527 }; 2528 struct _nir_emit_vertex_indices { 2529 int _; /* exists to avoid empty initializers */ 2530 unsigned stream_id; 2531 }; 2532 struct _nir_emit_vertex_with_counter_indices { 2533 int _; /* exists to avoid empty initializers */ 2534 unsigned stream_id; 2535 }; 2536 struct _nir_end_invocation_interlock_indices { 2537 int _; /* exists to avoid empty initializers */ 2538 }; 2539 struct _nir_end_patch_ir3_indices { 2540 int _; /* exists to avoid empty initializers */ 2541 }; 2542 struct _nir_end_primitive_indices { 2543 int _; /* exists to avoid empty initializers */ 2544 unsigned stream_id; 2545 }; 2546 struct _nir_end_primitive_with_counter_indices { 2547 int _; /* exists to avoid empty initializers */ 2548 unsigned stream_id; 2549 }; 2550 struct _nir_exclusive_scan_indices { 2551 int _; /* exists to avoid empty initializers */ 2552 unsigned reduction_op; 2553 }; 2554 struct _nir_execute_callable_indices { 2555 int _; /* exists to avoid empty initializers */ 2556 }; 2557 struct _nir_export_primitive_amd_indices { 2558 int _; /* exists to avoid empty initializers */ 2559 }; 2560 struct _nir_export_vertex_amd_indices { 2561 int _; /* exists to avoid empty initializers */ 2562 }; 2563 struct _nir_first_invocation_indices { 2564 int _; /* exists to avoid empty initializers */ 2565 }; 2566 struct _nir_gds_atomic_add_amd_indices { 2567 int _; /* exists to avoid empty initializers */ 2568 int base; 2569 }; 2570 struct _nir_get_ssbo_size_indices { 2571 int _; /* exists to avoid empty initializers */ 2572 enum gl_access_qualifier access; 2573 }; 2574 struct _nir_get_ubo_size_indices { 2575 int _; /* exists to avoid empty initializers */ 2576 }; 2577 struct _nir_global_atomic_add_indices { 2578 int _; /* exists to avoid empty initializers */ 2579 int base; 2580 }; 2581 struct _nir_global_atomic_and_indices { 2582 int _; /* exists to avoid empty initializers */ 2583 int base; 2584 }; 2585 struct _nir_global_atomic_comp_swap_indices { 2586 int _; /* exists to avoid empty initializers */ 2587 int base; 2588 }; 2589 struct _nir_global_atomic_exchange_indices { 2590 int _; /* exists to avoid empty initializers */ 2591 int base; 2592 }; 2593 struct _nir_global_atomic_fadd_indices { 2594 int _; /* exists to avoid empty initializers */ 2595 int base; 2596 }; 2597 struct _nir_global_atomic_fcomp_swap_indices { 2598 int _; /* exists to avoid empty initializers */ 2599 int base; 2600 }; 2601 struct _nir_global_atomic_fmax_indices { 2602 int _; /* exists to avoid empty initializers */ 2603 int base; 2604 }; 2605 struct _nir_global_atomic_fmin_indices { 2606 int _; /* exists to avoid empty initializers */ 2607 int base; 2608 }; 2609 struct _nir_global_atomic_imax_indices { 2610 int _; /* exists to avoid empty initializers */ 2611 int base; 2612 }; 2613 struct _nir_global_atomic_imin_indices { 2614 int _; /* exists to avoid empty initializers */ 2615 int base; 2616 }; 2617 struct _nir_global_atomic_or_indices { 2618 int _; /* exists to avoid empty initializers */ 2619 int base; 2620 }; 2621 struct _nir_global_atomic_umax_indices { 2622 int _; /* exists to avoid empty initializers */ 2623 int base; 2624 }; 2625 struct _nir_global_atomic_umin_indices { 2626 int _; /* exists to avoid empty initializers */ 2627 int base; 2628 }; 2629 struct _nir_global_atomic_xor_indices { 2630 int _; /* exists to avoid empty initializers */ 2631 int base; 2632 }; 2633 struct _nir_group_memory_barrier_indices { 2634 int _; /* exists to avoid empty initializers */ 2635 }; 2636 struct _nir_has_input_primitive_amd_indices { 2637 int _; /* exists to avoid empty initializers */ 2638 }; 2639 struct _nir_has_input_vertex_amd_indices { 2640 int _; /* exists to avoid empty initializers */ 2641 }; 2642 struct _nir_ignore_ray_intersection_indices { 2643 int _; /* exists to avoid empty initializers */ 2644 }; 2645 struct _nir_image_atomic_add_indices { 2646 int _; /* exists to avoid empty initializers */ 2647 enum glsl_sampler_dim image_dim; 2648 bool image_array; 2649 enum pipe_format format; 2650 enum gl_access_qualifier access; 2651 }; 2652 struct _nir_image_atomic_and_indices { 2653 int _; /* exists to avoid empty initializers */ 2654 enum glsl_sampler_dim image_dim; 2655 bool image_array; 2656 enum pipe_format format; 2657 enum gl_access_qualifier access; 2658 }; 2659 struct _nir_image_atomic_comp_swap_indices { 2660 int _; /* exists to avoid empty initializers */ 2661 enum glsl_sampler_dim image_dim; 2662 bool image_array; 2663 enum pipe_format format; 2664 enum gl_access_qualifier access; 2665 }; 2666 struct _nir_image_atomic_dec_wrap_indices { 2667 int _; /* exists to avoid empty initializers */ 2668 enum glsl_sampler_dim image_dim; 2669 bool image_array; 2670 enum pipe_format format; 2671 enum gl_access_qualifier access; 2672 }; 2673 struct _nir_image_atomic_exchange_indices { 2674 int _; /* exists to avoid empty initializers */ 2675 enum glsl_sampler_dim image_dim; 2676 bool image_array; 2677 enum pipe_format format; 2678 enum gl_access_qualifier access; 2679 }; 2680 struct _nir_image_atomic_fadd_indices { 2681 int _; /* exists to avoid empty initializers */ 2682 enum glsl_sampler_dim image_dim; 2683 bool image_array; 2684 enum pipe_format format; 2685 enum gl_access_qualifier access; 2686 }; 2687 struct _nir_image_atomic_fmax_indices { 2688 int _; /* exists to avoid empty initializers */ 2689 enum glsl_sampler_dim image_dim; 2690 bool image_array; 2691 enum pipe_format format; 2692 enum gl_access_qualifier access; 2693 }; 2694 struct _nir_image_atomic_fmin_indices { 2695 int _; /* exists to avoid empty initializers */ 2696 enum glsl_sampler_dim image_dim; 2697 bool image_array; 2698 enum pipe_format format; 2699 enum gl_access_qualifier access; 2700 }; 2701 struct _nir_image_atomic_imax_indices { 2702 int _; /* exists to avoid empty initializers */ 2703 enum glsl_sampler_dim image_dim; 2704 bool image_array; 2705 enum pipe_format format; 2706 enum gl_access_qualifier access; 2707 }; 2708 struct _nir_image_atomic_imin_indices { 2709 int _; /* exists to avoid empty initializers */ 2710 enum glsl_sampler_dim image_dim; 2711 bool image_array; 2712 enum pipe_format format; 2713 enum gl_access_qualifier access; 2714 }; 2715 struct _nir_image_atomic_inc_wrap_indices { 2716 int _; /* exists to avoid empty initializers */ 2717 enum glsl_sampler_dim image_dim; 2718 bool image_array; 2719 enum pipe_format format; 2720 enum gl_access_qualifier access; 2721 }; 2722 struct _nir_image_atomic_or_indices { 2723 int _; /* exists to avoid empty initializers */ 2724 enum glsl_sampler_dim image_dim; 2725 bool image_array; 2726 enum pipe_format format; 2727 enum gl_access_qualifier access; 2728 }; 2729 struct _nir_image_atomic_umax_indices { 2730 int _; /* exists to avoid empty initializers */ 2731 enum glsl_sampler_dim image_dim; 2732 bool image_array; 2733 enum pipe_format format; 2734 enum gl_access_qualifier access; 2735 }; 2736 struct _nir_image_atomic_umin_indices { 2737 int _; /* exists to avoid empty initializers */ 2738 enum glsl_sampler_dim image_dim; 2739 bool image_array; 2740 enum pipe_format format; 2741 enum gl_access_qualifier access; 2742 }; 2743 struct _nir_image_atomic_xor_indices { 2744 int _; /* exists to avoid empty initializers */ 2745 enum glsl_sampler_dim image_dim; 2746 bool image_array; 2747 enum pipe_format format; 2748 enum gl_access_qualifier access; 2749 }; 2750 struct _nir_image_deref_atomic_add_indices { 2751 int _; /* exists to avoid empty initializers */ 2752 enum glsl_sampler_dim image_dim; 2753 bool image_array; 2754 enum pipe_format format; 2755 enum gl_access_qualifier access; 2756 }; 2757 struct _nir_image_deref_atomic_and_indices { 2758 int _; /* exists to avoid empty initializers */ 2759 enum glsl_sampler_dim image_dim; 2760 bool image_array; 2761 enum pipe_format format; 2762 enum gl_access_qualifier access; 2763 }; 2764 struct _nir_image_deref_atomic_comp_swap_indices { 2765 int _; /* exists to avoid empty initializers */ 2766 enum glsl_sampler_dim image_dim; 2767 bool image_array; 2768 enum pipe_format format; 2769 enum gl_access_qualifier access; 2770 }; 2771 struct _nir_image_deref_atomic_dec_wrap_indices { 2772 int _; /* exists to avoid empty initializers */ 2773 enum glsl_sampler_dim image_dim; 2774 bool image_array; 2775 enum pipe_format format; 2776 enum gl_access_qualifier access; 2777 }; 2778 struct _nir_image_deref_atomic_exchange_indices { 2779 int _; /* exists to avoid empty initializers */ 2780 enum glsl_sampler_dim image_dim; 2781 bool image_array; 2782 enum pipe_format format; 2783 enum gl_access_qualifier access; 2784 }; 2785 struct _nir_image_deref_atomic_fadd_indices { 2786 int _; /* exists to avoid empty initializers */ 2787 enum glsl_sampler_dim image_dim; 2788 bool image_array; 2789 enum pipe_format format; 2790 enum gl_access_qualifier access; 2791 }; 2792 struct _nir_image_deref_atomic_fmax_indices { 2793 int _; /* exists to avoid empty initializers */ 2794 enum glsl_sampler_dim image_dim; 2795 bool image_array; 2796 enum pipe_format format; 2797 enum gl_access_qualifier access; 2798 }; 2799 struct _nir_image_deref_atomic_fmin_indices { 2800 int _; /* exists to avoid empty initializers */ 2801 enum glsl_sampler_dim image_dim; 2802 bool image_array; 2803 enum pipe_format format; 2804 enum gl_access_qualifier access; 2805 }; 2806 struct _nir_image_deref_atomic_imax_indices { 2807 int _; /* exists to avoid empty initializers */ 2808 enum glsl_sampler_dim image_dim; 2809 bool image_array; 2810 enum pipe_format format; 2811 enum gl_access_qualifier access; 2812 }; 2813 struct _nir_image_deref_atomic_imin_indices { 2814 int _; /* exists to avoid empty initializers */ 2815 enum glsl_sampler_dim image_dim; 2816 bool image_array; 2817 enum pipe_format format; 2818 enum gl_access_qualifier access; 2819 }; 2820 struct _nir_image_deref_atomic_inc_wrap_indices { 2821 int _; /* exists to avoid empty initializers */ 2822 enum glsl_sampler_dim image_dim; 2823 bool image_array; 2824 enum pipe_format format; 2825 enum gl_access_qualifier access; 2826 }; 2827 struct _nir_image_deref_atomic_or_indices { 2828 int _; /* exists to avoid empty initializers */ 2829 enum glsl_sampler_dim image_dim; 2830 bool image_array; 2831 enum pipe_format format; 2832 enum gl_access_qualifier access; 2833 }; 2834 struct _nir_image_deref_atomic_umax_indices { 2835 int _; /* exists to avoid empty initializers */ 2836 enum glsl_sampler_dim image_dim; 2837 bool image_array; 2838 enum pipe_format format; 2839 enum gl_access_qualifier access; 2840 }; 2841 struct _nir_image_deref_atomic_umin_indices { 2842 int _; /* exists to avoid empty initializers */ 2843 enum glsl_sampler_dim image_dim; 2844 bool image_array; 2845 enum pipe_format format; 2846 enum gl_access_qualifier access; 2847 }; 2848 struct _nir_image_deref_atomic_xor_indices { 2849 int _; /* exists to avoid empty initializers */ 2850 enum glsl_sampler_dim image_dim; 2851 bool image_array; 2852 enum pipe_format format; 2853 enum gl_access_qualifier access; 2854 }; 2855 struct _nir_image_deref_format_indices { 2856 int _; /* exists to avoid empty initializers */ 2857 enum glsl_sampler_dim image_dim; 2858 bool image_array; 2859 enum pipe_format format; 2860 enum gl_access_qualifier access; 2861 }; 2862 struct _nir_image_deref_load_indices { 2863 int _; /* exists to avoid empty initializers */ 2864 enum glsl_sampler_dim image_dim; 2865 bool image_array; 2866 enum pipe_format format; 2867 enum gl_access_qualifier access; 2868 nir_alu_type dest_type; 2869 }; 2870 struct _nir_image_deref_load_param_intel_indices { 2871 int _; /* exists to avoid empty initializers */ 2872 int base; 2873 }; 2874 struct _nir_image_deref_load_raw_intel_indices { 2875 int _; /* exists to avoid empty initializers */ 2876 enum glsl_sampler_dim image_dim; 2877 bool image_array; 2878 enum pipe_format format; 2879 enum gl_access_qualifier access; 2880 }; 2881 struct _nir_image_deref_order_indices { 2882 int _; /* exists to avoid empty initializers */ 2883 enum glsl_sampler_dim image_dim; 2884 bool image_array; 2885 enum pipe_format format; 2886 enum gl_access_qualifier access; 2887 }; 2888 struct _nir_image_deref_samples_indices { 2889 int _; /* exists to avoid empty initializers */ 2890 enum glsl_sampler_dim image_dim; 2891 bool image_array; 2892 enum pipe_format format; 2893 enum gl_access_qualifier access; 2894 }; 2895 struct _nir_image_deref_size_indices { 2896 int _; /* exists to avoid empty initializers */ 2897 enum glsl_sampler_dim image_dim; 2898 bool image_array; 2899 enum pipe_format format; 2900 enum gl_access_qualifier access; 2901 }; 2902 struct _nir_image_deref_sparse_load_indices { 2903 int _; /* exists to avoid empty initializers */ 2904 enum glsl_sampler_dim image_dim; 2905 bool image_array; 2906 enum pipe_format format; 2907 enum gl_access_qualifier access; 2908 nir_alu_type dest_type; 2909 }; 2910 struct _nir_image_deref_store_indices { 2911 int _; /* exists to avoid empty initializers */ 2912 enum glsl_sampler_dim image_dim; 2913 bool image_array; 2914 enum pipe_format format; 2915 enum gl_access_qualifier access; 2916 nir_alu_type src_type; 2917 }; 2918 struct _nir_image_deref_store_raw_intel_indices { 2919 int _; /* exists to avoid empty initializers */ 2920 enum glsl_sampler_dim image_dim; 2921 bool image_array; 2922 enum pipe_format format; 2923 enum gl_access_qualifier access; 2924 }; 2925 struct _nir_image_format_indices { 2926 int _; /* exists to avoid empty initializers */ 2927 enum glsl_sampler_dim image_dim; 2928 bool image_array; 2929 enum pipe_format format; 2930 enum gl_access_qualifier access; 2931 }; 2932 struct _nir_image_load_indices { 2933 int _; /* exists to avoid empty initializers */ 2934 enum glsl_sampler_dim image_dim; 2935 bool image_array; 2936 enum pipe_format format; 2937 enum gl_access_qualifier access; 2938 nir_alu_type dest_type; 2939 }; 2940 struct _nir_image_load_raw_intel_indices { 2941 int _; /* exists to avoid empty initializers */ 2942 enum glsl_sampler_dim image_dim; 2943 bool image_array; 2944 enum pipe_format format; 2945 enum gl_access_qualifier access; 2946 }; 2947 struct _nir_image_order_indices { 2948 int _; /* exists to avoid empty initializers */ 2949 enum glsl_sampler_dim image_dim; 2950 bool image_array; 2951 enum pipe_format format; 2952 enum gl_access_qualifier access; 2953 }; 2954 struct _nir_image_samples_indices { 2955 int _; /* exists to avoid empty initializers */ 2956 enum glsl_sampler_dim image_dim; 2957 bool image_array; 2958 enum pipe_format format; 2959 enum gl_access_qualifier access; 2960 }; 2961 struct _nir_image_size_indices { 2962 int _; /* exists to avoid empty initializers */ 2963 enum glsl_sampler_dim image_dim; 2964 bool image_array; 2965 enum pipe_format format; 2966 enum gl_access_qualifier access; 2967 }; 2968 struct _nir_image_sparse_load_indices { 2969 int _; /* exists to avoid empty initializers */ 2970 enum glsl_sampler_dim image_dim; 2971 bool image_array; 2972 enum pipe_format format; 2973 enum gl_access_qualifier access; 2974 nir_alu_type dest_type; 2975 }; 2976 struct _nir_image_store_indices { 2977 int _; /* exists to avoid empty initializers */ 2978 enum glsl_sampler_dim image_dim; 2979 bool image_array; 2980 enum pipe_format format; 2981 enum gl_access_qualifier access; 2982 nir_alu_type src_type; 2983 }; 2984 struct _nir_image_store_raw_intel_indices { 2985 int _; /* exists to avoid empty initializers */ 2986 enum glsl_sampler_dim image_dim; 2987 bool image_array; 2988 enum pipe_format format; 2989 enum gl_access_qualifier access; 2990 }; 2991 struct _nir_inclusive_scan_indices { 2992 int _; /* exists to avoid empty initializers */ 2993 unsigned reduction_op; 2994 }; 2995 struct _nir_interp_deref_at_centroid_indices { 2996 int _; /* exists to avoid empty initializers */ 2997 }; 2998 struct _nir_interp_deref_at_offset_indices { 2999 int _; /* exists to avoid empty initializers */ 3000 }; 3001 struct _nir_interp_deref_at_sample_indices { 3002 int _; /* exists to avoid empty initializers */ 3003 }; 3004 struct _nir_interp_deref_at_vertex_indices { 3005 int _; /* exists to avoid empty initializers */ 3006 }; 3007 struct _nir_is_helper_invocation_indices { 3008 int _; /* exists to avoid empty initializers */ 3009 }; 3010 struct _nir_is_sparse_texels_resident_indices { 3011 int _; /* exists to avoid empty initializers */ 3012 }; 3013 struct _nir_lane_permute_16_amd_indices { 3014 int _; /* exists to avoid empty initializers */ 3015 }; 3016 struct _nir_last_invocation_indices { 3017 int _; /* exists to avoid empty initializers */ 3018 }; 3019 struct _nir_load_aa_line_width_indices { 3020 int _; /* exists to avoid empty initializers */ 3021 }; 3022 struct _nir_load_back_face_agx_indices { 3023 int _; /* exists to avoid empty initializers */ 3024 }; 3025 struct _nir_load_barycentric_at_offset_indices { 3026 int _; /* exists to avoid empty initializers */ 3027 unsigned interp_mode; 3028 }; 3029 struct _nir_load_barycentric_at_sample_indices { 3030 int _; /* exists to avoid empty initializers */ 3031 unsigned interp_mode; 3032 }; 3033 struct _nir_load_barycentric_centroid_indices { 3034 int _; /* exists to avoid empty initializers */ 3035 unsigned interp_mode; 3036 }; 3037 struct _nir_load_barycentric_model_indices { 3038 int _; /* exists to avoid empty initializers */ 3039 unsigned interp_mode; 3040 }; 3041 struct _nir_load_barycentric_pixel_indices { 3042 int _; /* exists to avoid empty initializers */ 3043 unsigned interp_mode; 3044 }; 3045 struct _nir_load_barycentric_sample_indices { 3046 int _; /* exists to avoid empty initializers */ 3047 unsigned interp_mode; 3048 }; 3049 struct _nir_load_base_global_invocation_id_indices { 3050 int _; /* exists to avoid empty initializers */ 3051 }; 3052 struct _nir_load_base_instance_indices { 3053 int _; /* exists to avoid empty initializers */ 3054 }; 3055 struct _nir_load_base_vertex_indices { 3056 int _; /* exists to avoid empty initializers */ 3057 }; 3058 struct _nir_load_base_workgroup_id_indices { 3059 int _; /* exists to avoid empty initializers */ 3060 }; 3061 struct _nir_load_blend_const_color_a_float_indices { 3062 int _; /* exists to avoid empty initializers */ 3063 }; 3064 struct _nir_load_blend_const_color_aaaa8888_unorm_indices { 3065 int _; /* exists to avoid empty initializers */ 3066 }; 3067 struct _nir_load_blend_const_color_b_float_indices { 3068 int _; /* exists to avoid empty initializers */ 3069 }; 3070 struct _nir_load_blend_const_color_g_float_indices { 3071 int _; /* exists to avoid empty initializers */ 3072 }; 3073 struct _nir_load_blend_const_color_r_float_indices { 3074 int _; /* exists to avoid empty initializers */ 3075 }; 3076 struct _nir_load_blend_const_color_rgba_indices { 3077 int _; /* exists to avoid empty initializers */ 3078 }; 3079 struct _nir_load_blend_const_color_rgba8888_unorm_indices { 3080 int _; /* exists to avoid empty initializers */ 3081 }; 3082 struct _nir_load_btd_dss_id_intel_indices { 3083 int _; /* exists to avoid empty initializers */ 3084 }; 3085 struct _nir_load_btd_global_arg_addr_intel_indices { 3086 int _; /* exists to avoid empty initializers */ 3087 }; 3088 struct _nir_load_btd_local_arg_addr_intel_indices { 3089 int _; /* exists to avoid empty initializers */ 3090 }; 3091 struct _nir_load_btd_resume_sbt_addr_intel_indices { 3092 int _; /* exists to avoid empty initializers */ 3093 }; 3094 struct _nir_load_btd_stack_id_intel_indices { 3095 int _; /* exists to avoid empty initializers */ 3096 }; 3097 struct _nir_load_buffer_amd_indices { 3098 int _; /* exists to avoid empty initializers */ 3099 int base; 3100 bool is_swizzled; 3101 bool slc_amd; 3102 nir_variable_mode memory_modes; 3103 }; 3104 struct _nir_load_callable_sbt_addr_intel_indices { 3105 int _; /* exists to avoid empty initializers */ 3106 }; 3107 struct _nir_load_callable_sbt_stride_intel_indices { 3108 int _; /* exists to avoid empty initializers */ 3109 }; 3110 struct _nir_load_color0_indices { 3111 int _; /* exists to avoid empty initializers */ 3112 }; 3113 struct _nir_load_color1_indices { 3114 int _; /* exists to avoid empty initializers */ 3115 }; 3116 struct _nir_load_constant_indices { 3117 int _; /* exists to avoid empty initializers */ 3118 int base; 3119 unsigned range; 3120 unsigned align_mul; 3121 unsigned align_offset; 3122 }; 3123 struct _nir_load_constant_base_ptr_indices { 3124 int _; /* exists to avoid empty initializers */ 3125 }; 3126 struct _nir_load_cull_any_enabled_amd_indices { 3127 int _; /* exists to avoid empty initializers */ 3128 }; 3129 struct _nir_load_cull_back_face_enabled_amd_indices { 3130 int _; /* exists to avoid empty initializers */ 3131 }; 3132 struct _nir_load_cull_ccw_amd_indices { 3133 int _; /* exists to avoid empty initializers */ 3134 }; 3135 struct _nir_load_cull_front_face_enabled_amd_indices { 3136 int _; /* exists to avoid empty initializers */ 3137 }; 3138 struct _nir_load_cull_small_prim_precision_amd_indices { 3139 int _; /* exists to avoid empty initializers */ 3140 }; 3141 struct _nir_load_cull_small_primitives_enabled_amd_indices { 3142 int _; /* exists to avoid empty initializers */ 3143 }; 3144 struct _nir_load_deref_indices { 3145 int _; /* exists to avoid empty initializers */ 3146 enum gl_access_qualifier access; 3147 }; 3148 struct _nir_load_deref_block_intel_indices { 3149 int _; /* exists to avoid empty initializers */ 3150 enum gl_access_qualifier access; 3151 }; 3152 struct _nir_load_desc_set_address_intel_indices { 3153 int _; /* exists to avoid empty initializers */ 3154 }; 3155 struct _nir_load_draw_id_indices { 3156 int _; /* exists to avoid empty initializers */ 3157 }; 3158 struct _nir_load_fb_layers_v3d_indices { 3159 int _; /* exists to avoid empty initializers */ 3160 }; 3161 struct _nir_load_first_vertex_indices { 3162 int _; /* exists to avoid empty initializers */ 3163 }; 3164 struct _nir_load_frag_coord_indices { 3165 int _; /* exists to avoid empty initializers */ 3166 }; 3167 struct _nir_load_frag_shading_rate_indices { 3168 int _; /* exists to avoid empty initializers */ 3169 }; 3170 struct _nir_load_front_face_indices { 3171 int _; /* exists to avoid empty initializers */ 3172 }; 3173 struct _nir_load_fs_input_interp_deltas_indices { 3174 int _; /* exists to avoid empty initializers */ 3175 int base; 3176 unsigned component; 3177 struct nir_io_semantics io_semantics; 3178 }; 3179 struct _nir_load_global_indices { 3180 int _; /* exists to avoid empty initializers */ 3181 enum gl_access_qualifier access; 3182 unsigned align_mul; 3183 unsigned align_offset; 3184 }; 3185 struct _nir_load_global_block_intel_indices { 3186 int _; /* exists to avoid empty initializers */ 3187 enum gl_access_qualifier access; 3188 unsigned align_mul; 3189 unsigned align_offset; 3190 }; 3191 struct _nir_load_global_const_block_intel_indices { 3192 int _; /* exists to avoid empty initializers */ 3193 int base; 3194 }; 3195 struct _nir_load_global_constant_indices { 3196 int _; /* exists to avoid empty initializers */ 3197 enum gl_access_qualifier access; 3198 unsigned align_mul; 3199 unsigned align_offset; 3200 }; 3201 struct _nir_load_global_constant_bounded_indices { 3202 int _; /* exists to avoid empty initializers */ 3203 enum gl_access_qualifier access; 3204 unsigned align_mul; 3205 unsigned align_offset; 3206 }; 3207 struct _nir_load_global_constant_offset_indices { 3208 int _; /* exists to avoid empty initializers */ 3209 enum gl_access_qualifier access; 3210 unsigned align_mul; 3211 unsigned align_offset; 3212 }; 3213 struct _nir_load_global_invocation_id_indices { 3214 int _; /* exists to avoid empty initializers */ 3215 }; 3216 struct _nir_load_global_invocation_id_zero_base_indices { 3217 int _; /* exists to avoid empty initializers */ 3218 }; 3219 struct _nir_load_global_invocation_index_indices { 3220 int _; /* exists to avoid empty initializers */ 3221 }; 3222 struct _nir_load_global_ir3_indices { 3223 int _; /* exists to avoid empty initializers */ 3224 enum gl_access_qualifier access; 3225 unsigned align_mul; 3226 unsigned align_offset; 3227 }; 3228 struct _nir_load_gs_header_ir3_indices { 3229 int _; /* exists to avoid empty initializers */ 3230 }; 3231 struct _nir_load_gs_vertex_offset_amd_indices { 3232 int _; /* exists to avoid empty initializers */ 3233 int base; 3234 }; 3235 struct _nir_load_helper_invocation_indices { 3236 int _; /* exists to avoid empty initializers */ 3237 }; 3238 struct _nir_load_hs_patch_stride_ir3_indices { 3239 int _; /* exists to avoid empty initializers */ 3240 }; 3241 struct _nir_load_initial_edgeflags_amd_indices { 3242 int _; /* exists to avoid empty initializers */ 3243 }; 3244 struct _nir_load_input_indices { 3245 int _; /* exists to avoid empty initializers */ 3246 int base; 3247 unsigned component; 3248 nir_alu_type dest_type; 3249 struct nir_io_semantics io_semantics; 3250 }; 3251 struct _nir_load_input_vertex_indices { 3252 int _; /* exists to avoid empty initializers */ 3253 int base; 3254 unsigned component; 3255 nir_alu_type dest_type; 3256 struct nir_io_semantics io_semantics; 3257 }; 3258 struct _nir_load_instance_id_indices { 3259 int _; /* exists to avoid empty initializers */ 3260 }; 3261 struct _nir_load_interpolated_input_indices { 3262 int _; /* exists to avoid empty initializers */ 3263 int base; 3264 unsigned component; 3265 nir_alu_type dest_type; 3266 struct nir_io_semantics io_semantics; 3267 }; 3268 struct _nir_load_intersection_opaque_amd_indices { 3269 int _; /* exists to avoid empty initializers */ 3270 }; 3271 struct _nir_load_invocation_id_indices { 3272 int _; /* exists to avoid empty initializers */ 3273 }; 3274 struct _nir_load_is_indexed_draw_indices { 3275 int _; /* exists to avoid empty initializers */ 3276 }; 3277 struct _nir_load_kernel_input_indices { 3278 int _; /* exists to avoid empty initializers */ 3279 int base; 3280 unsigned range; 3281 unsigned align_mul; 3282 unsigned align_offset; 3283 }; 3284 struct _nir_load_layer_id_indices { 3285 int _; /* exists to avoid empty initializers */ 3286 }; 3287 struct _nir_load_leaf_opaque_intel_indices { 3288 int _; /* exists to avoid empty initializers */ 3289 }; 3290 struct _nir_load_leaf_procedural_intel_indices { 3291 int _; /* exists to avoid empty initializers */ 3292 }; 3293 struct _nir_load_line_coord_indices { 3294 int _; /* exists to avoid empty initializers */ 3295 }; 3296 struct _nir_load_line_width_indices { 3297 int _; /* exists to avoid empty initializers */ 3298 }; 3299 struct _nir_load_local_invocation_id_indices { 3300 int _; /* exists to avoid empty initializers */ 3301 }; 3302 struct _nir_load_local_invocation_index_indices { 3303 int _; /* exists to avoid empty initializers */ 3304 }; 3305 struct _nir_load_local_shared_r600_indices { 3306 int _; /* exists to avoid empty initializers */ 3307 }; 3308 struct _nir_load_num_subgroups_indices { 3309 int _; /* exists to avoid empty initializers */ 3310 }; 3311 struct _nir_load_num_workgroups_indices { 3312 int _; /* exists to avoid empty initializers */ 3313 }; 3314 struct _nir_load_output_indices { 3315 int _; /* exists to avoid empty initializers */ 3316 int base; 3317 unsigned component; 3318 nir_alu_type dest_type; 3319 struct nir_io_semantics io_semantics; 3320 }; 3321 struct _nir_load_packed_passthrough_primitive_amd_indices { 3322 int _; /* exists to avoid empty initializers */ 3323 }; 3324 struct _nir_load_param_indices { 3325 int _; /* exists to avoid empty initializers */ 3326 unsigned param_idx; 3327 }; 3328 struct _nir_load_patch_vertices_in_indices { 3329 int _; /* exists to avoid empty initializers */ 3330 }; 3331 struct _nir_load_per_primitive_output_indices { 3332 int _; /* exists to avoid empty initializers */ 3333 int base; 3334 unsigned component; 3335 nir_alu_type dest_type; 3336 struct nir_io_semantics io_semantics; 3337 }; 3338 struct _nir_load_per_vertex_input_indices { 3339 int _; /* exists to avoid empty initializers */ 3340 int base; 3341 unsigned component; 3342 nir_alu_type dest_type; 3343 struct nir_io_semantics io_semantics; 3344 }; 3345 struct _nir_load_per_vertex_output_indices { 3346 int _; /* exists to avoid empty initializers */ 3347 int base; 3348 unsigned component; 3349 nir_alu_type dest_type; 3350 struct nir_io_semantics io_semantics; 3351 }; 3352 struct _nir_load_point_coord_indices { 3353 int _; /* exists to avoid empty initializers */ 3354 }; 3355 struct _nir_load_primitive_id_indices { 3356 int _; /* exists to avoid empty initializers */ 3357 }; 3358 struct _nir_load_primitive_location_ir3_indices { 3359 int _; /* exists to avoid empty initializers */ 3360 unsigned driver_location; 3361 }; 3362 struct _nir_load_printf_buffer_address_indices { 3363 int _; /* exists to avoid empty initializers */ 3364 }; 3365 struct _nir_load_ptr_dxil_indices { 3366 int _; /* exists to avoid empty initializers */ 3367 }; 3368 struct _nir_load_push_constant_indices { 3369 int _; /* exists to avoid empty initializers */ 3370 int base; 3371 unsigned range; 3372 }; 3373 struct _nir_load_raw_output_pan_indices { 3374 int _; /* exists to avoid empty initializers */ 3375 int base; 3376 }; 3377 struct _nir_load_ray_base_mem_addr_intel_indices { 3378 int _; /* exists to avoid empty initializers */ 3379 }; 3380 struct _nir_load_ray_flags_indices { 3381 int _; /* exists to avoid empty initializers */ 3382 }; 3383 struct _nir_load_ray_geometry_index_indices { 3384 int _; /* exists to avoid empty initializers */ 3385 }; 3386 struct _nir_load_ray_hit_kind_indices { 3387 int _; /* exists to avoid empty initializers */ 3388 }; 3389 struct _nir_load_ray_hit_sbt_addr_intel_indices { 3390 int _; /* exists to avoid empty initializers */ 3391 }; 3392 struct _nir_load_ray_hit_sbt_stride_intel_indices { 3393 int _; /* exists to avoid empty initializers */ 3394 }; 3395 struct _nir_load_ray_hw_stack_size_intel_indices { 3396 int _; /* exists to avoid empty initializers */ 3397 }; 3398 struct _nir_load_ray_instance_custom_index_indices { 3399 int _; /* exists to avoid empty initializers */ 3400 }; 3401 struct _nir_load_ray_launch_id_indices { 3402 int _; /* exists to avoid empty initializers */ 3403 }; 3404 struct _nir_load_ray_launch_size_indices { 3405 int _; /* exists to avoid empty initializers */ 3406 }; 3407 struct _nir_load_ray_miss_sbt_addr_intel_indices { 3408 int _; /* exists to avoid empty initializers */ 3409 }; 3410 struct _nir_load_ray_miss_sbt_stride_intel_indices { 3411 int _; /* exists to avoid empty initializers */ 3412 }; 3413 struct _nir_load_ray_num_dss_rt_stacks_intel_indices { 3414 int _; /* exists to avoid empty initializers */ 3415 }; 3416 struct _nir_load_ray_object_direction_indices { 3417 int _; /* exists to avoid empty initializers */ 3418 }; 3419 struct _nir_load_ray_object_origin_indices { 3420 int _; /* exists to avoid empty initializers */ 3421 }; 3422 struct _nir_load_ray_object_to_world_indices { 3423 int _; /* exists to avoid empty initializers */ 3424 unsigned column; 3425 }; 3426 struct _nir_load_ray_sw_stack_size_intel_indices { 3427 int _; /* exists to avoid empty initializers */ 3428 }; 3429 struct _nir_load_ray_t_max_indices { 3430 int _; /* exists to avoid empty initializers */ 3431 }; 3432 struct _nir_load_ray_t_min_indices { 3433 int _; /* exists to avoid empty initializers */ 3434 }; 3435 struct _nir_load_ray_world_direction_indices { 3436 int _; /* exists to avoid empty initializers */ 3437 }; 3438 struct _nir_load_ray_world_origin_indices { 3439 int _; /* exists to avoid empty initializers */ 3440 }; 3441 struct _nir_load_ray_world_to_object_indices { 3442 int _; /* exists to avoid empty initializers */ 3443 unsigned column; 3444 }; 3445 struct _nir_load_rel_patch_id_ir3_indices { 3446 int _; /* exists to avoid empty initializers */ 3447 }; 3448 struct _nir_load_reloc_const_intel_indices { 3449 int _; /* exists to avoid empty initializers */ 3450 unsigned param_idx; 3451 }; 3452 struct _nir_load_ring_es2gs_offset_amd_indices { 3453 int _; /* exists to avoid empty initializers */ 3454 }; 3455 struct _nir_load_ring_esgs_amd_indices { 3456 int _; /* exists to avoid empty initializers */ 3457 }; 3458 struct _nir_load_ring_tess_factors_amd_indices { 3459 int _; /* exists to avoid empty initializers */ 3460 }; 3461 struct _nir_load_ring_tess_factors_offset_amd_indices { 3462 int _; /* exists to avoid empty initializers */ 3463 }; 3464 struct _nir_load_ring_tess_offchip_amd_indices { 3465 int _; /* exists to avoid empty initializers */ 3466 }; 3467 struct _nir_load_ring_tess_offchip_offset_amd_indices { 3468 int _; /* exists to avoid empty initializers */ 3469 }; 3470 struct _nir_load_rt_arg_scratch_offset_amd_indices { 3471 int _; /* exists to avoid empty initializers */ 3472 }; 3473 struct _nir_load_sample_id_indices { 3474 int _; /* exists to avoid empty initializers */ 3475 }; 3476 struct _nir_load_sample_id_no_per_sample_indices { 3477 int _; /* exists to avoid empty initializers */ 3478 }; 3479 struct _nir_load_sample_mask_in_indices { 3480 int _; /* exists to avoid empty initializers */ 3481 }; 3482 struct _nir_load_sample_pos_indices { 3483 int _; /* exists to avoid empty initializers */ 3484 }; 3485 struct _nir_load_sample_pos_from_id_indices { 3486 int _; /* exists to avoid empty initializers */ 3487 }; 3488 struct _nir_load_sample_positions_pan_indices { 3489 int _; /* exists to avoid empty initializers */ 3490 }; 3491 struct _nir_load_sampler_lod_parameters_pan_indices { 3492 int _; /* exists to avoid empty initializers */ 3493 }; 3494 struct _nir_load_sbt_amd_indices { 3495 int _; /* exists to avoid empty initializers */ 3496 unsigned binding; 3497 }; 3498 struct _nir_load_scratch_indices { 3499 int _; /* exists to avoid empty initializers */ 3500 unsigned align_mul; 3501 unsigned align_offset; 3502 }; 3503 struct _nir_load_scratch_base_ptr_indices { 3504 int _; /* exists to avoid empty initializers */ 3505 int base; 3506 }; 3507 struct _nir_load_scratch_dxil_indices { 3508 int _; /* exists to avoid empty initializers */ 3509 }; 3510 struct _nir_load_shader_query_enabled_amd_indices { 3511 int _; /* exists to avoid empty initializers */ 3512 }; 3513 struct _nir_load_shader_record_ptr_indices { 3514 int _; /* exists to avoid empty initializers */ 3515 }; 3516 struct _nir_load_shared_indices { 3517 int _; /* exists to avoid empty initializers */ 3518 int base; 3519 unsigned align_mul; 3520 unsigned align_offset; 3521 }; 3522 struct _nir_load_shared_base_ptr_indices { 3523 int _; /* exists to avoid empty initializers */ 3524 }; 3525 struct _nir_load_shared_block_intel_indices { 3526 int _; /* exists to avoid empty initializers */ 3527 int base; 3528 unsigned align_mul; 3529 unsigned align_offset; 3530 }; 3531 struct _nir_load_shared_dxil_indices { 3532 int _; /* exists to avoid empty initializers */ 3533 }; 3534 struct _nir_load_shared_ir3_indices { 3535 int _; /* exists to avoid empty initializers */ 3536 int base; 3537 unsigned align_mul; 3538 unsigned align_offset; 3539 }; 3540 struct _nir_load_simd_width_intel_indices { 3541 int _; /* exists to avoid empty initializers */ 3542 }; 3543 struct _nir_load_size_ir3_indices { 3544 int _; /* exists to avoid empty initializers */ 3545 }; 3546 struct _nir_load_ssbo_indices { 3547 int _; /* exists to avoid empty initializers */ 3548 enum gl_access_qualifier access; 3549 unsigned align_mul; 3550 unsigned align_offset; 3551 }; 3552 struct _nir_load_ssbo_address_indices { 3553 int _; /* exists to avoid empty initializers */ 3554 }; 3555 struct _nir_load_ssbo_block_intel_indices { 3556 int _; /* exists to avoid empty initializers */ 3557 enum gl_access_qualifier access; 3558 unsigned align_mul; 3559 unsigned align_offset; 3560 }; 3561 struct _nir_load_ssbo_ir3_indices { 3562 int _; /* exists to avoid empty initializers */ 3563 enum gl_access_qualifier access; 3564 unsigned align_mul; 3565 unsigned align_offset; 3566 }; 3567 struct _nir_load_subgroup_eq_mask_indices { 3568 int _; /* exists to avoid empty initializers */ 3569 }; 3570 struct _nir_load_subgroup_ge_mask_indices { 3571 int _; /* exists to avoid empty initializers */ 3572 }; 3573 struct _nir_load_subgroup_gt_mask_indices { 3574 int _; /* exists to avoid empty initializers */ 3575 }; 3576 struct _nir_load_subgroup_id_indices { 3577 int _; /* exists to avoid empty initializers */ 3578 }; 3579 struct _nir_load_subgroup_id_shift_ir3_indices { 3580 int _; /* exists to avoid empty initializers */ 3581 }; 3582 struct _nir_load_subgroup_invocation_indices { 3583 int _; /* exists to avoid empty initializers */ 3584 }; 3585 struct _nir_load_subgroup_le_mask_indices { 3586 int _; /* exists to avoid empty initializers */ 3587 }; 3588 struct _nir_load_subgroup_lt_mask_indices { 3589 int _; /* exists to avoid empty initializers */ 3590 }; 3591 struct _nir_load_subgroup_size_indices { 3592 int _; /* exists to avoid empty initializers */ 3593 }; 3594 struct _nir_load_tcs_header_ir3_indices { 3595 int _; /* exists to avoid empty initializers */ 3596 }; 3597 struct _nir_load_tcs_in_param_base_r600_indices { 3598 int _; /* exists to avoid empty initializers */ 3599 }; 3600 struct _nir_load_tcs_num_patches_amd_indices { 3601 int _; /* exists to avoid empty initializers */ 3602 }; 3603 struct _nir_load_tcs_out_param_base_r600_indices { 3604 int _; /* exists to avoid empty initializers */ 3605 }; 3606 struct _nir_load_tcs_rel_patch_id_r600_indices { 3607 int _; /* exists to avoid empty initializers */ 3608 }; 3609 struct _nir_load_tcs_tess_factor_base_r600_indices { 3610 int _; /* exists to avoid empty initializers */ 3611 }; 3612 struct _nir_load_tess_coord_indices { 3613 int _; /* exists to avoid empty initializers */ 3614 }; 3615 struct _nir_load_tess_coord_r600_indices { 3616 int _; /* exists to avoid empty initializers */ 3617 }; 3618 struct _nir_load_tess_factor_base_ir3_indices { 3619 int _; /* exists to avoid empty initializers */ 3620 }; 3621 struct _nir_load_tess_level_inner_indices { 3622 int _; /* exists to avoid empty initializers */ 3623 }; 3624 struct _nir_load_tess_level_inner_default_indices { 3625 int _; /* exists to avoid empty initializers */ 3626 }; 3627 struct _nir_load_tess_level_outer_indices { 3628 int _; /* exists to avoid empty initializers */ 3629 }; 3630 struct _nir_load_tess_level_outer_default_indices { 3631 int _; /* exists to avoid empty initializers */ 3632 }; 3633 struct _nir_load_tess_param_base_ir3_indices { 3634 int _; /* exists to avoid empty initializers */ 3635 }; 3636 struct _nir_load_tess_rel_patch_id_amd_indices { 3637 int _; /* exists to avoid empty initializers */ 3638 }; 3639 struct _nir_load_texture_rect_scaling_indices { 3640 int _; /* exists to avoid empty initializers */ 3641 }; 3642 struct _nir_load_tlb_color_v3d_indices { 3643 int _; /* exists to avoid empty initializers */ 3644 int base; 3645 unsigned component; 3646 }; 3647 struct _nir_load_ubo_indices { 3648 int _; /* exists to avoid empty initializers */ 3649 enum gl_access_qualifier access; 3650 unsigned align_mul; 3651 unsigned align_offset; 3652 unsigned range_base; 3653 unsigned range; 3654 }; 3655 struct _nir_load_ubo_dxil_indices { 3656 int _; /* exists to avoid empty initializers */ 3657 }; 3658 struct _nir_load_ubo_vec4_indices { 3659 int _; /* exists to avoid empty initializers */ 3660 enum gl_access_qualifier access; 3661 unsigned component; 3662 }; 3663 struct _nir_load_uniform_indices { 3664 int _; /* exists to avoid empty initializers */ 3665 int base; 3666 unsigned range; 3667 nir_alu_type dest_type; 3668 }; 3669 struct _nir_load_user_clip_plane_indices { 3670 int _; /* exists to avoid empty initializers */ 3671 unsigned ucp_id; 3672 }; 3673 struct _nir_load_user_data_amd_indices { 3674 int _; /* exists to avoid empty initializers */ 3675 }; 3676 struct _nir_load_vertex_id_indices { 3677 int _; /* exists to avoid empty initializers */ 3678 }; 3679 struct _nir_load_vertex_id_zero_base_indices { 3680 int _; /* exists to avoid empty initializers */ 3681 }; 3682 struct _nir_load_view_index_indices { 3683 int _; /* exists to avoid empty initializers */ 3684 }; 3685 struct _nir_load_viewport_offset_indices { 3686 int _; /* exists to avoid empty initializers */ 3687 }; 3688 struct _nir_load_viewport_scale_indices { 3689 int _; /* exists to avoid empty initializers */ 3690 }; 3691 struct _nir_load_viewport_x_offset_indices { 3692 int _; /* exists to avoid empty initializers */ 3693 }; 3694 struct _nir_load_viewport_x_scale_indices { 3695 int _; /* exists to avoid empty initializers */ 3696 }; 3697 struct _nir_load_viewport_y_offset_indices { 3698 int _; /* exists to avoid empty initializers */ 3699 }; 3700 struct _nir_load_viewport_y_scale_indices { 3701 int _; /* exists to avoid empty initializers */ 3702 }; 3703 struct _nir_load_viewport_z_offset_indices { 3704 int _; /* exists to avoid empty initializers */ 3705 }; 3706 struct _nir_load_viewport_z_scale_indices { 3707 int _; /* exists to avoid empty initializers */ 3708 }; 3709 struct _nir_load_vs_primitive_stride_ir3_indices { 3710 int _; /* exists to avoid empty initializers */ 3711 }; 3712 struct _nir_load_vs_vertex_stride_ir3_indices { 3713 int _; /* exists to avoid empty initializers */ 3714 }; 3715 struct _nir_load_vulkan_descriptor_indices { 3716 int _; /* exists to avoid empty initializers */ 3717 unsigned desc_type; 3718 }; 3719 struct _nir_load_work_dim_indices { 3720 int _; /* exists to avoid empty initializers */ 3721 }; 3722 struct _nir_load_workgroup_id_indices { 3723 int _; /* exists to avoid empty initializers */ 3724 }; 3725 struct _nir_load_workgroup_id_zero_base_indices { 3726 int _; /* exists to avoid empty initializers */ 3727 }; 3728 struct _nir_load_workgroup_num_input_primitives_amd_indices { 3729 int _; /* exists to avoid empty initializers */ 3730 }; 3731 struct _nir_load_workgroup_num_input_vertices_amd_indices { 3732 int _; /* exists to avoid empty initializers */ 3733 }; 3734 struct _nir_load_workgroup_size_indices { 3735 int _; /* exists to avoid empty initializers */ 3736 }; 3737 struct _nir_masked_swizzle_amd_indices { 3738 int _; /* exists to avoid empty initializers */ 3739 unsigned swizzle_mask; 3740 }; 3741 struct _nir_mbcnt_amd_indices { 3742 int _; /* exists to avoid empty initializers */ 3743 }; 3744 struct _nir_memcpy_deref_indices { 3745 int _; /* exists to avoid empty initializers */ 3746 enum gl_access_qualifier dst_access; 3747 enum gl_access_qualifier src_access; 3748 }; 3749 struct _nir_memory_barrier_indices { 3750 int _; /* exists to avoid empty initializers */ 3751 }; 3752 struct _nir_memory_barrier_atomic_counter_indices { 3753 int _; /* exists to avoid empty initializers */ 3754 }; 3755 struct _nir_memory_barrier_buffer_indices { 3756 int _; /* exists to avoid empty initializers */ 3757 }; 3758 struct _nir_memory_barrier_image_indices { 3759 int _; /* exists to avoid empty initializers */ 3760 }; 3761 struct _nir_memory_barrier_shared_indices { 3762 int _; /* exists to avoid empty initializers */ 3763 }; 3764 struct _nir_memory_barrier_tcs_patch_indices { 3765 int _; /* exists to avoid empty initializers */ 3766 }; 3767 struct _nir_nop_indices { 3768 int _; /* exists to avoid empty initializers */ 3769 }; 3770 struct _nir_overwrite_tes_arguments_amd_indices { 3771 int _; /* exists to avoid empty initializers */ 3772 }; 3773 struct _nir_overwrite_vs_arguments_amd_indices { 3774 int _; /* exists to avoid empty initializers */ 3775 }; 3776 struct _nir_printf_indices { 3777 int _; /* exists to avoid empty initializers */ 3778 }; 3779 struct _nir_quad_broadcast_indices { 3780 int _; /* exists to avoid empty initializers */ 3781 }; 3782 struct _nir_quad_swap_diagonal_indices { 3783 int _; /* exists to avoid empty initializers */ 3784 }; 3785 struct _nir_quad_swap_horizontal_indices { 3786 int _; /* exists to avoid empty initializers */ 3787 }; 3788 struct _nir_quad_swap_vertical_indices { 3789 int _; /* exists to avoid empty initializers */ 3790 }; 3791 struct _nir_quad_swizzle_amd_indices { 3792 int _; /* exists to avoid empty initializers */ 3793 unsigned swizzle_mask; 3794 }; 3795 struct _nir_read_first_invocation_indices { 3796 int _; /* exists to avoid empty initializers */ 3797 }; 3798 struct _nir_read_invocation_indices { 3799 int _; /* exists to avoid empty initializers */ 3800 }; 3801 struct _nir_read_invocation_cond_ir3_indices { 3802 int _; /* exists to avoid empty initializers */ 3803 }; 3804 struct _nir_reduce_indices { 3805 int _; /* exists to avoid empty initializers */ 3806 unsigned reduction_op; 3807 unsigned cluster_size; 3808 }; 3809 struct _nir_report_ray_intersection_indices { 3810 int _; /* exists to avoid empty initializers */ 3811 }; 3812 struct _nir_rt_execute_callable_indices { 3813 int _; /* exists to avoid empty initializers */ 3814 unsigned call_idx; 3815 unsigned stack_size; 3816 }; 3817 struct _nir_rt_resume_indices { 3818 int _; /* exists to avoid empty initializers */ 3819 unsigned call_idx; 3820 unsigned stack_size; 3821 }; 3822 struct _nir_rt_return_amd_indices { 3823 int _; /* exists to avoid empty initializers */ 3824 }; 3825 struct _nir_rt_trace_ray_indices { 3826 int _; /* exists to avoid empty initializers */ 3827 unsigned call_idx; 3828 unsigned stack_size; 3829 }; 3830 struct _nir_scoped_barrier_indices { 3831 int _; /* exists to avoid empty initializers */ 3832 nir_scope execution_scope; 3833 nir_scope memory_scope; 3834 nir_memory_semantics memory_semantics; 3835 nir_variable_mode memory_modes; 3836 }; 3837 struct _nir_set_vertex_and_primitive_count_indices { 3838 int _; /* exists to avoid empty initializers */ 3839 unsigned stream_id; 3840 }; 3841 struct _nir_shader_clock_indices { 3842 int _; /* exists to avoid empty initializers */ 3843 nir_scope memory_scope; 3844 }; 3845 struct _nir_shared_atomic_add_indices { 3846 int _; /* exists to avoid empty initializers */ 3847 int base; 3848 }; 3849 struct _nir_shared_atomic_add_dxil_indices { 3850 int _; /* exists to avoid empty initializers */ 3851 }; 3852 struct _nir_shared_atomic_and_indices { 3853 int _; /* exists to avoid empty initializers */ 3854 int base; 3855 }; 3856 struct _nir_shared_atomic_and_dxil_indices { 3857 int _; /* exists to avoid empty initializers */ 3858 }; 3859 struct _nir_shared_atomic_comp_swap_indices { 3860 int _; /* exists to avoid empty initializers */ 3861 int base; 3862 }; 3863 struct _nir_shared_atomic_comp_swap_dxil_indices { 3864 int _; /* exists to avoid empty initializers */ 3865 }; 3866 struct _nir_shared_atomic_exchange_indices { 3867 int _; /* exists to avoid empty initializers */ 3868 int base; 3869 }; 3870 struct _nir_shared_atomic_exchange_dxil_indices { 3871 int _; /* exists to avoid empty initializers */ 3872 }; 3873 struct _nir_shared_atomic_fadd_indices { 3874 int _; /* exists to avoid empty initializers */ 3875 int base; 3876 }; 3877 struct _nir_shared_atomic_fcomp_swap_indices { 3878 int _; /* exists to avoid empty initializers */ 3879 int base; 3880 }; 3881 struct _nir_shared_atomic_fmax_indices { 3882 int _; /* exists to avoid empty initializers */ 3883 int base; 3884 }; 3885 struct _nir_shared_atomic_fmin_indices { 3886 int _; /* exists to avoid empty initializers */ 3887 int base; 3888 }; 3889 struct _nir_shared_atomic_imax_indices { 3890 int _; /* exists to avoid empty initializers */ 3891 int base; 3892 }; 3893 struct _nir_shared_atomic_imax_dxil_indices { 3894 int _; /* exists to avoid empty initializers */ 3895 }; 3896 struct _nir_shared_atomic_imin_indices { 3897 int _; /* exists to avoid empty initializers */ 3898 int base; 3899 }; 3900 struct _nir_shared_atomic_imin_dxil_indices { 3901 int _; /* exists to avoid empty initializers */ 3902 }; 3903 struct _nir_shared_atomic_or_indices { 3904 int _; /* exists to avoid empty initializers */ 3905 int base; 3906 }; 3907 struct _nir_shared_atomic_or_dxil_indices { 3908 int _; /* exists to avoid empty initializers */ 3909 }; 3910 struct _nir_shared_atomic_umax_indices { 3911 int _; /* exists to avoid empty initializers */ 3912 int base; 3913 }; 3914 struct _nir_shared_atomic_umax_dxil_indices { 3915 int _; /* exists to avoid empty initializers */ 3916 }; 3917 struct _nir_shared_atomic_umin_indices { 3918 int _; /* exists to avoid empty initializers */ 3919 int base; 3920 }; 3921 struct _nir_shared_atomic_umin_dxil_indices { 3922 int _; /* exists to avoid empty initializers */ 3923 }; 3924 struct _nir_shared_atomic_xor_indices { 3925 int _; /* exists to avoid empty initializers */ 3926 int base; 3927 }; 3928 struct _nir_shared_atomic_xor_dxil_indices { 3929 int _; /* exists to avoid empty initializers */ 3930 }; 3931 struct _nir_shuffle_indices { 3932 int _; /* exists to avoid empty initializers */ 3933 }; 3934 struct _nir_shuffle_down_indices { 3935 int _; /* exists to avoid empty initializers */ 3936 }; 3937 struct _nir_shuffle_up_indices { 3938 int _; /* exists to avoid empty initializers */ 3939 }; 3940 struct _nir_shuffle_xor_indices { 3941 int _; /* exists to avoid empty initializers */ 3942 }; 3943 struct _nir_sparse_residency_code_and_indices { 3944 int _; /* exists to avoid empty initializers */ 3945 }; 3946 struct _nir_ssbo_atomic_add_indices { 3947 int _; /* exists to avoid empty initializers */ 3948 enum gl_access_qualifier access; 3949 }; 3950 struct _nir_ssbo_atomic_add_ir3_indices { 3951 int _; /* exists to avoid empty initializers */ 3952 enum gl_access_qualifier access; 3953 }; 3954 struct _nir_ssbo_atomic_and_indices { 3955 int _; /* exists to avoid empty initializers */ 3956 enum gl_access_qualifier access; 3957 }; 3958 struct _nir_ssbo_atomic_and_ir3_indices { 3959 int _; /* exists to avoid empty initializers */ 3960 enum gl_access_qualifier access; 3961 }; 3962 struct _nir_ssbo_atomic_comp_swap_indices { 3963 int _; /* exists to avoid empty initializers */ 3964 enum gl_access_qualifier access; 3965 }; 3966 struct _nir_ssbo_atomic_comp_swap_ir3_indices { 3967 int _; /* exists to avoid empty initializers */ 3968 enum gl_access_qualifier access; 3969 }; 3970 struct _nir_ssbo_atomic_exchange_indices { 3971 int _; /* exists to avoid empty initializers */ 3972 enum gl_access_qualifier access; 3973 }; 3974 struct _nir_ssbo_atomic_exchange_ir3_indices { 3975 int _; /* exists to avoid empty initializers */ 3976 enum gl_access_qualifier access; 3977 }; 3978 struct _nir_ssbo_atomic_fadd_indices { 3979 int _; /* exists to avoid empty initializers */ 3980 enum gl_access_qualifier access; 3981 }; 3982 struct _nir_ssbo_atomic_fcomp_swap_indices { 3983 int _; /* exists to avoid empty initializers */ 3984 enum gl_access_qualifier access; 3985 }; 3986 struct _nir_ssbo_atomic_fmax_indices { 3987 int _; /* exists to avoid empty initializers */ 3988 enum gl_access_qualifier access; 3989 }; 3990 struct _nir_ssbo_atomic_fmin_indices { 3991 int _; /* exists to avoid empty initializers */ 3992 enum gl_access_qualifier access; 3993 }; 3994 struct _nir_ssbo_atomic_imax_indices { 3995 int _; /* exists to avoid empty initializers */ 3996 enum gl_access_qualifier access; 3997 }; 3998 struct _nir_ssbo_atomic_imax_ir3_indices { 3999 int _; /* exists to avoid empty initializers */ 4000 enum gl_access_qualifier access; 4001 }; 4002 struct _nir_ssbo_atomic_imin_indices { 4003 int _; /* exists to avoid empty initializers */ 4004 enum gl_access_qualifier access; 4005 }; 4006 struct _nir_ssbo_atomic_imin_ir3_indices { 4007 int _; /* exists to avoid empty initializers */ 4008 enum gl_access_qualifier access; 4009 }; 4010 struct _nir_ssbo_atomic_or_indices { 4011 int _; /* exists to avoid empty initializers */ 4012 enum gl_access_qualifier access; 4013 }; 4014 struct _nir_ssbo_atomic_or_ir3_indices { 4015 int _; /* exists to avoid empty initializers */ 4016 enum gl_access_qualifier access; 4017 }; 4018 struct _nir_ssbo_atomic_umax_indices { 4019 int _; /* exists to avoid empty initializers */ 4020 enum gl_access_qualifier access; 4021 }; 4022 struct _nir_ssbo_atomic_umax_ir3_indices { 4023 int _; /* exists to avoid empty initializers */ 4024 enum gl_access_qualifier access; 4025 }; 4026 struct _nir_ssbo_atomic_umin_indices { 4027 int _; /* exists to avoid empty initializers */ 4028 enum gl_access_qualifier access; 4029 }; 4030 struct _nir_ssbo_atomic_umin_ir3_indices { 4031 int _; /* exists to avoid empty initializers */ 4032 enum gl_access_qualifier access; 4033 }; 4034 struct _nir_ssbo_atomic_xor_indices { 4035 int _; /* exists to avoid empty initializers */ 4036 enum gl_access_qualifier access; 4037 }; 4038 struct _nir_ssbo_atomic_xor_ir3_indices { 4039 int _; /* exists to avoid empty initializers */ 4040 enum gl_access_qualifier access; 4041 }; 4042 struct _nir_store_buffer_amd_indices { 4043 int _; /* exists to avoid empty initializers */ 4044 int base; 4045 unsigned write_mask; 4046 bool is_swizzled; 4047 bool slc_amd; 4048 nir_variable_mode memory_modes; 4049 }; 4050 struct _nir_store_combined_output_pan_indices { 4051 int _; /* exists to avoid empty initializers */ 4052 int base; 4053 unsigned component; 4054 nir_alu_type src_type; 4055 }; 4056 struct _nir_store_deref_indices { 4057 int _; /* exists to avoid empty initializers */ 4058 unsigned write_mask; 4059 enum gl_access_qualifier access; 4060 }; 4061 struct _nir_store_deref_block_intel_indices { 4062 int _; /* exists to avoid empty initializers */ 4063 unsigned write_mask; 4064 enum gl_access_qualifier access; 4065 }; 4066 struct _nir_store_global_indices { 4067 int _; /* exists to avoid empty initializers */ 4068 unsigned write_mask; 4069 enum gl_access_qualifier access; 4070 unsigned align_mul; 4071 unsigned align_offset; 4072 }; 4073 struct _nir_store_global_block_intel_indices { 4074 int _; /* exists to avoid empty initializers */ 4075 unsigned write_mask; 4076 enum gl_access_qualifier access; 4077 unsigned align_mul; 4078 unsigned align_offset; 4079 }; 4080 struct _nir_store_global_ir3_indices { 4081 int _; /* exists to avoid empty initializers */ 4082 enum gl_access_qualifier access; 4083 unsigned align_mul; 4084 unsigned align_offset; 4085 }; 4086 struct _nir_store_local_shared_r600_indices { 4087 int _; /* exists to avoid empty initializers */ 4088 unsigned write_mask; 4089 }; 4090 struct _nir_store_output_indices { 4091 int _; /* exists to avoid empty initializers */ 4092 int base; 4093 unsigned write_mask; 4094 unsigned component; 4095 nir_alu_type src_type; 4096 struct nir_io_semantics io_semantics; 4097 }; 4098 struct _nir_store_per_primitive_output_indices { 4099 int _; /* exists to avoid empty initializers */ 4100 int base; 4101 unsigned write_mask; 4102 unsigned component; 4103 nir_alu_type src_type; 4104 struct nir_io_semantics io_semantics; 4105 }; 4106 struct _nir_store_per_vertex_output_indices { 4107 int _; /* exists to avoid empty initializers */ 4108 int base; 4109 unsigned write_mask; 4110 unsigned component; 4111 nir_alu_type src_type; 4112 struct nir_io_semantics io_semantics; 4113 }; 4114 struct _nir_store_raw_output_pan_indices { 4115 int _; /* exists to avoid empty initializers */ 4116 }; 4117 struct _nir_store_scratch_indices { 4118 int _; /* exists to avoid empty initializers */ 4119 unsigned align_mul; 4120 unsigned align_offset; 4121 unsigned write_mask; 4122 }; 4123 struct _nir_store_scratch_dxil_indices { 4124 int _; /* exists to avoid empty initializers */ 4125 }; 4126 struct _nir_store_shared_indices { 4127 int _; /* exists to avoid empty initializers */ 4128 int base; 4129 unsigned write_mask; 4130 unsigned align_mul; 4131 unsigned align_offset; 4132 }; 4133 struct _nir_store_shared_block_intel_indices { 4134 int _; /* exists to avoid empty initializers */ 4135 int base; 4136 unsigned write_mask; 4137 unsigned align_mul; 4138 unsigned align_offset; 4139 }; 4140 struct _nir_store_shared_dxil_indices { 4141 int _; /* exists to avoid empty initializers */ 4142 }; 4143 struct _nir_store_shared_ir3_indices { 4144 int _; /* exists to avoid empty initializers */ 4145 int base; 4146 unsigned align_mul; 4147 unsigned align_offset; 4148 }; 4149 struct _nir_store_shared_masked_dxil_indices { 4150 int _; /* exists to avoid empty initializers */ 4151 }; 4152 struct _nir_store_ssbo_indices { 4153 int _; /* exists to avoid empty initializers */ 4154 unsigned write_mask; 4155 enum gl_access_qualifier access; 4156 unsigned align_mul; 4157 unsigned align_offset; 4158 }; 4159 struct _nir_store_ssbo_block_intel_indices { 4160 int _; /* exists to avoid empty initializers */ 4161 unsigned write_mask; 4162 enum gl_access_qualifier access; 4163 unsigned align_mul; 4164 unsigned align_offset; 4165 }; 4166 struct _nir_store_ssbo_ir3_indices { 4167 int _; /* exists to avoid empty initializers */ 4168 unsigned write_mask; 4169 enum gl_access_qualifier access; 4170 unsigned align_mul; 4171 unsigned align_offset; 4172 }; 4173 struct _nir_store_ssbo_masked_dxil_indices { 4174 int _; /* exists to avoid empty initializers */ 4175 }; 4176 struct _nir_store_tf_r600_indices { 4177 int _; /* exists to avoid empty initializers */ 4178 }; 4179 struct _nir_store_tlb_sample_color_v3d_indices { 4180 int _; /* exists to avoid empty initializers */ 4181 int base; 4182 unsigned component; 4183 nir_alu_type src_type; 4184 }; 4185 struct _nir_terminate_indices { 4186 int _; /* exists to avoid empty initializers */ 4187 }; 4188 struct _nir_terminate_if_indices { 4189 int _; /* exists to avoid empty initializers */ 4190 }; 4191 struct _nir_terminate_ray_indices { 4192 int _; /* exists to avoid empty initializers */ 4193 }; 4194 struct _nir_trace_ray_indices { 4195 int _; /* exists to avoid empty initializers */ 4196 }; 4197 struct _nir_trace_ray_commit_intel_indices { 4198 int _; /* exists to avoid empty initializers */ 4199 }; 4200 struct _nir_trace_ray_continue_intel_indices { 4201 int _; /* exists to avoid empty initializers */ 4202 }; 4203 struct _nir_trace_ray_initial_intel_indices { 4204 int _; /* exists to avoid empty initializers */ 4205 }; 4206 struct _nir_vote_all_indices { 4207 int _; /* exists to avoid empty initializers */ 4208 }; 4209 struct _nir_vote_any_indices { 4210 int _; /* exists to avoid empty initializers */ 4211 }; 4212 struct _nir_vote_feq_indices { 4213 int _; /* exists to avoid empty initializers */ 4214 }; 4215 struct _nir_vote_ieq_indices { 4216 int _; /* exists to avoid empty initializers */ 4217 }; 4218 struct _nir_vulkan_resource_index_indices { 4219 int _; /* exists to avoid empty initializers */ 4220 unsigned desc_set; 4221 unsigned binding; 4222 unsigned desc_type; 4223 }; 4224 struct _nir_vulkan_resource_reindex_indices { 4225 int _; /* exists to avoid empty initializers */ 4226 unsigned desc_type; 4227 }; 4228 struct _nir_write_invocation_amd_indices { 4229 int _; /* exists to avoid empty initializers */ 4230 }; 4231 4232 4233 4234 static inline nir_intrinsic_instr * 4235 _nir_build_accept_ray_intersection(nir_builder *build) 4236 { 4237 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4238 build->shader, nir_intrinsic_accept_ray_intersection); 4239 4240 4241 nir_builder_instr_insert(build, &intrin->instr); 4242 return intrin; 4243 } 4244 static inline nir_ssa_def * 4245 _nir_build_addr_mode_is(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_addr_mode_is_indices indices) 4246 { 4247 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4248 build->shader, nir_intrinsic_addr_mode_is); 4249 4250 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4251 intrin->src[0] = nir_src_for_ssa(src0); 4252 nir_intrinsic_set_memory_modes(intrin, indices.memory_modes); 4253 4254 nir_builder_instr_insert(build, &intrin->instr); 4255 return &intrin->dest.ssa; 4256 } 4257 static inline nir_intrinsic_instr * 4258 _nir_build_alloc_vertices_and_primitives_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 4259 { 4260 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4261 build->shader, nir_intrinsic_alloc_vertices_and_primitives_amd); 4262 4263 intrin->src[0] = nir_src_for_ssa(src0); 4264 intrin->src[1] = nir_src_for_ssa(src1); 4265 4266 nir_builder_instr_insert(build, &intrin->instr); 4267 return intrin; 4268 } 4269 static inline nir_ssa_def * 4270 _nir_build_atomic_counter_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_add_indices indices) 4271 { 4272 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4273 build->shader, nir_intrinsic_atomic_counter_add); 4274 4275 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4276 intrin->src[0] = nir_src_for_ssa(src0); 4277 intrin->src[1] = nir_src_for_ssa(src1); 4278 nir_intrinsic_set_base(intrin, indices.base); 4279 4280 nir_builder_instr_insert(build, &intrin->instr); 4281 return &intrin->dest.ssa; 4282 } 4283 static inline nir_ssa_def * 4284 _nir_build_atomic_counter_add_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4285 { 4286 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4287 build->shader, nir_intrinsic_atomic_counter_add_deref); 4288 4289 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4290 intrin->src[0] = nir_src_for_ssa(src0); 4291 intrin->src[1] = nir_src_for_ssa(src1); 4292 4293 nir_builder_instr_insert(build, &intrin->instr); 4294 return &intrin->dest.ssa; 4295 } 4296 static inline nir_ssa_def * 4297 _nir_build_atomic_counter_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_and_indices indices) 4298 { 4299 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4300 build->shader, nir_intrinsic_atomic_counter_and); 4301 4302 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4303 intrin->src[0] = nir_src_for_ssa(src0); 4304 intrin->src[1] = nir_src_for_ssa(src1); 4305 nir_intrinsic_set_base(intrin, indices.base); 4306 4307 nir_builder_instr_insert(build, &intrin->instr); 4308 return &intrin->dest.ssa; 4309 } 4310 static inline nir_ssa_def * 4311 _nir_build_atomic_counter_and_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4312 { 4313 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4314 build->shader, nir_intrinsic_atomic_counter_and_deref); 4315 4316 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4317 intrin->src[0] = nir_src_for_ssa(src0); 4318 intrin->src[1] = nir_src_for_ssa(src1); 4319 4320 nir_builder_instr_insert(build, &intrin->instr); 4321 return &intrin->dest.ssa; 4322 } 4323 static inline nir_ssa_def * 4324 _nir_build_atomic_counter_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_atomic_counter_comp_swap_indices indices) 4325 { 4326 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4327 build->shader, nir_intrinsic_atomic_counter_comp_swap); 4328 4329 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4330 intrin->src[0] = nir_src_for_ssa(src0); 4331 intrin->src[1] = nir_src_for_ssa(src1); 4332 intrin->src[2] = nir_src_for_ssa(src2); 4333 nir_intrinsic_set_base(intrin, indices.base); 4334 4335 nir_builder_instr_insert(build, &intrin->instr); 4336 return &intrin->dest.ssa; 4337 } 4338 static inline nir_ssa_def * 4339 _nir_build_atomic_counter_comp_swap_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 4340 { 4341 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4342 build->shader, nir_intrinsic_atomic_counter_comp_swap_deref); 4343 4344 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4345 intrin->src[0] = nir_src_for_ssa(src0); 4346 intrin->src[1] = nir_src_for_ssa(src1); 4347 intrin->src[2] = nir_src_for_ssa(src2); 4348 4349 nir_builder_instr_insert(build, &intrin->instr); 4350 return &intrin->dest.ssa; 4351 } 4352 static inline nir_ssa_def * 4353 _nir_build_atomic_counter_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_exchange_indices indices) 4354 { 4355 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4356 build->shader, nir_intrinsic_atomic_counter_exchange); 4357 4358 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4359 intrin->src[0] = nir_src_for_ssa(src0); 4360 intrin->src[1] = nir_src_for_ssa(src1); 4361 nir_intrinsic_set_base(intrin, indices.base); 4362 4363 nir_builder_instr_insert(build, &intrin->instr); 4364 return &intrin->dest.ssa; 4365 } 4366 static inline nir_ssa_def * 4367 _nir_build_atomic_counter_exchange_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4368 { 4369 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4370 build->shader, nir_intrinsic_atomic_counter_exchange_deref); 4371 4372 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4373 intrin->src[0] = nir_src_for_ssa(src0); 4374 intrin->src[1] = nir_src_for_ssa(src1); 4375 4376 nir_builder_instr_insert(build, &intrin->instr); 4377 return &intrin->dest.ssa; 4378 } 4379 static inline nir_ssa_def * 4380 _nir_build_atomic_counter_inc(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_atomic_counter_inc_indices indices) 4381 { 4382 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4383 build->shader, nir_intrinsic_atomic_counter_inc); 4384 4385 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4386 intrin->src[0] = nir_src_for_ssa(src0); 4387 nir_intrinsic_set_base(intrin, indices.base); 4388 4389 nir_builder_instr_insert(build, &intrin->instr); 4390 return &intrin->dest.ssa; 4391 } 4392 static inline nir_ssa_def * 4393 _nir_build_atomic_counter_inc_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4394 { 4395 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4396 build->shader, nir_intrinsic_atomic_counter_inc_deref); 4397 4398 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4399 intrin->src[0] = nir_src_for_ssa(src0); 4400 4401 nir_builder_instr_insert(build, &intrin->instr); 4402 return &intrin->dest.ssa; 4403 } 4404 static inline nir_ssa_def * 4405 _nir_build_atomic_counter_max(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_max_indices indices) 4406 { 4407 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4408 build->shader, nir_intrinsic_atomic_counter_max); 4409 4410 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4411 intrin->src[0] = nir_src_for_ssa(src0); 4412 intrin->src[1] = nir_src_for_ssa(src1); 4413 nir_intrinsic_set_base(intrin, indices.base); 4414 4415 nir_builder_instr_insert(build, &intrin->instr); 4416 return &intrin->dest.ssa; 4417 } 4418 static inline nir_ssa_def * 4419 _nir_build_atomic_counter_max_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4420 { 4421 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4422 build->shader, nir_intrinsic_atomic_counter_max_deref); 4423 4424 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4425 intrin->src[0] = nir_src_for_ssa(src0); 4426 intrin->src[1] = nir_src_for_ssa(src1); 4427 4428 nir_builder_instr_insert(build, &intrin->instr); 4429 return &intrin->dest.ssa; 4430 } 4431 static inline nir_ssa_def * 4432 _nir_build_atomic_counter_min(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_min_indices indices) 4433 { 4434 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4435 build->shader, nir_intrinsic_atomic_counter_min); 4436 4437 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4438 intrin->src[0] = nir_src_for_ssa(src0); 4439 intrin->src[1] = nir_src_for_ssa(src1); 4440 nir_intrinsic_set_base(intrin, indices.base); 4441 4442 nir_builder_instr_insert(build, &intrin->instr); 4443 return &intrin->dest.ssa; 4444 } 4445 static inline nir_ssa_def * 4446 _nir_build_atomic_counter_min_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4447 { 4448 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4449 build->shader, nir_intrinsic_atomic_counter_min_deref); 4450 4451 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4452 intrin->src[0] = nir_src_for_ssa(src0); 4453 intrin->src[1] = nir_src_for_ssa(src1); 4454 4455 nir_builder_instr_insert(build, &intrin->instr); 4456 return &intrin->dest.ssa; 4457 } 4458 static inline nir_ssa_def * 4459 _nir_build_atomic_counter_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_or_indices indices) 4460 { 4461 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4462 build->shader, nir_intrinsic_atomic_counter_or); 4463 4464 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4465 intrin->src[0] = nir_src_for_ssa(src0); 4466 intrin->src[1] = nir_src_for_ssa(src1); 4467 nir_intrinsic_set_base(intrin, indices.base); 4468 4469 nir_builder_instr_insert(build, &intrin->instr); 4470 return &intrin->dest.ssa; 4471 } 4472 static inline nir_ssa_def * 4473 _nir_build_atomic_counter_or_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4474 { 4475 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4476 build->shader, nir_intrinsic_atomic_counter_or_deref); 4477 4478 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4479 intrin->src[0] = nir_src_for_ssa(src0); 4480 intrin->src[1] = nir_src_for_ssa(src1); 4481 4482 nir_builder_instr_insert(build, &intrin->instr); 4483 return &intrin->dest.ssa; 4484 } 4485 static inline nir_ssa_def * 4486 _nir_build_atomic_counter_post_dec(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_atomic_counter_post_dec_indices indices) 4487 { 4488 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4489 build->shader, nir_intrinsic_atomic_counter_post_dec); 4490 4491 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4492 intrin->src[0] = nir_src_for_ssa(src0); 4493 nir_intrinsic_set_base(intrin, indices.base); 4494 4495 nir_builder_instr_insert(build, &intrin->instr); 4496 return &intrin->dest.ssa; 4497 } 4498 static inline nir_ssa_def * 4499 _nir_build_atomic_counter_post_dec_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4500 { 4501 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4502 build->shader, nir_intrinsic_atomic_counter_post_dec_deref); 4503 4504 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4505 intrin->src[0] = nir_src_for_ssa(src0); 4506 4507 nir_builder_instr_insert(build, &intrin->instr); 4508 return &intrin->dest.ssa; 4509 } 4510 static inline nir_ssa_def * 4511 _nir_build_atomic_counter_pre_dec(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_atomic_counter_pre_dec_indices indices) 4512 { 4513 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4514 build->shader, nir_intrinsic_atomic_counter_pre_dec); 4515 4516 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4517 intrin->src[0] = nir_src_for_ssa(src0); 4518 nir_intrinsic_set_base(intrin, indices.base); 4519 4520 nir_builder_instr_insert(build, &intrin->instr); 4521 return &intrin->dest.ssa; 4522 } 4523 static inline nir_ssa_def * 4524 _nir_build_atomic_counter_pre_dec_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4525 { 4526 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4527 build->shader, nir_intrinsic_atomic_counter_pre_dec_deref); 4528 4529 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4530 intrin->src[0] = nir_src_for_ssa(src0); 4531 4532 nir_builder_instr_insert(build, &intrin->instr); 4533 return &intrin->dest.ssa; 4534 } 4535 static inline nir_ssa_def * 4536 _nir_build_atomic_counter_read(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_atomic_counter_read_indices indices) 4537 { 4538 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4539 build->shader, nir_intrinsic_atomic_counter_read); 4540 4541 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4542 intrin->src[0] = nir_src_for_ssa(src0); 4543 nir_intrinsic_set_base(intrin, indices.base); 4544 4545 nir_builder_instr_insert(build, &intrin->instr); 4546 return &intrin->dest.ssa; 4547 } 4548 static inline nir_ssa_def * 4549 _nir_build_atomic_counter_read_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4550 { 4551 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4552 build->shader, nir_intrinsic_atomic_counter_read_deref); 4553 4554 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4555 intrin->src[0] = nir_src_for_ssa(src0); 4556 4557 nir_builder_instr_insert(build, &intrin->instr); 4558 return &intrin->dest.ssa; 4559 } 4560 static inline nir_ssa_def * 4561 _nir_build_atomic_counter_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_atomic_counter_xor_indices indices) 4562 { 4563 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4564 build->shader, nir_intrinsic_atomic_counter_xor); 4565 4566 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4567 intrin->src[0] = nir_src_for_ssa(src0); 4568 intrin->src[1] = nir_src_for_ssa(src1); 4569 nir_intrinsic_set_base(intrin, indices.base); 4570 4571 nir_builder_instr_insert(build, &intrin->instr); 4572 return &intrin->dest.ssa; 4573 } 4574 static inline nir_ssa_def * 4575 _nir_build_atomic_counter_xor_deref(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4576 { 4577 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4578 build->shader, nir_intrinsic_atomic_counter_xor_deref); 4579 4580 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4581 intrin->src[0] = nir_src_for_ssa(src0); 4582 intrin->src[1] = nir_src_for_ssa(src1); 4583 4584 nir_builder_instr_insert(build, &intrin->instr); 4585 return &intrin->dest.ssa; 4586 } 4587 static inline nir_ssa_def * 4588 _nir_build_ballot(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0) 4589 { 4590 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4591 build->shader, nir_intrinsic_ballot); 4592 4593 intrin->num_components = num_components; 4594 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 4595 intrin->src[0] = nir_src_for_ssa(src0); 4596 4597 nir_builder_instr_insert(build, &intrin->instr); 4598 return &intrin->dest.ssa; 4599 } 4600 static inline nir_ssa_def * 4601 _nir_build_ballot_bit_count_exclusive(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4602 { 4603 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4604 build->shader, nir_intrinsic_ballot_bit_count_exclusive); 4605 4606 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4607 intrin->src[0] = nir_src_for_ssa(src0); 4608 4609 nir_builder_instr_insert(build, &intrin->instr); 4610 return &intrin->dest.ssa; 4611 } 4612 static inline nir_ssa_def * 4613 _nir_build_ballot_bit_count_inclusive(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4614 { 4615 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4616 build->shader, nir_intrinsic_ballot_bit_count_inclusive); 4617 4618 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4619 intrin->src[0] = nir_src_for_ssa(src0); 4620 4621 nir_builder_instr_insert(build, &intrin->instr); 4622 return &intrin->dest.ssa; 4623 } 4624 static inline nir_ssa_def * 4625 _nir_build_ballot_bit_count_reduce(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4626 { 4627 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4628 build->shader, nir_intrinsic_ballot_bit_count_reduce); 4629 4630 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4631 intrin->src[0] = nir_src_for_ssa(src0); 4632 4633 nir_builder_instr_insert(build, &intrin->instr); 4634 return &intrin->dest.ssa; 4635 } 4636 static inline nir_ssa_def * 4637 _nir_build_ballot_bitfield_extract(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 4638 { 4639 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4640 build->shader, nir_intrinsic_ballot_bitfield_extract); 4641 4642 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4643 intrin->src[0] = nir_src_for_ssa(src0); 4644 intrin->src[1] = nir_src_for_ssa(src1); 4645 4646 nir_builder_instr_insert(build, &intrin->instr); 4647 return &intrin->dest.ssa; 4648 } 4649 static inline nir_ssa_def * 4650 _nir_build_ballot_find_lsb(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4651 { 4652 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4653 build->shader, nir_intrinsic_ballot_find_lsb); 4654 4655 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4656 intrin->src[0] = nir_src_for_ssa(src0); 4657 4658 nir_builder_instr_insert(build, &intrin->instr); 4659 return &intrin->dest.ssa; 4660 } 4661 static inline nir_ssa_def * 4662 _nir_build_ballot_find_msb(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 4663 { 4664 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4665 build->shader, nir_intrinsic_ballot_find_msb); 4666 4667 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4668 intrin->src[0] = nir_src_for_ssa(src0); 4669 4670 nir_builder_instr_insert(build, &intrin->instr); 4671 return &intrin->dest.ssa; 4672 } 4673 static inline nir_intrinsic_instr * 4674 _nir_build_begin_invocation_interlock(nir_builder *build) 4675 { 4676 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4677 build->shader, nir_intrinsic_begin_invocation_interlock); 4678 4679 4680 nir_builder_instr_insert(build, &intrin->instr); 4681 return intrin; 4682 } 4683 static inline nir_ssa_def * 4684 _nir_build_bindless_image_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_add_indices indices) 4685 { 4686 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4687 build->shader, nir_intrinsic_bindless_image_atomic_add); 4688 4689 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4690 intrin->src[0] = nir_src_for_ssa(src0); 4691 intrin->src[1] = nir_src_for_ssa(src1); 4692 intrin->src[2] = nir_src_for_ssa(src2); 4693 intrin->src[3] = nir_src_for_ssa(src3); 4694 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4695 nir_intrinsic_set_image_array(intrin, indices.image_array); 4696 nir_intrinsic_set_format(intrin, indices.format); 4697 nir_intrinsic_set_access(intrin, indices.access); 4698 4699 nir_builder_instr_insert(build, &intrin->instr); 4700 return &intrin->dest.ssa; 4701 } 4702 static inline nir_ssa_def * 4703 _nir_build_bindless_image_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_and_indices indices) 4704 { 4705 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4706 build->shader, nir_intrinsic_bindless_image_atomic_and); 4707 4708 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4709 intrin->src[0] = nir_src_for_ssa(src0); 4710 intrin->src[1] = nir_src_for_ssa(src1); 4711 intrin->src[2] = nir_src_for_ssa(src2); 4712 intrin->src[3] = nir_src_for_ssa(src3); 4713 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4714 nir_intrinsic_set_image_array(intrin, indices.image_array); 4715 nir_intrinsic_set_format(intrin, indices.format); 4716 nir_intrinsic_set_access(intrin, indices.access); 4717 4718 nir_builder_instr_insert(build, &intrin->instr); 4719 return &intrin->dest.ssa; 4720 } 4721 static inline nir_ssa_def * 4722 _nir_build_bindless_image_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_bindless_image_atomic_comp_swap_indices indices) 4723 { 4724 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4725 build->shader, nir_intrinsic_bindless_image_atomic_comp_swap); 4726 4727 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4728 intrin->src[0] = nir_src_for_ssa(src0); 4729 intrin->src[1] = nir_src_for_ssa(src1); 4730 intrin->src[2] = nir_src_for_ssa(src2); 4731 intrin->src[3] = nir_src_for_ssa(src3); 4732 intrin->src[4] = nir_src_for_ssa(src4); 4733 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4734 nir_intrinsic_set_image_array(intrin, indices.image_array); 4735 nir_intrinsic_set_format(intrin, indices.format); 4736 nir_intrinsic_set_access(intrin, indices.access); 4737 4738 nir_builder_instr_insert(build, &intrin->instr); 4739 return &intrin->dest.ssa; 4740 } 4741 static inline nir_ssa_def * 4742 _nir_build_bindless_image_atomic_dec_wrap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_dec_wrap_indices indices) 4743 { 4744 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4745 build->shader, nir_intrinsic_bindless_image_atomic_dec_wrap); 4746 4747 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4748 intrin->src[0] = nir_src_for_ssa(src0); 4749 intrin->src[1] = nir_src_for_ssa(src1); 4750 intrin->src[2] = nir_src_for_ssa(src2); 4751 intrin->src[3] = nir_src_for_ssa(src3); 4752 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4753 nir_intrinsic_set_image_array(intrin, indices.image_array); 4754 nir_intrinsic_set_format(intrin, indices.format); 4755 nir_intrinsic_set_access(intrin, indices.access); 4756 4757 nir_builder_instr_insert(build, &intrin->instr); 4758 return &intrin->dest.ssa; 4759 } 4760 static inline nir_ssa_def * 4761 _nir_build_bindless_image_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_exchange_indices indices) 4762 { 4763 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4764 build->shader, nir_intrinsic_bindless_image_atomic_exchange); 4765 4766 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4767 intrin->src[0] = nir_src_for_ssa(src0); 4768 intrin->src[1] = nir_src_for_ssa(src1); 4769 intrin->src[2] = nir_src_for_ssa(src2); 4770 intrin->src[3] = nir_src_for_ssa(src3); 4771 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4772 nir_intrinsic_set_image_array(intrin, indices.image_array); 4773 nir_intrinsic_set_format(intrin, indices.format); 4774 nir_intrinsic_set_access(intrin, indices.access); 4775 4776 nir_builder_instr_insert(build, &intrin->instr); 4777 return &intrin->dest.ssa; 4778 } 4779 static inline nir_ssa_def * 4780 _nir_build_bindless_image_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_fadd_indices indices) 4781 { 4782 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4783 build->shader, nir_intrinsic_bindless_image_atomic_fadd); 4784 4785 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4786 intrin->src[0] = nir_src_for_ssa(src0); 4787 intrin->src[1] = nir_src_for_ssa(src1); 4788 intrin->src[2] = nir_src_for_ssa(src2); 4789 intrin->src[3] = nir_src_for_ssa(src3); 4790 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4791 nir_intrinsic_set_image_array(intrin, indices.image_array); 4792 nir_intrinsic_set_format(intrin, indices.format); 4793 nir_intrinsic_set_access(intrin, indices.access); 4794 4795 nir_builder_instr_insert(build, &intrin->instr); 4796 return &intrin->dest.ssa; 4797 } 4798 static inline nir_ssa_def * 4799 _nir_build_bindless_image_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_fmax_indices indices) 4800 { 4801 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4802 build->shader, nir_intrinsic_bindless_image_atomic_fmax); 4803 4804 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4805 intrin->src[0] = nir_src_for_ssa(src0); 4806 intrin->src[1] = nir_src_for_ssa(src1); 4807 intrin->src[2] = nir_src_for_ssa(src2); 4808 intrin->src[3] = nir_src_for_ssa(src3); 4809 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4810 nir_intrinsic_set_image_array(intrin, indices.image_array); 4811 nir_intrinsic_set_format(intrin, indices.format); 4812 nir_intrinsic_set_access(intrin, indices.access); 4813 4814 nir_builder_instr_insert(build, &intrin->instr); 4815 return &intrin->dest.ssa; 4816 } 4817 static inline nir_ssa_def * 4818 _nir_build_bindless_image_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_fmin_indices indices) 4819 { 4820 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4821 build->shader, nir_intrinsic_bindless_image_atomic_fmin); 4822 4823 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4824 intrin->src[0] = nir_src_for_ssa(src0); 4825 intrin->src[1] = nir_src_for_ssa(src1); 4826 intrin->src[2] = nir_src_for_ssa(src2); 4827 intrin->src[3] = nir_src_for_ssa(src3); 4828 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4829 nir_intrinsic_set_image_array(intrin, indices.image_array); 4830 nir_intrinsic_set_format(intrin, indices.format); 4831 nir_intrinsic_set_access(intrin, indices.access); 4832 4833 nir_builder_instr_insert(build, &intrin->instr); 4834 return &intrin->dest.ssa; 4835 } 4836 static inline nir_ssa_def * 4837 _nir_build_bindless_image_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_imax_indices indices) 4838 { 4839 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4840 build->shader, nir_intrinsic_bindless_image_atomic_imax); 4841 4842 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4843 intrin->src[0] = nir_src_for_ssa(src0); 4844 intrin->src[1] = nir_src_for_ssa(src1); 4845 intrin->src[2] = nir_src_for_ssa(src2); 4846 intrin->src[3] = nir_src_for_ssa(src3); 4847 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4848 nir_intrinsic_set_image_array(intrin, indices.image_array); 4849 nir_intrinsic_set_format(intrin, indices.format); 4850 nir_intrinsic_set_access(intrin, indices.access); 4851 4852 nir_builder_instr_insert(build, &intrin->instr); 4853 return &intrin->dest.ssa; 4854 } 4855 static inline nir_ssa_def * 4856 _nir_build_bindless_image_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_imin_indices indices) 4857 { 4858 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4859 build->shader, nir_intrinsic_bindless_image_atomic_imin); 4860 4861 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4862 intrin->src[0] = nir_src_for_ssa(src0); 4863 intrin->src[1] = nir_src_for_ssa(src1); 4864 intrin->src[2] = nir_src_for_ssa(src2); 4865 intrin->src[3] = nir_src_for_ssa(src3); 4866 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4867 nir_intrinsic_set_image_array(intrin, indices.image_array); 4868 nir_intrinsic_set_format(intrin, indices.format); 4869 nir_intrinsic_set_access(intrin, indices.access); 4870 4871 nir_builder_instr_insert(build, &intrin->instr); 4872 return &intrin->dest.ssa; 4873 } 4874 static inline nir_ssa_def * 4875 _nir_build_bindless_image_atomic_inc_wrap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_inc_wrap_indices indices) 4876 { 4877 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4878 build->shader, nir_intrinsic_bindless_image_atomic_inc_wrap); 4879 4880 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4881 intrin->src[0] = nir_src_for_ssa(src0); 4882 intrin->src[1] = nir_src_for_ssa(src1); 4883 intrin->src[2] = nir_src_for_ssa(src2); 4884 intrin->src[3] = nir_src_for_ssa(src3); 4885 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4886 nir_intrinsic_set_image_array(intrin, indices.image_array); 4887 nir_intrinsic_set_format(intrin, indices.format); 4888 nir_intrinsic_set_access(intrin, indices.access); 4889 4890 nir_builder_instr_insert(build, &intrin->instr); 4891 return &intrin->dest.ssa; 4892 } 4893 static inline nir_ssa_def * 4894 _nir_build_bindless_image_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_or_indices indices) 4895 { 4896 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4897 build->shader, nir_intrinsic_bindless_image_atomic_or); 4898 4899 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4900 intrin->src[0] = nir_src_for_ssa(src0); 4901 intrin->src[1] = nir_src_for_ssa(src1); 4902 intrin->src[2] = nir_src_for_ssa(src2); 4903 intrin->src[3] = nir_src_for_ssa(src3); 4904 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4905 nir_intrinsic_set_image_array(intrin, indices.image_array); 4906 nir_intrinsic_set_format(intrin, indices.format); 4907 nir_intrinsic_set_access(intrin, indices.access); 4908 4909 nir_builder_instr_insert(build, &intrin->instr); 4910 return &intrin->dest.ssa; 4911 } 4912 static inline nir_ssa_def * 4913 _nir_build_bindless_image_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_umax_indices indices) 4914 { 4915 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4916 build->shader, nir_intrinsic_bindless_image_atomic_umax); 4917 4918 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4919 intrin->src[0] = nir_src_for_ssa(src0); 4920 intrin->src[1] = nir_src_for_ssa(src1); 4921 intrin->src[2] = nir_src_for_ssa(src2); 4922 intrin->src[3] = nir_src_for_ssa(src3); 4923 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4924 nir_intrinsic_set_image_array(intrin, indices.image_array); 4925 nir_intrinsic_set_format(intrin, indices.format); 4926 nir_intrinsic_set_access(intrin, indices.access); 4927 4928 nir_builder_instr_insert(build, &intrin->instr); 4929 return &intrin->dest.ssa; 4930 } 4931 static inline nir_ssa_def * 4932 _nir_build_bindless_image_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_umin_indices indices) 4933 { 4934 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4935 build->shader, nir_intrinsic_bindless_image_atomic_umin); 4936 4937 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4938 intrin->src[0] = nir_src_for_ssa(src0); 4939 intrin->src[1] = nir_src_for_ssa(src1); 4940 intrin->src[2] = nir_src_for_ssa(src2); 4941 intrin->src[3] = nir_src_for_ssa(src3); 4942 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4943 nir_intrinsic_set_image_array(intrin, indices.image_array); 4944 nir_intrinsic_set_format(intrin, indices.format); 4945 nir_intrinsic_set_access(intrin, indices.access); 4946 4947 nir_builder_instr_insert(build, &intrin->instr); 4948 return &intrin->dest.ssa; 4949 } 4950 static inline nir_ssa_def * 4951 _nir_build_bindless_image_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_atomic_xor_indices indices) 4952 { 4953 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4954 build->shader, nir_intrinsic_bindless_image_atomic_xor); 4955 4956 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4957 intrin->src[0] = nir_src_for_ssa(src0); 4958 intrin->src[1] = nir_src_for_ssa(src1); 4959 intrin->src[2] = nir_src_for_ssa(src2); 4960 intrin->src[3] = nir_src_for_ssa(src3); 4961 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4962 nir_intrinsic_set_image_array(intrin, indices.image_array); 4963 nir_intrinsic_set_format(intrin, indices.format); 4964 nir_intrinsic_set_access(intrin, indices.access); 4965 4966 nir_builder_instr_insert(build, &intrin->instr); 4967 return &intrin->dest.ssa; 4968 } 4969 static inline nir_ssa_def * 4970 _nir_build_bindless_image_format(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_bindless_image_format_indices indices) 4971 { 4972 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4973 build->shader, nir_intrinsic_bindless_image_format); 4974 4975 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 4976 intrin->src[0] = nir_src_for_ssa(src0); 4977 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4978 nir_intrinsic_set_image_array(intrin, indices.image_array); 4979 nir_intrinsic_set_format(intrin, indices.format); 4980 nir_intrinsic_set_access(intrin, indices.access); 4981 4982 nir_builder_instr_insert(build, &intrin->instr); 4983 return &intrin->dest.ssa; 4984 } 4985 static inline nir_ssa_def * 4986 _nir_build_bindless_image_load(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_load_indices indices) 4987 { 4988 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 4989 build->shader, nir_intrinsic_bindless_image_load); 4990 4991 intrin->num_components = num_components; 4992 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 4993 intrin->src[0] = nir_src_for_ssa(src0); 4994 intrin->src[1] = nir_src_for_ssa(src1); 4995 intrin->src[2] = nir_src_for_ssa(src2); 4996 intrin->src[3] = nir_src_for_ssa(src3); 4997 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 4998 nir_intrinsic_set_image_array(intrin, indices.image_array); 4999 nir_intrinsic_set_format(intrin, indices.format); 5000 nir_intrinsic_set_access(intrin, indices.access); 5001 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 5002 5003 nir_builder_instr_insert(build, &intrin->instr); 5004 return &intrin->dest.ssa; 5005 } 5006 static inline nir_ssa_def * 5007 _nir_build_bindless_image_load_raw_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_bindless_image_load_raw_intel_indices indices) 5008 { 5009 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5010 build->shader, nir_intrinsic_bindless_image_load_raw_intel); 5011 5012 intrin->num_components = num_components; 5013 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 5014 intrin->src[0] = nir_src_for_ssa(src0); 5015 intrin->src[1] = nir_src_for_ssa(src1); 5016 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5017 nir_intrinsic_set_image_array(intrin, indices.image_array); 5018 nir_intrinsic_set_format(intrin, indices.format); 5019 nir_intrinsic_set_access(intrin, indices.access); 5020 5021 nir_builder_instr_insert(build, &intrin->instr); 5022 return &intrin->dest.ssa; 5023 } 5024 static inline nir_ssa_def * 5025 _nir_build_bindless_image_order(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_bindless_image_order_indices indices) 5026 { 5027 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5028 build->shader, nir_intrinsic_bindless_image_order); 5029 5030 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5031 intrin->src[0] = nir_src_for_ssa(src0); 5032 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5033 nir_intrinsic_set_image_array(intrin, indices.image_array); 5034 nir_intrinsic_set_format(intrin, indices.format); 5035 nir_intrinsic_set_access(intrin, indices.access); 5036 5037 nir_builder_instr_insert(build, &intrin->instr); 5038 return &intrin->dest.ssa; 5039 } 5040 static inline nir_ssa_def * 5041 _nir_build_bindless_image_samples(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_bindless_image_samples_indices indices) 5042 { 5043 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5044 build->shader, nir_intrinsic_bindless_image_samples); 5045 5046 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5047 intrin->src[0] = nir_src_for_ssa(src0); 5048 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5049 nir_intrinsic_set_image_array(intrin, indices.image_array); 5050 nir_intrinsic_set_format(intrin, indices.format); 5051 nir_intrinsic_set_access(intrin, indices.access); 5052 5053 nir_builder_instr_insert(build, &intrin->instr); 5054 return &intrin->dest.ssa; 5055 } 5056 static inline nir_ssa_def * 5057 _nir_build_bindless_image_size(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_bindless_image_size_indices indices) 5058 { 5059 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5060 build->shader, nir_intrinsic_bindless_image_size); 5061 5062 intrin->num_components = num_components; 5063 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 5064 intrin->src[0] = nir_src_for_ssa(src0); 5065 intrin->src[1] = nir_src_for_ssa(src1); 5066 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5067 nir_intrinsic_set_image_array(intrin, indices.image_array); 5068 nir_intrinsic_set_format(intrin, indices.format); 5069 nir_intrinsic_set_access(intrin, indices.access); 5070 5071 nir_builder_instr_insert(build, &intrin->instr); 5072 return &intrin->dest.ssa; 5073 } 5074 static inline nir_ssa_def * 5075 _nir_build_bindless_image_sparse_load(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_bindless_image_sparse_load_indices indices) 5076 { 5077 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5078 build->shader, nir_intrinsic_bindless_image_sparse_load); 5079 5080 intrin->num_components = num_components; 5081 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 5082 intrin->src[0] = nir_src_for_ssa(src0); 5083 intrin->src[1] = nir_src_for_ssa(src1); 5084 intrin->src[2] = nir_src_for_ssa(src2); 5085 intrin->src[3] = nir_src_for_ssa(src3); 5086 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5087 nir_intrinsic_set_image_array(intrin, indices.image_array); 5088 nir_intrinsic_set_format(intrin, indices.format); 5089 nir_intrinsic_set_access(intrin, indices.access); 5090 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 5091 5092 nir_builder_instr_insert(build, &intrin->instr); 5093 return &intrin->dest.ssa; 5094 } 5095 static inline nir_intrinsic_instr * 5096 _nir_build_bindless_image_store(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_bindless_image_store_indices indices) 5097 { 5098 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5099 build->shader, nir_intrinsic_bindless_image_store); 5100 5101 intrin->num_components = src3->num_components; 5102 intrin->src[0] = nir_src_for_ssa(src0); 5103 intrin->src[1] = nir_src_for_ssa(src1); 5104 intrin->src[2] = nir_src_for_ssa(src2); 5105 intrin->src[3] = nir_src_for_ssa(src3); 5106 intrin->src[4] = nir_src_for_ssa(src4); 5107 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5108 nir_intrinsic_set_image_array(intrin, indices.image_array); 5109 nir_intrinsic_set_format(intrin, indices.format); 5110 nir_intrinsic_set_access(intrin, indices.access); 5111 nir_intrinsic_set_src_type(intrin, indices.src_type); 5112 5113 nir_builder_instr_insert(build, &intrin->instr); 5114 return intrin; 5115 } 5116 static inline nir_intrinsic_instr * 5117 _nir_build_bindless_image_store_raw_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_bindless_image_store_raw_intel_indices indices) 5118 { 5119 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5120 build->shader, nir_intrinsic_bindless_image_store_raw_intel); 5121 5122 intrin->num_components = src2->num_components; 5123 intrin->src[0] = nir_src_for_ssa(src0); 5124 intrin->src[1] = nir_src_for_ssa(src1); 5125 intrin->src[2] = nir_src_for_ssa(src2); 5126 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5127 nir_intrinsic_set_image_array(intrin, indices.image_array); 5128 nir_intrinsic_set_format(intrin, indices.format); 5129 nir_intrinsic_set_access(intrin, indices.access); 5130 5131 nir_builder_instr_insert(build, &intrin->instr); 5132 return intrin; 5133 } 5134 static inline nir_ssa_def * 5135 _nir_build_bindless_resource_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_bindless_resource_ir3_indices indices) 5136 { 5137 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5138 build->shader, nir_intrinsic_bindless_resource_ir3); 5139 5140 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5141 intrin->src[0] = nir_src_for_ssa(src0); 5142 nir_intrinsic_set_desc_set(intrin, indices.desc_set); 5143 5144 nir_builder_instr_insert(build, &intrin->instr); 5145 return &intrin->dest.ssa; 5146 } 5147 static inline nir_intrinsic_instr * 5148 _nir_build_btd_retire_intel(nir_builder *build) 5149 { 5150 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5151 build->shader, nir_intrinsic_btd_retire_intel); 5152 5153 5154 nir_builder_instr_insert(build, &intrin->instr); 5155 return intrin; 5156 } 5157 static inline nir_intrinsic_instr * 5158 _nir_build_btd_spawn_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 5159 { 5160 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5161 build->shader, nir_intrinsic_btd_spawn_intel); 5162 5163 intrin->src[0] = nir_src_for_ssa(src0); 5164 intrin->src[1] = nir_src_for_ssa(src1); 5165 5166 nir_builder_instr_insert(build, &intrin->instr); 5167 return intrin; 5168 } 5169 static inline nir_intrinsic_instr * 5170 _nir_build_btd_stack_push_intel(nir_builder *build, struct _nir_btd_stack_push_intel_indices indices) 5171 { 5172 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5173 build->shader, nir_intrinsic_btd_stack_push_intel); 5174 5175 nir_intrinsic_set_stack_size(intrin, indices.stack_size); 5176 5177 nir_builder_instr_insert(build, &intrin->instr); 5178 return intrin; 5179 } 5180 static inline nir_ssa_def * 5181 _nir_build_bvh64_intersect_ray_amd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, nir_ssa_def *src5) 5182 { 5183 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5184 build->shader, nir_intrinsic_bvh64_intersect_ray_amd); 5185 5186 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, bit_size, NULL); 5187 intrin->src[0] = nir_src_for_ssa(src0); 5188 intrin->src[1] = nir_src_for_ssa(src1); 5189 intrin->src[2] = nir_src_for_ssa(src2); 5190 intrin->src[3] = nir_src_for_ssa(src3); 5191 intrin->src[4] = nir_src_for_ssa(src4); 5192 intrin->src[5] = nir_src_for_ssa(src5); 5193 5194 nir_builder_instr_insert(build, &intrin->instr); 5195 return &intrin->dest.ssa; 5196 } 5197 static inline nir_ssa_def * 5198 _nir_build_byte_permute_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 5199 { 5200 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5201 build->shader, nir_intrinsic_byte_permute_amd); 5202 5203 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 5204 intrin->src[0] = nir_src_for_ssa(src0); 5205 intrin->src[1] = nir_src_for_ssa(src1); 5206 intrin->src[2] = nir_src_for_ssa(src2); 5207 5208 nir_builder_instr_insert(build, &intrin->instr); 5209 return &intrin->dest.ssa; 5210 } 5211 static inline nir_intrinsic_instr * 5212 _nir_build_cond_end_ir3(nir_builder *build, nir_ssa_def *src0) 5213 { 5214 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5215 build->shader, nir_intrinsic_cond_end_ir3); 5216 5217 intrin->src[0] = nir_src_for_ssa(src0); 5218 5219 nir_builder_instr_insert(build, &intrin->instr); 5220 return intrin; 5221 } 5222 static inline nir_intrinsic_instr * 5223 _nir_build_control_barrier(nir_builder *build) 5224 { 5225 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5226 build->shader, nir_intrinsic_control_barrier); 5227 5228 5229 nir_builder_instr_insert(build, &intrin->instr); 5230 return intrin; 5231 } 5232 static inline nir_ssa_def * 5233 _nir_build_convert_alu_types(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_convert_alu_types_indices indices) 5234 { 5235 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5236 build->shader, nir_intrinsic_convert_alu_types); 5237 5238 intrin->num_components = src0->num_components; 5239 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 5240 intrin->src[0] = nir_src_for_ssa(src0); 5241 nir_intrinsic_set_src_type(intrin, indices.src_type); 5242 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 5243 nir_intrinsic_set_rounding_mode(intrin, indices.rounding_mode); 5244 nir_intrinsic_set_saturate(intrin, indices.saturate); 5245 5246 nir_builder_instr_insert(build, &intrin->instr); 5247 return &intrin->dest.ssa; 5248 } 5249 static inline nir_intrinsic_instr * 5250 _nir_build_copy_deref(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_copy_deref_indices indices) 5251 { 5252 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5253 build->shader, nir_intrinsic_copy_deref); 5254 5255 intrin->src[0] = nir_src_for_ssa(src0); 5256 intrin->src[1] = nir_src_for_ssa(src1); 5257 nir_intrinsic_set_dst_access(intrin, indices.dst_access); 5258 nir_intrinsic_set_src_access(intrin, indices.src_access); 5259 5260 nir_builder_instr_insert(build, &intrin->instr); 5261 return intrin; 5262 } 5263 static inline nir_intrinsic_instr * 5264 _nir_build_demote(nir_builder *build) 5265 { 5266 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5267 build->shader, nir_intrinsic_demote); 5268 5269 5270 nir_builder_instr_insert(build, &intrin->instr); 5271 return intrin; 5272 } 5273 static inline nir_intrinsic_instr * 5274 _nir_build_demote_if(nir_builder *build, nir_ssa_def *src0) 5275 { 5276 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5277 build->shader, nir_intrinsic_demote_if); 5278 5279 intrin->src[0] = nir_src_for_ssa(src0); 5280 5281 nir_builder_instr_insert(build, &intrin->instr); 5282 return intrin; 5283 } 5284 static inline nir_ssa_def * 5285 _nir_build_deref_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_add_indices indices) 5286 { 5287 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5288 build->shader, nir_intrinsic_deref_atomic_add); 5289 5290 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5291 intrin->src[0] = nir_src_for_ssa(src0); 5292 intrin->src[1] = nir_src_for_ssa(src1); 5293 nir_intrinsic_set_access(intrin, indices.access); 5294 5295 nir_builder_instr_insert(build, &intrin->instr); 5296 return &intrin->dest.ssa; 5297 } 5298 static inline nir_ssa_def * 5299 _nir_build_deref_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_and_indices indices) 5300 { 5301 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5302 build->shader, nir_intrinsic_deref_atomic_and); 5303 5304 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5305 intrin->src[0] = nir_src_for_ssa(src0); 5306 intrin->src[1] = nir_src_for_ssa(src1); 5307 nir_intrinsic_set_access(intrin, indices.access); 5308 5309 nir_builder_instr_insert(build, &intrin->instr); 5310 return &intrin->dest.ssa; 5311 } 5312 static inline nir_ssa_def * 5313 _nir_build_deref_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_deref_atomic_comp_swap_indices indices) 5314 { 5315 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5316 build->shader, nir_intrinsic_deref_atomic_comp_swap); 5317 5318 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5319 intrin->src[0] = nir_src_for_ssa(src0); 5320 intrin->src[1] = nir_src_for_ssa(src1); 5321 intrin->src[2] = nir_src_for_ssa(src2); 5322 nir_intrinsic_set_access(intrin, indices.access); 5323 5324 nir_builder_instr_insert(build, &intrin->instr); 5325 return &intrin->dest.ssa; 5326 } 5327 static inline nir_ssa_def * 5328 _nir_build_deref_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_exchange_indices indices) 5329 { 5330 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5331 build->shader, nir_intrinsic_deref_atomic_exchange); 5332 5333 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5334 intrin->src[0] = nir_src_for_ssa(src0); 5335 intrin->src[1] = nir_src_for_ssa(src1); 5336 nir_intrinsic_set_access(intrin, indices.access); 5337 5338 nir_builder_instr_insert(build, &intrin->instr); 5339 return &intrin->dest.ssa; 5340 } 5341 static inline nir_ssa_def * 5342 _nir_build_deref_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_fadd_indices indices) 5343 { 5344 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5345 build->shader, nir_intrinsic_deref_atomic_fadd); 5346 5347 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5348 intrin->src[0] = nir_src_for_ssa(src0); 5349 intrin->src[1] = nir_src_for_ssa(src1); 5350 nir_intrinsic_set_access(intrin, indices.access); 5351 5352 nir_builder_instr_insert(build, &intrin->instr); 5353 return &intrin->dest.ssa; 5354 } 5355 static inline nir_ssa_def * 5356 _nir_build_deref_atomic_fcomp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_deref_atomic_fcomp_swap_indices indices) 5357 { 5358 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5359 build->shader, nir_intrinsic_deref_atomic_fcomp_swap); 5360 5361 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5362 intrin->src[0] = nir_src_for_ssa(src0); 5363 intrin->src[1] = nir_src_for_ssa(src1); 5364 intrin->src[2] = nir_src_for_ssa(src2); 5365 nir_intrinsic_set_access(intrin, indices.access); 5366 5367 nir_builder_instr_insert(build, &intrin->instr); 5368 return &intrin->dest.ssa; 5369 } 5370 static inline nir_ssa_def * 5371 _nir_build_deref_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_fmax_indices indices) 5372 { 5373 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5374 build->shader, nir_intrinsic_deref_atomic_fmax); 5375 5376 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5377 intrin->src[0] = nir_src_for_ssa(src0); 5378 intrin->src[1] = nir_src_for_ssa(src1); 5379 nir_intrinsic_set_access(intrin, indices.access); 5380 5381 nir_builder_instr_insert(build, &intrin->instr); 5382 return &intrin->dest.ssa; 5383 } 5384 static inline nir_ssa_def * 5385 _nir_build_deref_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_fmin_indices indices) 5386 { 5387 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5388 build->shader, nir_intrinsic_deref_atomic_fmin); 5389 5390 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5391 intrin->src[0] = nir_src_for_ssa(src0); 5392 intrin->src[1] = nir_src_for_ssa(src1); 5393 nir_intrinsic_set_access(intrin, indices.access); 5394 5395 nir_builder_instr_insert(build, &intrin->instr); 5396 return &intrin->dest.ssa; 5397 } 5398 static inline nir_ssa_def * 5399 _nir_build_deref_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_imax_indices indices) 5400 { 5401 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5402 build->shader, nir_intrinsic_deref_atomic_imax); 5403 5404 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5405 intrin->src[0] = nir_src_for_ssa(src0); 5406 intrin->src[1] = nir_src_for_ssa(src1); 5407 nir_intrinsic_set_access(intrin, indices.access); 5408 5409 nir_builder_instr_insert(build, &intrin->instr); 5410 return &intrin->dest.ssa; 5411 } 5412 static inline nir_ssa_def * 5413 _nir_build_deref_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_imin_indices indices) 5414 { 5415 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5416 build->shader, nir_intrinsic_deref_atomic_imin); 5417 5418 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5419 intrin->src[0] = nir_src_for_ssa(src0); 5420 intrin->src[1] = nir_src_for_ssa(src1); 5421 nir_intrinsic_set_access(intrin, indices.access); 5422 5423 nir_builder_instr_insert(build, &intrin->instr); 5424 return &intrin->dest.ssa; 5425 } 5426 static inline nir_ssa_def * 5427 _nir_build_deref_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_or_indices indices) 5428 { 5429 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5430 build->shader, nir_intrinsic_deref_atomic_or); 5431 5432 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5433 intrin->src[0] = nir_src_for_ssa(src0); 5434 intrin->src[1] = nir_src_for_ssa(src1); 5435 nir_intrinsic_set_access(intrin, indices.access); 5436 5437 nir_builder_instr_insert(build, &intrin->instr); 5438 return &intrin->dest.ssa; 5439 } 5440 static inline nir_ssa_def * 5441 _nir_build_deref_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_umax_indices indices) 5442 { 5443 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5444 build->shader, nir_intrinsic_deref_atomic_umax); 5445 5446 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5447 intrin->src[0] = nir_src_for_ssa(src0); 5448 intrin->src[1] = nir_src_for_ssa(src1); 5449 nir_intrinsic_set_access(intrin, indices.access); 5450 5451 nir_builder_instr_insert(build, &intrin->instr); 5452 return &intrin->dest.ssa; 5453 } 5454 static inline nir_ssa_def * 5455 _nir_build_deref_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_umin_indices indices) 5456 { 5457 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5458 build->shader, nir_intrinsic_deref_atomic_umin); 5459 5460 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5461 intrin->src[0] = nir_src_for_ssa(src0); 5462 intrin->src[1] = nir_src_for_ssa(src1); 5463 nir_intrinsic_set_access(intrin, indices.access); 5464 5465 nir_builder_instr_insert(build, &intrin->instr); 5466 return &intrin->dest.ssa; 5467 } 5468 static inline nir_ssa_def * 5469 _nir_build_deref_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_deref_atomic_xor_indices indices) 5470 { 5471 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5472 build->shader, nir_intrinsic_deref_atomic_xor); 5473 5474 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5475 intrin->src[0] = nir_src_for_ssa(src0); 5476 intrin->src[1] = nir_src_for_ssa(src1); 5477 nir_intrinsic_set_access(intrin, indices.access); 5478 5479 nir_builder_instr_insert(build, &intrin->instr); 5480 return &intrin->dest.ssa; 5481 } 5482 static inline nir_ssa_def * 5483 _nir_build_deref_buffer_array_length(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_deref_buffer_array_length_indices indices) 5484 { 5485 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5486 build->shader, nir_intrinsic_deref_buffer_array_length); 5487 5488 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5489 intrin->src[0] = nir_src_for_ssa(src0); 5490 nir_intrinsic_set_access(intrin, indices.access); 5491 5492 nir_builder_instr_insert(build, &intrin->instr); 5493 return &intrin->dest.ssa; 5494 } 5495 static inline nir_ssa_def * 5496 _nir_build_deref_mode_is(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_deref_mode_is_indices indices) 5497 { 5498 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5499 build->shader, nir_intrinsic_deref_mode_is); 5500 5501 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5502 intrin->src[0] = nir_src_for_ssa(src0); 5503 nir_intrinsic_set_memory_modes(intrin, indices.memory_modes); 5504 5505 nir_builder_instr_insert(build, &intrin->instr); 5506 return &intrin->dest.ssa; 5507 } 5508 static inline nir_intrinsic_instr * 5509 _nir_build_discard(nir_builder *build) 5510 { 5511 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5512 build->shader, nir_intrinsic_discard); 5513 5514 5515 nir_builder_instr_insert(build, &intrin->instr); 5516 return intrin; 5517 } 5518 static inline nir_intrinsic_instr * 5519 _nir_build_discard_if(nir_builder *build, nir_ssa_def *src0) 5520 { 5521 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5522 build->shader, nir_intrinsic_discard_if); 5523 5524 intrin->src[0] = nir_src_for_ssa(src0); 5525 5526 nir_builder_instr_insert(build, &intrin->instr); 5527 return intrin; 5528 } 5529 static inline nir_ssa_def * 5530 _nir_build_elect(nir_builder *build, unsigned bit_size) 5531 { 5532 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5533 build->shader, nir_intrinsic_elect); 5534 5535 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5536 5537 nir_builder_instr_insert(build, &intrin->instr); 5538 return &intrin->dest.ssa; 5539 } 5540 static inline nir_intrinsic_instr * 5541 _nir_build_emit_vertex(nir_builder *build, struct _nir_emit_vertex_indices indices) 5542 { 5543 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5544 build->shader, nir_intrinsic_emit_vertex); 5545 5546 nir_intrinsic_set_stream_id(intrin, indices.stream_id); 5547 5548 nir_builder_instr_insert(build, &intrin->instr); 5549 return intrin; 5550 } 5551 static inline nir_intrinsic_instr * 5552 _nir_build_emit_vertex_with_counter(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_emit_vertex_with_counter_indices indices) 5553 { 5554 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5555 build->shader, nir_intrinsic_emit_vertex_with_counter); 5556 5557 intrin->src[0] = nir_src_for_ssa(src0); 5558 intrin->src[1] = nir_src_for_ssa(src1); 5559 nir_intrinsic_set_stream_id(intrin, indices.stream_id); 5560 5561 nir_builder_instr_insert(build, &intrin->instr); 5562 return intrin; 5563 } 5564 static inline nir_intrinsic_instr * 5565 _nir_build_end_invocation_interlock(nir_builder *build) 5566 { 5567 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5568 build->shader, nir_intrinsic_end_invocation_interlock); 5569 5570 5571 nir_builder_instr_insert(build, &intrin->instr); 5572 return intrin; 5573 } 5574 static inline nir_intrinsic_instr * 5575 _nir_build_end_patch_ir3(nir_builder *build) 5576 { 5577 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5578 build->shader, nir_intrinsic_end_patch_ir3); 5579 5580 5581 nir_builder_instr_insert(build, &intrin->instr); 5582 return intrin; 5583 } 5584 static inline nir_intrinsic_instr * 5585 _nir_build_end_primitive(nir_builder *build, struct _nir_end_primitive_indices indices) 5586 { 5587 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5588 build->shader, nir_intrinsic_end_primitive); 5589 5590 nir_intrinsic_set_stream_id(intrin, indices.stream_id); 5591 5592 nir_builder_instr_insert(build, &intrin->instr); 5593 return intrin; 5594 } 5595 static inline nir_intrinsic_instr * 5596 _nir_build_end_primitive_with_counter(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_end_primitive_with_counter_indices indices) 5597 { 5598 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5599 build->shader, nir_intrinsic_end_primitive_with_counter); 5600 5601 intrin->src[0] = nir_src_for_ssa(src0); 5602 intrin->src[1] = nir_src_for_ssa(src1); 5603 nir_intrinsic_set_stream_id(intrin, indices.stream_id); 5604 5605 nir_builder_instr_insert(build, &intrin->instr); 5606 return intrin; 5607 } 5608 static inline nir_ssa_def * 5609 _nir_build_exclusive_scan(nir_builder *build, nir_ssa_def *src0, struct _nir_exclusive_scan_indices indices) 5610 { 5611 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5612 build->shader, nir_intrinsic_exclusive_scan); 5613 5614 intrin->num_components = src0->num_components; 5615 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 5616 intrin->src[0] = nir_src_for_ssa(src0); 5617 nir_intrinsic_set_reduction_op(intrin, indices.reduction_op); 5618 5619 nir_builder_instr_insert(build, &intrin->instr); 5620 return &intrin->dest.ssa; 5621 } 5622 static inline nir_intrinsic_instr * 5623 _nir_build_execute_callable(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 5624 { 5625 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5626 build->shader, nir_intrinsic_execute_callable); 5627 5628 intrin->src[0] = nir_src_for_ssa(src0); 5629 intrin->src[1] = nir_src_for_ssa(src1); 5630 5631 nir_builder_instr_insert(build, &intrin->instr); 5632 return intrin; 5633 } 5634 static inline nir_intrinsic_instr * 5635 _nir_build_export_primitive_amd(nir_builder *build, nir_ssa_def *src0) 5636 { 5637 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5638 build->shader, nir_intrinsic_export_primitive_amd); 5639 5640 intrin->src[0] = nir_src_for_ssa(src0); 5641 5642 nir_builder_instr_insert(build, &intrin->instr); 5643 return intrin; 5644 } 5645 static inline nir_intrinsic_instr * 5646 _nir_build_export_vertex_amd(nir_builder *build) 5647 { 5648 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5649 build->shader, nir_intrinsic_export_vertex_amd); 5650 5651 5652 nir_builder_instr_insert(build, &intrin->instr); 5653 return intrin; 5654 } 5655 static inline nir_ssa_def * 5656 _nir_build_first_invocation(nir_builder *build) 5657 { 5658 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5659 build->shader, nir_intrinsic_first_invocation); 5660 5661 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 5662 5663 nir_builder_instr_insert(build, &intrin->instr); 5664 return &intrin->dest.ssa; 5665 } 5666 static inline nir_ssa_def * 5667 _nir_build_gds_atomic_add_amd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_gds_atomic_add_amd_indices indices) 5668 { 5669 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5670 build->shader, nir_intrinsic_gds_atomic_add_amd); 5671 5672 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5673 intrin->src[0] = nir_src_for_ssa(src0); 5674 intrin->src[1] = nir_src_for_ssa(src1); 5675 intrin->src[2] = nir_src_for_ssa(src2); 5676 nir_intrinsic_set_base(intrin, indices.base); 5677 5678 nir_builder_instr_insert(build, &intrin->instr); 5679 return &intrin->dest.ssa; 5680 } 5681 static inline nir_ssa_def * 5682 _nir_build_get_ssbo_size(nir_builder *build, nir_ssa_def *src0, struct _nir_get_ssbo_size_indices indices) 5683 { 5684 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5685 build->shader, nir_intrinsic_get_ssbo_size); 5686 5687 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 5688 intrin->src[0] = nir_src_for_ssa(src0); 5689 nir_intrinsic_set_access(intrin, indices.access); 5690 5691 nir_builder_instr_insert(build, &intrin->instr); 5692 return &intrin->dest.ssa; 5693 } 5694 static inline nir_ssa_def * 5695 _nir_build_get_ubo_size(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 5696 { 5697 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5698 build->shader, nir_intrinsic_get_ubo_size); 5699 5700 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5701 intrin->src[0] = nir_src_for_ssa(src0); 5702 5703 nir_builder_instr_insert(build, &intrin->instr); 5704 return &intrin->dest.ssa; 5705 } 5706 static inline nir_ssa_def * 5707 _nir_build_global_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_add_indices indices) 5708 { 5709 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5710 build->shader, nir_intrinsic_global_atomic_add); 5711 5712 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5713 intrin->src[0] = nir_src_for_ssa(src0); 5714 intrin->src[1] = nir_src_for_ssa(src1); 5715 nir_intrinsic_set_base(intrin, indices.base); 5716 5717 nir_builder_instr_insert(build, &intrin->instr); 5718 return &intrin->dest.ssa; 5719 } 5720 static inline nir_ssa_def * 5721 _nir_build_global_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_and_indices indices) 5722 { 5723 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5724 build->shader, nir_intrinsic_global_atomic_and); 5725 5726 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5727 intrin->src[0] = nir_src_for_ssa(src0); 5728 intrin->src[1] = nir_src_for_ssa(src1); 5729 nir_intrinsic_set_base(intrin, indices.base); 5730 5731 nir_builder_instr_insert(build, &intrin->instr); 5732 return &intrin->dest.ssa; 5733 } 5734 static inline nir_ssa_def * 5735 _nir_build_global_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_global_atomic_comp_swap_indices indices) 5736 { 5737 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5738 build->shader, nir_intrinsic_global_atomic_comp_swap); 5739 5740 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5741 intrin->src[0] = nir_src_for_ssa(src0); 5742 intrin->src[1] = nir_src_for_ssa(src1); 5743 intrin->src[2] = nir_src_for_ssa(src2); 5744 nir_intrinsic_set_base(intrin, indices.base); 5745 5746 nir_builder_instr_insert(build, &intrin->instr); 5747 return &intrin->dest.ssa; 5748 } 5749 static inline nir_ssa_def * 5750 _nir_build_global_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_exchange_indices indices) 5751 { 5752 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5753 build->shader, nir_intrinsic_global_atomic_exchange); 5754 5755 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5756 intrin->src[0] = nir_src_for_ssa(src0); 5757 intrin->src[1] = nir_src_for_ssa(src1); 5758 nir_intrinsic_set_base(intrin, indices.base); 5759 5760 nir_builder_instr_insert(build, &intrin->instr); 5761 return &intrin->dest.ssa; 5762 } 5763 static inline nir_ssa_def * 5764 _nir_build_global_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_fadd_indices indices) 5765 { 5766 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5767 build->shader, nir_intrinsic_global_atomic_fadd); 5768 5769 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5770 intrin->src[0] = nir_src_for_ssa(src0); 5771 intrin->src[1] = nir_src_for_ssa(src1); 5772 nir_intrinsic_set_base(intrin, indices.base); 5773 5774 nir_builder_instr_insert(build, &intrin->instr); 5775 return &intrin->dest.ssa; 5776 } 5777 static inline nir_ssa_def * 5778 _nir_build_global_atomic_fcomp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_global_atomic_fcomp_swap_indices indices) 5779 { 5780 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5781 build->shader, nir_intrinsic_global_atomic_fcomp_swap); 5782 5783 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5784 intrin->src[0] = nir_src_for_ssa(src0); 5785 intrin->src[1] = nir_src_for_ssa(src1); 5786 intrin->src[2] = nir_src_for_ssa(src2); 5787 nir_intrinsic_set_base(intrin, indices.base); 5788 5789 nir_builder_instr_insert(build, &intrin->instr); 5790 return &intrin->dest.ssa; 5791 } 5792 static inline nir_ssa_def * 5793 _nir_build_global_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_fmax_indices indices) 5794 { 5795 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5796 build->shader, nir_intrinsic_global_atomic_fmax); 5797 5798 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5799 intrin->src[0] = nir_src_for_ssa(src0); 5800 intrin->src[1] = nir_src_for_ssa(src1); 5801 nir_intrinsic_set_base(intrin, indices.base); 5802 5803 nir_builder_instr_insert(build, &intrin->instr); 5804 return &intrin->dest.ssa; 5805 } 5806 static inline nir_ssa_def * 5807 _nir_build_global_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_fmin_indices indices) 5808 { 5809 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5810 build->shader, nir_intrinsic_global_atomic_fmin); 5811 5812 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5813 intrin->src[0] = nir_src_for_ssa(src0); 5814 intrin->src[1] = nir_src_for_ssa(src1); 5815 nir_intrinsic_set_base(intrin, indices.base); 5816 5817 nir_builder_instr_insert(build, &intrin->instr); 5818 return &intrin->dest.ssa; 5819 } 5820 static inline nir_ssa_def * 5821 _nir_build_global_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_imax_indices indices) 5822 { 5823 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5824 build->shader, nir_intrinsic_global_atomic_imax); 5825 5826 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5827 intrin->src[0] = nir_src_for_ssa(src0); 5828 intrin->src[1] = nir_src_for_ssa(src1); 5829 nir_intrinsic_set_base(intrin, indices.base); 5830 5831 nir_builder_instr_insert(build, &intrin->instr); 5832 return &intrin->dest.ssa; 5833 } 5834 static inline nir_ssa_def * 5835 _nir_build_global_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_imin_indices indices) 5836 { 5837 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5838 build->shader, nir_intrinsic_global_atomic_imin); 5839 5840 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5841 intrin->src[0] = nir_src_for_ssa(src0); 5842 intrin->src[1] = nir_src_for_ssa(src1); 5843 nir_intrinsic_set_base(intrin, indices.base); 5844 5845 nir_builder_instr_insert(build, &intrin->instr); 5846 return &intrin->dest.ssa; 5847 } 5848 static inline nir_ssa_def * 5849 _nir_build_global_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_or_indices indices) 5850 { 5851 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5852 build->shader, nir_intrinsic_global_atomic_or); 5853 5854 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5855 intrin->src[0] = nir_src_for_ssa(src0); 5856 intrin->src[1] = nir_src_for_ssa(src1); 5857 nir_intrinsic_set_base(intrin, indices.base); 5858 5859 nir_builder_instr_insert(build, &intrin->instr); 5860 return &intrin->dest.ssa; 5861 } 5862 static inline nir_ssa_def * 5863 _nir_build_global_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_umax_indices indices) 5864 { 5865 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5866 build->shader, nir_intrinsic_global_atomic_umax); 5867 5868 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5869 intrin->src[0] = nir_src_for_ssa(src0); 5870 intrin->src[1] = nir_src_for_ssa(src1); 5871 nir_intrinsic_set_base(intrin, indices.base); 5872 5873 nir_builder_instr_insert(build, &intrin->instr); 5874 return &intrin->dest.ssa; 5875 } 5876 static inline nir_ssa_def * 5877 _nir_build_global_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_umin_indices indices) 5878 { 5879 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5880 build->shader, nir_intrinsic_global_atomic_umin); 5881 5882 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5883 intrin->src[0] = nir_src_for_ssa(src0); 5884 intrin->src[1] = nir_src_for_ssa(src1); 5885 nir_intrinsic_set_base(intrin, indices.base); 5886 5887 nir_builder_instr_insert(build, &intrin->instr); 5888 return &intrin->dest.ssa; 5889 } 5890 static inline nir_ssa_def * 5891 _nir_build_global_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_global_atomic_xor_indices indices) 5892 { 5893 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5894 build->shader, nir_intrinsic_global_atomic_xor); 5895 5896 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5897 intrin->src[0] = nir_src_for_ssa(src0); 5898 intrin->src[1] = nir_src_for_ssa(src1); 5899 nir_intrinsic_set_base(intrin, indices.base); 5900 5901 nir_builder_instr_insert(build, &intrin->instr); 5902 return &intrin->dest.ssa; 5903 } 5904 static inline nir_intrinsic_instr * 5905 _nir_build_group_memory_barrier(nir_builder *build) 5906 { 5907 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5908 build->shader, nir_intrinsic_group_memory_barrier); 5909 5910 5911 nir_builder_instr_insert(build, &intrin->instr); 5912 return intrin; 5913 } 5914 static inline nir_ssa_def * 5915 _nir_build_has_input_primitive_amd(nir_builder *build) 5916 { 5917 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5918 build->shader, nir_intrinsic_has_input_primitive_amd); 5919 5920 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 5921 5922 nir_builder_instr_insert(build, &intrin->instr); 5923 return &intrin->dest.ssa; 5924 } 5925 static inline nir_ssa_def * 5926 _nir_build_has_input_vertex_amd(nir_builder *build) 5927 { 5928 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5929 build->shader, nir_intrinsic_has_input_vertex_amd); 5930 5931 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 5932 5933 nir_builder_instr_insert(build, &intrin->instr); 5934 return &intrin->dest.ssa; 5935 } 5936 static inline nir_intrinsic_instr * 5937 _nir_build_ignore_ray_intersection(nir_builder *build) 5938 { 5939 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5940 build->shader, nir_intrinsic_ignore_ray_intersection); 5941 5942 5943 nir_builder_instr_insert(build, &intrin->instr); 5944 return intrin; 5945 } 5946 static inline nir_ssa_def * 5947 _nir_build_image_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_add_indices indices) 5948 { 5949 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5950 build->shader, nir_intrinsic_image_atomic_add); 5951 5952 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5953 intrin->src[0] = nir_src_for_ssa(src0); 5954 intrin->src[1] = nir_src_for_ssa(src1); 5955 intrin->src[2] = nir_src_for_ssa(src2); 5956 intrin->src[3] = nir_src_for_ssa(src3); 5957 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5958 nir_intrinsic_set_image_array(intrin, indices.image_array); 5959 nir_intrinsic_set_format(intrin, indices.format); 5960 nir_intrinsic_set_access(intrin, indices.access); 5961 5962 nir_builder_instr_insert(build, &intrin->instr); 5963 return &intrin->dest.ssa; 5964 } 5965 static inline nir_ssa_def * 5966 _nir_build_image_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_and_indices indices) 5967 { 5968 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5969 build->shader, nir_intrinsic_image_atomic_and); 5970 5971 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5972 intrin->src[0] = nir_src_for_ssa(src0); 5973 intrin->src[1] = nir_src_for_ssa(src1); 5974 intrin->src[2] = nir_src_for_ssa(src2); 5975 intrin->src[3] = nir_src_for_ssa(src3); 5976 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5977 nir_intrinsic_set_image_array(intrin, indices.image_array); 5978 nir_intrinsic_set_format(intrin, indices.format); 5979 nir_intrinsic_set_access(intrin, indices.access); 5980 5981 nir_builder_instr_insert(build, &intrin->instr); 5982 return &intrin->dest.ssa; 5983 } 5984 static inline nir_ssa_def * 5985 _nir_build_image_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_image_atomic_comp_swap_indices indices) 5986 { 5987 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 5988 build->shader, nir_intrinsic_image_atomic_comp_swap); 5989 5990 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 5991 intrin->src[0] = nir_src_for_ssa(src0); 5992 intrin->src[1] = nir_src_for_ssa(src1); 5993 intrin->src[2] = nir_src_for_ssa(src2); 5994 intrin->src[3] = nir_src_for_ssa(src3); 5995 intrin->src[4] = nir_src_for_ssa(src4); 5996 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 5997 nir_intrinsic_set_image_array(intrin, indices.image_array); 5998 nir_intrinsic_set_format(intrin, indices.format); 5999 nir_intrinsic_set_access(intrin, indices.access); 6000 6001 nir_builder_instr_insert(build, &intrin->instr); 6002 return &intrin->dest.ssa; 6003 } 6004 static inline nir_ssa_def * 6005 _nir_build_image_atomic_dec_wrap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_dec_wrap_indices indices) 6006 { 6007 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6008 build->shader, nir_intrinsic_image_atomic_dec_wrap); 6009 6010 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6011 intrin->src[0] = nir_src_for_ssa(src0); 6012 intrin->src[1] = nir_src_for_ssa(src1); 6013 intrin->src[2] = nir_src_for_ssa(src2); 6014 intrin->src[3] = nir_src_for_ssa(src3); 6015 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6016 nir_intrinsic_set_image_array(intrin, indices.image_array); 6017 nir_intrinsic_set_format(intrin, indices.format); 6018 nir_intrinsic_set_access(intrin, indices.access); 6019 6020 nir_builder_instr_insert(build, &intrin->instr); 6021 return &intrin->dest.ssa; 6022 } 6023 static inline nir_ssa_def * 6024 _nir_build_image_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_exchange_indices indices) 6025 { 6026 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6027 build->shader, nir_intrinsic_image_atomic_exchange); 6028 6029 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6030 intrin->src[0] = nir_src_for_ssa(src0); 6031 intrin->src[1] = nir_src_for_ssa(src1); 6032 intrin->src[2] = nir_src_for_ssa(src2); 6033 intrin->src[3] = nir_src_for_ssa(src3); 6034 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6035 nir_intrinsic_set_image_array(intrin, indices.image_array); 6036 nir_intrinsic_set_format(intrin, indices.format); 6037 nir_intrinsic_set_access(intrin, indices.access); 6038 6039 nir_builder_instr_insert(build, &intrin->instr); 6040 return &intrin->dest.ssa; 6041 } 6042 static inline nir_ssa_def * 6043 _nir_build_image_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_fadd_indices indices) 6044 { 6045 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6046 build->shader, nir_intrinsic_image_atomic_fadd); 6047 6048 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6049 intrin->src[0] = nir_src_for_ssa(src0); 6050 intrin->src[1] = nir_src_for_ssa(src1); 6051 intrin->src[2] = nir_src_for_ssa(src2); 6052 intrin->src[3] = nir_src_for_ssa(src3); 6053 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6054 nir_intrinsic_set_image_array(intrin, indices.image_array); 6055 nir_intrinsic_set_format(intrin, indices.format); 6056 nir_intrinsic_set_access(intrin, indices.access); 6057 6058 nir_builder_instr_insert(build, &intrin->instr); 6059 return &intrin->dest.ssa; 6060 } 6061 static inline nir_ssa_def * 6062 _nir_build_image_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_fmax_indices indices) 6063 { 6064 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6065 build->shader, nir_intrinsic_image_atomic_fmax); 6066 6067 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6068 intrin->src[0] = nir_src_for_ssa(src0); 6069 intrin->src[1] = nir_src_for_ssa(src1); 6070 intrin->src[2] = nir_src_for_ssa(src2); 6071 intrin->src[3] = nir_src_for_ssa(src3); 6072 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6073 nir_intrinsic_set_image_array(intrin, indices.image_array); 6074 nir_intrinsic_set_format(intrin, indices.format); 6075 nir_intrinsic_set_access(intrin, indices.access); 6076 6077 nir_builder_instr_insert(build, &intrin->instr); 6078 return &intrin->dest.ssa; 6079 } 6080 static inline nir_ssa_def * 6081 _nir_build_image_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_fmin_indices indices) 6082 { 6083 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6084 build->shader, nir_intrinsic_image_atomic_fmin); 6085 6086 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6087 intrin->src[0] = nir_src_for_ssa(src0); 6088 intrin->src[1] = nir_src_for_ssa(src1); 6089 intrin->src[2] = nir_src_for_ssa(src2); 6090 intrin->src[3] = nir_src_for_ssa(src3); 6091 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6092 nir_intrinsic_set_image_array(intrin, indices.image_array); 6093 nir_intrinsic_set_format(intrin, indices.format); 6094 nir_intrinsic_set_access(intrin, indices.access); 6095 6096 nir_builder_instr_insert(build, &intrin->instr); 6097 return &intrin->dest.ssa; 6098 } 6099 static inline nir_ssa_def * 6100 _nir_build_image_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_imax_indices indices) 6101 { 6102 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6103 build->shader, nir_intrinsic_image_atomic_imax); 6104 6105 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6106 intrin->src[0] = nir_src_for_ssa(src0); 6107 intrin->src[1] = nir_src_for_ssa(src1); 6108 intrin->src[2] = nir_src_for_ssa(src2); 6109 intrin->src[3] = nir_src_for_ssa(src3); 6110 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6111 nir_intrinsic_set_image_array(intrin, indices.image_array); 6112 nir_intrinsic_set_format(intrin, indices.format); 6113 nir_intrinsic_set_access(intrin, indices.access); 6114 6115 nir_builder_instr_insert(build, &intrin->instr); 6116 return &intrin->dest.ssa; 6117 } 6118 static inline nir_ssa_def * 6119 _nir_build_image_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_imin_indices indices) 6120 { 6121 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6122 build->shader, nir_intrinsic_image_atomic_imin); 6123 6124 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6125 intrin->src[0] = nir_src_for_ssa(src0); 6126 intrin->src[1] = nir_src_for_ssa(src1); 6127 intrin->src[2] = nir_src_for_ssa(src2); 6128 intrin->src[3] = nir_src_for_ssa(src3); 6129 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6130 nir_intrinsic_set_image_array(intrin, indices.image_array); 6131 nir_intrinsic_set_format(intrin, indices.format); 6132 nir_intrinsic_set_access(intrin, indices.access); 6133 6134 nir_builder_instr_insert(build, &intrin->instr); 6135 return &intrin->dest.ssa; 6136 } 6137 static inline nir_ssa_def * 6138 _nir_build_image_atomic_inc_wrap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_inc_wrap_indices indices) 6139 { 6140 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6141 build->shader, nir_intrinsic_image_atomic_inc_wrap); 6142 6143 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6144 intrin->src[0] = nir_src_for_ssa(src0); 6145 intrin->src[1] = nir_src_for_ssa(src1); 6146 intrin->src[2] = nir_src_for_ssa(src2); 6147 intrin->src[3] = nir_src_for_ssa(src3); 6148 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6149 nir_intrinsic_set_image_array(intrin, indices.image_array); 6150 nir_intrinsic_set_format(intrin, indices.format); 6151 nir_intrinsic_set_access(intrin, indices.access); 6152 6153 nir_builder_instr_insert(build, &intrin->instr); 6154 return &intrin->dest.ssa; 6155 } 6156 static inline nir_ssa_def * 6157 _nir_build_image_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_or_indices indices) 6158 { 6159 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6160 build->shader, nir_intrinsic_image_atomic_or); 6161 6162 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6163 intrin->src[0] = nir_src_for_ssa(src0); 6164 intrin->src[1] = nir_src_for_ssa(src1); 6165 intrin->src[2] = nir_src_for_ssa(src2); 6166 intrin->src[3] = nir_src_for_ssa(src3); 6167 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6168 nir_intrinsic_set_image_array(intrin, indices.image_array); 6169 nir_intrinsic_set_format(intrin, indices.format); 6170 nir_intrinsic_set_access(intrin, indices.access); 6171 6172 nir_builder_instr_insert(build, &intrin->instr); 6173 return &intrin->dest.ssa; 6174 } 6175 static inline nir_ssa_def * 6176 _nir_build_image_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_umax_indices indices) 6177 { 6178 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6179 build->shader, nir_intrinsic_image_atomic_umax); 6180 6181 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6182 intrin->src[0] = nir_src_for_ssa(src0); 6183 intrin->src[1] = nir_src_for_ssa(src1); 6184 intrin->src[2] = nir_src_for_ssa(src2); 6185 intrin->src[3] = nir_src_for_ssa(src3); 6186 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6187 nir_intrinsic_set_image_array(intrin, indices.image_array); 6188 nir_intrinsic_set_format(intrin, indices.format); 6189 nir_intrinsic_set_access(intrin, indices.access); 6190 6191 nir_builder_instr_insert(build, &intrin->instr); 6192 return &intrin->dest.ssa; 6193 } 6194 static inline nir_ssa_def * 6195 _nir_build_image_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_umin_indices indices) 6196 { 6197 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6198 build->shader, nir_intrinsic_image_atomic_umin); 6199 6200 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6201 intrin->src[0] = nir_src_for_ssa(src0); 6202 intrin->src[1] = nir_src_for_ssa(src1); 6203 intrin->src[2] = nir_src_for_ssa(src2); 6204 intrin->src[3] = nir_src_for_ssa(src3); 6205 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6206 nir_intrinsic_set_image_array(intrin, indices.image_array); 6207 nir_intrinsic_set_format(intrin, indices.format); 6208 nir_intrinsic_set_access(intrin, indices.access); 6209 6210 nir_builder_instr_insert(build, &intrin->instr); 6211 return &intrin->dest.ssa; 6212 } 6213 static inline nir_ssa_def * 6214 _nir_build_image_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_atomic_xor_indices indices) 6215 { 6216 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6217 build->shader, nir_intrinsic_image_atomic_xor); 6218 6219 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6220 intrin->src[0] = nir_src_for_ssa(src0); 6221 intrin->src[1] = nir_src_for_ssa(src1); 6222 intrin->src[2] = nir_src_for_ssa(src2); 6223 intrin->src[3] = nir_src_for_ssa(src3); 6224 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6225 nir_intrinsic_set_image_array(intrin, indices.image_array); 6226 nir_intrinsic_set_format(intrin, indices.format); 6227 nir_intrinsic_set_access(intrin, indices.access); 6228 6229 nir_builder_instr_insert(build, &intrin->instr); 6230 return &intrin->dest.ssa; 6231 } 6232 static inline nir_ssa_def * 6233 _nir_build_image_deref_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_add_indices indices) 6234 { 6235 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6236 build->shader, nir_intrinsic_image_deref_atomic_add); 6237 6238 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6239 intrin->src[0] = nir_src_for_ssa(src0); 6240 intrin->src[1] = nir_src_for_ssa(src1); 6241 intrin->src[2] = nir_src_for_ssa(src2); 6242 intrin->src[3] = nir_src_for_ssa(src3); 6243 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6244 nir_intrinsic_set_image_array(intrin, indices.image_array); 6245 nir_intrinsic_set_format(intrin, indices.format); 6246 nir_intrinsic_set_access(intrin, indices.access); 6247 6248 nir_builder_instr_insert(build, &intrin->instr); 6249 return &intrin->dest.ssa; 6250 } 6251 static inline nir_ssa_def * 6252 _nir_build_image_deref_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_and_indices indices) 6253 { 6254 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6255 build->shader, nir_intrinsic_image_deref_atomic_and); 6256 6257 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6258 intrin->src[0] = nir_src_for_ssa(src0); 6259 intrin->src[1] = nir_src_for_ssa(src1); 6260 intrin->src[2] = nir_src_for_ssa(src2); 6261 intrin->src[3] = nir_src_for_ssa(src3); 6262 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6263 nir_intrinsic_set_image_array(intrin, indices.image_array); 6264 nir_intrinsic_set_format(intrin, indices.format); 6265 nir_intrinsic_set_access(intrin, indices.access); 6266 6267 nir_builder_instr_insert(build, &intrin->instr); 6268 return &intrin->dest.ssa; 6269 } 6270 static inline nir_ssa_def * 6271 _nir_build_image_deref_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_image_deref_atomic_comp_swap_indices indices) 6272 { 6273 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6274 build->shader, nir_intrinsic_image_deref_atomic_comp_swap); 6275 6276 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6277 intrin->src[0] = nir_src_for_ssa(src0); 6278 intrin->src[1] = nir_src_for_ssa(src1); 6279 intrin->src[2] = nir_src_for_ssa(src2); 6280 intrin->src[3] = nir_src_for_ssa(src3); 6281 intrin->src[4] = nir_src_for_ssa(src4); 6282 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6283 nir_intrinsic_set_image_array(intrin, indices.image_array); 6284 nir_intrinsic_set_format(intrin, indices.format); 6285 nir_intrinsic_set_access(intrin, indices.access); 6286 6287 nir_builder_instr_insert(build, &intrin->instr); 6288 return &intrin->dest.ssa; 6289 } 6290 static inline nir_ssa_def * 6291 _nir_build_image_deref_atomic_dec_wrap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_dec_wrap_indices indices) 6292 { 6293 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6294 build->shader, nir_intrinsic_image_deref_atomic_dec_wrap); 6295 6296 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6297 intrin->src[0] = nir_src_for_ssa(src0); 6298 intrin->src[1] = nir_src_for_ssa(src1); 6299 intrin->src[2] = nir_src_for_ssa(src2); 6300 intrin->src[3] = nir_src_for_ssa(src3); 6301 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6302 nir_intrinsic_set_image_array(intrin, indices.image_array); 6303 nir_intrinsic_set_format(intrin, indices.format); 6304 nir_intrinsic_set_access(intrin, indices.access); 6305 6306 nir_builder_instr_insert(build, &intrin->instr); 6307 return &intrin->dest.ssa; 6308 } 6309 static inline nir_ssa_def * 6310 _nir_build_image_deref_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_exchange_indices indices) 6311 { 6312 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6313 build->shader, nir_intrinsic_image_deref_atomic_exchange); 6314 6315 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6316 intrin->src[0] = nir_src_for_ssa(src0); 6317 intrin->src[1] = nir_src_for_ssa(src1); 6318 intrin->src[2] = nir_src_for_ssa(src2); 6319 intrin->src[3] = nir_src_for_ssa(src3); 6320 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6321 nir_intrinsic_set_image_array(intrin, indices.image_array); 6322 nir_intrinsic_set_format(intrin, indices.format); 6323 nir_intrinsic_set_access(intrin, indices.access); 6324 6325 nir_builder_instr_insert(build, &intrin->instr); 6326 return &intrin->dest.ssa; 6327 } 6328 static inline nir_ssa_def * 6329 _nir_build_image_deref_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_fadd_indices indices) 6330 { 6331 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6332 build->shader, nir_intrinsic_image_deref_atomic_fadd); 6333 6334 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6335 intrin->src[0] = nir_src_for_ssa(src0); 6336 intrin->src[1] = nir_src_for_ssa(src1); 6337 intrin->src[2] = nir_src_for_ssa(src2); 6338 intrin->src[3] = nir_src_for_ssa(src3); 6339 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6340 nir_intrinsic_set_image_array(intrin, indices.image_array); 6341 nir_intrinsic_set_format(intrin, indices.format); 6342 nir_intrinsic_set_access(intrin, indices.access); 6343 6344 nir_builder_instr_insert(build, &intrin->instr); 6345 return &intrin->dest.ssa; 6346 } 6347 static inline nir_ssa_def * 6348 _nir_build_image_deref_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_fmax_indices indices) 6349 { 6350 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6351 build->shader, nir_intrinsic_image_deref_atomic_fmax); 6352 6353 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6354 intrin->src[0] = nir_src_for_ssa(src0); 6355 intrin->src[1] = nir_src_for_ssa(src1); 6356 intrin->src[2] = nir_src_for_ssa(src2); 6357 intrin->src[3] = nir_src_for_ssa(src3); 6358 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6359 nir_intrinsic_set_image_array(intrin, indices.image_array); 6360 nir_intrinsic_set_format(intrin, indices.format); 6361 nir_intrinsic_set_access(intrin, indices.access); 6362 6363 nir_builder_instr_insert(build, &intrin->instr); 6364 return &intrin->dest.ssa; 6365 } 6366 static inline nir_ssa_def * 6367 _nir_build_image_deref_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_fmin_indices indices) 6368 { 6369 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6370 build->shader, nir_intrinsic_image_deref_atomic_fmin); 6371 6372 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6373 intrin->src[0] = nir_src_for_ssa(src0); 6374 intrin->src[1] = nir_src_for_ssa(src1); 6375 intrin->src[2] = nir_src_for_ssa(src2); 6376 intrin->src[3] = nir_src_for_ssa(src3); 6377 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6378 nir_intrinsic_set_image_array(intrin, indices.image_array); 6379 nir_intrinsic_set_format(intrin, indices.format); 6380 nir_intrinsic_set_access(intrin, indices.access); 6381 6382 nir_builder_instr_insert(build, &intrin->instr); 6383 return &intrin->dest.ssa; 6384 } 6385 static inline nir_ssa_def * 6386 _nir_build_image_deref_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_imax_indices indices) 6387 { 6388 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6389 build->shader, nir_intrinsic_image_deref_atomic_imax); 6390 6391 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6392 intrin->src[0] = nir_src_for_ssa(src0); 6393 intrin->src[1] = nir_src_for_ssa(src1); 6394 intrin->src[2] = nir_src_for_ssa(src2); 6395 intrin->src[3] = nir_src_for_ssa(src3); 6396 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6397 nir_intrinsic_set_image_array(intrin, indices.image_array); 6398 nir_intrinsic_set_format(intrin, indices.format); 6399 nir_intrinsic_set_access(intrin, indices.access); 6400 6401 nir_builder_instr_insert(build, &intrin->instr); 6402 return &intrin->dest.ssa; 6403 } 6404 static inline nir_ssa_def * 6405 _nir_build_image_deref_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_imin_indices indices) 6406 { 6407 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6408 build->shader, nir_intrinsic_image_deref_atomic_imin); 6409 6410 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6411 intrin->src[0] = nir_src_for_ssa(src0); 6412 intrin->src[1] = nir_src_for_ssa(src1); 6413 intrin->src[2] = nir_src_for_ssa(src2); 6414 intrin->src[3] = nir_src_for_ssa(src3); 6415 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6416 nir_intrinsic_set_image_array(intrin, indices.image_array); 6417 nir_intrinsic_set_format(intrin, indices.format); 6418 nir_intrinsic_set_access(intrin, indices.access); 6419 6420 nir_builder_instr_insert(build, &intrin->instr); 6421 return &intrin->dest.ssa; 6422 } 6423 static inline nir_ssa_def * 6424 _nir_build_image_deref_atomic_inc_wrap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_inc_wrap_indices indices) 6425 { 6426 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6427 build->shader, nir_intrinsic_image_deref_atomic_inc_wrap); 6428 6429 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6430 intrin->src[0] = nir_src_for_ssa(src0); 6431 intrin->src[1] = nir_src_for_ssa(src1); 6432 intrin->src[2] = nir_src_for_ssa(src2); 6433 intrin->src[3] = nir_src_for_ssa(src3); 6434 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6435 nir_intrinsic_set_image_array(intrin, indices.image_array); 6436 nir_intrinsic_set_format(intrin, indices.format); 6437 nir_intrinsic_set_access(intrin, indices.access); 6438 6439 nir_builder_instr_insert(build, &intrin->instr); 6440 return &intrin->dest.ssa; 6441 } 6442 static inline nir_ssa_def * 6443 _nir_build_image_deref_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_or_indices indices) 6444 { 6445 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6446 build->shader, nir_intrinsic_image_deref_atomic_or); 6447 6448 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6449 intrin->src[0] = nir_src_for_ssa(src0); 6450 intrin->src[1] = nir_src_for_ssa(src1); 6451 intrin->src[2] = nir_src_for_ssa(src2); 6452 intrin->src[3] = nir_src_for_ssa(src3); 6453 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6454 nir_intrinsic_set_image_array(intrin, indices.image_array); 6455 nir_intrinsic_set_format(intrin, indices.format); 6456 nir_intrinsic_set_access(intrin, indices.access); 6457 6458 nir_builder_instr_insert(build, &intrin->instr); 6459 return &intrin->dest.ssa; 6460 } 6461 static inline nir_ssa_def * 6462 _nir_build_image_deref_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_umax_indices indices) 6463 { 6464 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6465 build->shader, nir_intrinsic_image_deref_atomic_umax); 6466 6467 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6468 intrin->src[0] = nir_src_for_ssa(src0); 6469 intrin->src[1] = nir_src_for_ssa(src1); 6470 intrin->src[2] = nir_src_for_ssa(src2); 6471 intrin->src[3] = nir_src_for_ssa(src3); 6472 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6473 nir_intrinsic_set_image_array(intrin, indices.image_array); 6474 nir_intrinsic_set_format(intrin, indices.format); 6475 nir_intrinsic_set_access(intrin, indices.access); 6476 6477 nir_builder_instr_insert(build, &intrin->instr); 6478 return &intrin->dest.ssa; 6479 } 6480 static inline nir_ssa_def * 6481 _nir_build_image_deref_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_umin_indices indices) 6482 { 6483 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6484 build->shader, nir_intrinsic_image_deref_atomic_umin); 6485 6486 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6487 intrin->src[0] = nir_src_for_ssa(src0); 6488 intrin->src[1] = nir_src_for_ssa(src1); 6489 intrin->src[2] = nir_src_for_ssa(src2); 6490 intrin->src[3] = nir_src_for_ssa(src3); 6491 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6492 nir_intrinsic_set_image_array(intrin, indices.image_array); 6493 nir_intrinsic_set_format(intrin, indices.format); 6494 nir_intrinsic_set_access(intrin, indices.access); 6495 6496 nir_builder_instr_insert(build, &intrin->instr); 6497 return &intrin->dest.ssa; 6498 } 6499 static inline nir_ssa_def * 6500 _nir_build_image_deref_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_atomic_xor_indices indices) 6501 { 6502 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6503 build->shader, nir_intrinsic_image_deref_atomic_xor); 6504 6505 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6506 intrin->src[0] = nir_src_for_ssa(src0); 6507 intrin->src[1] = nir_src_for_ssa(src1); 6508 intrin->src[2] = nir_src_for_ssa(src2); 6509 intrin->src[3] = nir_src_for_ssa(src3); 6510 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6511 nir_intrinsic_set_image_array(intrin, indices.image_array); 6512 nir_intrinsic_set_format(intrin, indices.format); 6513 nir_intrinsic_set_access(intrin, indices.access); 6514 6515 nir_builder_instr_insert(build, &intrin->instr); 6516 return &intrin->dest.ssa; 6517 } 6518 static inline nir_ssa_def * 6519 _nir_build_image_deref_format(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_deref_format_indices indices) 6520 { 6521 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6522 build->shader, nir_intrinsic_image_deref_format); 6523 6524 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6525 intrin->src[0] = nir_src_for_ssa(src0); 6526 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6527 nir_intrinsic_set_image_array(intrin, indices.image_array); 6528 nir_intrinsic_set_format(intrin, indices.format); 6529 nir_intrinsic_set_access(intrin, indices.access); 6530 6531 nir_builder_instr_insert(build, &intrin->instr); 6532 return &intrin->dest.ssa; 6533 } 6534 static inline nir_ssa_def * 6535 _nir_build_image_deref_load(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_load_indices indices) 6536 { 6537 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6538 build->shader, nir_intrinsic_image_deref_load); 6539 6540 intrin->num_components = num_components; 6541 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6542 intrin->src[0] = nir_src_for_ssa(src0); 6543 intrin->src[1] = nir_src_for_ssa(src1); 6544 intrin->src[2] = nir_src_for_ssa(src2); 6545 intrin->src[3] = nir_src_for_ssa(src3); 6546 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6547 nir_intrinsic_set_image_array(intrin, indices.image_array); 6548 nir_intrinsic_set_format(intrin, indices.format); 6549 nir_intrinsic_set_access(intrin, indices.access); 6550 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 6551 6552 nir_builder_instr_insert(build, &intrin->instr); 6553 return &intrin->dest.ssa; 6554 } 6555 static inline nir_ssa_def * 6556 _nir_build_image_deref_load_param_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_deref_load_param_intel_indices indices) 6557 { 6558 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6559 build->shader, nir_intrinsic_image_deref_load_param_intel); 6560 6561 intrin->num_components = num_components; 6562 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6563 intrin->src[0] = nir_src_for_ssa(src0); 6564 nir_intrinsic_set_base(intrin, indices.base); 6565 6566 nir_builder_instr_insert(build, &intrin->instr); 6567 return &intrin->dest.ssa; 6568 } 6569 static inline nir_ssa_def * 6570 _nir_build_image_deref_load_raw_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_image_deref_load_raw_intel_indices indices) 6571 { 6572 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6573 build->shader, nir_intrinsic_image_deref_load_raw_intel); 6574 6575 intrin->num_components = num_components; 6576 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6577 intrin->src[0] = nir_src_for_ssa(src0); 6578 intrin->src[1] = nir_src_for_ssa(src1); 6579 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6580 nir_intrinsic_set_image_array(intrin, indices.image_array); 6581 nir_intrinsic_set_format(intrin, indices.format); 6582 nir_intrinsic_set_access(intrin, indices.access); 6583 6584 nir_builder_instr_insert(build, &intrin->instr); 6585 return &intrin->dest.ssa; 6586 } 6587 static inline nir_ssa_def * 6588 _nir_build_image_deref_order(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_deref_order_indices indices) 6589 { 6590 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6591 build->shader, nir_intrinsic_image_deref_order); 6592 6593 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6594 intrin->src[0] = nir_src_for_ssa(src0); 6595 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6596 nir_intrinsic_set_image_array(intrin, indices.image_array); 6597 nir_intrinsic_set_format(intrin, indices.format); 6598 nir_intrinsic_set_access(intrin, indices.access); 6599 6600 nir_builder_instr_insert(build, &intrin->instr); 6601 return &intrin->dest.ssa; 6602 } 6603 static inline nir_ssa_def * 6604 _nir_build_image_deref_samples(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_deref_samples_indices indices) 6605 { 6606 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6607 build->shader, nir_intrinsic_image_deref_samples); 6608 6609 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6610 intrin->src[0] = nir_src_for_ssa(src0); 6611 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6612 nir_intrinsic_set_image_array(intrin, indices.image_array); 6613 nir_intrinsic_set_format(intrin, indices.format); 6614 nir_intrinsic_set_access(intrin, indices.access); 6615 6616 nir_builder_instr_insert(build, &intrin->instr); 6617 return &intrin->dest.ssa; 6618 } 6619 static inline nir_ssa_def * 6620 _nir_build_image_deref_size(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_image_deref_size_indices indices) 6621 { 6622 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6623 build->shader, nir_intrinsic_image_deref_size); 6624 6625 intrin->num_components = num_components; 6626 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6627 intrin->src[0] = nir_src_for_ssa(src0); 6628 intrin->src[1] = nir_src_for_ssa(src1); 6629 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6630 nir_intrinsic_set_image_array(intrin, indices.image_array); 6631 nir_intrinsic_set_format(intrin, indices.format); 6632 nir_intrinsic_set_access(intrin, indices.access); 6633 6634 nir_builder_instr_insert(build, &intrin->instr); 6635 return &intrin->dest.ssa; 6636 } 6637 static inline nir_ssa_def * 6638 _nir_build_image_deref_sparse_load(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_deref_sparse_load_indices indices) 6639 { 6640 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6641 build->shader, nir_intrinsic_image_deref_sparse_load); 6642 6643 intrin->num_components = num_components; 6644 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6645 intrin->src[0] = nir_src_for_ssa(src0); 6646 intrin->src[1] = nir_src_for_ssa(src1); 6647 intrin->src[2] = nir_src_for_ssa(src2); 6648 intrin->src[3] = nir_src_for_ssa(src3); 6649 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6650 nir_intrinsic_set_image_array(intrin, indices.image_array); 6651 nir_intrinsic_set_format(intrin, indices.format); 6652 nir_intrinsic_set_access(intrin, indices.access); 6653 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 6654 6655 nir_builder_instr_insert(build, &intrin->instr); 6656 return &intrin->dest.ssa; 6657 } 6658 static inline nir_intrinsic_instr * 6659 _nir_build_image_deref_store(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_image_deref_store_indices indices) 6660 { 6661 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6662 build->shader, nir_intrinsic_image_deref_store); 6663 6664 intrin->num_components = src3->num_components; 6665 intrin->src[0] = nir_src_for_ssa(src0); 6666 intrin->src[1] = nir_src_for_ssa(src1); 6667 intrin->src[2] = nir_src_for_ssa(src2); 6668 intrin->src[3] = nir_src_for_ssa(src3); 6669 intrin->src[4] = nir_src_for_ssa(src4); 6670 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6671 nir_intrinsic_set_image_array(intrin, indices.image_array); 6672 nir_intrinsic_set_format(intrin, indices.format); 6673 nir_intrinsic_set_access(intrin, indices.access); 6674 nir_intrinsic_set_src_type(intrin, indices.src_type); 6675 6676 nir_builder_instr_insert(build, &intrin->instr); 6677 return intrin; 6678 } 6679 static inline nir_intrinsic_instr * 6680 _nir_build_image_deref_store_raw_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_image_deref_store_raw_intel_indices indices) 6681 { 6682 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6683 build->shader, nir_intrinsic_image_deref_store_raw_intel); 6684 6685 intrin->num_components = src2->num_components; 6686 intrin->src[0] = nir_src_for_ssa(src0); 6687 intrin->src[1] = nir_src_for_ssa(src1); 6688 intrin->src[2] = nir_src_for_ssa(src2); 6689 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6690 nir_intrinsic_set_image_array(intrin, indices.image_array); 6691 nir_intrinsic_set_format(intrin, indices.format); 6692 nir_intrinsic_set_access(intrin, indices.access); 6693 6694 nir_builder_instr_insert(build, &intrin->instr); 6695 return intrin; 6696 } 6697 static inline nir_ssa_def * 6698 _nir_build_image_format(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_format_indices indices) 6699 { 6700 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6701 build->shader, nir_intrinsic_image_format); 6702 6703 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6704 intrin->src[0] = nir_src_for_ssa(src0); 6705 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6706 nir_intrinsic_set_image_array(intrin, indices.image_array); 6707 nir_intrinsic_set_format(intrin, indices.format); 6708 nir_intrinsic_set_access(intrin, indices.access); 6709 6710 nir_builder_instr_insert(build, &intrin->instr); 6711 return &intrin->dest.ssa; 6712 } 6713 static inline nir_ssa_def * 6714 _nir_build_image_load(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_load_indices indices) 6715 { 6716 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6717 build->shader, nir_intrinsic_image_load); 6718 6719 intrin->num_components = num_components; 6720 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6721 intrin->src[0] = nir_src_for_ssa(src0); 6722 intrin->src[1] = nir_src_for_ssa(src1); 6723 intrin->src[2] = nir_src_for_ssa(src2); 6724 intrin->src[3] = nir_src_for_ssa(src3); 6725 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6726 nir_intrinsic_set_image_array(intrin, indices.image_array); 6727 nir_intrinsic_set_format(intrin, indices.format); 6728 nir_intrinsic_set_access(intrin, indices.access); 6729 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 6730 6731 nir_builder_instr_insert(build, &intrin->instr); 6732 return &intrin->dest.ssa; 6733 } 6734 static inline nir_ssa_def * 6735 _nir_build_image_load_raw_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_image_load_raw_intel_indices indices) 6736 { 6737 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6738 build->shader, nir_intrinsic_image_load_raw_intel); 6739 6740 intrin->num_components = num_components; 6741 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6742 intrin->src[0] = nir_src_for_ssa(src0); 6743 intrin->src[1] = nir_src_for_ssa(src1); 6744 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6745 nir_intrinsic_set_image_array(intrin, indices.image_array); 6746 nir_intrinsic_set_format(intrin, indices.format); 6747 nir_intrinsic_set_access(intrin, indices.access); 6748 6749 nir_builder_instr_insert(build, &intrin->instr); 6750 return &intrin->dest.ssa; 6751 } 6752 static inline nir_ssa_def * 6753 _nir_build_image_order(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_order_indices indices) 6754 { 6755 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6756 build->shader, nir_intrinsic_image_order); 6757 6758 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6759 intrin->src[0] = nir_src_for_ssa(src0); 6760 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6761 nir_intrinsic_set_image_array(intrin, indices.image_array); 6762 nir_intrinsic_set_format(intrin, indices.format); 6763 nir_intrinsic_set_access(intrin, indices.access); 6764 6765 nir_builder_instr_insert(build, &intrin->instr); 6766 return &intrin->dest.ssa; 6767 } 6768 static inline nir_ssa_def * 6769 _nir_build_image_samples(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_image_samples_indices indices) 6770 { 6771 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6772 build->shader, nir_intrinsic_image_samples); 6773 6774 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6775 intrin->src[0] = nir_src_for_ssa(src0); 6776 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6777 nir_intrinsic_set_image_array(intrin, indices.image_array); 6778 nir_intrinsic_set_format(intrin, indices.format); 6779 nir_intrinsic_set_access(intrin, indices.access); 6780 6781 nir_builder_instr_insert(build, &intrin->instr); 6782 return &intrin->dest.ssa; 6783 } 6784 static inline nir_ssa_def * 6785 _nir_build_image_size(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_image_size_indices indices) 6786 { 6787 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6788 build->shader, nir_intrinsic_image_size); 6789 6790 intrin->num_components = num_components; 6791 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6792 intrin->src[0] = nir_src_for_ssa(src0); 6793 intrin->src[1] = nir_src_for_ssa(src1); 6794 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6795 nir_intrinsic_set_image_array(intrin, indices.image_array); 6796 nir_intrinsic_set_format(intrin, indices.format); 6797 nir_intrinsic_set_access(intrin, indices.access); 6798 6799 nir_builder_instr_insert(build, &intrin->instr); 6800 return &intrin->dest.ssa; 6801 } 6802 static inline nir_ssa_def * 6803 _nir_build_image_sparse_load(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_image_sparse_load_indices indices) 6804 { 6805 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6806 build->shader, nir_intrinsic_image_sparse_load); 6807 6808 intrin->num_components = num_components; 6809 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6810 intrin->src[0] = nir_src_for_ssa(src0); 6811 intrin->src[1] = nir_src_for_ssa(src1); 6812 intrin->src[2] = nir_src_for_ssa(src2); 6813 intrin->src[3] = nir_src_for_ssa(src3); 6814 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6815 nir_intrinsic_set_image_array(intrin, indices.image_array); 6816 nir_intrinsic_set_format(intrin, indices.format); 6817 nir_intrinsic_set_access(intrin, indices.access); 6818 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 6819 6820 nir_builder_instr_insert(build, &intrin->instr); 6821 return &intrin->dest.ssa; 6822 } 6823 static inline nir_intrinsic_instr * 6824 _nir_build_image_store(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_image_store_indices indices) 6825 { 6826 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6827 build->shader, nir_intrinsic_image_store); 6828 6829 intrin->num_components = src3->num_components; 6830 intrin->src[0] = nir_src_for_ssa(src0); 6831 intrin->src[1] = nir_src_for_ssa(src1); 6832 intrin->src[2] = nir_src_for_ssa(src2); 6833 intrin->src[3] = nir_src_for_ssa(src3); 6834 intrin->src[4] = nir_src_for_ssa(src4); 6835 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6836 nir_intrinsic_set_image_array(intrin, indices.image_array); 6837 nir_intrinsic_set_format(intrin, indices.format); 6838 nir_intrinsic_set_access(intrin, indices.access); 6839 nir_intrinsic_set_src_type(intrin, indices.src_type); 6840 6841 nir_builder_instr_insert(build, &intrin->instr); 6842 return intrin; 6843 } 6844 static inline nir_intrinsic_instr * 6845 _nir_build_image_store_raw_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_image_store_raw_intel_indices indices) 6846 { 6847 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6848 build->shader, nir_intrinsic_image_store_raw_intel); 6849 6850 intrin->num_components = src2->num_components; 6851 intrin->src[0] = nir_src_for_ssa(src0); 6852 intrin->src[1] = nir_src_for_ssa(src1); 6853 intrin->src[2] = nir_src_for_ssa(src2); 6854 nir_intrinsic_set_image_dim(intrin, indices.image_dim); 6855 nir_intrinsic_set_image_array(intrin, indices.image_array); 6856 nir_intrinsic_set_format(intrin, indices.format); 6857 nir_intrinsic_set_access(intrin, indices.access); 6858 6859 nir_builder_instr_insert(build, &intrin->instr); 6860 return intrin; 6861 } 6862 static inline nir_ssa_def * 6863 _nir_build_inclusive_scan(nir_builder *build, nir_ssa_def *src0, struct _nir_inclusive_scan_indices indices) 6864 { 6865 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6866 build->shader, nir_intrinsic_inclusive_scan); 6867 6868 intrin->num_components = src0->num_components; 6869 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 6870 intrin->src[0] = nir_src_for_ssa(src0); 6871 nir_intrinsic_set_reduction_op(intrin, indices.reduction_op); 6872 6873 nir_builder_instr_insert(build, &intrin->instr); 6874 return &intrin->dest.ssa; 6875 } 6876 static inline nir_ssa_def * 6877 _nir_build_interp_deref_at_centroid(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0) 6878 { 6879 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6880 build->shader, nir_intrinsic_interp_deref_at_centroid); 6881 6882 intrin->num_components = num_components; 6883 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6884 intrin->src[0] = nir_src_for_ssa(src0); 6885 6886 nir_builder_instr_insert(build, &intrin->instr); 6887 return &intrin->dest.ssa; 6888 } 6889 static inline nir_ssa_def * 6890 _nir_build_interp_deref_at_offset(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 6891 { 6892 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6893 build->shader, nir_intrinsic_interp_deref_at_offset); 6894 6895 intrin->num_components = num_components; 6896 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6897 intrin->src[0] = nir_src_for_ssa(src0); 6898 intrin->src[1] = nir_src_for_ssa(src1); 6899 6900 nir_builder_instr_insert(build, &intrin->instr); 6901 return &intrin->dest.ssa; 6902 } 6903 static inline nir_ssa_def * 6904 _nir_build_interp_deref_at_sample(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 6905 { 6906 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6907 build->shader, nir_intrinsic_interp_deref_at_sample); 6908 6909 intrin->num_components = num_components; 6910 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6911 intrin->src[0] = nir_src_for_ssa(src0); 6912 intrin->src[1] = nir_src_for_ssa(src1); 6913 6914 nir_builder_instr_insert(build, &intrin->instr); 6915 return &intrin->dest.ssa; 6916 } 6917 static inline nir_ssa_def * 6918 _nir_build_interp_deref_at_vertex(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 6919 { 6920 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6921 build->shader, nir_intrinsic_interp_deref_at_vertex); 6922 6923 intrin->num_components = num_components; 6924 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 6925 intrin->src[0] = nir_src_for_ssa(src0); 6926 intrin->src[1] = nir_src_for_ssa(src1); 6927 6928 nir_builder_instr_insert(build, &intrin->instr); 6929 return &intrin->dest.ssa; 6930 } 6931 static inline nir_ssa_def * 6932 _nir_build_is_helper_invocation(nir_builder *build, unsigned bit_size) 6933 { 6934 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6935 build->shader, nir_intrinsic_is_helper_invocation); 6936 6937 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6938 6939 nir_builder_instr_insert(build, &intrin->instr); 6940 return &intrin->dest.ssa; 6941 } 6942 static inline nir_ssa_def * 6943 _nir_build_is_sparse_texels_resident(nir_builder *build, nir_ssa_def *src0) 6944 { 6945 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6946 build->shader, nir_intrinsic_is_sparse_texels_resident); 6947 6948 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 6949 intrin->src[0] = nir_src_for_ssa(src0); 6950 6951 nir_builder_instr_insert(build, &intrin->instr); 6952 return &intrin->dest.ssa; 6953 } 6954 static inline nir_ssa_def * 6955 _nir_build_lane_permute_16_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 6956 { 6957 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6958 build->shader, nir_intrinsic_lane_permute_16_amd); 6959 6960 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 6961 intrin->src[0] = nir_src_for_ssa(src0); 6962 intrin->src[1] = nir_src_for_ssa(src1); 6963 intrin->src[2] = nir_src_for_ssa(src2); 6964 6965 nir_builder_instr_insert(build, &intrin->instr); 6966 return &intrin->dest.ssa; 6967 } 6968 static inline nir_ssa_def * 6969 _nir_build_last_invocation(nir_builder *build) 6970 { 6971 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6972 build->shader, nir_intrinsic_last_invocation); 6973 6974 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 6975 6976 nir_builder_instr_insert(build, &intrin->instr); 6977 return &intrin->dest.ssa; 6978 } 6979 static inline nir_ssa_def * 6980 _nir_build_load_aa_line_width(nir_builder *build) 6981 { 6982 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6983 build->shader, nir_intrinsic_load_aa_line_width); 6984 6985 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 6986 6987 nir_builder_instr_insert(build, &intrin->instr); 6988 return &intrin->dest.ssa; 6989 } 6990 static inline nir_ssa_def * 6991 _nir_build_load_back_face_agx(nir_builder *build, unsigned bit_size) 6992 { 6993 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 6994 build->shader, nir_intrinsic_load_back_face_agx); 6995 6996 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 6997 6998 nir_builder_instr_insert(build, &intrin->instr); 6999 return &intrin->dest.ssa; 7000 } 7001 static inline nir_ssa_def * 7002 _nir_build_load_barycentric_at_offset(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_barycentric_at_offset_indices indices) 7003 { 7004 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7005 build->shader, nir_intrinsic_load_barycentric_at_offset); 7006 7007 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 7008 intrin->src[0] = nir_src_for_ssa(src0); 7009 nir_intrinsic_set_interp_mode(intrin, indices.interp_mode); 7010 7011 nir_builder_instr_insert(build, &intrin->instr); 7012 return &intrin->dest.ssa; 7013 } 7014 static inline nir_ssa_def * 7015 _nir_build_load_barycentric_at_sample(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_barycentric_at_sample_indices indices) 7016 { 7017 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7018 build->shader, nir_intrinsic_load_barycentric_at_sample); 7019 7020 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 7021 intrin->src[0] = nir_src_for_ssa(src0); 7022 nir_intrinsic_set_interp_mode(intrin, indices.interp_mode); 7023 7024 nir_builder_instr_insert(build, &intrin->instr); 7025 return &intrin->dest.ssa; 7026 } 7027 static inline nir_ssa_def * 7028 _nir_build_load_barycentric_centroid(nir_builder *build, unsigned bit_size, struct _nir_load_barycentric_centroid_indices indices) 7029 { 7030 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7031 build->shader, nir_intrinsic_load_barycentric_centroid); 7032 7033 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 7034 nir_intrinsic_set_interp_mode(intrin, indices.interp_mode); 7035 7036 nir_builder_instr_insert(build, &intrin->instr); 7037 return &intrin->dest.ssa; 7038 } 7039 static inline nir_ssa_def * 7040 _nir_build_load_barycentric_model(nir_builder *build, unsigned bit_size, struct _nir_load_barycentric_model_indices indices) 7041 { 7042 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7043 build->shader, nir_intrinsic_load_barycentric_model); 7044 7045 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7046 nir_intrinsic_set_interp_mode(intrin, indices.interp_mode); 7047 7048 nir_builder_instr_insert(build, &intrin->instr); 7049 return &intrin->dest.ssa; 7050 } 7051 static inline nir_ssa_def * 7052 _nir_build_load_barycentric_pixel(nir_builder *build, unsigned bit_size, struct _nir_load_barycentric_pixel_indices indices) 7053 { 7054 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7055 build->shader, nir_intrinsic_load_barycentric_pixel); 7056 7057 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 7058 nir_intrinsic_set_interp_mode(intrin, indices.interp_mode); 7059 7060 nir_builder_instr_insert(build, &intrin->instr); 7061 return &intrin->dest.ssa; 7062 } 7063 static inline nir_ssa_def * 7064 _nir_build_load_barycentric_sample(nir_builder *build, unsigned bit_size, struct _nir_load_barycentric_sample_indices indices) 7065 { 7066 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7067 build->shader, nir_intrinsic_load_barycentric_sample); 7068 7069 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 7070 nir_intrinsic_set_interp_mode(intrin, indices.interp_mode); 7071 7072 nir_builder_instr_insert(build, &intrin->instr); 7073 return &intrin->dest.ssa; 7074 } 7075 static inline nir_ssa_def * 7076 _nir_build_load_base_global_invocation_id(nir_builder *build, unsigned bit_size) 7077 { 7078 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7079 build->shader, nir_intrinsic_load_base_global_invocation_id); 7080 7081 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7082 7083 nir_builder_instr_insert(build, &intrin->instr); 7084 return &intrin->dest.ssa; 7085 } 7086 static inline nir_ssa_def * 7087 _nir_build_load_base_instance(nir_builder *build) 7088 { 7089 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7090 build->shader, nir_intrinsic_load_base_instance); 7091 7092 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7093 7094 nir_builder_instr_insert(build, &intrin->instr); 7095 return &intrin->dest.ssa; 7096 } 7097 static inline nir_ssa_def * 7098 _nir_build_load_base_vertex(nir_builder *build) 7099 { 7100 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7101 build->shader, nir_intrinsic_load_base_vertex); 7102 7103 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7104 7105 nir_builder_instr_insert(build, &intrin->instr); 7106 return &intrin->dest.ssa; 7107 } 7108 static inline nir_ssa_def * 7109 _nir_build_load_base_workgroup_id(nir_builder *build, unsigned bit_size) 7110 { 7111 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7112 build->shader, nir_intrinsic_load_base_workgroup_id); 7113 7114 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7115 7116 nir_builder_instr_insert(build, &intrin->instr); 7117 return &intrin->dest.ssa; 7118 } 7119 static inline nir_ssa_def * 7120 _nir_build_load_blend_const_color_a_float(nir_builder *build) 7121 { 7122 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7123 build->shader, nir_intrinsic_load_blend_const_color_a_float); 7124 7125 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7126 7127 nir_builder_instr_insert(build, &intrin->instr); 7128 return &intrin->dest.ssa; 7129 } 7130 static inline nir_ssa_def * 7131 _nir_build_load_blend_const_color_aaaa8888_unorm(nir_builder *build) 7132 { 7133 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7134 build->shader, nir_intrinsic_load_blend_const_color_aaaa8888_unorm); 7135 7136 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7137 7138 nir_builder_instr_insert(build, &intrin->instr); 7139 return &intrin->dest.ssa; 7140 } 7141 static inline nir_ssa_def * 7142 _nir_build_load_blend_const_color_b_float(nir_builder *build) 7143 { 7144 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7145 build->shader, nir_intrinsic_load_blend_const_color_b_float); 7146 7147 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7148 7149 nir_builder_instr_insert(build, &intrin->instr); 7150 return &intrin->dest.ssa; 7151 } 7152 static inline nir_ssa_def * 7153 _nir_build_load_blend_const_color_g_float(nir_builder *build) 7154 { 7155 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7156 build->shader, nir_intrinsic_load_blend_const_color_g_float); 7157 7158 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7159 7160 nir_builder_instr_insert(build, &intrin->instr); 7161 return &intrin->dest.ssa; 7162 } 7163 static inline nir_ssa_def * 7164 _nir_build_load_blend_const_color_r_float(nir_builder *build) 7165 { 7166 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7167 build->shader, nir_intrinsic_load_blend_const_color_r_float); 7168 7169 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7170 7171 nir_builder_instr_insert(build, &intrin->instr); 7172 return &intrin->dest.ssa; 7173 } 7174 static inline nir_ssa_def * 7175 _nir_build_load_blend_const_color_rgba(nir_builder *build) 7176 { 7177 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7178 build->shader, nir_intrinsic_load_blend_const_color_rgba); 7179 7180 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 7181 7182 nir_builder_instr_insert(build, &intrin->instr); 7183 return &intrin->dest.ssa; 7184 } 7185 static inline nir_ssa_def * 7186 _nir_build_load_blend_const_color_rgba8888_unorm(nir_builder *build) 7187 { 7188 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7189 build->shader, nir_intrinsic_load_blend_const_color_rgba8888_unorm); 7190 7191 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7192 7193 nir_builder_instr_insert(build, &intrin->instr); 7194 return &intrin->dest.ssa; 7195 } 7196 static inline nir_ssa_def * 7197 _nir_build_load_btd_dss_id_intel(nir_builder *build) 7198 { 7199 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7200 build->shader, nir_intrinsic_load_btd_dss_id_intel); 7201 7202 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7203 7204 nir_builder_instr_insert(build, &intrin->instr); 7205 return &intrin->dest.ssa; 7206 } 7207 static inline nir_ssa_def * 7208 _nir_build_load_btd_global_arg_addr_intel(nir_builder *build) 7209 { 7210 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7211 build->shader, nir_intrinsic_load_btd_global_arg_addr_intel); 7212 7213 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 7214 7215 nir_builder_instr_insert(build, &intrin->instr); 7216 return &intrin->dest.ssa; 7217 } 7218 static inline nir_ssa_def * 7219 _nir_build_load_btd_local_arg_addr_intel(nir_builder *build) 7220 { 7221 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7222 build->shader, nir_intrinsic_load_btd_local_arg_addr_intel); 7223 7224 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 7225 7226 nir_builder_instr_insert(build, &intrin->instr); 7227 return &intrin->dest.ssa; 7228 } 7229 static inline nir_ssa_def * 7230 _nir_build_load_btd_resume_sbt_addr_intel(nir_builder *build) 7231 { 7232 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7233 build->shader, nir_intrinsic_load_btd_resume_sbt_addr_intel); 7234 7235 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 7236 7237 nir_builder_instr_insert(build, &intrin->instr); 7238 return &intrin->dest.ssa; 7239 } 7240 static inline nir_ssa_def * 7241 _nir_build_load_btd_stack_id_intel(nir_builder *build) 7242 { 7243 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7244 build->shader, nir_intrinsic_load_btd_stack_id_intel); 7245 7246 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7247 7248 nir_builder_instr_insert(build, &intrin->instr); 7249 return &intrin->dest.ssa; 7250 } 7251 static inline nir_ssa_def * 7252 _nir_build_load_buffer_amd(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_load_buffer_amd_indices indices) 7253 { 7254 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7255 build->shader, nir_intrinsic_load_buffer_amd); 7256 7257 intrin->num_components = num_components; 7258 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7259 intrin->src[0] = nir_src_for_ssa(src0); 7260 intrin->src[1] = nir_src_for_ssa(src1); 7261 intrin->src[2] = nir_src_for_ssa(src2); 7262 nir_intrinsic_set_base(intrin, indices.base); 7263 nir_intrinsic_set_is_swizzled(intrin, indices.is_swizzled); 7264 nir_intrinsic_set_slc_amd(intrin, indices.slc_amd); 7265 nir_intrinsic_set_memory_modes(intrin, indices.memory_modes); 7266 7267 nir_builder_instr_insert(build, &intrin->instr); 7268 return &intrin->dest.ssa; 7269 } 7270 static inline nir_ssa_def * 7271 _nir_build_load_callable_sbt_addr_intel(nir_builder *build) 7272 { 7273 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7274 build->shader, nir_intrinsic_load_callable_sbt_addr_intel); 7275 7276 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 7277 7278 nir_builder_instr_insert(build, &intrin->instr); 7279 return &intrin->dest.ssa; 7280 } 7281 static inline nir_ssa_def * 7282 _nir_build_load_callable_sbt_stride_intel(nir_builder *build) 7283 { 7284 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7285 build->shader, nir_intrinsic_load_callable_sbt_stride_intel); 7286 7287 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 16, NULL); 7288 7289 nir_builder_instr_insert(build, &intrin->instr); 7290 return &intrin->dest.ssa; 7291 } 7292 static inline nir_ssa_def * 7293 _nir_build_load_color0(nir_builder *build) 7294 { 7295 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7296 build->shader, nir_intrinsic_load_color0); 7297 7298 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 7299 7300 nir_builder_instr_insert(build, &intrin->instr); 7301 return &intrin->dest.ssa; 7302 } 7303 static inline nir_ssa_def * 7304 _nir_build_load_color1(nir_builder *build) 7305 { 7306 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7307 build->shader, nir_intrinsic_load_color1); 7308 7309 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 7310 7311 nir_builder_instr_insert(build, &intrin->instr); 7312 return &intrin->dest.ssa; 7313 } 7314 static inline nir_ssa_def * 7315 _nir_build_load_constant(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_constant_indices indices) 7316 { 7317 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7318 build->shader, nir_intrinsic_load_constant); 7319 7320 intrin->num_components = num_components; 7321 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7322 intrin->src[0] = nir_src_for_ssa(src0); 7323 nir_intrinsic_set_base(intrin, indices.base); 7324 nir_intrinsic_set_range(intrin, indices.range); 7325 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7326 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7327 7328 nir_builder_instr_insert(build, &intrin->instr); 7329 return &intrin->dest.ssa; 7330 } 7331 static inline nir_ssa_def * 7332 _nir_build_load_constant_base_ptr(nir_builder *build, unsigned num_components, unsigned bit_size) 7333 { 7334 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7335 build->shader, nir_intrinsic_load_constant_base_ptr); 7336 7337 intrin->num_components = num_components; 7338 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7339 7340 nir_builder_instr_insert(build, &intrin->instr); 7341 return &intrin->dest.ssa; 7342 } 7343 static inline nir_ssa_def * 7344 _nir_build_load_cull_any_enabled_amd(nir_builder *build) 7345 { 7346 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7347 build->shader, nir_intrinsic_load_cull_any_enabled_amd); 7348 7349 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7350 7351 nir_builder_instr_insert(build, &intrin->instr); 7352 return &intrin->dest.ssa; 7353 } 7354 static inline nir_ssa_def * 7355 _nir_build_load_cull_back_face_enabled_amd(nir_builder *build) 7356 { 7357 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7358 build->shader, nir_intrinsic_load_cull_back_face_enabled_amd); 7359 7360 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7361 7362 nir_builder_instr_insert(build, &intrin->instr); 7363 return &intrin->dest.ssa; 7364 } 7365 static inline nir_ssa_def * 7366 _nir_build_load_cull_ccw_amd(nir_builder *build) 7367 { 7368 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7369 build->shader, nir_intrinsic_load_cull_ccw_amd); 7370 7371 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7372 7373 nir_builder_instr_insert(build, &intrin->instr); 7374 return &intrin->dest.ssa; 7375 } 7376 static inline nir_ssa_def * 7377 _nir_build_load_cull_front_face_enabled_amd(nir_builder *build) 7378 { 7379 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7380 build->shader, nir_intrinsic_load_cull_front_face_enabled_amd); 7381 7382 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7383 7384 nir_builder_instr_insert(build, &intrin->instr); 7385 return &intrin->dest.ssa; 7386 } 7387 static inline nir_ssa_def * 7388 _nir_build_load_cull_small_prim_precision_amd(nir_builder *build) 7389 { 7390 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7391 build->shader, nir_intrinsic_load_cull_small_prim_precision_amd); 7392 7393 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7394 7395 nir_builder_instr_insert(build, &intrin->instr); 7396 return &intrin->dest.ssa; 7397 } 7398 static inline nir_ssa_def * 7399 _nir_build_load_cull_small_primitives_enabled_amd(nir_builder *build) 7400 { 7401 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7402 build->shader, nir_intrinsic_load_cull_small_primitives_enabled_amd); 7403 7404 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7405 7406 nir_builder_instr_insert(build, &intrin->instr); 7407 return &intrin->dest.ssa; 7408 } 7409 static inline nir_ssa_def * 7410 _nir_build_load_deref(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_deref_indices indices) 7411 { 7412 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7413 build->shader, nir_intrinsic_load_deref); 7414 7415 intrin->num_components = num_components; 7416 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7417 intrin->src[0] = nir_src_for_ssa(src0); 7418 nir_intrinsic_set_access(intrin, indices.access); 7419 7420 nir_builder_instr_insert(build, &intrin->instr); 7421 return &intrin->dest.ssa; 7422 } 7423 static inline nir_ssa_def * 7424 _nir_build_load_deref_block_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_deref_block_intel_indices indices) 7425 { 7426 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7427 build->shader, nir_intrinsic_load_deref_block_intel); 7428 7429 intrin->num_components = num_components; 7430 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7431 intrin->src[0] = nir_src_for_ssa(src0); 7432 nir_intrinsic_set_access(intrin, indices.access); 7433 7434 nir_builder_instr_insert(build, &intrin->instr); 7435 return &intrin->dest.ssa; 7436 } 7437 static inline nir_ssa_def * 7438 _nir_build_load_desc_set_address_intel(nir_builder *build, nir_ssa_def *src0) 7439 { 7440 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7441 build->shader, nir_intrinsic_load_desc_set_address_intel); 7442 7443 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 7444 intrin->src[0] = nir_src_for_ssa(src0); 7445 7446 nir_builder_instr_insert(build, &intrin->instr); 7447 return &intrin->dest.ssa; 7448 } 7449 static inline nir_ssa_def * 7450 _nir_build_load_draw_id(nir_builder *build) 7451 { 7452 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7453 build->shader, nir_intrinsic_load_draw_id); 7454 7455 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7456 7457 nir_builder_instr_insert(build, &intrin->instr); 7458 return &intrin->dest.ssa; 7459 } 7460 static inline nir_ssa_def * 7461 _nir_build_load_fb_layers_v3d(nir_builder *build, unsigned bit_size) 7462 { 7463 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7464 build->shader, nir_intrinsic_load_fb_layers_v3d); 7465 7466 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 7467 7468 nir_builder_instr_insert(build, &intrin->instr); 7469 return &intrin->dest.ssa; 7470 } 7471 static inline nir_ssa_def * 7472 _nir_build_load_first_vertex(nir_builder *build) 7473 { 7474 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7475 build->shader, nir_intrinsic_load_first_vertex); 7476 7477 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7478 7479 nir_builder_instr_insert(build, &intrin->instr); 7480 return &intrin->dest.ssa; 7481 } 7482 static inline nir_ssa_def * 7483 _nir_build_load_frag_coord(nir_builder *build) 7484 { 7485 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7486 build->shader, nir_intrinsic_load_frag_coord); 7487 7488 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 7489 7490 nir_builder_instr_insert(build, &intrin->instr); 7491 return &intrin->dest.ssa; 7492 } 7493 static inline nir_ssa_def * 7494 _nir_build_load_frag_shading_rate(nir_builder *build) 7495 { 7496 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7497 build->shader, nir_intrinsic_load_frag_shading_rate); 7498 7499 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7500 7501 nir_builder_instr_insert(build, &intrin->instr); 7502 return &intrin->dest.ssa; 7503 } 7504 static inline nir_ssa_def * 7505 _nir_build_load_front_face(nir_builder *build, unsigned bit_size) 7506 { 7507 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7508 build->shader, nir_intrinsic_load_front_face); 7509 7510 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 7511 7512 nir_builder_instr_insert(build, &intrin->instr); 7513 return &intrin->dest.ssa; 7514 } 7515 static inline nir_ssa_def * 7516 _nir_build_load_fs_input_interp_deltas(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_fs_input_interp_deltas_indices indices) 7517 { 7518 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7519 build->shader, nir_intrinsic_load_fs_input_interp_deltas); 7520 7521 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7522 intrin->src[0] = nir_src_for_ssa(src0); 7523 nir_intrinsic_set_base(intrin, indices.base); 7524 nir_intrinsic_set_component(intrin, indices.component); 7525 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 7526 7527 nir_builder_instr_insert(build, &intrin->instr); 7528 return &intrin->dest.ssa; 7529 } 7530 static inline nir_ssa_def * 7531 _nir_build_load_global(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_global_indices indices) 7532 { 7533 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7534 build->shader, nir_intrinsic_load_global); 7535 7536 intrin->num_components = num_components; 7537 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7538 intrin->src[0] = nir_src_for_ssa(src0); 7539 nir_intrinsic_set_access(intrin, indices.access); 7540 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7541 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7542 7543 nir_builder_instr_insert(build, &intrin->instr); 7544 return &intrin->dest.ssa; 7545 } 7546 static inline nir_ssa_def * 7547 _nir_build_load_global_block_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_global_block_intel_indices indices) 7548 { 7549 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7550 build->shader, nir_intrinsic_load_global_block_intel); 7551 7552 intrin->num_components = num_components; 7553 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7554 intrin->src[0] = nir_src_for_ssa(src0); 7555 nir_intrinsic_set_access(intrin, indices.access); 7556 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7557 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7558 7559 nir_builder_instr_insert(build, &intrin->instr); 7560 return &intrin->dest.ssa; 7561 } 7562 static inline nir_ssa_def * 7563 _nir_build_load_global_const_block_intel(nir_builder *build, unsigned num_components, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_global_const_block_intel_indices indices) 7564 { 7565 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7566 build->shader, nir_intrinsic_load_global_const_block_intel); 7567 7568 intrin->num_components = num_components; 7569 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, 32, NULL); 7570 intrin->src[0] = nir_src_for_ssa(src0); 7571 intrin->src[1] = nir_src_for_ssa(src1); 7572 nir_intrinsic_set_base(intrin, indices.base); 7573 7574 nir_builder_instr_insert(build, &intrin->instr); 7575 return &intrin->dest.ssa; 7576 } 7577 static inline nir_ssa_def * 7578 _nir_build_load_global_constant(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_global_constant_indices indices) 7579 { 7580 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7581 build->shader, nir_intrinsic_load_global_constant); 7582 7583 intrin->num_components = num_components; 7584 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7585 intrin->src[0] = nir_src_for_ssa(src0); 7586 nir_intrinsic_set_access(intrin, indices.access); 7587 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7588 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7589 7590 nir_builder_instr_insert(build, &intrin->instr); 7591 return &intrin->dest.ssa; 7592 } 7593 static inline nir_ssa_def * 7594 _nir_build_load_global_constant_bounded(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_load_global_constant_bounded_indices indices) 7595 { 7596 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7597 build->shader, nir_intrinsic_load_global_constant_bounded); 7598 7599 intrin->num_components = num_components; 7600 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7601 intrin->src[0] = nir_src_for_ssa(src0); 7602 intrin->src[1] = nir_src_for_ssa(src1); 7603 intrin->src[2] = nir_src_for_ssa(src2); 7604 nir_intrinsic_set_access(intrin, indices.access); 7605 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7606 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7607 7608 nir_builder_instr_insert(build, &intrin->instr); 7609 return &intrin->dest.ssa; 7610 } 7611 static inline nir_ssa_def * 7612 _nir_build_load_global_constant_offset(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_global_constant_offset_indices indices) 7613 { 7614 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7615 build->shader, nir_intrinsic_load_global_constant_offset); 7616 7617 intrin->num_components = num_components; 7618 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7619 intrin->src[0] = nir_src_for_ssa(src0); 7620 intrin->src[1] = nir_src_for_ssa(src1); 7621 nir_intrinsic_set_access(intrin, indices.access); 7622 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7623 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7624 7625 nir_builder_instr_insert(build, &intrin->instr); 7626 return &intrin->dest.ssa; 7627 } 7628 static inline nir_ssa_def * 7629 _nir_build_load_global_invocation_id(nir_builder *build, unsigned bit_size) 7630 { 7631 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7632 build->shader, nir_intrinsic_load_global_invocation_id); 7633 7634 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7635 7636 nir_builder_instr_insert(build, &intrin->instr); 7637 return &intrin->dest.ssa; 7638 } 7639 static inline nir_ssa_def * 7640 _nir_build_load_global_invocation_id_zero_base(nir_builder *build, unsigned bit_size) 7641 { 7642 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7643 build->shader, nir_intrinsic_load_global_invocation_id_zero_base); 7644 7645 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7646 7647 nir_builder_instr_insert(build, &intrin->instr); 7648 return &intrin->dest.ssa; 7649 } 7650 static inline nir_ssa_def * 7651 _nir_build_load_global_invocation_index(nir_builder *build, unsigned bit_size) 7652 { 7653 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7654 build->shader, nir_intrinsic_load_global_invocation_index); 7655 7656 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 7657 7658 nir_builder_instr_insert(build, &intrin->instr); 7659 return &intrin->dest.ssa; 7660 } 7661 static inline nir_ssa_def * 7662 _nir_build_load_global_ir3(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_global_ir3_indices indices) 7663 { 7664 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7665 build->shader, nir_intrinsic_load_global_ir3); 7666 7667 intrin->num_components = num_components; 7668 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7669 intrin->src[0] = nir_src_for_ssa(src0); 7670 intrin->src[1] = nir_src_for_ssa(src1); 7671 nir_intrinsic_set_access(intrin, indices.access); 7672 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7673 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7674 7675 nir_builder_instr_insert(build, &intrin->instr); 7676 return &intrin->dest.ssa; 7677 } 7678 static inline nir_ssa_def * 7679 _nir_build_load_gs_header_ir3(nir_builder *build) 7680 { 7681 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7682 build->shader, nir_intrinsic_load_gs_header_ir3); 7683 7684 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7685 7686 nir_builder_instr_insert(build, &intrin->instr); 7687 return &intrin->dest.ssa; 7688 } 7689 static inline nir_ssa_def * 7690 _nir_build_load_gs_vertex_offset_amd(nir_builder *build, struct _nir_load_gs_vertex_offset_amd_indices indices) 7691 { 7692 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7693 build->shader, nir_intrinsic_load_gs_vertex_offset_amd); 7694 7695 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7696 nir_intrinsic_set_base(intrin, indices.base); 7697 7698 nir_builder_instr_insert(build, &intrin->instr); 7699 return &intrin->dest.ssa; 7700 } 7701 static inline nir_ssa_def * 7702 _nir_build_load_helper_invocation(nir_builder *build, unsigned bit_size) 7703 { 7704 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7705 build->shader, nir_intrinsic_load_helper_invocation); 7706 7707 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 7708 7709 nir_builder_instr_insert(build, &intrin->instr); 7710 return &intrin->dest.ssa; 7711 } 7712 static inline nir_ssa_def * 7713 _nir_build_load_hs_patch_stride_ir3(nir_builder *build) 7714 { 7715 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7716 build->shader, nir_intrinsic_load_hs_patch_stride_ir3); 7717 7718 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7719 7720 nir_builder_instr_insert(build, &intrin->instr); 7721 return &intrin->dest.ssa; 7722 } 7723 static inline nir_ssa_def * 7724 _nir_build_load_initial_edgeflags_amd(nir_builder *build) 7725 { 7726 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7727 build->shader, nir_intrinsic_load_initial_edgeflags_amd); 7728 7729 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7730 7731 nir_builder_instr_insert(build, &intrin->instr); 7732 return &intrin->dest.ssa; 7733 } 7734 static inline nir_ssa_def * 7735 _nir_build_load_input(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_input_indices indices) 7736 { 7737 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7738 build->shader, nir_intrinsic_load_input); 7739 7740 intrin->num_components = num_components; 7741 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7742 intrin->src[0] = nir_src_for_ssa(src0); 7743 nir_intrinsic_set_base(intrin, indices.base); 7744 nir_intrinsic_set_component(intrin, indices.component); 7745 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 7746 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 7747 7748 nir_builder_instr_insert(build, &intrin->instr); 7749 return &intrin->dest.ssa; 7750 } 7751 static inline nir_ssa_def * 7752 _nir_build_load_input_vertex(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_input_vertex_indices indices) 7753 { 7754 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7755 build->shader, nir_intrinsic_load_input_vertex); 7756 7757 intrin->num_components = num_components; 7758 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7759 intrin->src[0] = nir_src_for_ssa(src0); 7760 intrin->src[1] = nir_src_for_ssa(src1); 7761 nir_intrinsic_set_base(intrin, indices.base); 7762 nir_intrinsic_set_component(intrin, indices.component); 7763 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 7764 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 7765 7766 nir_builder_instr_insert(build, &intrin->instr); 7767 return &intrin->dest.ssa; 7768 } 7769 static inline nir_ssa_def * 7770 _nir_build_load_instance_id(nir_builder *build) 7771 { 7772 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7773 build->shader, nir_intrinsic_load_instance_id); 7774 7775 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7776 7777 nir_builder_instr_insert(build, &intrin->instr); 7778 return &intrin->dest.ssa; 7779 } 7780 static inline nir_ssa_def * 7781 _nir_build_load_interpolated_input(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_interpolated_input_indices indices) 7782 { 7783 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7784 build->shader, nir_intrinsic_load_interpolated_input); 7785 7786 intrin->num_components = num_components; 7787 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7788 intrin->src[0] = nir_src_for_ssa(src0); 7789 intrin->src[1] = nir_src_for_ssa(src1); 7790 nir_intrinsic_set_base(intrin, indices.base); 7791 nir_intrinsic_set_component(intrin, indices.component); 7792 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 7793 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 7794 7795 nir_builder_instr_insert(build, &intrin->instr); 7796 return &intrin->dest.ssa; 7797 } 7798 static inline nir_ssa_def * 7799 _nir_build_load_intersection_opaque_amd(nir_builder *build) 7800 { 7801 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7802 build->shader, nir_intrinsic_load_intersection_opaque_amd); 7803 7804 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7805 7806 nir_builder_instr_insert(build, &intrin->instr); 7807 return &intrin->dest.ssa; 7808 } 7809 static inline nir_ssa_def * 7810 _nir_build_load_invocation_id(nir_builder *build) 7811 { 7812 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7813 build->shader, nir_intrinsic_load_invocation_id); 7814 7815 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7816 7817 nir_builder_instr_insert(build, &intrin->instr); 7818 return &intrin->dest.ssa; 7819 } 7820 static inline nir_ssa_def * 7821 _nir_build_load_is_indexed_draw(nir_builder *build) 7822 { 7823 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7824 build->shader, nir_intrinsic_load_is_indexed_draw); 7825 7826 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7827 7828 nir_builder_instr_insert(build, &intrin->instr); 7829 return &intrin->dest.ssa; 7830 } 7831 static inline nir_ssa_def * 7832 _nir_build_load_kernel_input(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_kernel_input_indices indices) 7833 { 7834 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7835 build->shader, nir_intrinsic_load_kernel_input); 7836 7837 intrin->num_components = num_components; 7838 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7839 intrin->src[0] = nir_src_for_ssa(src0); 7840 nir_intrinsic_set_base(intrin, indices.base); 7841 nir_intrinsic_set_range(intrin, indices.range); 7842 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 7843 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 7844 7845 nir_builder_instr_insert(build, &intrin->instr); 7846 return &intrin->dest.ssa; 7847 } 7848 static inline nir_ssa_def * 7849 _nir_build_load_layer_id(nir_builder *build) 7850 { 7851 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7852 build->shader, nir_intrinsic_load_layer_id); 7853 7854 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7855 7856 nir_builder_instr_insert(build, &intrin->instr); 7857 return &intrin->dest.ssa; 7858 } 7859 static inline nir_ssa_def * 7860 _nir_build_load_leaf_opaque_intel(nir_builder *build) 7861 { 7862 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7863 build->shader, nir_intrinsic_load_leaf_opaque_intel); 7864 7865 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7866 7867 nir_builder_instr_insert(build, &intrin->instr); 7868 return &intrin->dest.ssa; 7869 } 7870 static inline nir_ssa_def * 7871 _nir_build_load_leaf_procedural_intel(nir_builder *build) 7872 { 7873 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7874 build->shader, nir_intrinsic_load_leaf_procedural_intel); 7875 7876 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 7877 7878 nir_builder_instr_insert(build, &intrin->instr); 7879 return &intrin->dest.ssa; 7880 } 7881 static inline nir_ssa_def * 7882 _nir_build_load_line_coord(nir_builder *build) 7883 { 7884 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7885 build->shader, nir_intrinsic_load_line_coord); 7886 7887 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7888 7889 nir_builder_instr_insert(build, &intrin->instr); 7890 return &intrin->dest.ssa; 7891 } 7892 static inline nir_ssa_def * 7893 _nir_build_load_line_width(nir_builder *build) 7894 { 7895 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7896 build->shader, nir_intrinsic_load_line_width); 7897 7898 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7899 7900 nir_builder_instr_insert(build, &intrin->instr); 7901 return &intrin->dest.ssa; 7902 } 7903 static inline nir_ssa_def * 7904 _nir_build_load_local_invocation_id(nir_builder *build) 7905 { 7906 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7907 build->shader, nir_intrinsic_load_local_invocation_id); 7908 7909 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 7910 7911 nir_builder_instr_insert(build, &intrin->instr); 7912 return &intrin->dest.ssa; 7913 } 7914 static inline nir_ssa_def * 7915 _nir_build_load_local_invocation_index(nir_builder *build) 7916 { 7917 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7918 build->shader, nir_intrinsic_load_local_invocation_index); 7919 7920 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7921 7922 nir_builder_instr_insert(build, &intrin->instr); 7923 return &intrin->dest.ssa; 7924 } 7925 static inline nir_ssa_def * 7926 _nir_build_load_local_shared_r600(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 7927 { 7928 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7929 build->shader, nir_intrinsic_load_local_shared_r600); 7930 7931 intrin->num_components = src0->num_components; 7932 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7933 intrin->src[0] = nir_src_for_ssa(src0); 7934 7935 nir_builder_instr_insert(build, &intrin->instr); 7936 return &intrin->dest.ssa; 7937 } 7938 static inline nir_ssa_def * 7939 _nir_build_load_num_subgroups(nir_builder *build) 7940 { 7941 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7942 build->shader, nir_intrinsic_load_num_subgroups); 7943 7944 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7945 7946 nir_builder_instr_insert(build, &intrin->instr); 7947 return &intrin->dest.ssa; 7948 } 7949 static inline nir_ssa_def * 7950 _nir_build_load_num_workgroups(nir_builder *build, unsigned bit_size) 7951 { 7952 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7953 build->shader, nir_intrinsic_load_num_workgroups); 7954 7955 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 7956 7957 nir_builder_instr_insert(build, &intrin->instr); 7958 return &intrin->dest.ssa; 7959 } 7960 static inline nir_ssa_def * 7961 _nir_build_load_output(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_output_indices indices) 7962 { 7963 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7964 build->shader, nir_intrinsic_load_output); 7965 7966 intrin->num_components = num_components; 7967 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7968 intrin->src[0] = nir_src_for_ssa(src0); 7969 nir_intrinsic_set_base(intrin, indices.base); 7970 nir_intrinsic_set_component(intrin, indices.component); 7971 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 7972 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 7973 7974 nir_builder_instr_insert(build, &intrin->instr); 7975 return &intrin->dest.ssa; 7976 } 7977 static inline nir_ssa_def * 7978 _nir_build_load_packed_passthrough_primitive_amd(nir_builder *build) 7979 { 7980 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7981 build->shader, nir_intrinsic_load_packed_passthrough_primitive_amd); 7982 7983 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 7984 7985 nir_builder_instr_insert(build, &intrin->instr); 7986 return &intrin->dest.ssa; 7987 } 7988 static inline nir_ssa_def * 7989 _nir_build_load_param(nir_builder *build, unsigned num_components, unsigned bit_size, struct _nir_load_param_indices indices) 7990 { 7991 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 7992 build->shader, nir_intrinsic_load_param); 7993 7994 intrin->num_components = num_components; 7995 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 7996 nir_intrinsic_set_param_idx(intrin, indices.param_idx); 7997 7998 nir_builder_instr_insert(build, &intrin->instr); 7999 return &intrin->dest.ssa; 8000 } 8001 static inline nir_ssa_def * 8002 _nir_build_load_patch_vertices_in(nir_builder *build) 8003 { 8004 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8005 build->shader, nir_intrinsic_load_patch_vertices_in); 8006 8007 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8008 8009 nir_builder_instr_insert(build, &intrin->instr); 8010 return &intrin->dest.ssa; 8011 } 8012 static inline nir_ssa_def * 8013 _nir_build_load_per_primitive_output(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_per_primitive_output_indices indices) 8014 { 8015 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8016 build->shader, nir_intrinsic_load_per_primitive_output); 8017 8018 intrin->num_components = num_components; 8019 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8020 intrin->src[0] = nir_src_for_ssa(src0); 8021 intrin->src[1] = nir_src_for_ssa(src1); 8022 nir_intrinsic_set_base(intrin, indices.base); 8023 nir_intrinsic_set_component(intrin, indices.component); 8024 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 8025 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 8026 8027 nir_builder_instr_insert(build, &intrin->instr); 8028 return &intrin->dest.ssa; 8029 } 8030 static inline nir_ssa_def * 8031 _nir_build_load_per_vertex_input(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_per_vertex_input_indices indices) 8032 { 8033 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8034 build->shader, nir_intrinsic_load_per_vertex_input); 8035 8036 intrin->num_components = num_components; 8037 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8038 intrin->src[0] = nir_src_for_ssa(src0); 8039 intrin->src[1] = nir_src_for_ssa(src1); 8040 nir_intrinsic_set_base(intrin, indices.base); 8041 nir_intrinsic_set_component(intrin, indices.component); 8042 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 8043 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 8044 8045 nir_builder_instr_insert(build, &intrin->instr); 8046 return &intrin->dest.ssa; 8047 } 8048 static inline nir_ssa_def * 8049 _nir_build_load_per_vertex_output(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_per_vertex_output_indices indices) 8050 { 8051 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8052 build->shader, nir_intrinsic_load_per_vertex_output); 8053 8054 intrin->num_components = num_components; 8055 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8056 intrin->src[0] = nir_src_for_ssa(src0); 8057 intrin->src[1] = nir_src_for_ssa(src1); 8058 nir_intrinsic_set_base(intrin, indices.base); 8059 nir_intrinsic_set_component(intrin, indices.component); 8060 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 8061 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 8062 8063 nir_builder_instr_insert(build, &intrin->instr); 8064 return &intrin->dest.ssa; 8065 } 8066 static inline nir_ssa_def * 8067 _nir_build_load_point_coord(nir_builder *build) 8068 { 8069 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8070 build->shader, nir_intrinsic_load_point_coord); 8071 8072 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 8073 8074 nir_builder_instr_insert(build, &intrin->instr); 8075 return &intrin->dest.ssa; 8076 } 8077 static inline nir_ssa_def * 8078 _nir_build_load_primitive_id(nir_builder *build) 8079 { 8080 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8081 build->shader, nir_intrinsic_load_primitive_id); 8082 8083 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8084 8085 nir_builder_instr_insert(build, &intrin->instr); 8086 return &intrin->dest.ssa; 8087 } 8088 static inline nir_ssa_def * 8089 _nir_build_load_primitive_location_ir3(nir_builder *build, struct _nir_load_primitive_location_ir3_indices indices) 8090 { 8091 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8092 build->shader, nir_intrinsic_load_primitive_location_ir3); 8093 8094 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8095 nir_intrinsic_set_driver_location(intrin, indices.driver_location); 8096 8097 nir_builder_instr_insert(build, &intrin->instr); 8098 return &intrin->dest.ssa; 8099 } 8100 static inline nir_ssa_def * 8101 _nir_build_load_printf_buffer_address(nir_builder *build, unsigned bit_size) 8102 { 8103 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8104 build->shader, nir_intrinsic_load_printf_buffer_address); 8105 8106 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 8107 8108 nir_builder_instr_insert(build, &intrin->instr); 8109 return &intrin->dest.ssa; 8110 } 8111 static inline nir_ssa_def * 8112 _nir_build_load_ptr_dxil(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 8113 { 8114 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8115 build->shader, nir_intrinsic_load_ptr_dxil); 8116 8117 intrin->num_components = num_components; 8118 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8119 intrin->src[0] = nir_src_for_ssa(src0); 8120 intrin->src[1] = nir_src_for_ssa(src1); 8121 8122 nir_builder_instr_insert(build, &intrin->instr); 8123 return &intrin->dest.ssa; 8124 } 8125 static inline nir_ssa_def * 8126 _nir_build_load_push_constant(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_push_constant_indices indices) 8127 { 8128 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8129 build->shader, nir_intrinsic_load_push_constant); 8130 8131 intrin->num_components = num_components; 8132 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8133 intrin->src[0] = nir_src_for_ssa(src0); 8134 nir_intrinsic_set_base(intrin, indices.base); 8135 nir_intrinsic_set_range(intrin, indices.range); 8136 8137 nir_builder_instr_insert(build, &intrin->instr); 8138 return &intrin->dest.ssa; 8139 } 8140 static inline nir_ssa_def * 8141 _nir_build_load_raw_output_pan(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_raw_output_pan_indices indices) 8142 { 8143 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8144 build->shader, nir_intrinsic_load_raw_output_pan); 8145 8146 intrin->num_components = num_components; 8147 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8148 intrin->src[0] = nir_src_for_ssa(src0); 8149 nir_intrinsic_set_base(intrin, indices.base); 8150 8151 nir_builder_instr_insert(build, &intrin->instr); 8152 return &intrin->dest.ssa; 8153 } 8154 static inline nir_ssa_def * 8155 _nir_build_load_ray_base_mem_addr_intel(nir_builder *build) 8156 { 8157 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8158 build->shader, nir_intrinsic_load_ray_base_mem_addr_intel); 8159 8160 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 8161 8162 nir_builder_instr_insert(build, &intrin->instr); 8163 return &intrin->dest.ssa; 8164 } 8165 static inline nir_ssa_def * 8166 _nir_build_load_ray_flags(nir_builder *build) 8167 { 8168 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8169 build->shader, nir_intrinsic_load_ray_flags); 8170 8171 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8172 8173 nir_builder_instr_insert(build, &intrin->instr); 8174 return &intrin->dest.ssa; 8175 } 8176 static inline nir_ssa_def * 8177 _nir_build_load_ray_geometry_index(nir_builder *build) 8178 { 8179 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8180 build->shader, nir_intrinsic_load_ray_geometry_index); 8181 8182 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8183 8184 nir_builder_instr_insert(build, &intrin->instr); 8185 return &intrin->dest.ssa; 8186 } 8187 static inline nir_ssa_def * 8188 _nir_build_load_ray_hit_kind(nir_builder *build) 8189 { 8190 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8191 build->shader, nir_intrinsic_load_ray_hit_kind); 8192 8193 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8194 8195 nir_builder_instr_insert(build, &intrin->instr); 8196 return &intrin->dest.ssa; 8197 } 8198 static inline nir_ssa_def * 8199 _nir_build_load_ray_hit_sbt_addr_intel(nir_builder *build) 8200 { 8201 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8202 build->shader, nir_intrinsic_load_ray_hit_sbt_addr_intel); 8203 8204 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 8205 8206 nir_builder_instr_insert(build, &intrin->instr); 8207 return &intrin->dest.ssa; 8208 } 8209 static inline nir_ssa_def * 8210 _nir_build_load_ray_hit_sbt_stride_intel(nir_builder *build) 8211 { 8212 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8213 build->shader, nir_intrinsic_load_ray_hit_sbt_stride_intel); 8214 8215 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 16, NULL); 8216 8217 nir_builder_instr_insert(build, &intrin->instr); 8218 return &intrin->dest.ssa; 8219 } 8220 static inline nir_ssa_def * 8221 _nir_build_load_ray_hw_stack_size_intel(nir_builder *build) 8222 { 8223 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8224 build->shader, nir_intrinsic_load_ray_hw_stack_size_intel); 8225 8226 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8227 8228 nir_builder_instr_insert(build, &intrin->instr); 8229 return &intrin->dest.ssa; 8230 } 8231 static inline nir_ssa_def * 8232 _nir_build_load_ray_instance_custom_index(nir_builder *build) 8233 { 8234 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8235 build->shader, nir_intrinsic_load_ray_instance_custom_index); 8236 8237 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8238 8239 nir_builder_instr_insert(build, &intrin->instr); 8240 return &intrin->dest.ssa; 8241 } 8242 static inline nir_ssa_def * 8243 _nir_build_load_ray_launch_id(nir_builder *build) 8244 { 8245 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8246 build->shader, nir_intrinsic_load_ray_launch_id); 8247 8248 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8249 8250 nir_builder_instr_insert(build, &intrin->instr); 8251 return &intrin->dest.ssa; 8252 } 8253 static inline nir_ssa_def * 8254 _nir_build_load_ray_launch_size(nir_builder *build) 8255 { 8256 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8257 build->shader, nir_intrinsic_load_ray_launch_size); 8258 8259 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8260 8261 nir_builder_instr_insert(build, &intrin->instr); 8262 return &intrin->dest.ssa; 8263 } 8264 static inline nir_ssa_def * 8265 _nir_build_load_ray_miss_sbt_addr_intel(nir_builder *build) 8266 { 8267 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8268 build->shader, nir_intrinsic_load_ray_miss_sbt_addr_intel); 8269 8270 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 8271 8272 nir_builder_instr_insert(build, &intrin->instr); 8273 return &intrin->dest.ssa; 8274 } 8275 static inline nir_ssa_def * 8276 _nir_build_load_ray_miss_sbt_stride_intel(nir_builder *build) 8277 { 8278 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8279 build->shader, nir_intrinsic_load_ray_miss_sbt_stride_intel); 8280 8281 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 16, NULL); 8282 8283 nir_builder_instr_insert(build, &intrin->instr); 8284 return &intrin->dest.ssa; 8285 } 8286 static inline nir_ssa_def * 8287 _nir_build_load_ray_num_dss_rt_stacks_intel(nir_builder *build) 8288 { 8289 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8290 build->shader, nir_intrinsic_load_ray_num_dss_rt_stacks_intel); 8291 8292 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8293 8294 nir_builder_instr_insert(build, &intrin->instr); 8295 return &intrin->dest.ssa; 8296 } 8297 static inline nir_ssa_def * 8298 _nir_build_load_ray_object_direction(nir_builder *build) 8299 { 8300 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8301 build->shader, nir_intrinsic_load_ray_object_direction); 8302 8303 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8304 8305 nir_builder_instr_insert(build, &intrin->instr); 8306 return &intrin->dest.ssa; 8307 } 8308 static inline nir_ssa_def * 8309 _nir_build_load_ray_object_origin(nir_builder *build) 8310 { 8311 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8312 build->shader, nir_intrinsic_load_ray_object_origin); 8313 8314 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8315 8316 nir_builder_instr_insert(build, &intrin->instr); 8317 return &intrin->dest.ssa; 8318 } 8319 static inline nir_ssa_def * 8320 _nir_build_load_ray_object_to_world(nir_builder *build, struct _nir_load_ray_object_to_world_indices indices) 8321 { 8322 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8323 build->shader, nir_intrinsic_load_ray_object_to_world); 8324 8325 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8326 nir_intrinsic_set_column(intrin, indices.column); 8327 8328 nir_builder_instr_insert(build, &intrin->instr); 8329 return &intrin->dest.ssa; 8330 } 8331 static inline nir_ssa_def * 8332 _nir_build_load_ray_sw_stack_size_intel(nir_builder *build) 8333 { 8334 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8335 build->shader, nir_intrinsic_load_ray_sw_stack_size_intel); 8336 8337 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8338 8339 nir_builder_instr_insert(build, &intrin->instr); 8340 return &intrin->dest.ssa; 8341 } 8342 static inline nir_ssa_def * 8343 _nir_build_load_ray_t_max(nir_builder *build) 8344 { 8345 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8346 build->shader, nir_intrinsic_load_ray_t_max); 8347 8348 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8349 8350 nir_builder_instr_insert(build, &intrin->instr); 8351 return &intrin->dest.ssa; 8352 } 8353 static inline nir_ssa_def * 8354 _nir_build_load_ray_t_min(nir_builder *build) 8355 { 8356 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8357 build->shader, nir_intrinsic_load_ray_t_min); 8358 8359 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8360 8361 nir_builder_instr_insert(build, &intrin->instr); 8362 return &intrin->dest.ssa; 8363 } 8364 static inline nir_ssa_def * 8365 _nir_build_load_ray_world_direction(nir_builder *build) 8366 { 8367 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8368 build->shader, nir_intrinsic_load_ray_world_direction); 8369 8370 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8371 8372 nir_builder_instr_insert(build, &intrin->instr); 8373 return &intrin->dest.ssa; 8374 } 8375 static inline nir_ssa_def * 8376 _nir_build_load_ray_world_origin(nir_builder *build) 8377 { 8378 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8379 build->shader, nir_intrinsic_load_ray_world_origin); 8380 8381 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8382 8383 nir_builder_instr_insert(build, &intrin->instr); 8384 return &intrin->dest.ssa; 8385 } 8386 static inline nir_ssa_def * 8387 _nir_build_load_ray_world_to_object(nir_builder *build, struct _nir_load_ray_world_to_object_indices indices) 8388 { 8389 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8390 build->shader, nir_intrinsic_load_ray_world_to_object); 8391 8392 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8393 nir_intrinsic_set_column(intrin, indices.column); 8394 8395 nir_builder_instr_insert(build, &intrin->instr); 8396 return &intrin->dest.ssa; 8397 } 8398 static inline nir_ssa_def * 8399 _nir_build_load_rel_patch_id_ir3(nir_builder *build) 8400 { 8401 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8402 build->shader, nir_intrinsic_load_rel_patch_id_ir3); 8403 8404 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8405 8406 nir_builder_instr_insert(build, &intrin->instr); 8407 return &intrin->dest.ssa; 8408 } 8409 static inline nir_ssa_def * 8410 _nir_build_load_reloc_const_intel(nir_builder *build, struct _nir_load_reloc_const_intel_indices indices) 8411 { 8412 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8413 build->shader, nir_intrinsic_load_reloc_const_intel); 8414 8415 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8416 nir_intrinsic_set_param_idx(intrin, indices.param_idx); 8417 8418 nir_builder_instr_insert(build, &intrin->instr); 8419 return &intrin->dest.ssa; 8420 } 8421 static inline nir_ssa_def * 8422 _nir_build_load_ring_es2gs_offset_amd(nir_builder *build) 8423 { 8424 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8425 build->shader, nir_intrinsic_load_ring_es2gs_offset_amd); 8426 8427 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8428 8429 nir_builder_instr_insert(build, &intrin->instr); 8430 return &intrin->dest.ssa; 8431 } 8432 static inline nir_ssa_def * 8433 _nir_build_load_ring_esgs_amd(nir_builder *build) 8434 { 8435 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8436 build->shader, nir_intrinsic_load_ring_esgs_amd); 8437 8438 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 8439 8440 nir_builder_instr_insert(build, &intrin->instr); 8441 return &intrin->dest.ssa; 8442 } 8443 static inline nir_ssa_def * 8444 _nir_build_load_ring_tess_factors_amd(nir_builder *build) 8445 { 8446 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8447 build->shader, nir_intrinsic_load_ring_tess_factors_amd); 8448 8449 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 8450 8451 nir_builder_instr_insert(build, &intrin->instr); 8452 return &intrin->dest.ssa; 8453 } 8454 static inline nir_ssa_def * 8455 _nir_build_load_ring_tess_factors_offset_amd(nir_builder *build) 8456 { 8457 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8458 build->shader, nir_intrinsic_load_ring_tess_factors_offset_amd); 8459 8460 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8461 8462 nir_builder_instr_insert(build, &intrin->instr); 8463 return &intrin->dest.ssa; 8464 } 8465 static inline nir_ssa_def * 8466 _nir_build_load_ring_tess_offchip_amd(nir_builder *build) 8467 { 8468 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8469 build->shader, nir_intrinsic_load_ring_tess_offchip_amd); 8470 8471 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 8472 8473 nir_builder_instr_insert(build, &intrin->instr); 8474 return &intrin->dest.ssa; 8475 } 8476 static inline nir_ssa_def * 8477 _nir_build_load_ring_tess_offchip_offset_amd(nir_builder *build) 8478 { 8479 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8480 build->shader, nir_intrinsic_load_ring_tess_offchip_offset_amd); 8481 8482 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8483 8484 nir_builder_instr_insert(build, &intrin->instr); 8485 return &intrin->dest.ssa; 8486 } 8487 static inline nir_ssa_def * 8488 _nir_build_load_rt_arg_scratch_offset_amd(nir_builder *build) 8489 { 8490 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8491 build->shader, nir_intrinsic_load_rt_arg_scratch_offset_amd); 8492 8493 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8494 8495 nir_builder_instr_insert(build, &intrin->instr); 8496 return &intrin->dest.ssa; 8497 } 8498 static inline nir_ssa_def * 8499 _nir_build_load_sample_id(nir_builder *build) 8500 { 8501 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8502 build->shader, nir_intrinsic_load_sample_id); 8503 8504 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8505 8506 nir_builder_instr_insert(build, &intrin->instr); 8507 return &intrin->dest.ssa; 8508 } 8509 static inline nir_ssa_def * 8510 _nir_build_load_sample_id_no_per_sample(nir_builder *build) 8511 { 8512 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8513 build->shader, nir_intrinsic_load_sample_id_no_per_sample); 8514 8515 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8516 8517 nir_builder_instr_insert(build, &intrin->instr); 8518 return &intrin->dest.ssa; 8519 } 8520 static inline nir_ssa_def * 8521 _nir_build_load_sample_mask_in(nir_builder *build) 8522 { 8523 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8524 build->shader, nir_intrinsic_load_sample_mask_in); 8525 8526 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8527 8528 nir_builder_instr_insert(build, &intrin->instr); 8529 return &intrin->dest.ssa; 8530 } 8531 static inline nir_ssa_def * 8532 _nir_build_load_sample_pos(nir_builder *build) 8533 { 8534 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8535 build->shader, nir_intrinsic_load_sample_pos); 8536 8537 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 8538 8539 nir_builder_instr_insert(build, &intrin->instr); 8540 return &intrin->dest.ssa; 8541 } 8542 static inline nir_ssa_def * 8543 _nir_build_load_sample_pos_from_id(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 8544 { 8545 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8546 build->shader, nir_intrinsic_load_sample_pos_from_id); 8547 8548 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 8549 intrin->src[0] = nir_src_for_ssa(src0); 8550 8551 nir_builder_instr_insert(build, &intrin->instr); 8552 return &intrin->dest.ssa; 8553 } 8554 static inline nir_ssa_def * 8555 _nir_build_load_sample_positions_pan(nir_builder *build) 8556 { 8557 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8558 build->shader, nir_intrinsic_load_sample_positions_pan); 8559 8560 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 8561 8562 nir_builder_instr_insert(build, &intrin->instr); 8563 return &intrin->dest.ssa; 8564 } 8565 static inline nir_ssa_def * 8566 _nir_build_load_sampler_lod_parameters_pan(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0) 8567 { 8568 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8569 build->shader, nir_intrinsic_load_sampler_lod_parameters_pan); 8570 8571 intrin->num_components = num_components; 8572 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8573 intrin->src[0] = nir_src_for_ssa(src0); 8574 8575 nir_builder_instr_insert(build, &intrin->instr); 8576 return &intrin->dest.ssa; 8577 } 8578 static inline nir_ssa_def * 8579 _nir_build_load_sbt_amd(nir_builder *build, struct _nir_load_sbt_amd_indices indices) 8580 { 8581 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8582 build->shader, nir_intrinsic_load_sbt_amd); 8583 8584 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 8585 nir_intrinsic_set_binding(intrin, indices.binding); 8586 8587 nir_builder_instr_insert(build, &intrin->instr); 8588 return &intrin->dest.ssa; 8589 } 8590 static inline nir_ssa_def * 8591 _nir_build_load_scratch(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_scratch_indices indices) 8592 { 8593 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8594 build->shader, nir_intrinsic_load_scratch); 8595 8596 intrin->num_components = num_components; 8597 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8598 intrin->src[0] = nir_src_for_ssa(src0); 8599 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8600 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8601 8602 nir_builder_instr_insert(build, &intrin->instr); 8603 return &intrin->dest.ssa; 8604 } 8605 static inline nir_ssa_def * 8606 _nir_build_load_scratch_base_ptr(nir_builder *build, unsigned num_components, unsigned bit_size, struct _nir_load_scratch_base_ptr_indices indices) 8607 { 8608 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8609 build->shader, nir_intrinsic_load_scratch_base_ptr); 8610 8611 intrin->num_components = num_components; 8612 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8613 nir_intrinsic_set_base(intrin, indices.base); 8614 8615 nir_builder_instr_insert(build, &intrin->instr); 8616 return &intrin->dest.ssa; 8617 } 8618 static inline nir_ssa_def * 8619 _nir_build_load_scratch_dxil(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0) 8620 { 8621 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8622 build->shader, nir_intrinsic_load_scratch_dxil); 8623 8624 intrin->num_components = num_components; 8625 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8626 intrin->src[0] = nir_src_for_ssa(src0); 8627 8628 nir_builder_instr_insert(build, &intrin->instr); 8629 return &intrin->dest.ssa; 8630 } 8631 static inline nir_ssa_def * 8632 _nir_build_load_shader_query_enabled_amd(nir_builder *build) 8633 { 8634 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8635 build->shader, nir_intrinsic_load_shader_query_enabled_amd); 8636 8637 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 1, NULL); 8638 8639 nir_builder_instr_insert(build, &intrin->instr); 8640 return &intrin->dest.ssa; 8641 } 8642 static inline nir_ssa_def * 8643 _nir_build_load_shader_record_ptr(nir_builder *build) 8644 { 8645 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8646 build->shader, nir_intrinsic_load_shader_record_ptr); 8647 8648 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 64, NULL); 8649 8650 nir_builder_instr_insert(build, &intrin->instr); 8651 return &intrin->dest.ssa; 8652 } 8653 static inline nir_ssa_def * 8654 _nir_build_load_shared(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_shared_indices indices) 8655 { 8656 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8657 build->shader, nir_intrinsic_load_shared); 8658 8659 intrin->num_components = num_components; 8660 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8661 intrin->src[0] = nir_src_for_ssa(src0); 8662 nir_intrinsic_set_base(intrin, indices.base); 8663 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8664 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8665 8666 nir_builder_instr_insert(build, &intrin->instr); 8667 return &intrin->dest.ssa; 8668 } 8669 static inline nir_ssa_def * 8670 _nir_build_load_shared_base_ptr(nir_builder *build, unsigned num_components, unsigned bit_size) 8671 { 8672 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8673 build->shader, nir_intrinsic_load_shared_base_ptr); 8674 8675 intrin->num_components = num_components; 8676 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8677 8678 nir_builder_instr_insert(build, &intrin->instr); 8679 return &intrin->dest.ssa; 8680 } 8681 static inline nir_ssa_def * 8682 _nir_build_load_shared_block_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_shared_block_intel_indices indices) 8683 { 8684 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8685 build->shader, nir_intrinsic_load_shared_block_intel); 8686 8687 intrin->num_components = num_components; 8688 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8689 intrin->src[0] = nir_src_for_ssa(src0); 8690 nir_intrinsic_set_base(intrin, indices.base); 8691 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8692 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8693 8694 nir_builder_instr_insert(build, &intrin->instr); 8695 return &intrin->dest.ssa; 8696 } 8697 static inline nir_ssa_def * 8698 _nir_build_load_shared_dxil(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0) 8699 { 8700 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8701 build->shader, nir_intrinsic_load_shared_dxil); 8702 8703 intrin->num_components = num_components; 8704 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8705 intrin->src[0] = nir_src_for_ssa(src0); 8706 8707 nir_builder_instr_insert(build, &intrin->instr); 8708 return &intrin->dest.ssa; 8709 } 8710 static inline nir_ssa_def * 8711 _nir_build_load_shared_ir3(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_shared_ir3_indices indices) 8712 { 8713 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8714 build->shader, nir_intrinsic_load_shared_ir3); 8715 8716 intrin->num_components = num_components; 8717 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8718 intrin->src[0] = nir_src_for_ssa(src0); 8719 nir_intrinsic_set_base(intrin, indices.base); 8720 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8721 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8722 8723 nir_builder_instr_insert(build, &intrin->instr); 8724 return &intrin->dest.ssa; 8725 } 8726 static inline nir_ssa_def * 8727 _nir_build_load_simd_width_intel(nir_builder *build) 8728 { 8729 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8730 build->shader, nir_intrinsic_load_simd_width_intel); 8731 8732 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8733 8734 nir_builder_instr_insert(build, &intrin->instr); 8735 return &intrin->dest.ssa; 8736 } 8737 static inline nir_ssa_def * 8738 _nir_build_load_size_ir3(nir_builder *build, unsigned bit_size) 8739 { 8740 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8741 build->shader, nir_intrinsic_load_size_ir3); 8742 8743 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 8744 8745 nir_builder_instr_insert(build, &intrin->instr); 8746 return &intrin->dest.ssa; 8747 } 8748 static inline nir_ssa_def * 8749 _nir_build_load_ssbo(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_ssbo_indices indices) 8750 { 8751 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8752 build->shader, nir_intrinsic_load_ssbo); 8753 8754 intrin->num_components = num_components; 8755 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8756 intrin->src[0] = nir_src_for_ssa(src0); 8757 intrin->src[1] = nir_src_for_ssa(src1); 8758 nir_intrinsic_set_access(intrin, indices.access); 8759 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8760 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8761 8762 nir_builder_instr_insert(build, &intrin->instr); 8763 return &intrin->dest.ssa; 8764 } 8765 static inline nir_ssa_def * 8766 _nir_build_load_ssbo_address(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0) 8767 { 8768 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8769 build->shader, nir_intrinsic_load_ssbo_address); 8770 8771 intrin->num_components = num_components; 8772 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8773 intrin->src[0] = nir_src_for_ssa(src0); 8774 8775 nir_builder_instr_insert(build, &intrin->instr); 8776 return &intrin->dest.ssa; 8777 } 8778 static inline nir_ssa_def * 8779 _nir_build_load_ssbo_block_intel(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_ssbo_block_intel_indices indices) 8780 { 8781 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8782 build->shader, nir_intrinsic_load_ssbo_block_intel); 8783 8784 intrin->num_components = num_components; 8785 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8786 intrin->src[0] = nir_src_for_ssa(src0); 8787 intrin->src[1] = nir_src_for_ssa(src1); 8788 nir_intrinsic_set_access(intrin, indices.access); 8789 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8790 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8791 8792 nir_builder_instr_insert(build, &intrin->instr); 8793 return &intrin->dest.ssa; 8794 } 8795 static inline nir_ssa_def * 8796 _nir_build_load_ssbo_ir3(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_load_ssbo_ir3_indices indices) 8797 { 8798 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8799 build->shader, nir_intrinsic_load_ssbo_ir3); 8800 8801 intrin->num_components = num_components; 8802 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8803 intrin->src[0] = nir_src_for_ssa(src0); 8804 intrin->src[1] = nir_src_for_ssa(src1); 8805 intrin->src[2] = nir_src_for_ssa(src2); 8806 nir_intrinsic_set_access(intrin, indices.access); 8807 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 8808 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 8809 8810 nir_builder_instr_insert(build, &intrin->instr); 8811 return &intrin->dest.ssa; 8812 } 8813 static inline nir_ssa_def * 8814 _nir_build_load_subgroup_eq_mask(nir_builder *build, unsigned num_components, unsigned bit_size) 8815 { 8816 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8817 build->shader, nir_intrinsic_load_subgroup_eq_mask); 8818 8819 intrin->num_components = num_components; 8820 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8821 8822 nir_builder_instr_insert(build, &intrin->instr); 8823 return &intrin->dest.ssa; 8824 } 8825 static inline nir_ssa_def * 8826 _nir_build_load_subgroup_ge_mask(nir_builder *build, unsigned num_components, unsigned bit_size) 8827 { 8828 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8829 build->shader, nir_intrinsic_load_subgroup_ge_mask); 8830 8831 intrin->num_components = num_components; 8832 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8833 8834 nir_builder_instr_insert(build, &intrin->instr); 8835 return &intrin->dest.ssa; 8836 } 8837 static inline nir_ssa_def * 8838 _nir_build_load_subgroup_gt_mask(nir_builder *build, unsigned num_components, unsigned bit_size) 8839 { 8840 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8841 build->shader, nir_intrinsic_load_subgroup_gt_mask); 8842 8843 intrin->num_components = num_components; 8844 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8845 8846 nir_builder_instr_insert(build, &intrin->instr); 8847 return &intrin->dest.ssa; 8848 } 8849 static inline nir_ssa_def * 8850 _nir_build_load_subgroup_id(nir_builder *build) 8851 { 8852 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8853 build->shader, nir_intrinsic_load_subgroup_id); 8854 8855 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8856 8857 nir_builder_instr_insert(build, &intrin->instr); 8858 return &intrin->dest.ssa; 8859 } 8860 static inline nir_ssa_def * 8861 _nir_build_load_subgroup_id_shift_ir3(nir_builder *build) 8862 { 8863 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8864 build->shader, nir_intrinsic_load_subgroup_id_shift_ir3); 8865 8866 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8867 8868 nir_builder_instr_insert(build, &intrin->instr); 8869 return &intrin->dest.ssa; 8870 } 8871 static inline nir_ssa_def * 8872 _nir_build_load_subgroup_invocation(nir_builder *build) 8873 { 8874 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8875 build->shader, nir_intrinsic_load_subgroup_invocation); 8876 8877 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8878 8879 nir_builder_instr_insert(build, &intrin->instr); 8880 return &intrin->dest.ssa; 8881 } 8882 static inline nir_ssa_def * 8883 _nir_build_load_subgroup_le_mask(nir_builder *build, unsigned num_components, unsigned bit_size) 8884 { 8885 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8886 build->shader, nir_intrinsic_load_subgroup_le_mask); 8887 8888 intrin->num_components = num_components; 8889 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8890 8891 nir_builder_instr_insert(build, &intrin->instr); 8892 return &intrin->dest.ssa; 8893 } 8894 static inline nir_ssa_def * 8895 _nir_build_load_subgroup_lt_mask(nir_builder *build, unsigned num_components, unsigned bit_size) 8896 { 8897 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8898 build->shader, nir_intrinsic_load_subgroup_lt_mask); 8899 8900 intrin->num_components = num_components; 8901 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 8902 8903 nir_builder_instr_insert(build, &intrin->instr); 8904 return &intrin->dest.ssa; 8905 } 8906 static inline nir_ssa_def * 8907 _nir_build_load_subgroup_size(nir_builder *build) 8908 { 8909 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8910 build->shader, nir_intrinsic_load_subgroup_size); 8911 8912 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8913 8914 nir_builder_instr_insert(build, &intrin->instr); 8915 return &intrin->dest.ssa; 8916 } 8917 static inline nir_ssa_def * 8918 _nir_build_load_tcs_header_ir3(nir_builder *build) 8919 { 8920 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8921 build->shader, nir_intrinsic_load_tcs_header_ir3); 8922 8923 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8924 8925 nir_builder_instr_insert(build, &intrin->instr); 8926 return &intrin->dest.ssa; 8927 } 8928 static inline nir_ssa_def * 8929 _nir_build_load_tcs_in_param_base_r600(nir_builder *build) 8930 { 8931 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8932 build->shader, nir_intrinsic_load_tcs_in_param_base_r600); 8933 8934 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 8935 8936 nir_builder_instr_insert(build, &intrin->instr); 8937 return &intrin->dest.ssa; 8938 } 8939 static inline nir_ssa_def * 8940 _nir_build_load_tcs_num_patches_amd(nir_builder *build) 8941 { 8942 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8943 build->shader, nir_intrinsic_load_tcs_num_patches_amd); 8944 8945 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8946 8947 nir_builder_instr_insert(build, &intrin->instr); 8948 return &intrin->dest.ssa; 8949 } 8950 static inline nir_ssa_def * 8951 _nir_build_load_tcs_out_param_base_r600(nir_builder *build) 8952 { 8953 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8954 build->shader, nir_intrinsic_load_tcs_out_param_base_r600); 8955 8956 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 8957 8958 nir_builder_instr_insert(build, &intrin->instr); 8959 return &intrin->dest.ssa; 8960 } 8961 static inline nir_ssa_def * 8962 _nir_build_load_tcs_rel_patch_id_r600(nir_builder *build) 8963 { 8964 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8965 build->shader, nir_intrinsic_load_tcs_rel_patch_id_r600); 8966 8967 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8968 8969 nir_builder_instr_insert(build, &intrin->instr); 8970 return &intrin->dest.ssa; 8971 } 8972 static inline nir_ssa_def * 8973 _nir_build_load_tcs_tess_factor_base_r600(nir_builder *build) 8974 { 8975 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8976 build->shader, nir_intrinsic_load_tcs_tess_factor_base_r600); 8977 8978 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 8979 8980 nir_builder_instr_insert(build, &intrin->instr); 8981 return &intrin->dest.ssa; 8982 } 8983 static inline nir_ssa_def * 8984 _nir_build_load_tess_coord(nir_builder *build) 8985 { 8986 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8987 build->shader, nir_intrinsic_load_tess_coord); 8988 8989 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 8990 8991 nir_builder_instr_insert(build, &intrin->instr); 8992 return &intrin->dest.ssa; 8993 } 8994 static inline nir_ssa_def * 8995 _nir_build_load_tess_coord_r600(nir_builder *build) 8996 { 8997 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 8998 build->shader, nir_intrinsic_load_tess_coord_r600); 8999 9000 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 9001 9002 nir_builder_instr_insert(build, &intrin->instr); 9003 return &intrin->dest.ssa; 9004 } 9005 static inline nir_ssa_def * 9006 _nir_build_load_tess_factor_base_ir3(nir_builder *build) 9007 { 9008 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9009 build->shader, nir_intrinsic_load_tess_factor_base_ir3); 9010 9011 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 9012 9013 nir_builder_instr_insert(build, &intrin->instr); 9014 return &intrin->dest.ssa; 9015 } 9016 static inline nir_ssa_def * 9017 _nir_build_load_tess_level_inner(nir_builder *build) 9018 { 9019 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9020 build->shader, nir_intrinsic_load_tess_level_inner); 9021 9022 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 9023 9024 nir_builder_instr_insert(build, &intrin->instr); 9025 return &intrin->dest.ssa; 9026 } 9027 static inline nir_ssa_def * 9028 _nir_build_load_tess_level_inner_default(nir_builder *build) 9029 { 9030 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9031 build->shader, nir_intrinsic_load_tess_level_inner_default); 9032 9033 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 9034 9035 nir_builder_instr_insert(build, &intrin->instr); 9036 return &intrin->dest.ssa; 9037 } 9038 static inline nir_ssa_def * 9039 _nir_build_load_tess_level_outer(nir_builder *build) 9040 { 9041 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9042 build->shader, nir_intrinsic_load_tess_level_outer); 9043 9044 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 9045 9046 nir_builder_instr_insert(build, &intrin->instr); 9047 return &intrin->dest.ssa; 9048 } 9049 static inline nir_ssa_def * 9050 _nir_build_load_tess_level_outer_default(nir_builder *build) 9051 { 9052 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9053 build->shader, nir_intrinsic_load_tess_level_outer_default); 9054 9055 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 9056 9057 nir_builder_instr_insert(build, &intrin->instr); 9058 return &intrin->dest.ssa; 9059 } 9060 static inline nir_ssa_def * 9061 _nir_build_load_tess_param_base_ir3(nir_builder *build) 9062 { 9063 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9064 build->shader, nir_intrinsic_load_tess_param_base_ir3); 9065 9066 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 9067 9068 nir_builder_instr_insert(build, &intrin->instr); 9069 return &intrin->dest.ssa; 9070 } 9071 static inline nir_ssa_def * 9072 _nir_build_load_tess_rel_patch_id_amd(nir_builder *build) 9073 { 9074 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9075 build->shader, nir_intrinsic_load_tess_rel_patch_id_amd); 9076 9077 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9078 9079 nir_builder_instr_insert(build, &intrin->instr); 9080 return &intrin->dest.ssa; 9081 } 9082 static inline nir_ssa_def * 9083 _nir_build_load_texture_rect_scaling(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 9084 { 9085 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9086 build->shader, nir_intrinsic_load_texture_rect_scaling); 9087 9088 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, bit_size, NULL); 9089 intrin->src[0] = nir_src_for_ssa(src0); 9090 9091 nir_builder_instr_insert(build, &intrin->instr); 9092 return &intrin->dest.ssa; 9093 } 9094 static inline nir_ssa_def * 9095 _nir_build_load_tlb_color_v3d(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_tlb_color_v3d_indices indices) 9096 { 9097 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9098 build->shader, nir_intrinsic_load_tlb_color_v3d); 9099 9100 intrin->num_components = num_components; 9101 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9102 intrin->src[0] = nir_src_for_ssa(src0); 9103 nir_intrinsic_set_base(intrin, indices.base); 9104 nir_intrinsic_set_component(intrin, indices.component); 9105 9106 nir_builder_instr_insert(build, &intrin->instr); 9107 return &intrin->dest.ssa; 9108 } 9109 static inline nir_ssa_def * 9110 _nir_build_load_ubo(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_ubo_indices indices) 9111 { 9112 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9113 build->shader, nir_intrinsic_load_ubo); 9114 9115 intrin->num_components = num_components; 9116 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9117 intrin->src[0] = nir_src_for_ssa(src0); 9118 intrin->src[1] = nir_src_for_ssa(src1); 9119 nir_intrinsic_set_access(intrin, indices.access); 9120 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 9121 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 9122 nir_intrinsic_set_range_base(intrin, indices.range_base); 9123 nir_intrinsic_set_range(intrin, indices.range); 9124 9125 nir_builder_instr_insert(build, &intrin->instr); 9126 return &intrin->dest.ssa; 9127 } 9128 static inline nir_ssa_def * 9129 _nir_build_load_ubo_dxil(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9130 { 9131 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9132 build->shader, nir_intrinsic_load_ubo_dxil); 9133 9134 intrin->num_components = num_components; 9135 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9136 intrin->src[0] = nir_src_for_ssa(src0); 9137 intrin->src[1] = nir_src_for_ssa(src1); 9138 9139 nir_builder_instr_insert(build, &intrin->instr); 9140 return &intrin->dest.ssa; 9141 } 9142 static inline nir_ssa_def * 9143 _nir_build_load_ubo_vec4(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_load_ubo_vec4_indices indices) 9144 { 9145 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9146 build->shader, nir_intrinsic_load_ubo_vec4); 9147 9148 intrin->num_components = num_components; 9149 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9150 intrin->src[0] = nir_src_for_ssa(src0); 9151 intrin->src[1] = nir_src_for_ssa(src1); 9152 nir_intrinsic_set_access(intrin, indices.access); 9153 nir_intrinsic_set_component(intrin, indices.component); 9154 9155 nir_builder_instr_insert(build, &intrin->instr); 9156 return &intrin->dest.ssa; 9157 } 9158 static inline nir_ssa_def * 9159 _nir_build_load_uniform(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_uniform_indices indices) 9160 { 9161 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9162 build->shader, nir_intrinsic_load_uniform); 9163 9164 intrin->num_components = num_components; 9165 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9166 intrin->src[0] = nir_src_for_ssa(src0); 9167 nir_intrinsic_set_base(intrin, indices.base); 9168 nir_intrinsic_set_range(intrin, indices.range); 9169 nir_intrinsic_set_dest_type(intrin, indices.dest_type); 9170 9171 nir_builder_instr_insert(build, &intrin->instr); 9172 return &intrin->dest.ssa; 9173 } 9174 static inline nir_ssa_def * 9175 _nir_build_load_user_clip_plane(nir_builder *build, struct _nir_load_user_clip_plane_indices indices) 9176 { 9177 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9178 build->shader, nir_intrinsic_load_user_clip_plane); 9179 9180 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 9181 nir_intrinsic_set_ucp_id(intrin, indices.ucp_id); 9182 9183 nir_builder_instr_insert(build, &intrin->instr); 9184 return &intrin->dest.ssa; 9185 } 9186 static inline nir_ssa_def * 9187 _nir_build_load_user_data_amd(nir_builder *build) 9188 { 9189 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9190 build->shader, nir_intrinsic_load_user_data_amd); 9191 9192 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 4, 32, NULL); 9193 9194 nir_builder_instr_insert(build, &intrin->instr); 9195 return &intrin->dest.ssa; 9196 } 9197 static inline nir_ssa_def * 9198 _nir_build_load_vertex_id(nir_builder *build) 9199 { 9200 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9201 build->shader, nir_intrinsic_load_vertex_id); 9202 9203 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9204 9205 nir_builder_instr_insert(build, &intrin->instr); 9206 return &intrin->dest.ssa; 9207 } 9208 static inline nir_ssa_def * 9209 _nir_build_load_vertex_id_zero_base(nir_builder *build) 9210 { 9211 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9212 build->shader, nir_intrinsic_load_vertex_id_zero_base); 9213 9214 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9215 9216 nir_builder_instr_insert(build, &intrin->instr); 9217 return &intrin->dest.ssa; 9218 } 9219 static inline nir_ssa_def * 9220 _nir_build_load_view_index(nir_builder *build) 9221 { 9222 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9223 build->shader, nir_intrinsic_load_view_index); 9224 9225 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9226 9227 nir_builder_instr_insert(build, &intrin->instr); 9228 return &intrin->dest.ssa; 9229 } 9230 static inline nir_ssa_def * 9231 _nir_build_load_viewport_offset(nir_builder *build) 9232 { 9233 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9234 build->shader, nir_intrinsic_load_viewport_offset); 9235 9236 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 9237 9238 nir_builder_instr_insert(build, &intrin->instr); 9239 return &intrin->dest.ssa; 9240 } 9241 static inline nir_ssa_def * 9242 _nir_build_load_viewport_scale(nir_builder *build) 9243 { 9244 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9245 build->shader, nir_intrinsic_load_viewport_scale); 9246 9247 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 9248 9249 nir_builder_instr_insert(build, &intrin->instr); 9250 return &intrin->dest.ssa; 9251 } 9252 static inline nir_ssa_def * 9253 _nir_build_load_viewport_x_offset(nir_builder *build) 9254 { 9255 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9256 build->shader, nir_intrinsic_load_viewport_x_offset); 9257 9258 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9259 9260 nir_builder_instr_insert(build, &intrin->instr); 9261 return &intrin->dest.ssa; 9262 } 9263 static inline nir_ssa_def * 9264 _nir_build_load_viewport_x_scale(nir_builder *build) 9265 { 9266 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9267 build->shader, nir_intrinsic_load_viewport_x_scale); 9268 9269 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9270 9271 nir_builder_instr_insert(build, &intrin->instr); 9272 return &intrin->dest.ssa; 9273 } 9274 static inline nir_ssa_def * 9275 _nir_build_load_viewport_y_offset(nir_builder *build) 9276 { 9277 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9278 build->shader, nir_intrinsic_load_viewport_y_offset); 9279 9280 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9281 9282 nir_builder_instr_insert(build, &intrin->instr); 9283 return &intrin->dest.ssa; 9284 } 9285 static inline nir_ssa_def * 9286 _nir_build_load_viewport_y_scale(nir_builder *build) 9287 { 9288 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9289 build->shader, nir_intrinsic_load_viewport_y_scale); 9290 9291 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9292 9293 nir_builder_instr_insert(build, &intrin->instr); 9294 return &intrin->dest.ssa; 9295 } 9296 static inline nir_ssa_def * 9297 _nir_build_load_viewport_z_offset(nir_builder *build) 9298 { 9299 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9300 build->shader, nir_intrinsic_load_viewport_z_offset); 9301 9302 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9303 9304 nir_builder_instr_insert(build, &intrin->instr); 9305 return &intrin->dest.ssa; 9306 } 9307 static inline nir_ssa_def * 9308 _nir_build_load_viewport_z_scale(nir_builder *build) 9309 { 9310 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9311 build->shader, nir_intrinsic_load_viewport_z_scale); 9312 9313 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9314 9315 nir_builder_instr_insert(build, &intrin->instr); 9316 return &intrin->dest.ssa; 9317 } 9318 static inline nir_ssa_def * 9319 _nir_build_load_vs_primitive_stride_ir3(nir_builder *build) 9320 { 9321 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9322 build->shader, nir_intrinsic_load_vs_primitive_stride_ir3); 9323 9324 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9325 9326 nir_builder_instr_insert(build, &intrin->instr); 9327 return &intrin->dest.ssa; 9328 } 9329 static inline nir_ssa_def * 9330 _nir_build_load_vs_vertex_stride_ir3(nir_builder *build) 9331 { 9332 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9333 build->shader, nir_intrinsic_load_vs_vertex_stride_ir3); 9334 9335 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9336 9337 nir_builder_instr_insert(build, &intrin->instr); 9338 return &intrin->dest.ssa; 9339 } 9340 static inline nir_ssa_def * 9341 _nir_build_load_vulkan_descriptor(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_load_vulkan_descriptor_indices indices) 9342 { 9343 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9344 build->shader, nir_intrinsic_load_vulkan_descriptor); 9345 9346 intrin->num_components = num_components; 9347 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9348 intrin->src[0] = nir_src_for_ssa(src0); 9349 nir_intrinsic_set_desc_type(intrin, indices.desc_type); 9350 9351 nir_builder_instr_insert(build, &intrin->instr); 9352 return &intrin->dest.ssa; 9353 } 9354 static inline nir_ssa_def * 9355 _nir_build_load_work_dim(nir_builder *build) 9356 { 9357 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9358 build->shader, nir_intrinsic_load_work_dim); 9359 9360 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9361 9362 nir_builder_instr_insert(build, &intrin->instr); 9363 return &intrin->dest.ssa; 9364 } 9365 static inline nir_ssa_def * 9366 _nir_build_load_workgroup_id(nir_builder *build, unsigned bit_size) 9367 { 9368 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9369 build->shader, nir_intrinsic_load_workgroup_id); 9370 9371 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, bit_size, NULL); 9372 9373 nir_builder_instr_insert(build, &intrin->instr); 9374 return &intrin->dest.ssa; 9375 } 9376 static inline nir_ssa_def * 9377 _nir_build_load_workgroup_id_zero_base(nir_builder *build) 9378 { 9379 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9380 build->shader, nir_intrinsic_load_workgroup_id_zero_base); 9381 9382 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 9383 9384 nir_builder_instr_insert(build, &intrin->instr); 9385 return &intrin->dest.ssa; 9386 } 9387 static inline nir_ssa_def * 9388 _nir_build_load_workgroup_num_input_primitives_amd(nir_builder *build) 9389 { 9390 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9391 build->shader, nir_intrinsic_load_workgroup_num_input_primitives_amd); 9392 9393 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9394 9395 nir_builder_instr_insert(build, &intrin->instr); 9396 return &intrin->dest.ssa; 9397 } 9398 static inline nir_ssa_def * 9399 _nir_build_load_workgroup_num_input_vertices_amd(nir_builder *build) 9400 { 9401 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9402 build->shader, nir_intrinsic_load_workgroup_num_input_vertices_amd); 9403 9404 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9405 9406 nir_builder_instr_insert(build, &intrin->instr); 9407 return &intrin->dest.ssa; 9408 } 9409 static inline nir_ssa_def * 9410 _nir_build_load_workgroup_size(nir_builder *build) 9411 { 9412 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9413 build->shader, nir_intrinsic_load_workgroup_size); 9414 9415 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 3, 32, NULL); 9416 9417 nir_builder_instr_insert(build, &intrin->instr); 9418 return &intrin->dest.ssa; 9419 } 9420 static inline nir_ssa_def * 9421 _nir_build_masked_swizzle_amd(nir_builder *build, nir_ssa_def *src0, struct _nir_masked_swizzle_amd_indices indices) 9422 { 9423 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9424 build->shader, nir_intrinsic_masked_swizzle_amd); 9425 9426 intrin->num_components = src0->num_components; 9427 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 9428 intrin->src[0] = nir_src_for_ssa(src0); 9429 nir_intrinsic_set_swizzle_mask(intrin, indices.swizzle_mask); 9430 9431 nir_builder_instr_insert(build, &intrin->instr); 9432 return &intrin->dest.ssa; 9433 } 9434 static inline nir_ssa_def * 9435 _nir_build_mbcnt_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 9436 { 9437 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9438 build->shader, nir_intrinsic_mbcnt_amd); 9439 9440 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9441 intrin->src[0] = nir_src_for_ssa(src0); 9442 intrin->src[1] = nir_src_for_ssa(src1); 9443 9444 nir_builder_instr_insert(build, &intrin->instr); 9445 return &intrin->dest.ssa; 9446 } 9447 static inline nir_intrinsic_instr * 9448 _nir_build_memcpy_deref(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_memcpy_deref_indices indices) 9449 { 9450 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9451 build->shader, nir_intrinsic_memcpy_deref); 9452 9453 intrin->src[0] = nir_src_for_ssa(src0); 9454 intrin->src[1] = nir_src_for_ssa(src1); 9455 intrin->src[2] = nir_src_for_ssa(src2); 9456 nir_intrinsic_set_dst_access(intrin, indices.dst_access); 9457 nir_intrinsic_set_src_access(intrin, indices.src_access); 9458 9459 nir_builder_instr_insert(build, &intrin->instr); 9460 return intrin; 9461 } 9462 static inline nir_intrinsic_instr * 9463 _nir_build_memory_barrier(nir_builder *build) 9464 { 9465 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9466 build->shader, nir_intrinsic_memory_barrier); 9467 9468 9469 nir_builder_instr_insert(build, &intrin->instr); 9470 return intrin; 9471 } 9472 static inline nir_intrinsic_instr * 9473 _nir_build_memory_barrier_atomic_counter(nir_builder *build) 9474 { 9475 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9476 build->shader, nir_intrinsic_memory_barrier_atomic_counter); 9477 9478 9479 nir_builder_instr_insert(build, &intrin->instr); 9480 return intrin; 9481 } 9482 static inline nir_intrinsic_instr * 9483 _nir_build_memory_barrier_buffer(nir_builder *build) 9484 { 9485 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9486 build->shader, nir_intrinsic_memory_barrier_buffer); 9487 9488 9489 nir_builder_instr_insert(build, &intrin->instr); 9490 return intrin; 9491 } 9492 static inline nir_intrinsic_instr * 9493 _nir_build_memory_barrier_image(nir_builder *build) 9494 { 9495 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9496 build->shader, nir_intrinsic_memory_barrier_image); 9497 9498 9499 nir_builder_instr_insert(build, &intrin->instr); 9500 return intrin; 9501 } 9502 static inline nir_intrinsic_instr * 9503 _nir_build_memory_barrier_shared(nir_builder *build) 9504 { 9505 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9506 build->shader, nir_intrinsic_memory_barrier_shared); 9507 9508 9509 nir_builder_instr_insert(build, &intrin->instr); 9510 return intrin; 9511 } 9512 static inline nir_intrinsic_instr * 9513 _nir_build_memory_barrier_tcs_patch(nir_builder *build) 9514 { 9515 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9516 build->shader, nir_intrinsic_memory_barrier_tcs_patch); 9517 9518 9519 nir_builder_instr_insert(build, &intrin->instr); 9520 return intrin; 9521 } 9522 static inline nir_intrinsic_instr * 9523 _nir_build_nop(nir_builder *build) 9524 { 9525 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9526 build->shader, nir_intrinsic_nop); 9527 9528 9529 nir_builder_instr_insert(build, &intrin->instr); 9530 return intrin; 9531 } 9532 static inline nir_intrinsic_instr * 9533 _nir_build_overwrite_tes_arguments_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 9534 { 9535 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9536 build->shader, nir_intrinsic_overwrite_tes_arguments_amd); 9537 9538 intrin->src[0] = nir_src_for_ssa(src0); 9539 intrin->src[1] = nir_src_for_ssa(src1); 9540 intrin->src[2] = nir_src_for_ssa(src2); 9541 intrin->src[3] = nir_src_for_ssa(src3); 9542 9543 nir_builder_instr_insert(build, &intrin->instr); 9544 return intrin; 9545 } 9546 static inline nir_intrinsic_instr * 9547 _nir_build_overwrite_vs_arguments_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 9548 { 9549 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9550 build->shader, nir_intrinsic_overwrite_vs_arguments_amd); 9551 9552 intrin->src[0] = nir_src_for_ssa(src0); 9553 intrin->src[1] = nir_src_for_ssa(src1); 9554 9555 nir_builder_instr_insert(build, &intrin->instr); 9556 return intrin; 9557 } 9558 static inline nir_ssa_def * 9559 _nir_build_printf(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 9560 { 9561 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9562 build->shader, nir_intrinsic_printf); 9563 9564 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 9565 intrin->src[0] = nir_src_for_ssa(src0); 9566 intrin->src[1] = nir_src_for_ssa(src1); 9567 9568 nir_builder_instr_insert(build, &intrin->instr); 9569 return &intrin->dest.ssa; 9570 } 9571 static inline nir_ssa_def * 9572 _nir_build_quad_broadcast(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9573 { 9574 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9575 build->shader, nir_intrinsic_quad_broadcast); 9576 9577 intrin->num_components = src0->num_components; 9578 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9579 intrin->src[0] = nir_src_for_ssa(src0); 9580 intrin->src[1] = nir_src_for_ssa(src1); 9581 9582 nir_builder_instr_insert(build, &intrin->instr); 9583 return &intrin->dest.ssa; 9584 } 9585 static inline nir_ssa_def * 9586 _nir_build_quad_swap_diagonal(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 9587 { 9588 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9589 build->shader, nir_intrinsic_quad_swap_diagonal); 9590 9591 intrin->num_components = src0->num_components; 9592 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9593 intrin->src[0] = nir_src_for_ssa(src0); 9594 9595 nir_builder_instr_insert(build, &intrin->instr); 9596 return &intrin->dest.ssa; 9597 } 9598 static inline nir_ssa_def * 9599 _nir_build_quad_swap_horizontal(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 9600 { 9601 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9602 build->shader, nir_intrinsic_quad_swap_horizontal); 9603 9604 intrin->num_components = src0->num_components; 9605 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9606 intrin->src[0] = nir_src_for_ssa(src0); 9607 9608 nir_builder_instr_insert(build, &intrin->instr); 9609 return &intrin->dest.ssa; 9610 } 9611 static inline nir_ssa_def * 9612 _nir_build_quad_swap_vertical(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 9613 { 9614 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9615 build->shader, nir_intrinsic_quad_swap_vertical); 9616 9617 intrin->num_components = src0->num_components; 9618 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9619 intrin->src[0] = nir_src_for_ssa(src0); 9620 9621 nir_builder_instr_insert(build, &intrin->instr); 9622 return &intrin->dest.ssa; 9623 } 9624 static inline nir_ssa_def * 9625 _nir_build_quad_swizzle_amd(nir_builder *build, nir_ssa_def *src0, struct _nir_quad_swizzle_amd_indices indices) 9626 { 9627 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9628 build->shader, nir_intrinsic_quad_swizzle_amd); 9629 9630 intrin->num_components = src0->num_components; 9631 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 9632 intrin->src[0] = nir_src_for_ssa(src0); 9633 nir_intrinsic_set_swizzle_mask(intrin, indices.swizzle_mask); 9634 9635 nir_builder_instr_insert(build, &intrin->instr); 9636 return &intrin->dest.ssa; 9637 } 9638 static inline nir_ssa_def * 9639 _nir_build_read_first_invocation(nir_builder *build, nir_ssa_def *src0) 9640 { 9641 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9642 build->shader, nir_intrinsic_read_first_invocation); 9643 9644 intrin->num_components = src0->num_components; 9645 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 9646 intrin->src[0] = nir_src_for_ssa(src0); 9647 9648 nir_builder_instr_insert(build, &intrin->instr); 9649 return &intrin->dest.ssa; 9650 } 9651 static inline nir_ssa_def * 9652 _nir_build_read_invocation(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 9653 { 9654 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9655 build->shader, nir_intrinsic_read_invocation); 9656 9657 intrin->num_components = src0->num_components; 9658 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 9659 intrin->src[0] = nir_src_for_ssa(src0); 9660 intrin->src[1] = nir_src_for_ssa(src1); 9661 9662 nir_builder_instr_insert(build, &intrin->instr); 9663 return &intrin->dest.ssa; 9664 } 9665 static inline nir_ssa_def * 9666 _nir_build_read_invocation_cond_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9667 { 9668 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9669 build->shader, nir_intrinsic_read_invocation_cond_ir3); 9670 9671 intrin->num_components = src0->num_components; 9672 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 9673 intrin->src[0] = nir_src_for_ssa(src0); 9674 intrin->src[1] = nir_src_for_ssa(src1); 9675 9676 nir_builder_instr_insert(build, &intrin->instr); 9677 return &intrin->dest.ssa; 9678 } 9679 static inline nir_ssa_def * 9680 _nir_build_reduce(nir_builder *build, nir_ssa_def *src0, struct _nir_reduce_indices indices) 9681 { 9682 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9683 build->shader, nir_intrinsic_reduce); 9684 9685 intrin->num_components = src0->num_components; 9686 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 9687 intrin->src[0] = nir_src_for_ssa(src0); 9688 nir_intrinsic_set_reduction_op(intrin, indices.reduction_op); 9689 nir_intrinsic_set_cluster_size(intrin, indices.cluster_size); 9690 9691 nir_builder_instr_insert(build, &intrin->instr); 9692 return &intrin->dest.ssa; 9693 } 9694 static inline nir_ssa_def * 9695 _nir_build_report_ray_intersection(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9696 { 9697 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9698 build->shader, nir_intrinsic_report_ray_intersection); 9699 9700 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9701 intrin->src[0] = nir_src_for_ssa(src0); 9702 intrin->src[1] = nir_src_for_ssa(src1); 9703 9704 nir_builder_instr_insert(build, &intrin->instr); 9705 return &intrin->dest.ssa; 9706 } 9707 static inline nir_intrinsic_instr * 9708 _nir_build_rt_execute_callable(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_rt_execute_callable_indices indices) 9709 { 9710 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9711 build->shader, nir_intrinsic_rt_execute_callable); 9712 9713 intrin->src[0] = nir_src_for_ssa(src0); 9714 intrin->src[1] = nir_src_for_ssa(src1); 9715 nir_intrinsic_set_call_idx(intrin, indices.call_idx); 9716 nir_intrinsic_set_stack_size(intrin, indices.stack_size); 9717 9718 nir_builder_instr_insert(build, &intrin->instr); 9719 return intrin; 9720 } 9721 static inline nir_intrinsic_instr * 9722 _nir_build_rt_resume(nir_builder *build, struct _nir_rt_resume_indices indices) 9723 { 9724 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9725 build->shader, nir_intrinsic_rt_resume); 9726 9727 nir_intrinsic_set_call_idx(intrin, indices.call_idx); 9728 nir_intrinsic_set_stack_size(intrin, indices.stack_size); 9729 9730 nir_builder_instr_insert(build, &intrin->instr); 9731 return intrin; 9732 } 9733 static inline nir_intrinsic_instr * 9734 _nir_build_rt_return_amd(nir_builder *build) 9735 { 9736 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9737 build->shader, nir_intrinsic_rt_return_amd); 9738 9739 9740 nir_builder_instr_insert(build, &intrin->instr); 9741 return intrin; 9742 } 9743 static inline nir_intrinsic_instr * 9744 _nir_build_rt_trace_ray(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, nir_ssa_def *src5, nir_ssa_def *src6, nir_ssa_def *src7, nir_ssa_def *src8, nir_ssa_def *src9, nir_ssa_def *src10, struct _nir_rt_trace_ray_indices indices) 9745 { 9746 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9747 build->shader, nir_intrinsic_rt_trace_ray); 9748 9749 intrin->src[0] = nir_src_for_ssa(src0); 9750 intrin->src[1] = nir_src_for_ssa(src1); 9751 intrin->src[2] = nir_src_for_ssa(src2); 9752 intrin->src[3] = nir_src_for_ssa(src3); 9753 intrin->src[4] = nir_src_for_ssa(src4); 9754 intrin->src[5] = nir_src_for_ssa(src5); 9755 intrin->src[6] = nir_src_for_ssa(src6); 9756 intrin->src[7] = nir_src_for_ssa(src7); 9757 intrin->src[8] = nir_src_for_ssa(src8); 9758 intrin->src[9] = nir_src_for_ssa(src9); 9759 intrin->src[10] = nir_src_for_ssa(src10); 9760 nir_intrinsic_set_call_idx(intrin, indices.call_idx); 9761 nir_intrinsic_set_stack_size(intrin, indices.stack_size); 9762 9763 nir_builder_instr_insert(build, &intrin->instr); 9764 return intrin; 9765 } 9766 static inline nir_intrinsic_instr * 9767 _nir_build_scoped_barrier(nir_builder *build, struct _nir_scoped_barrier_indices indices) 9768 { 9769 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9770 build->shader, nir_intrinsic_scoped_barrier); 9771 9772 nir_intrinsic_set_execution_scope(intrin, indices.execution_scope); 9773 nir_intrinsic_set_memory_scope(intrin, indices.memory_scope); 9774 nir_intrinsic_set_memory_semantics(intrin, indices.memory_semantics); 9775 nir_intrinsic_set_memory_modes(intrin, indices.memory_modes); 9776 9777 nir_builder_instr_insert(build, &intrin->instr); 9778 return intrin; 9779 } 9780 static inline nir_intrinsic_instr * 9781 _nir_build_set_vertex_and_primitive_count(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_set_vertex_and_primitive_count_indices indices) 9782 { 9783 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9784 build->shader, nir_intrinsic_set_vertex_and_primitive_count); 9785 9786 intrin->src[0] = nir_src_for_ssa(src0); 9787 intrin->src[1] = nir_src_for_ssa(src1); 9788 nir_intrinsic_set_stream_id(intrin, indices.stream_id); 9789 9790 nir_builder_instr_insert(build, &intrin->instr); 9791 return intrin; 9792 } 9793 static inline nir_ssa_def * 9794 _nir_build_shader_clock(nir_builder *build, struct _nir_shader_clock_indices indices) 9795 { 9796 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9797 build->shader, nir_intrinsic_shader_clock); 9798 9799 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 2, 32, NULL); 9800 nir_intrinsic_set_memory_scope(intrin, indices.memory_scope); 9801 9802 nir_builder_instr_insert(build, &intrin->instr); 9803 return &intrin->dest.ssa; 9804 } 9805 static inline nir_ssa_def * 9806 _nir_build_shared_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_add_indices indices) 9807 { 9808 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9809 build->shader, nir_intrinsic_shared_atomic_add); 9810 9811 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9812 intrin->src[0] = nir_src_for_ssa(src0); 9813 intrin->src[1] = nir_src_for_ssa(src1); 9814 nir_intrinsic_set_base(intrin, indices.base); 9815 9816 nir_builder_instr_insert(build, &intrin->instr); 9817 return &intrin->dest.ssa; 9818 } 9819 static inline nir_ssa_def * 9820 _nir_build_shared_atomic_add_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9821 { 9822 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9823 build->shader, nir_intrinsic_shared_atomic_add_dxil); 9824 9825 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9826 intrin->src[0] = nir_src_for_ssa(src0); 9827 intrin->src[1] = nir_src_for_ssa(src1); 9828 9829 nir_builder_instr_insert(build, &intrin->instr); 9830 return &intrin->dest.ssa; 9831 } 9832 static inline nir_ssa_def * 9833 _nir_build_shared_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_and_indices indices) 9834 { 9835 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9836 build->shader, nir_intrinsic_shared_atomic_and); 9837 9838 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9839 intrin->src[0] = nir_src_for_ssa(src0); 9840 intrin->src[1] = nir_src_for_ssa(src1); 9841 nir_intrinsic_set_base(intrin, indices.base); 9842 9843 nir_builder_instr_insert(build, &intrin->instr); 9844 return &intrin->dest.ssa; 9845 } 9846 static inline nir_ssa_def * 9847 _nir_build_shared_atomic_and_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9848 { 9849 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9850 build->shader, nir_intrinsic_shared_atomic_and_dxil); 9851 9852 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9853 intrin->src[0] = nir_src_for_ssa(src0); 9854 intrin->src[1] = nir_src_for_ssa(src1); 9855 9856 nir_builder_instr_insert(build, &intrin->instr); 9857 return &intrin->dest.ssa; 9858 } 9859 static inline nir_ssa_def * 9860 _nir_build_shared_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_shared_atomic_comp_swap_indices indices) 9861 { 9862 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9863 build->shader, nir_intrinsic_shared_atomic_comp_swap); 9864 9865 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9866 intrin->src[0] = nir_src_for_ssa(src0); 9867 intrin->src[1] = nir_src_for_ssa(src1); 9868 intrin->src[2] = nir_src_for_ssa(src2); 9869 nir_intrinsic_set_base(intrin, indices.base); 9870 9871 nir_builder_instr_insert(build, &intrin->instr); 9872 return &intrin->dest.ssa; 9873 } 9874 static inline nir_ssa_def * 9875 _nir_build_shared_atomic_comp_swap_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 9876 { 9877 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9878 build->shader, nir_intrinsic_shared_atomic_comp_swap_dxil); 9879 9880 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9881 intrin->src[0] = nir_src_for_ssa(src0); 9882 intrin->src[1] = nir_src_for_ssa(src1); 9883 intrin->src[2] = nir_src_for_ssa(src2); 9884 9885 nir_builder_instr_insert(build, &intrin->instr); 9886 return &intrin->dest.ssa; 9887 } 9888 static inline nir_ssa_def * 9889 _nir_build_shared_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_exchange_indices indices) 9890 { 9891 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9892 build->shader, nir_intrinsic_shared_atomic_exchange); 9893 9894 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9895 intrin->src[0] = nir_src_for_ssa(src0); 9896 intrin->src[1] = nir_src_for_ssa(src1); 9897 nir_intrinsic_set_base(intrin, indices.base); 9898 9899 nir_builder_instr_insert(build, &intrin->instr); 9900 return &intrin->dest.ssa; 9901 } 9902 static inline nir_ssa_def * 9903 _nir_build_shared_atomic_exchange_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9904 { 9905 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9906 build->shader, nir_intrinsic_shared_atomic_exchange_dxil); 9907 9908 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9909 intrin->src[0] = nir_src_for_ssa(src0); 9910 intrin->src[1] = nir_src_for_ssa(src1); 9911 9912 nir_builder_instr_insert(build, &intrin->instr); 9913 return &intrin->dest.ssa; 9914 } 9915 static inline nir_ssa_def * 9916 _nir_build_shared_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_fadd_indices indices) 9917 { 9918 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9919 build->shader, nir_intrinsic_shared_atomic_fadd); 9920 9921 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9922 intrin->src[0] = nir_src_for_ssa(src0); 9923 intrin->src[1] = nir_src_for_ssa(src1); 9924 nir_intrinsic_set_base(intrin, indices.base); 9925 9926 nir_builder_instr_insert(build, &intrin->instr); 9927 return &intrin->dest.ssa; 9928 } 9929 static inline nir_ssa_def * 9930 _nir_build_shared_atomic_fcomp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_shared_atomic_fcomp_swap_indices indices) 9931 { 9932 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9933 build->shader, nir_intrinsic_shared_atomic_fcomp_swap); 9934 9935 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9936 intrin->src[0] = nir_src_for_ssa(src0); 9937 intrin->src[1] = nir_src_for_ssa(src1); 9938 intrin->src[2] = nir_src_for_ssa(src2); 9939 nir_intrinsic_set_base(intrin, indices.base); 9940 9941 nir_builder_instr_insert(build, &intrin->instr); 9942 return &intrin->dest.ssa; 9943 } 9944 static inline nir_ssa_def * 9945 _nir_build_shared_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_fmax_indices indices) 9946 { 9947 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9948 build->shader, nir_intrinsic_shared_atomic_fmax); 9949 9950 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9951 intrin->src[0] = nir_src_for_ssa(src0); 9952 intrin->src[1] = nir_src_for_ssa(src1); 9953 nir_intrinsic_set_base(intrin, indices.base); 9954 9955 nir_builder_instr_insert(build, &intrin->instr); 9956 return &intrin->dest.ssa; 9957 } 9958 static inline nir_ssa_def * 9959 _nir_build_shared_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_fmin_indices indices) 9960 { 9961 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9962 build->shader, nir_intrinsic_shared_atomic_fmin); 9963 9964 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9965 intrin->src[0] = nir_src_for_ssa(src0); 9966 intrin->src[1] = nir_src_for_ssa(src1); 9967 nir_intrinsic_set_base(intrin, indices.base); 9968 9969 nir_builder_instr_insert(build, &intrin->instr); 9970 return &intrin->dest.ssa; 9971 } 9972 static inline nir_ssa_def * 9973 _nir_build_shared_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_imax_indices indices) 9974 { 9975 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9976 build->shader, nir_intrinsic_shared_atomic_imax); 9977 9978 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9979 intrin->src[0] = nir_src_for_ssa(src0); 9980 intrin->src[1] = nir_src_for_ssa(src1); 9981 nir_intrinsic_set_base(intrin, indices.base); 9982 9983 nir_builder_instr_insert(build, &intrin->instr); 9984 return &intrin->dest.ssa; 9985 } 9986 static inline nir_ssa_def * 9987 _nir_build_shared_atomic_imax_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 9988 { 9989 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 9990 build->shader, nir_intrinsic_shared_atomic_imax_dxil); 9991 9992 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 9993 intrin->src[0] = nir_src_for_ssa(src0); 9994 intrin->src[1] = nir_src_for_ssa(src1); 9995 9996 nir_builder_instr_insert(build, &intrin->instr); 9997 return &intrin->dest.ssa; 9998 } 9999 static inline nir_ssa_def * 10000 _nir_build_shared_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_imin_indices indices) 10001 { 10002 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10003 build->shader, nir_intrinsic_shared_atomic_imin); 10004 10005 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10006 intrin->src[0] = nir_src_for_ssa(src0); 10007 intrin->src[1] = nir_src_for_ssa(src1); 10008 nir_intrinsic_set_base(intrin, indices.base); 10009 10010 nir_builder_instr_insert(build, &intrin->instr); 10011 return &intrin->dest.ssa; 10012 } 10013 static inline nir_ssa_def * 10014 _nir_build_shared_atomic_imin_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 10015 { 10016 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10017 build->shader, nir_intrinsic_shared_atomic_imin_dxil); 10018 10019 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10020 intrin->src[0] = nir_src_for_ssa(src0); 10021 intrin->src[1] = nir_src_for_ssa(src1); 10022 10023 nir_builder_instr_insert(build, &intrin->instr); 10024 return &intrin->dest.ssa; 10025 } 10026 static inline nir_ssa_def * 10027 _nir_build_shared_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_or_indices indices) 10028 { 10029 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10030 build->shader, nir_intrinsic_shared_atomic_or); 10031 10032 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10033 intrin->src[0] = nir_src_for_ssa(src0); 10034 intrin->src[1] = nir_src_for_ssa(src1); 10035 nir_intrinsic_set_base(intrin, indices.base); 10036 10037 nir_builder_instr_insert(build, &intrin->instr); 10038 return &intrin->dest.ssa; 10039 } 10040 static inline nir_ssa_def * 10041 _nir_build_shared_atomic_or_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 10042 { 10043 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10044 build->shader, nir_intrinsic_shared_atomic_or_dxil); 10045 10046 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10047 intrin->src[0] = nir_src_for_ssa(src0); 10048 intrin->src[1] = nir_src_for_ssa(src1); 10049 10050 nir_builder_instr_insert(build, &intrin->instr); 10051 return &intrin->dest.ssa; 10052 } 10053 static inline nir_ssa_def * 10054 _nir_build_shared_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_umax_indices indices) 10055 { 10056 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10057 build->shader, nir_intrinsic_shared_atomic_umax); 10058 10059 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10060 intrin->src[0] = nir_src_for_ssa(src0); 10061 intrin->src[1] = nir_src_for_ssa(src1); 10062 nir_intrinsic_set_base(intrin, indices.base); 10063 10064 nir_builder_instr_insert(build, &intrin->instr); 10065 return &intrin->dest.ssa; 10066 } 10067 static inline nir_ssa_def * 10068 _nir_build_shared_atomic_umax_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 10069 { 10070 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10071 build->shader, nir_intrinsic_shared_atomic_umax_dxil); 10072 10073 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10074 intrin->src[0] = nir_src_for_ssa(src0); 10075 intrin->src[1] = nir_src_for_ssa(src1); 10076 10077 nir_builder_instr_insert(build, &intrin->instr); 10078 return &intrin->dest.ssa; 10079 } 10080 static inline nir_ssa_def * 10081 _nir_build_shared_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_umin_indices indices) 10082 { 10083 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10084 build->shader, nir_intrinsic_shared_atomic_umin); 10085 10086 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10087 intrin->src[0] = nir_src_for_ssa(src0); 10088 intrin->src[1] = nir_src_for_ssa(src1); 10089 nir_intrinsic_set_base(intrin, indices.base); 10090 10091 nir_builder_instr_insert(build, &intrin->instr); 10092 return &intrin->dest.ssa; 10093 } 10094 static inline nir_ssa_def * 10095 _nir_build_shared_atomic_umin_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 10096 { 10097 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10098 build->shader, nir_intrinsic_shared_atomic_umin_dxil); 10099 10100 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10101 intrin->src[0] = nir_src_for_ssa(src0); 10102 intrin->src[1] = nir_src_for_ssa(src1); 10103 10104 nir_builder_instr_insert(build, &intrin->instr); 10105 return &intrin->dest.ssa; 10106 } 10107 static inline nir_ssa_def * 10108 _nir_build_shared_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_shared_atomic_xor_indices indices) 10109 { 10110 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10111 build->shader, nir_intrinsic_shared_atomic_xor); 10112 10113 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10114 intrin->src[0] = nir_src_for_ssa(src0); 10115 intrin->src[1] = nir_src_for_ssa(src1); 10116 nir_intrinsic_set_base(intrin, indices.base); 10117 10118 nir_builder_instr_insert(build, &intrin->instr); 10119 return &intrin->dest.ssa; 10120 } 10121 static inline nir_ssa_def * 10122 _nir_build_shared_atomic_xor_dxil(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1) 10123 { 10124 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10125 build->shader, nir_intrinsic_shared_atomic_xor_dxil); 10126 10127 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10128 intrin->src[0] = nir_src_for_ssa(src0); 10129 intrin->src[1] = nir_src_for_ssa(src1); 10130 10131 nir_builder_instr_insert(build, &intrin->instr); 10132 return &intrin->dest.ssa; 10133 } 10134 static inline nir_ssa_def * 10135 _nir_build_shuffle(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10136 { 10137 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10138 build->shader, nir_intrinsic_shuffle); 10139 10140 intrin->num_components = src0->num_components; 10141 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 10142 intrin->src[0] = nir_src_for_ssa(src0); 10143 intrin->src[1] = nir_src_for_ssa(src1); 10144 10145 nir_builder_instr_insert(build, &intrin->instr); 10146 return &intrin->dest.ssa; 10147 } 10148 static inline nir_ssa_def * 10149 _nir_build_shuffle_down(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10150 { 10151 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10152 build->shader, nir_intrinsic_shuffle_down); 10153 10154 intrin->num_components = src0->num_components; 10155 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 10156 intrin->src[0] = nir_src_for_ssa(src0); 10157 intrin->src[1] = nir_src_for_ssa(src1); 10158 10159 nir_builder_instr_insert(build, &intrin->instr); 10160 return &intrin->dest.ssa; 10161 } 10162 static inline nir_ssa_def * 10163 _nir_build_shuffle_up(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10164 { 10165 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10166 build->shader, nir_intrinsic_shuffle_up); 10167 10168 intrin->num_components = src0->num_components; 10169 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 10170 intrin->src[0] = nir_src_for_ssa(src0); 10171 intrin->src[1] = nir_src_for_ssa(src1); 10172 10173 nir_builder_instr_insert(build, &intrin->instr); 10174 return &intrin->dest.ssa; 10175 } 10176 static inline nir_ssa_def * 10177 _nir_build_shuffle_xor(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10178 { 10179 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10180 build->shader, nir_intrinsic_shuffle_xor); 10181 10182 intrin->num_components = src0->num_components; 10183 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 10184 intrin->src[0] = nir_src_for_ssa(src0); 10185 intrin->src[1] = nir_src_for_ssa(src1); 10186 10187 nir_builder_instr_insert(build, &intrin->instr); 10188 return &intrin->dest.ssa; 10189 } 10190 static inline nir_ssa_def * 10191 _nir_build_sparse_residency_code_and(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10192 { 10193 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10194 build->shader, nir_intrinsic_sparse_residency_code_and); 10195 10196 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, 32, NULL); 10197 intrin->src[0] = nir_src_for_ssa(src0); 10198 intrin->src[1] = nir_src_for_ssa(src1); 10199 10200 nir_builder_instr_insert(build, &intrin->instr); 10201 return &intrin->dest.ssa; 10202 } 10203 static inline nir_ssa_def * 10204 _nir_build_ssbo_atomic_add(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_add_indices indices) 10205 { 10206 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10207 build->shader, nir_intrinsic_ssbo_atomic_add); 10208 10209 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10210 intrin->src[0] = nir_src_for_ssa(src0); 10211 intrin->src[1] = nir_src_for_ssa(src1); 10212 intrin->src[2] = nir_src_for_ssa(src2); 10213 nir_intrinsic_set_access(intrin, indices.access); 10214 10215 nir_builder_instr_insert(build, &intrin->instr); 10216 return &intrin->dest.ssa; 10217 } 10218 static inline nir_ssa_def * 10219 _nir_build_ssbo_atomic_add_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_add_ir3_indices indices) 10220 { 10221 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10222 build->shader, nir_intrinsic_ssbo_atomic_add_ir3); 10223 10224 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10225 intrin->src[0] = nir_src_for_ssa(src0); 10226 intrin->src[1] = nir_src_for_ssa(src1); 10227 intrin->src[2] = nir_src_for_ssa(src2); 10228 intrin->src[3] = nir_src_for_ssa(src3); 10229 nir_intrinsic_set_access(intrin, indices.access); 10230 10231 nir_builder_instr_insert(build, &intrin->instr); 10232 return &intrin->dest.ssa; 10233 } 10234 static inline nir_ssa_def * 10235 _nir_build_ssbo_atomic_and(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_and_indices indices) 10236 { 10237 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10238 build->shader, nir_intrinsic_ssbo_atomic_and); 10239 10240 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10241 intrin->src[0] = nir_src_for_ssa(src0); 10242 intrin->src[1] = nir_src_for_ssa(src1); 10243 intrin->src[2] = nir_src_for_ssa(src2); 10244 nir_intrinsic_set_access(intrin, indices.access); 10245 10246 nir_builder_instr_insert(build, &intrin->instr); 10247 return &intrin->dest.ssa; 10248 } 10249 static inline nir_ssa_def * 10250 _nir_build_ssbo_atomic_and_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_and_ir3_indices indices) 10251 { 10252 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10253 build->shader, nir_intrinsic_ssbo_atomic_and_ir3); 10254 10255 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10256 intrin->src[0] = nir_src_for_ssa(src0); 10257 intrin->src[1] = nir_src_for_ssa(src1); 10258 intrin->src[2] = nir_src_for_ssa(src2); 10259 intrin->src[3] = nir_src_for_ssa(src3); 10260 nir_intrinsic_set_access(intrin, indices.access); 10261 10262 nir_builder_instr_insert(build, &intrin->instr); 10263 return &intrin->dest.ssa; 10264 } 10265 static inline nir_ssa_def * 10266 _nir_build_ssbo_atomic_comp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_comp_swap_indices indices) 10267 { 10268 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10269 build->shader, nir_intrinsic_ssbo_atomic_comp_swap); 10270 10271 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10272 intrin->src[0] = nir_src_for_ssa(src0); 10273 intrin->src[1] = nir_src_for_ssa(src1); 10274 intrin->src[2] = nir_src_for_ssa(src2); 10275 intrin->src[3] = nir_src_for_ssa(src3); 10276 nir_intrinsic_set_access(intrin, indices.access); 10277 10278 nir_builder_instr_insert(build, &intrin->instr); 10279 return &intrin->dest.ssa; 10280 } 10281 static inline nir_ssa_def * 10282 _nir_build_ssbo_atomic_comp_swap_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, struct _nir_ssbo_atomic_comp_swap_ir3_indices indices) 10283 { 10284 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10285 build->shader, nir_intrinsic_ssbo_atomic_comp_swap_ir3); 10286 10287 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10288 intrin->src[0] = nir_src_for_ssa(src0); 10289 intrin->src[1] = nir_src_for_ssa(src1); 10290 intrin->src[2] = nir_src_for_ssa(src2); 10291 intrin->src[3] = nir_src_for_ssa(src3); 10292 intrin->src[4] = nir_src_for_ssa(src4); 10293 nir_intrinsic_set_access(intrin, indices.access); 10294 10295 nir_builder_instr_insert(build, &intrin->instr); 10296 return &intrin->dest.ssa; 10297 } 10298 static inline nir_ssa_def * 10299 _nir_build_ssbo_atomic_exchange(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_exchange_indices indices) 10300 { 10301 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10302 build->shader, nir_intrinsic_ssbo_atomic_exchange); 10303 10304 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10305 intrin->src[0] = nir_src_for_ssa(src0); 10306 intrin->src[1] = nir_src_for_ssa(src1); 10307 intrin->src[2] = nir_src_for_ssa(src2); 10308 nir_intrinsic_set_access(intrin, indices.access); 10309 10310 nir_builder_instr_insert(build, &intrin->instr); 10311 return &intrin->dest.ssa; 10312 } 10313 static inline nir_ssa_def * 10314 _nir_build_ssbo_atomic_exchange_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_exchange_ir3_indices indices) 10315 { 10316 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10317 build->shader, nir_intrinsic_ssbo_atomic_exchange_ir3); 10318 10319 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10320 intrin->src[0] = nir_src_for_ssa(src0); 10321 intrin->src[1] = nir_src_for_ssa(src1); 10322 intrin->src[2] = nir_src_for_ssa(src2); 10323 intrin->src[3] = nir_src_for_ssa(src3); 10324 nir_intrinsic_set_access(intrin, indices.access); 10325 10326 nir_builder_instr_insert(build, &intrin->instr); 10327 return &intrin->dest.ssa; 10328 } 10329 static inline nir_ssa_def * 10330 _nir_build_ssbo_atomic_fadd(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_fadd_indices indices) 10331 { 10332 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10333 build->shader, nir_intrinsic_ssbo_atomic_fadd); 10334 10335 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10336 intrin->src[0] = nir_src_for_ssa(src0); 10337 intrin->src[1] = nir_src_for_ssa(src1); 10338 intrin->src[2] = nir_src_for_ssa(src2); 10339 nir_intrinsic_set_access(intrin, indices.access); 10340 10341 nir_builder_instr_insert(build, &intrin->instr); 10342 return &intrin->dest.ssa; 10343 } 10344 static inline nir_ssa_def * 10345 _nir_build_ssbo_atomic_fcomp_swap(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_fcomp_swap_indices indices) 10346 { 10347 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10348 build->shader, nir_intrinsic_ssbo_atomic_fcomp_swap); 10349 10350 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10351 intrin->src[0] = nir_src_for_ssa(src0); 10352 intrin->src[1] = nir_src_for_ssa(src1); 10353 intrin->src[2] = nir_src_for_ssa(src2); 10354 intrin->src[3] = nir_src_for_ssa(src3); 10355 nir_intrinsic_set_access(intrin, indices.access); 10356 10357 nir_builder_instr_insert(build, &intrin->instr); 10358 return &intrin->dest.ssa; 10359 } 10360 static inline nir_ssa_def * 10361 _nir_build_ssbo_atomic_fmax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_fmax_indices indices) 10362 { 10363 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10364 build->shader, nir_intrinsic_ssbo_atomic_fmax); 10365 10366 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10367 intrin->src[0] = nir_src_for_ssa(src0); 10368 intrin->src[1] = nir_src_for_ssa(src1); 10369 intrin->src[2] = nir_src_for_ssa(src2); 10370 nir_intrinsic_set_access(intrin, indices.access); 10371 10372 nir_builder_instr_insert(build, &intrin->instr); 10373 return &intrin->dest.ssa; 10374 } 10375 static inline nir_ssa_def * 10376 _nir_build_ssbo_atomic_fmin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_fmin_indices indices) 10377 { 10378 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10379 build->shader, nir_intrinsic_ssbo_atomic_fmin); 10380 10381 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10382 intrin->src[0] = nir_src_for_ssa(src0); 10383 intrin->src[1] = nir_src_for_ssa(src1); 10384 intrin->src[2] = nir_src_for_ssa(src2); 10385 nir_intrinsic_set_access(intrin, indices.access); 10386 10387 nir_builder_instr_insert(build, &intrin->instr); 10388 return &intrin->dest.ssa; 10389 } 10390 static inline nir_ssa_def * 10391 _nir_build_ssbo_atomic_imax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_imax_indices indices) 10392 { 10393 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10394 build->shader, nir_intrinsic_ssbo_atomic_imax); 10395 10396 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10397 intrin->src[0] = nir_src_for_ssa(src0); 10398 intrin->src[1] = nir_src_for_ssa(src1); 10399 intrin->src[2] = nir_src_for_ssa(src2); 10400 nir_intrinsic_set_access(intrin, indices.access); 10401 10402 nir_builder_instr_insert(build, &intrin->instr); 10403 return &intrin->dest.ssa; 10404 } 10405 static inline nir_ssa_def * 10406 _nir_build_ssbo_atomic_imax_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_imax_ir3_indices indices) 10407 { 10408 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10409 build->shader, nir_intrinsic_ssbo_atomic_imax_ir3); 10410 10411 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10412 intrin->src[0] = nir_src_for_ssa(src0); 10413 intrin->src[1] = nir_src_for_ssa(src1); 10414 intrin->src[2] = nir_src_for_ssa(src2); 10415 intrin->src[3] = nir_src_for_ssa(src3); 10416 nir_intrinsic_set_access(intrin, indices.access); 10417 10418 nir_builder_instr_insert(build, &intrin->instr); 10419 return &intrin->dest.ssa; 10420 } 10421 static inline nir_ssa_def * 10422 _nir_build_ssbo_atomic_imin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_imin_indices indices) 10423 { 10424 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10425 build->shader, nir_intrinsic_ssbo_atomic_imin); 10426 10427 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10428 intrin->src[0] = nir_src_for_ssa(src0); 10429 intrin->src[1] = nir_src_for_ssa(src1); 10430 intrin->src[2] = nir_src_for_ssa(src2); 10431 nir_intrinsic_set_access(intrin, indices.access); 10432 10433 nir_builder_instr_insert(build, &intrin->instr); 10434 return &intrin->dest.ssa; 10435 } 10436 static inline nir_ssa_def * 10437 _nir_build_ssbo_atomic_imin_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_imin_ir3_indices indices) 10438 { 10439 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10440 build->shader, nir_intrinsic_ssbo_atomic_imin_ir3); 10441 10442 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10443 intrin->src[0] = nir_src_for_ssa(src0); 10444 intrin->src[1] = nir_src_for_ssa(src1); 10445 intrin->src[2] = nir_src_for_ssa(src2); 10446 intrin->src[3] = nir_src_for_ssa(src3); 10447 nir_intrinsic_set_access(intrin, indices.access); 10448 10449 nir_builder_instr_insert(build, &intrin->instr); 10450 return &intrin->dest.ssa; 10451 } 10452 static inline nir_ssa_def * 10453 _nir_build_ssbo_atomic_or(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_or_indices indices) 10454 { 10455 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10456 build->shader, nir_intrinsic_ssbo_atomic_or); 10457 10458 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10459 intrin->src[0] = nir_src_for_ssa(src0); 10460 intrin->src[1] = nir_src_for_ssa(src1); 10461 intrin->src[2] = nir_src_for_ssa(src2); 10462 nir_intrinsic_set_access(intrin, indices.access); 10463 10464 nir_builder_instr_insert(build, &intrin->instr); 10465 return &intrin->dest.ssa; 10466 } 10467 static inline nir_ssa_def * 10468 _nir_build_ssbo_atomic_or_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_or_ir3_indices indices) 10469 { 10470 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10471 build->shader, nir_intrinsic_ssbo_atomic_or_ir3); 10472 10473 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10474 intrin->src[0] = nir_src_for_ssa(src0); 10475 intrin->src[1] = nir_src_for_ssa(src1); 10476 intrin->src[2] = nir_src_for_ssa(src2); 10477 intrin->src[3] = nir_src_for_ssa(src3); 10478 nir_intrinsic_set_access(intrin, indices.access); 10479 10480 nir_builder_instr_insert(build, &intrin->instr); 10481 return &intrin->dest.ssa; 10482 } 10483 static inline nir_ssa_def * 10484 _nir_build_ssbo_atomic_umax(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_umax_indices indices) 10485 { 10486 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10487 build->shader, nir_intrinsic_ssbo_atomic_umax); 10488 10489 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10490 intrin->src[0] = nir_src_for_ssa(src0); 10491 intrin->src[1] = nir_src_for_ssa(src1); 10492 intrin->src[2] = nir_src_for_ssa(src2); 10493 nir_intrinsic_set_access(intrin, indices.access); 10494 10495 nir_builder_instr_insert(build, &intrin->instr); 10496 return &intrin->dest.ssa; 10497 } 10498 static inline nir_ssa_def * 10499 _nir_build_ssbo_atomic_umax_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_umax_ir3_indices indices) 10500 { 10501 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10502 build->shader, nir_intrinsic_ssbo_atomic_umax_ir3); 10503 10504 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10505 intrin->src[0] = nir_src_for_ssa(src0); 10506 intrin->src[1] = nir_src_for_ssa(src1); 10507 intrin->src[2] = nir_src_for_ssa(src2); 10508 intrin->src[3] = nir_src_for_ssa(src3); 10509 nir_intrinsic_set_access(intrin, indices.access); 10510 10511 nir_builder_instr_insert(build, &intrin->instr); 10512 return &intrin->dest.ssa; 10513 } 10514 static inline nir_ssa_def * 10515 _nir_build_ssbo_atomic_umin(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_umin_indices indices) 10516 { 10517 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10518 build->shader, nir_intrinsic_ssbo_atomic_umin); 10519 10520 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10521 intrin->src[0] = nir_src_for_ssa(src0); 10522 intrin->src[1] = nir_src_for_ssa(src1); 10523 intrin->src[2] = nir_src_for_ssa(src2); 10524 nir_intrinsic_set_access(intrin, indices.access); 10525 10526 nir_builder_instr_insert(build, &intrin->instr); 10527 return &intrin->dest.ssa; 10528 } 10529 static inline nir_ssa_def * 10530 _nir_build_ssbo_atomic_umin_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_umin_ir3_indices indices) 10531 { 10532 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10533 build->shader, nir_intrinsic_ssbo_atomic_umin_ir3); 10534 10535 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10536 intrin->src[0] = nir_src_for_ssa(src0); 10537 intrin->src[1] = nir_src_for_ssa(src1); 10538 intrin->src[2] = nir_src_for_ssa(src2); 10539 intrin->src[3] = nir_src_for_ssa(src3); 10540 nir_intrinsic_set_access(intrin, indices.access); 10541 10542 nir_builder_instr_insert(build, &intrin->instr); 10543 return &intrin->dest.ssa; 10544 } 10545 static inline nir_ssa_def * 10546 _nir_build_ssbo_atomic_xor(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_ssbo_atomic_xor_indices indices) 10547 { 10548 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10549 build->shader, nir_intrinsic_ssbo_atomic_xor); 10550 10551 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10552 intrin->src[0] = nir_src_for_ssa(src0); 10553 intrin->src[1] = nir_src_for_ssa(src1); 10554 intrin->src[2] = nir_src_for_ssa(src2); 10555 nir_intrinsic_set_access(intrin, indices.access); 10556 10557 nir_builder_instr_insert(build, &intrin->instr); 10558 return &intrin->dest.ssa; 10559 } 10560 static inline nir_ssa_def * 10561 _nir_build_ssbo_atomic_xor_ir3(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_ssbo_atomic_xor_ir3_indices indices) 10562 { 10563 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10564 build->shader, nir_intrinsic_ssbo_atomic_xor_ir3); 10565 10566 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 10567 intrin->src[0] = nir_src_for_ssa(src0); 10568 intrin->src[1] = nir_src_for_ssa(src1); 10569 intrin->src[2] = nir_src_for_ssa(src2); 10570 intrin->src[3] = nir_src_for_ssa(src3); 10571 nir_intrinsic_set_access(intrin, indices.access); 10572 10573 nir_builder_instr_insert(build, &intrin->instr); 10574 return &intrin->dest.ssa; 10575 } 10576 static inline nir_intrinsic_instr * 10577 _nir_build_store_buffer_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_store_buffer_amd_indices indices) 10578 { 10579 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10580 build->shader, nir_intrinsic_store_buffer_amd); 10581 10582 intrin->num_components = src0->num_components; 10583 intrin->src[0] = nir_src_for_ssa(src0); 10584 intrin->src[1] = nir_src_for_ssa(src1); 10585 intrin->src[2] = nir_src_for_ssa(src2); 10586 intrin->src[3] = nir_src_for_ssa(src3); 10587 nir_intrinsic_set_base(intrin, indices.base); 10588 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10589 nir_intrinsic_set_is_swizzled(intrin, indices.is_swizzled); 10590 nir_intrinsic_set_slc_amd(intrin, indices.slc_amd); 10591 nir_intrinsic_set_memory_modes(intrin, indices.memory_modes); 10592 10593 nir_builder_instr_insert(build, &intrin->instr); 10594 return intrin; 10595 } 10596 static inline nir_intrinsic_instr * 10597 _nir_build_store_combined_output_pan(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_store_combined_output_pan_indices indices) 10598 { 10599 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10600 build->shader, nir_intrinsic_store_combined_output_pan); 10601 10602 intrin->num_components = src0->num_components; 10603 intrin->src[0] = nir_src_for_ssa(src0); 10604 intrin->src[1] = nir_src_for_ssa(src1); 10605 intrin->src[2] = nir_src_for_ssa(src2); 10606 intrin->src[3] = nir_src_for_ssa(src3); 10607 nir_intrinsic_set_base(intrin, indices.base); 10608 nir_intrinsic_set_component(intrin, indices.component); 10609 nir_intrinsic_set_src_type(intrin, indices.src_type); 10610 10611 nir_builder_instr_insert(build, &intrin->instr); 10612 return intrin; 10613 } 10614 static inline nir_intrinsic_instr * 10615 _nir_build_store_deref(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_deref_indices indices) 10616 { 10617 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10618 build->shader, nir_intrinsic_store_deref); 10619 10620 intrin->num_components = src1->num_components; 10621 intrin->src[0] = nir_src_for_ssa(src0); 10622 intrin->src[1] = nir_src_for_ssa(src1); 10623 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10624 nir_intrinsic_set_access(intrin, indices.access); 10625 10626 nir_builder_instr_insert(build, &intrin->instr); 10627 return intrin; 10628 } 10629 static inline nir_intrinsic_instr * 10630 _nir_build_store_deref_block_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_deref_block_intel_indices indices) 10631 { 10632 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10633 build->shader, nir_intrinsic_store_deref_block_intel); 10634 10635 intrin->num_components = src1->num_components; 10636 intrin->src[0] = nir_src_for_ssa(src0); 10637 intrin->src[1] = nir_src_for_ssa(src1); 10638 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10639 nir_intrinsic_set_access(intrin, indices.access); 10640 10641 nir_builder_instr_insert(build, &intrin->instr); 10642 return intrin; 10643 } 10644 static inline nir_intrinsic_instr * 10645 _nir_build_store_global(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_global_indices indices) 10646 { 10647 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10648 build->shader, nir_intrinsic_store_global); 10649 10650 intrin->num_components = src0->num_components; 10651 intrin->src[0] = nir_src_for_ssa(src0); 10652 intrin->src[1] = nir_src_for_ssa(src1); 10653 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10654 nir_intrinsic_set_access(intrin, indices.access); 10655 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10656 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10657 10658 nir_builder_instr_insert(build, &intrin->instr); 10659 return intrin; 10660 } 10661 static inline nir_intrinsic_instr * 10662 _nir_build_store_global_block_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_global_block_intel_indices indices) 10663 { 10664 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10665 build->shader, nir_intrinsic_store_global_block_intel); 10666 10667 intrin->num_components = src0->num_components; 10668 intrin->src[0] = nir_src_for_ssa(src0); 10669 intrin->src[1] = nir_src_for_ssa(src1); 10670 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10671 nir_intrinsic_set_access(intrin, indices.access); 10672 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10673 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10674 10675 nir_builder_instr_insert(build, &intrin->instr); 10676 return intrin; 10677 } 10678 static inline nir_intrinsic_instr * 10679 _nir_build_store_global_ir3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_store_global_ir3_indices indices) 10680 { 10681 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10682 build->shader, nir_intrinsic_store_global_ir3); 10683 10684 intrin->num_components = src0->num_components; 10685 intrin->src[0] = nir_src_for_ssa(src0); 10686 intrin->src[1] = nir_src_for_ssa(src1); 10687 intrin->src[2] = nir_src_for_ssa(src2); 10688 nir_intrinsic_set_access(intrin, indices.access); 10689 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10690 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10691 10692 nir_builder_instr_insert(build, &intrin->instr); 10693 return intrin; 10694 } 10695 static inline nir_intrinsic_instr * 10696 _nir_build_store_local_shared_r600(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_local_shared_r600_indices indices) 10697 { 10698 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10699 build->shader, nir_intrinsic_store_local_shared_r600); 10700 10701 intrin->num_components = src0->num_components; 10702 intrin->src[0] = nir_src_for_ssa(src0); 10703 intrin->src[1] = nir_src_for_ssa(src1); 10704 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10705 10706 nir_builder_instr_insert(build, &intrin->instr); 10707 return intrin; 10708 } 10709 static inline nir_intrinsic_instr * 10710 _nir_build_store_output(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_output_indices indices) 10711 { 10712 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10713 build->shader, nir_intrinsic_store_output); 10714 10715 intrin->num_components = src0->num_components; 10716 intrin->src[0] = nir_src_for_ssa(src0); 10717 intrin->src[1] = nir_src_for_ssa(src1); 10718 nir_intrinsic_set_base(intrin, indices.base); 10719 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10720 nir_intrinsic_set_component(intrin, indices.component); 10721 nir_intrinsic_set_src_type(intrin, indices.src_type); 10722 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 10723 10724 nir_builder_instr_insert(build, &intrin->instr); 10725 return intrin; 10726 } 10727 static inline nir_intrinsic_instr * 10728 _nir_build_store_per_primitive_output(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_store_per_primitive_output_indices indices) 10729 { 10730 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10731 build->shader, nir_intrinsic_store_per_primitive_output); 10732 10733 intrin->num_components = src0->num_components; 10734 intrin->src[0] = nir_src_for_ssa(src0); 10735 intrin->src[1] = nir_src_for_ssa(src1); 10736 intrin->src[2] = nir_src_for_ssa(src2); 10737 nir_intrinsic_set_base(intrin, indices.base); 10738 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10739 nir_intrinsic_set_component(intrin, indices.component); 10740 nir_intrinsic_set_src_type(intrin, indices.src_type); 10741 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 10742 10743 nir_builder_instr_insert(build, &intrin->instr); 10744 return intrin; 10745 } 10746 static inline nir_intrinsic_instr * 10747 _nir_build_store_per_vertex_output(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_store_per_vertex_output_indices indices) 10748 { 10749 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10750 build->shader, nir_intrinsic_store_per_vertex_output); 10751 10752 intrin->num_components = src0->num_components; 10753 intrin->src[0] = nir_src_for_ssa(src0); 10754 intrin->src[1] = nir_src_for_ssa(src1); 10755 intrin->src[2] = nir_src_for_ssa(src2); 10756 nir_intrinsic_set_base(intrin, indices.base); 10757 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10758 nir_intrinsic_set_component(intrin, indices.component); 10759 nir_intrinsic_set_src_type(intrin, indices.src_type); 10760 nir_intrinsic_set_io_semantics(intrin, indices.io_semantics); 10761 10762 nir_builder_instr_insert(build, &intrin->instr); 10763 return intrin; 10764 } 10765 static inline nir_intrinsic_instr * 10766 _nir_build_store_raw_output_pan(nir_builder *build, nir_ssa_def *src0) 10767 { 10768 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10769 build->shader, nir_intrinsic_store_raw_output_pan); 10770 10771 intrin->num_components = src0->num_components; 10772 intrin->src[0] = nir_src_for_ssa(src0); 10773 10774 nir_builder_instr_insert(build, &intrin->instr); 10775 return intrin; 10776 } 10777 static inline nir_intrinsic_instr * 10778 _nir_build_store_scratch(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_scratch_indices indices) 10779 { 10780 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10781 build->shader, nir_intrinsic_store_scratch); 10782 10783 intrin->num_components = src0->num_components; 10784 intrin->src[0] = nir_src_for_ssa(src0); 10785 intrin->src[1] = nir_src_for_ssa(src1); 10786 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10787 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10788 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10789 10790 nir_builder_instr_insert(build, &intrin->instr); 10791 return intrin; 10792 } 10793 static inline nir_intrinsic_instr * 10794 _nir_build_store_scratch_dxil(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10795 { 10796 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10797 build->shader, nir_intrinsic_store_scratch_dxil); 10798 10799 intrin->src[0] = nir_src_for_ssa(src0); 10800 intrin->src[1] = nir_src_for_ssa(src1); 10801 10802 nir_builder_instr_insert(build, &intrin->instr); 10803 return intrin; 10804 } 10805 static inline nir_intrinsic_instr * 10806 _nir_build_store_shared(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_shared_indices indices) 10807 { 10808 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10809 build->shader, nir_intrinsic_store_shared); 10810 10811 intrin->num_components = src0->num_components; 10812 intrin->src[0] = nir_src_for_ssa(src0); 10813 intrin->src[1] = nir_src_for_ssa(src1); 10814 nir_intrinsic_set_base(intrin, indices.base); 10815 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10816 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10817 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10818 10819 nir_builder_instr_insert(build, &intrin->instr); 10820 return intrin; 10821 } 10822 static inline nir_intrinsic_instr * 10823 _nir_build_store_shared_block_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_shared_block_intel_indices indices) 10824 { 10825 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10826 build->shader, nir_intrinsic_store_shared_block_intel); 10827 10828 intrin->num_components = src0->num_components; 10829 intrin->src[0] = nir_src_for_ssa(src0); 10830 intrin->src[1] = nir_src_for_ssa(src1); 10831 nir_intrinsic_set_base(intrin, indices.base); 10832 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10833 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10834 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10835 10836 nir_builder_instr_insert(build, &intrin->instr); 10837 return intrin; 10838 } 10839 static inline nir_intrinsic_instr * 10840 _nir_build_store_shared_dxil(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1) 10841 { 10842 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10843 build->shader, nir_intrinsic_store_shared_dxil); 10844 10845 intrin->src[0] = nir_src_for_ssa(src0); 10846 intrin->src[1] = nir_src_for_ssa(src1); 10847 10848 nir_builder_instr_insert(build, &intrin->instr); 10849 return intrin; 10850 } 10851 static inline nir_intrinsic_instr * 10852 _nir_build_store_shared_ir3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_shared_ir3_indices indices) 10853 { 10854 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10855 build->shader, nir_intrinsic_store_shared_ir3); 10856 10857 intrin->num_components = src0->num_components; 10858 intrin->src[0] = nir_src_for_ssa(src0); 10859 intrin->src[1] = nir_src_for_ssa(src1); 10860 nir_intrinsic_set_base(intrin, indices.base); 10861 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10862 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10863 10864 nir_builder_instr_insert(build, &intrin->instr); 10865 return intrin; 10866 } 10867 static inline nir_intrinsic_instr * 10868 _nir_build_store_shared_masked_dxil(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 10869 { 10870 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10871 build->shader, nir_intrinsic_store_shared_masked_dxil); 10872 10873 intrin->src[0] = nir_src_for_ssa(src0); 10874 intrin->src[1] = nir_src_for_ssa(src1); 10875 intrin->src[2] = nir_src_for_ssa(src2); 10876 10877 nir_builder_instr_insert(build, &intrin->instr); 10878 return intrin; 10879 } 10880 static inline nir_intrinsic_instr * 10881 _nir_build_store_ssbo(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_store_ssbo_indices indices) 10882 { 10883 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10884 build->shader, nir_intrinsic_store_ssbo); 10885 10886 intrin->num_components = src0->num_components; 10887 intrin->src[0] = nir_src_for_ssa(src0); 10888 intrin->src[1] = nir_src_for_ssa(src1); 10889 intrin->src[2] = nir_src_for_ssa(src2); 10890 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10891 nir_intrinsic_set_access(intrin, indices.access); 10892 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10893 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10894 10895 nir_builder_instr_insert(build, &intrin->instr); 10896 return intrin; 10897 } 10898 static inline nir_intrinsic_instr * 10899 _nir_build_store_ssbo_block_intel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, struct _nir_store_ssbo_block_intel_indices indices) 10900 { 10901 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10902 build->shader, nir_intrinsic_store_ssbo_block_intel); 10903 10904 intrin->num_components = src0->num_components; 10905 intrin->src[0] = nir_src_for_ssa(src0); 10906 intrin->src[1] = nir_src_for_ssa(src1); 10907 intrin->src[2] = nir_src_for_ssa(src2); 10908 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10909 nir_intrinsic_set_access(intrin, indices.access); 10910 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10911 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10912 10913 nir_builder_instr_insert(build, &intrin->instr); 10914 return intrin; 10915 } 10916 static inline nir_intrinsic_instr * 10917 _nir_build_store_ssbo_ir3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, struct _nir_store_ssbo_ir3_indices indices) 10918 { 10919 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10920 build->shader, nir_intrinsic_store_ssbo_ir3); 10921 10922 intrin->num_components = src0->num_components; 10923 intrin->src[0] = nir_src_for_ssa(src0); 10924 intrin->src[1] = nir_src_for_ssa(src1); 10925 intrin->src[2] = nir_src_for_ssa(src2); 10926 intrin->src[3] = nir_src_for_ssa(src3); 10927 nir_intrinsic_set_write_mask(intrin, indices.write_mask); 10928 nir_intrinsic_set_access(intrin, indices.access); 10929 nir_intrinsic_set_align_mul(intrin, indices.align_mul); 10930 nir_intrinsic_set_align_offset(intrin, indices.align_offset); 10931 10932 nir_builder_instr_insert(build, &intrin->instr); 10933 return intrin; 10934 } 10935 static inline nir_intrinsic_instr * 10936 _nir_build_store_ssbo_masked_dxil(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3) 10937 { 10938 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10939 build->shader, nir_intrinsic_store_ssbo_masked_dxil); 10940 10941 intrin->src[0] = nir_src_for_ssa(src0); 10942 intrin->src[1] = nir_src_for_ssa(src1); 10943 intrin->src[2] = nir_src_for_ssa(src2); 10944 intrin->src[3] = nir_src_for_ssa(src3); 10945 10946 nir_builder_instr_insert(build, &intrin->instr); 10947 return intrin; 10948 } 10949 static inline nir_intrinsic_instr * 10950 _nir_build_store_tf_r600(nir_builder *build, nir_ssa_def *src0) 10951 { 10952 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10953 build->shader, nir_intrinsic_store_tf_r600); 10954 10955 intrin->num_components = src0->num_components; 10956 intrin->src[0] = nir_src_for_ssa(src0); 10957 10958 nir_builder_instr_insert(build, &intrin->instr); 10959 return intrin; 10960 } 10961 static inline nir_intrinsic_instr * 10962 _nir_build_store_tlb_sample_color_v3d(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_store_tlb_sample_color_v3d_indices indices) 10963 { 10964 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10965 build->shader, nir_intrinsic_store_tlb_sample_color_v3d); 10966 10967 intrin->num_components = src0->num_components; 10968 intrin->src[0] = nir_src_for_ssa(src0); 10969 intrin->src[1] = nir_src_for_ssa(src1); 10970 nir_intrinsic_set_base(intrin, indices.base); 10971 nir_intrinsic_set_component(intrin, indices.component); 10972 nir_intrinsic_set_src_type(intrin, indices.src_type); 10973 10974 nir_builder_instr_insert(build, &intrin->instr); 10975 return intrin; 10976 } 10977 static inline nir_intrinsic_instr * 10978 _nir_build_terminate(nir_builder *build) 10979 { 10980 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10981 build->shader, nir_intrinsic_terminate); 10982 10983 10984 nir_builder_instr_insert(build, &intrin->instr); 10985 return intrin; 10986 } 10987 static inline nir_intrinsic_instr * 10988 _nir_build_terminate_if(nir_builder *build, nir_ssa_def *src0) 10989 { 10990 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 10991 build->shader, nir_intrinsic_terminate_if); 10992 10993 intrin->src[0] = nir_src_for_ssa(src0); 10994 10995 nir_builder_instr_insert(build, &intrin->instr); 10996 return intrin; 10997 } 10998 static inline nir_intrinsic_instr * 10999 _nir_build_terminate_ray(nir_builder *build) 11000 { 11001 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11002 build->shader, nir_intrinsic_terminate_ray); 11003 11004 11005 nir_builder_instr_insert(build, &intrin->instr); 11006 return intrin; 11007 } 11008 static inline nir_intrinsic_instr * 11009 _nir_build_trace_ray(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3, nir_ssa_def *src4, nir_ssa_def *src5, nir_ssa_def *src6, nir_ssa_def *src7, nir_ssa_def *src8, nir_ssa_def *src9, nir_ssa_def *src10) 11010 { 11011 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11012 build->shader, nir_intrinsic_trace_ray); 11013 11014 intrin->src[0] = nir_src_for_ssa(src0); 11015 intrin->src[1] = nir_src_for_ssa(src1); 11016 intrin->src[2] = nir_src_for_ssa(src2); 11017 intrin->src[3] = nir_src_for_ssa(src3); 11018 intrin->src[4] = nir_src_for_ssa(src4); 11019 intrin->src[5] = nir_src_for_ssa(src5); 11020 intrin->src[6] = nir_src_for_ssa(src6); 11021 intrin->src[7] = nir_src_for_ssa(src7); 11022 intrin->src[8] = nir_src_for_ssa(src8); 11023 intrin->src[9] = nir_src_for_ssa(src9); 11024 intrin->src[10] = nir_src_for_ssa(src10); 11025 11026 nir_builder_instr_insert(build, &intrin->instr); 11027 return intrin; 11028 } 11029 static inline nir_intrinsic_instr * 11030 _nir_build_trace_ray_commit_intel(nir_builder *build) 11031 { 11032 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11033 build->shader, nir_intrinsic_trace_ray_commit_intel); 11034 11035 11036 nir_builder_instr_insert(build, &intrin->instr); 11037 return intrin; 11038 } 11039 static inline nir_intrinsic_instr * 11040 _nir_build_trace_ray_continue_intel(nir_builder *build) 11041 { 11042 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11043 build->shader, nir_intrinsic_trace_ray_continue_intel); 11044 11045 11046 nir_builder_instr_insert(build, &intrin->instr); 11047 return intrin; 11048 } 11049 static inline nir_intrinsic_instr * 11050 _nir_build_trace_ray_initial_intel(nir_builder *build) 11051 { 11052 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11053 build->shader, nir_intrinsic_trace_ray_initial_intel); 11054 11055 11056 nir_builder_instr_insert(build, &intrin->instr); 11057 return intrin; 11058 } 11059 static inline nir_ssa_def * 11060 _nir_build_vote_all(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 11061 { 11062 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11063 build->shader, nir_intrinsic_vote_all); 11064 11065 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 11066 intrin->src[0] = nir_src_for_ssa(src0); 11067 11068 nir_builder_instr_insert(build, &intrin->instr); 11069 return &intrin->dest.ssa; 11070 } 11071 static inline nir_ssa_def * 11072 _nir_build_vote_any(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 11073 { 11074 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11075 build->shader, nir_intrinsic_vote_any); 11076 11077 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 11078 intrin->src[0] = nir_src_for_ssa(src0); 11079 11080 nir_builder_instr_insert(build, &intrin->instr); 11081 return &intrin->dest.ssa; 11082 } 11083 static inline nir_ssa_def * 11084 _nir_build_vote_feq(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 11085 { 11086 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11087 build->shader, nir_intrinsic_vote_feq); 11088 11089 intrin->num_components = src0->num_components; 11090 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 11091 intrin->src[0] = nir_src_for_ssa(src0); 11092 11093 nir_builder_instr_insert(build, &intrin->instr); 11094 return &intrin->dest.ssa; 11095 } 11096 static inline nir_ssa_def * 11097 _nir_build_vote_ieq(nir_builder *build, unsigned bit_size, nir_ssa_def *src0) 11098 { 11099 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11100 build->shader, nir_intrinsic_vote_ieq); 11101 11102 intrin->num_components = src0->num_components; 11103 nir_ssa_dest_init(&intrin->instr, &intrin->dest, 1, bit_size, NULL); 11104 intrin->src[0] = nir_src_for_ssa(src0); 11105 11106 nir_builder_instr_insert(build, &intrin->instr); 11107 return &intrin->dest.ssa; 11108 } 11109 static inline nir_ssa_def * 11110 _nir_build_vulkan_resource_index(nir_builder *build, unsigned num_components, unsigned bit_size, nir_ssa_def *src0, struct _nir_vulkan_resource_index_indices indices) 11111 { 11112 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11113 build->shader, nir_intrinsic_vulkan_resource_index); 11114 11115 intrin->num_components = num_components; 11116 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 11117 intrin->src[0] = nir_src_for_ssa(src0); 11118 nir_intrinsic_set_desc_set(intrin, indices.desc_set); 11119 nir_intrinsic_set_binding(intrin, indices.binding); 11120 nir_intrinsic_set_desc_type(intrin, indices.desc_type); 11121 11122 nir_builder_instr_insert(build, &intrin->instr); 11123 return &intrin->dest.ssa; 11124 } 11125 static inline nir_ssa_def * 11126 _nir_build_vulkan_resource_reindex(nir_builder *build, unsigned bit_size, nir_ssa_def *src0, nir_ssa_def *src1, struct _nir_vulkan_resource_reindex_indices indices) 11127 { 11128 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11129 build->shader, nir_intrinsic_vulkan_resource_reindex); 11130 11131 intrin->num_components = src0->num_components; 11132 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, bit_size, NULL); 11133 intrin->src[0] = nir_src_for_ssa(src0); 11134 intrin->src[1] = nir_src_for_ssa(src1); 11135 nir_intrinsic_set_desc_type(intrin, indices.desc_type); 11136 11137 nir_builder_instr_insert(build, &intrin->instr); 11138 return &intrin->dest.ssa; 11139 } 11140 static inline nir_ssa_def * 11141 _nir_build_write_invocation_amd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2) 11142 { 11143 nir_intrinsic_instr *intrin = nir_intrinsic_instr_create( 11144 build->shader, nir_intrinsic_write_invocation_amd); 11145 11146 intrin->num_components = src0->num_components; 11147 nir_ssa_dest_init(&intrin->instr, &intrin->dest, intrin->num_components, src0->bit_size, NULL); 11148 intrin->src[0] = nir_src_for_ssa(src0); 11149 intrin->src[1] = nir_src_for_ssa(src1); 11150 intrin->src[2] = nir_src_for_ssa(src2); 11151 11152 nir_builder_instr_insert(build, &intrin->instr); 11153 return &intrin->dest.ssa; 11154 } 11155 11156 #define nir_build_accept_ray_intersection _nir_build_accept_ray_intersection 11157 #define nir_accept_ray_intersection nir_build_accept_ray_intersection 11158 #ifdef __cplusplus 11159 #define nir_build_addr_mode_is(build, bit_size, src0, ...) \ 11160 _nir_build_addr_mode_is(build, bit_size, src0, _nir_addr_mode_is_indices{0, __VA_ARGS__}) 11161 #else 11162 #define nir_build_addr_mode_is(build, bit_size, src0, ...) \ 11163 _nir_build_addr_mode_is(build, bit_size, src0, (struct _nir_addr_mode_is_indices){0, __VA_ARGS__}) 11164 #endif 11165 #define nir_addr_mode_is nir_build_addr_mode_is 11166 #define nir_build_alloc_vertices_and_primitives_amd _nir_build_alloc_vertices_and_primitives_amd 11167 #define nir_alloc_vertices_and_primitives_amd nir_build_alloc_vertices_and_primitives_amd 11168 #ifdef __cplusplus 11169 #define nir_build_atomic_counter_add(build, bit_size, src0, src1, ...) \ 11170 _nir_build_atomic_counter_add(build, bit_size, src0, src1, _nir_atomic_counter_add_indices{0, __VA_ARGS__}) 11171 #else 11172 #define nir_build_atomic_counter_add(build, bit_size, src0, src1, ...) \ 11173 _nir_build_atomic_counter_add(build, bit_size, src0, src1, (struct _nir_atomic_counter_add_indices){0, __VA_ARGS__}) 11174 #endif 11175 #define nir_atomic_counter_add nir_build_atomic_counter_add 11176 #define nir_build_atomic_counter_add_deref _nir_build_atomic_counter_add_deref 11177 #define nir_atomic_counter_add_deref nir_build_atomic_counter_add_deref 11178 #ifdef __cplusplus 11179 #define nir_build_atomic_counter_and(build, bit_size, src0, src1, ...) \ 11180 _nir_build_atomic_counter_and(build, bit_size, src0, src1, _nir_atomic_counter_and_indices{0, __VA_ARGS__}) 11181 #else 11182 #define nir_build_atomic_counter_and(build, bit_size, src0, src1, ...) \ 11183 _nir_build_atomic_counter_and(build, bit_size, src0, src1, (struct _nir_atomic_counter_and_indices){0, __VA_ARGS__}) 11184 #endif 11185 #define nir_atomic_counter_and nir_build_atomic_counter_and 11186 #define nir_build_atomic_counter_and_deref _nir_build_atomic_counter_and_deref 11187 #define nir_atomic_counter_and_deref nir_build_atomic_counter_and_deref 11188 #ifdef __cplusplus 11189 #define nir_build_atomic_counter_comp_swap(build, bit_size, src0, src1, src2, ...) \ 11190 _nir_build_atomic_counter_comp_swap(build, bit_size, src0, src1, src2, _nir_atomic_counter_comp_swap_indices{0, __VA_ARGS__}) 11191 #else 11192 #define nir_build_atomic_counter_comp_swap(build, bit_size, src0, src1, src2, ...) \ 11193 _nir_build_atomic_counter_comp_swap(build, bit_size, src0, src1, src2, (struct _nir_atomic_counter_comp_swap_indices){0, __VA_ARGS__}) 11194 #endif 11195 #define nir_atomic_counter_comp_swap nir_build_atomic_counter_comp_swap 11196 #define nir_build_atomic_counter_comp_swap_deref _nir_build_atomic_counter_comp_swap_deref 11197 #define nir_atomic_counter_comp_swap_deref nir_build_atomic_counter_comp_swap_deref 11198 #ifdef __cplusplus 11199 #define nir_build_atomic_counter_exchange(build, bit_size, src0, src1, ...) \ 11200 _nir_build_atomic_counter_exchange(build, bit_size, src0, src1, _nir_atomic_counter_exchange_indices{0, __VA_ARGS__}) 11201 #else 11202 #define nir_build_atomic_counter_exchange(build, bit_size, src0, src1, ...) \ 11203 _nir_build_atomic_counter_exchange(build, bit_size, src0, src1, (struct _nir_atomic_counter_exchange_indices){0, __VA_ARGS__}) 11204 #endif 11205 #define nir_atomic_counter_exchange nir_build_atomic_counter_exchange 11206 #define nir_build_atomic_counter_exchange_deref _nir_build_atomic_counter_exchange_deref 11207 #define nir_atomic_counter_exchange_deref nir_build_atomic_counter_exchange_deref 11208 #ifdef __cplusplus 11209 #define nir_build_atomic_counter_inc(build, bit_size, src0, ...) \ 11210 _nir_build_atomic_counter_inc(build, bit_size, src0, _nir_atomic_counter_inc_indices{0, __VA_ARGS__}) 11211 #else 11212 #define nir_build_atomic_counter_inc(build, bit_size, src0, ...) \ 11213 _nir_build_atomic_counter_inc(build, bit_size, src0, (struct _nir_atomic_counter_inc_indices){0, __VA_ARGS__}) 11214 #endif 11215 #define nir_atomic_counter_inc nir_build_atomic_counter_inc 11216 #define nir_build_atomic_counter_inc_deref _nir_build_atomic_counter_inc_deref 11217 #define nir_atomic_counter_inc_deref nir_build_atomic_counter_inc_deref 11218 #ifdef __cplusplus 11219 #define nir_build_atomic_counter_max(build, bit_size, src0, src1, ...) \ 11220 _nir_build_atomic_counter_max(build, bit_size, src0, src1, _nir_atomic_counter_max_indices{0, __VA_ARGS__}) 11221 #else 11222 #define nir_build_atomic_counter_max(build, bit_size, src0, src1, ...) \ 11223 _nir_build_atomic_counter_max(build, bit_size, src0, src1, (struct _nir_atomic_counter_max_indices){0, __VA_ARGS__}) 11224 #endif 11225 #define nir_atomic_counter_max nir_build_atomic_counter_max 11226 #define nir_build_atomic_counter_max_deref _nir_build_atomic_counter_max_deref 11227 #define nir_atomic_counter_max_deref nir_build_atomic_counter_max_deref 11228 #ifdef __cplusplus 11229 #define nir_build_atomic_counter_min(build, bit_size, src0, src1, ...) \ 11230 _nir_build_atomic_counter_min(build, bit_size, src0, src1, _nir_atomic_counter_min_indices{0, __VA_ARGS__}) 11231 #else 11232 #define nir_build_atomic_counter_min(build, bit_size, src0, src1, ...) \ 11233 _nir_build_atomic_counter_min(build, bit_size, src0, src1, (struct _nir_atomic_counter_min_indices){0, __VA_ARGS__}) 11234 #endif 11235 #define nir_atomic_counter_min nir_build_atomic_counter_min 11236 #define nir_build_atomic_counter_min_deref _nir_build_atomic_counter_min_deref 11237 #define nir_atomic_counter_min_deref nir_build_atomic_counter_min_deref 11238 #ifdef __cplusplus 11239 #define nir_build_atomic_counter_or(build, bit_size, src0, src1, ...) \ 11240 _nir_build_atomic_counter_or(build, bit_size, src0, src1, _nir_atomic_counter_or_indices{0, __VA_ARGS__}) 11241 #else 11242 #define nir_build_atomic_counter_or(build, bit_size, src0, src1, ...) \ 11243 _nir_build_atomic_counter_or(build, bit_size, src0, src1, (struct _nir_atomic_counter_or_indices){0, __VA_ARGS__}) 11244 #endif 11245 #define nir_atomic_counter_or nir_build_atomic_counter_or 11246 #define nir_build_atomic_counter_or_deref _nir_build_atomic_counter_or_deref 11247 #define nir_atomic_counter_or_deref nir_build_atomic_counter_or_deref 11248 #ifdef __cplusplus 11249 #define nir_build_atomic_counter_post_dec(build, bit_size, src0, ...) \ 11250 _nir_build_atomic_counter_post_dec(build, bit_size, src0, _nir_atomic_counter_post_dec_indices{0, __VA_ARGS__}) 11251 #else 11252 #define nir_build_atomic_counter_post_dec(build, bit_size, src0, ...) \ 11253 _nir_build_atomic_counter_post_dec(build, bit_size, src0, (struct _nir_atomic_counter_post_dec_indices){0, __VA_ARGS__}) 11254 #endif 11255 #define nir_atomic_counter_post_dec nir_build_atomic_counter_post_dec 11256 #define nir_build_atomic_counter_post_dec_deref _nir_build_atomic_counter_post_dec_deref 11257 #define nir_atomic_counter_post_dec_deref nir_build_atomic_counter_post_dec_deref 11258 #ifdef __cplusplus 11259 #define nir_build_atomic_counter_pre_dec(build, bit_size, src0, ...) \ 11260 _nir_build_atomic_counter_pre_dec(build, bit_size, src0, _nir_atomic_counter_pre_dec_indices{0, __VA_ARGS__}) 11261 #else 11262 #define nir_build_atomic_counter_pre_dec(build, bit_size, src0, ...) \ 11263 _nir_build_atomic_counter_pre_dec(build, bit_size, src0, (struct _nir_atomic_counter_pre_dec_indices){0, __VA_ARGS__}) 11264 #endif 11265 #define nir_atomic_counter_pre_dec nir_build_atomic_counter_pre_dec 11266 #define nir_build_atomic_counter_pre_dec_deref _nir_build_atomic_counter_pre_dec_deref 11267 #define nir_atomic_counter_pre_dec_deref nir_build_atomic_counter_pre_dec_deref 11268 #ifdef __cplusplus 11269 #define nir_build_atomic_counter_read(build, bit_size, src0, ...) \ 11270 _nir_build_atomic_counter_read(build, bit_size, src0, _nir_atomic_counter_read_indices{0, __VA_ARGS__}) 11271 #else 11272 #define nir_build_atomic_counter_read(build, bit_size, src0, ...) \ 11273 _nir_build_atomic_counter_read(build, bit_size, src0, (struct _nir_atomic_counter_read_indices){0, __VA_ARGS__}) 11274 #endif 11275 #define nir_atomic_counter_read nir_build_atomic_counter_read 11276 #define nir_build_atomic_counter_read_deref _nir_build_atomic_counter_read_deref 11277 #define nir_atomic_counter_read_deref nir_build_atomic_counter_read_deref 11278 #ifdef __cplusplus 11279 #define nir_build_atomic_counter_xor(build, bit_size, src0, src1, ...) \ 11280 _nir_build_atomic_counter_xor(build, bit_size, src0, src1, _nir_atomic_counter_xor_indices{0, __VA_ARGS__}) 11281 #else 11282 #define nir_build_atomic_counter_xor(build, bit_size, src0, src1, ...) \ 11283 _nir_build_atomic_counter_xor(build, bit_size, src0, src1, (struct _nir_atomic_counter_xor_indices){0, __VA_ARGS__}) 11284 #endif 11285 #define nir_atomic_counter_xor nir_build_atomic_counter_xor 11286 #define nir_build_atomic_counter_xor_deref _nir_build_atomic_counter_xor_deref 11287 #define nir_atomic_counter_xor_deref nir_build_atomic_counter_xor_deref 11288 #define nir_build_ballot _nir_build_ballot 11289 #define nir_ballot nir_build_ballot 11290 #define nir_build_ballot_bit_count_exclusive _nir_build_ballot_bit_count_exclusive 11291 #define nir_ballot_bit_count_exclusive nir_build_ballot_bit_count_exclusive 11292 #define nir_build_ballot_bit_count_inclusive _nir_build_ballot_bit_count_inclusive 11293 #define nir_ballot_bit_count_inclusive nir_build_ballot_bit_count_inclusive 11294 #define nir_build_ballot_bit_count_reduce _nir_build_ballot_bit_count_reduce 11295 #define nir_ballot_bit_count_reduce nir_build_ballot_bit_count_reduce 11296 #define nir_build_ballot_bitfield_extract _nir_build_ballot_bitfield_extract 11297 #define nir_ballot_bitfield_extract nir_build_ballot_bitfield_extract 11298 #define nir_build_ballot_find_lsb _nir_build_ballot_find_lsb 11299 #define nir_ballot_find_lsb nir_build_ballot_find_lsb 11300 #define nir_build_ballot_find_msb _nir_build_ballot_find_msb 11301 #define nir_ballot_find_msb nir_build_ballot_find_msb 11302 #define nir_build_begin_invocation_interlock _nir_build_begin_invocation_interlock 11303 #define nir_begin_invocation_interlock nir_build_begin_invocation_interlock 11304 #ifdef __cplusplus 11305 #define nir_build_bindless_image_atomic_add(build, bit_size, src0, src1, src2, src3, ...) \ 11306 _nir_build_bindless_image_atomic_add(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_add_indices{0, __VA_ARGS__}) 11307 #else 11308 #define nir_build_bindless_image_atomic_add(build, bit_size, src0, src1, src2, src3, ...) \ 11309 _nir_build_bindless_image_atomic_add(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_add_indices){0, __VA_ARGS__}) 11310 #endif 11311 #define nir_bindless_image_atomic_add nir_build_bindless_image_atomic_add 11312 #ifdef __cplusplus 11313 #define nir_build_bindless_image_atomic_and(build, bit_size, src0, src1, src2, src3, ...) \ 11314 _nir_build_bindless_image_atomic_and(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_and_indices{0, __VA_ARGS__}) 11315 #else 11316 #define nir_build_bindless_image_atomic_and(build, bit_size, src0, src1, src2, src3, ...) \ 11317 _nir_build_bindless_image_atomic_and(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_and_indices){0, __VA_ARGS__}) 11318 #endif 11319 #define nir_bindless_image_atomic_and nir_build_bindless_image_atomic_and 11320 #ifdef __cplusplus 11321 #define nir_build_bindless_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, ...) \ 11322 _nir_build_bindless_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, _nir_bindless_image_atomic_comp_swap_indices{0, __VA_ARGS__}) 11323 #else 11324 #define nir_build_bindless_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, ...) \ 11325 _nir_build_bindless_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, (struct _nir_bindless_image_atomic_comp_swap_indices){0, __VA_ARGS__}) 11326 #endif 11327 #define nir_bindless_image_atomic_comp_swap nir_build_bindless_image_atomic_comp_swap 11328 #ifdef __cplusplus 11329 #define nir_build_bindless_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11330 _nir_build_bindless_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_dec_wrap_indices{0, __VA_ARGS__}) 11331 #else 11332 #define nir_build_bindless_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11333 _nir_build_bindless_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_dec_wrap_indices){0, __VA_ARGS__}) 11334 #endif 11335 #define nir_bindless_image_atomic_dec_wrap nir_build_bindless_image_atomic_dec_wrap 11336 #ifdef __cplusplus 11337 #define nir_build_bindless_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, ...) \ 11338 _nir_build_bindless_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_exchange_indices{0, __VA_ARGS__}) 11339 #else 11340 #define nir_build_bindless_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, ...) \ 11341 _nir_build_bindless_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_exchange_indices){0, __VA_ARGS__}) 11342 #endif 11343 #define nir_bindless_image_atomic_exchange nir_build_bindless_image_atomic_exchange 11344 #ifdef __cplusplus 11345 #define nir_build_bindless_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, ...) \ 11346 _nir_build_bindless_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_fadd_indices{0, __VA_ARGS__}) 11347 #else 11348 #define nir_build_bindless_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, ...) \ 11349 _nir_build_bindless_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_fadd_indices){0, __VA_ARGS__}) 11350 #endif 11351 #define nir_bindless_image_atomic_fadd nir_build_bindless_image_atomic_fadd 11352 #ifdef __cplusplus 11353 #define nir_build_bindless_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, ...) \ 11354 _nir_build_bindless_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_fmax_indices{0, __VA_ARGS__}) 11355 #else 11356 #define nir_build_bindless_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, ...) \ 11357 _nir_build_bindless_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_fmax_indices){0, __VA_ARGS__}) 11358 #endif 11359 #define nir_bindless_image_atomic_fmax nir_build_bindless_image_atomic_fmax 11360 #ifdef __cplusplus 11361 #define nir_build_bindless_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, ...) \ 11362 _nir_build_bindless_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_fmin_indices{0, __VA_ARGS__}) 11363 #else 11364 #define nir_build_bindless_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, ...) \ 11365 _nir_build_bindless_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_fmin_indices){0, __VA_ARGS__}) 11366 #endif 11367 #define nir_bindless_image_atomic_fmin nir_build_bindless_image_atomic_fmin 11368 #ifdef __cplusplus 11369 #define nir_build_bindless_image_atomic_imax(build, bit_size, src0, src1, src2, src3, ...) \ 11370 _nir_build_bindless_image_atomic_imax(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_imax_indices{0, __VA_ARGS__}) 11371 #else 11372 #define nir_build_bindless_image_atomic_imax(build, bit_size, src0, src1, src2, src3, ...) \ 11373 _nir_build_bindless_image_atomic_imax(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_imax_indices){0, __VA_ARGS__}) 11374 #endif 11375 #define nir_bindless_image_atomic_imax nir_build_bindless_image_atomic_imax 11376 #ifdef __cplusplus 11377 #define nir_build_bindless_image_atomic_imin(build, bit_size, src0, src1, src2, src3, ...) \ 11378 _nir_build_bindless_image_atomic_imin(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_imin_indices{0, __VA_ARGS__}) 11379 #else 11380 #define nir_build_bindless_image_atomic_imin(build, bit_size, src0, src1, src2, src3, ...) \ 11381 _nir_build_bindless_image_atomic_imin(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_imin_indices){0, __VA_ARGS__}) 11382 #endif 11383 #define nir_bindless_image_atomic_imin nir_build_bindless_image_atomic_imin 11384 #ifdef __cplusplus 11385 #define nir_build_bindless_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11386 _nir_build_bindless_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_inc_wrap_indices{0, __VA_ARGS__}) 11387 #else 11388 #define nir_build_bindless_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11389 _nir_build_bindless_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_inc_wrap_indices){0, __VA_ARGS__}) 11390 #endif 11391 #define nir_bindless_image_atomic_inc_wrap nir_build_bindless_image_atomic_inc_wrap 11392 #ifdef __cplusplus 11393 #define nir_build_bindless_image_atomic_or(build, bit_size, src0, src1, src2, src3, ...) \ 11394 _nir_build_bindless_image_atomic_or(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_or_indices{0, __VA_ARGS__}) 11395 #else 11396 #define nir_build_bindless_image_atomic_or(build, bit_size, src0, src1, src2, src3, ...) \ 11397 _nir_build_bindless_image_atomic_or(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_or_indices){0, __VA_ARGS__}) 11398 #endif 11399 #define nir_bindless_image_atomic_or nir_build_bindless_image_atomic_or 11400 #ifdef __cplusplus 11401 #define nir_build_bindless_image_atomic_umax(build, bit_size, src0, src1, src2, src3, ...) \ 11402 _nir_build_bindless_image_atomic_umax(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_umax_indices{0, __VA_ARGS__}) 11403 #else 11404 #define nir_build_bindless_image_atomic_umax(build, bit_size, src0, src1, src2, src3, ...) \ 11405 _nir_build_bindless_image_atomic_umax(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_umax_indices){0, __VA_ARGS__}) 11406 #endif 11407 #define nir_bindless_image_atomic_umax nir_build_bindless_image_atomic_umax 11408 #ifdef __cplusplus 11409 #define nir_build_bindless_image_atomic_umin(build, bit_size, src0, src1, src2, src3, ...) \ 11410 _nir_build_bindless_image_atomic_umin(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_umin_indices{0, __VA_ARGS__}) 11411 #else 11412 #define nir_build_bindless_image_atomic_umin(build, bit_size, src0, src1, src2, src3, ...) \ 11413 _nir_build_bindless_image_atomic_umin(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_umin_indices){0, __VA_ARGS__}) 11414 #endif 11415 #define nir_bindless_image_atomic_umin nir_build_bindless_image_atomic_umin 11416 #ifdef __cplusplus 11417 #define nir_build_bindless_image_atomic_xor(build, bit_size, src0, src1, src2, src3, ...) \ 11418 _nir_build_bindless_image_atomic_xor(build, bit_size, src0, src1, src2, src3, _nir_bindless_image_atomic_xor_indices{0, __VA_ARGS__}) 11419 #else 11420 #define nir_build_bindless_image_atomic_xor(build, bit_size, src0, src1, src2, src3, ...) \ 11421 _nir_build_bindless_image_atomic_xor(build, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_atomic_xor_indices){0, __VA_ARGS__}) 11422 #endif 11423 #define nir_bindless_image_atomic_xor nir_build_bindless_image_atomic_xor 11424 #ifdef __cplusplus 11425 #define nir_build_bindless_image_format(build, bit_size, src0, ...) \ 11426 _nir_build_bindless_image_format(build, bit_size, src0, _nir_bindless_image_format_indices{0, __VA_ARGS__}) 11427 #else 11428 #define nir_build_bindless_image_format(build, bit_size, src0, ...) \ 11429 _nir_build_bindless_image_format(build, bit_size, src0, (struct _nir_bindless_image_format_indices){0, __VA_ARGS__}) 11430 #endif 11431 #define nir_bindless_image_format nir_build_bindless_image_format 11432 #ifdef __cplusplus 11433 #define nir_build_bindless_image_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 11434 _nir_build_bindless_image_load(build, num_components, bit_size, src0, src1, src2, src3, _nir_bindless_image_load_indices{0, __VA_ARGS__}) 11435 #else 11436 #define nir_build_bindless_image_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 11437 _nir_build_bindless_image_load(build, num_components, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_load_indices){0, __VA_ARGS__}) 11438 #endif 11439 #define nir_bindless_image_load nir_build_bindless_image_load 11440 #ifdef __cplusplus 11441 #define nir_build_bindless_image_load_raw_intel(build, num_components, bit_size, src0, src1, ...) \ 11442 _nir_build_bindless_image_load_raw_intel(build, num_components, bit_size, src0, src1, _nir_bindless_image_load_raw_intel_indices{0, __VA_ARGS__}) 11443 #else 11444 #define nir_build_bindless_image_load_raw_intel(build, num_components, bit_size, src0, src1, ...) \ 11445 _nir_build_bindless_image_load_raw_intel(build, num_components, bit_size, src0, src1, (struct _nir_bindless_image_load_raw_intel_indices){0, __VA_ARGS__}) 11446 #endif 11447 #define nir_bindless_image_load_raw_intel nir_build_bindless_image_load_raw_intel 11448 #ifdef __cplusplus 11449 #define nir_build_bindless_image_order(build, bit_size, src0, ...) \ 11450 _nir_build_bindless_image_order(build, bit_size, src0, _nir_bindless_image_order_indices{0, __VA_ARGS__}) 11451 #else 11452 #define nir_build_bindless_image_order(build, bit_size, src0, ...) \ 11453 _nir_build_bindless_image_order(build, bit_size, src0, (struct _nir_bindless_image_order_indices){0, __VA_ARGS__}) 11454 #endif 11455 #define nir_bindless_image_order nir_build_bindless_image_order 11456 #ifdef __cplusplus 11457 #define nir_build_bindless_image_samples(build, bit_size, src0, ...) \ 11458 _nir_build_bindless_image_samples(build, bit_size, src0, _nir_bindless_image_samples_indices{0, __VA_ARGS__}) 11459 #else 11460 #define nir_build_bindless_image_samples(build, bit_size, src0, ...) \ 11461 _nir_build_bindless_image_samples(build, bit_size, src0, (struct _nir_bindless_image_samples_indices){0, __VA_ARGS__}) 11462 #endif 11463 #define nir_bindless_image_samples nir_build_bindless_image_samples 11464 #ifdef __cplusplus 11465 #define nir_build_bindless_image_size(build, num_components, bit_size, src0, src1, ...) \ 11466 _nir_build_bindless_image_size(build, num_components, bit_size, src0, src1, _nir_bindless_image_size_indices{0, __VA_ARGS__}) 11467 #else 11468 #define nir_build_bindless_image_size(build, num_components, bit_size, src0, src1, ...) \ 11469 _nir_build_bindless_image_size(build, num_components, bit_size, src0, src1, (struct _nir_bindless_image_size_indices){0, __VA_ARGS__}) 11470 #endif 11471 #define nir_bindless_image_size nir_build_bindless_image_size 11472 #ifdef __cplusplus 11473 #define nir_build_bindless_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 11474 _nir_build_bindless_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, _nir_bindless_image_sparse_load_indices{0, __VA_ARGS__}) 11475 #else 11476 #define nir_build_bindless_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 11477 _nir_build_bindless_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, (struct _nir_bindless_image_sparse_load_indices){0, __VA_ARGS__}) 11478 #endif 11479 #define nir_bindless_image_sparse_load nir_build_bindless_image_sparse_load 11480 #ifdef __cplusplus 11481 #define nir_build_bindless_image_store(build, src0, src1, src2, src3, src4, ...) \ 11482 _nir_build_bindless_image_store(build, src0, src1, src2, src3, src4, _nir_bindless_image_store_indices{0, __VA_ARGS__}) 11483 #else 11484 #define nir_build_bindless_image_store(build, src0, src1, src2, src3, src4, ...) \ 11485 _nir_build_bindless_image_store(build, src0, src1, src2, src3, src4, (struct _nir_bindless_image_store_indices){0, __VA_ARGS__}) 11486 #endif 11487 #define nir_bindless_image_store nir_build_bindless_image_store 11488 #ifdef __cplusplus 11489 #define nir_build_bindless_image_store_raw_intel(build, src0, src1, src2, ...) \ 11490 _nir_build_bindless_image_store_raw_intel(build, src0, src1, src2, _nir_bindless_image_store_raw_intel_indices{0, __VA_ARGS__}) 11491 #else 11492 #define nir_build_bindless_image_store_raw_intel(build, src0, src1, src2, ...) \ 11493 _nir_build_bindless_image_store_raw_intel(build, src0, src1, src2, (struct _nir_bindless_image_store_raw_intel_indices){0, __VA_ARGS__}) 11494 #endif 11495 #define nir_bindless_image_store_raw_intel nir_build_bindless_image_store_raw_intel 11496 #ifdef __cplusplus 11497 #define nir_build_bindless_resource_ir3(build, bit_size, src0, ...) \ 11498 _nir_build_bindless_resource_ir3(build, bit_size, src0, _nir_bindless_resource_ir3_indices{0, __VA_ARGS__}) 11499 #else 11500 #define nir_build_bindless_resource_ir3(build, bit_size, src0, ...) \ 11501 _nir_build_bindless_resource_ir3(build, bit_size, src0, (struct _nir_bindless_resource_ir3_indices){0, __VA_ARGS__}) 11502 #endif 11503 #define nir_bindless_resource_ir3 nir_build_bindless_resource_ir3 11504 #define nir_build_btd_retire_intel _nir_build_btd_retire_intel 11505 #define nir_btd_retire_intel nir_build_btd_retire_intel 11506 #define nir_build_btd_spawn_intel _nir_build_btd_spawn_intel 11507 #define nir_btd_spawn_intel nir_build_btd_spawn_intel 11508 #ifdef __cplusplus 11509 #define nir_build_btd_stack_push_intel(build, ...) \ 11510 _nir_build_btd_stack_push_intel(build, _nir_btd_stack_push_intel_indices{0, __VA_ARGS__}) 11511 #else 11512 #define nir_build_btd_stack_push_intel(build, ...) \ 11513 _nir_build_btd_stack_push_intel(build, (struct _nir_btd_stack_push_intel_indices){0, __VA_ARGS__}) 11514 #endif 11515 #define nir_btd_stack_push_intel nir_build_btd_stack_push_intel 11516 #define nir_build_bvh64_intersect_ray_amd _nir_build_bvh64_intersect_ray_amd 11517 #define nir_bvh64_intersect_ray_amd nir_build_bvh64_intersect_ray_amd 11518 #define nir_build_byte_permute_amd _nir_build_byte_permute_amd 11519 #define nir_byte_permute_amd nir_build_byte_permute_amd 11520 #define nir_build_cond_end_ir3 _nir_build_cond_end_ir3 11521 #define nir_cond_end_ir3 nir_build_cond_end_ir3 11522 #define nir_build_control_barrier _nir_build_control_barrier 11523 #define nir_control_barrier nir_build_control_barrier 11524 #ifdef __cplusplus 11525 #define nir_build_convert_alu_types(build, bit_size, src0, ...) \ 11526 _nir_build_convert_alu_types(build, bit_size, src0, _nir_convert_alu_types_indices{0, __VA_ARGS__}) 11527 #else 11528 #define nir_build_convert_alu_types(build, bit_size, src0, ...) \ 11529 _nir_build_convert_alu_types(build, bit_size, src0, (struct _nir_convert_alu_types_indices){0, __VA_ARGS__}) 11530 #endif 11531 #define nir_convert_alu_types nir_build_convert_alu_types 11532 #ifdef __cplusplus 11533 #define nir_build_copy_deref(build, src0, src1, ...) \ 11534 _nir_build_copy_deref(build, src0, src1, _nir_copy_deref_indices{0, __VA_ARGS__}) 11535 #else 11536 #define nir_build_copy_deref(build, src0, src1, ...) \ 11537 _nir_build_copy_deref(build, src0, src1, (struct _nir_copy_deref_indices){0, __VA_ARGS__}) 11538 #endif 11539 #define nir_copy_deref nir_build_copy_deref 11540 #define nir_build_demote _nir_build_demote 11541 #define nir_demote nir_build_demote 11542 #define nir_build_demote_if _nir_build_demote_if 11543 #define nir_demote_if nir_build_demote_if 11544 #ifdef __cplusplus 11545 #define nir_build_deref_atomic_add(build, bit_size, src0, src1, ...) \ 11546 _nir_build_deref_atomic_add(build, bit_size, src0, src1, _nir_deref_atomic_add_indices{0, __VA_ARGS__}) 11547 #else 11548 #define nir_build_deref_atomic_add(build, bit_size, src0, src1, ...) \ 11549 _nir_build_deref_atomic_add(build, bit_size, src0, src1, (struct _nir_deref_atomic_add_indices){0, __VA_ARGS__}) 11550 #endif 11551 #define nir_deref_atomic_add nir_build_deref_atomic_add 11552 #ifdef __cplusplus 11553 #define nir_build_deref_atomic_and(build, bit_size, src0, src1, ...) \ 11554 _nir_build_deref_atomic_and(build, bit_size, src0, src1, _nir_deref_atomic_and_indices{0, __VA_ARGS__}) 11555 #else 11556 #define nir_build_deref_atomic_and(build, bit_size, src0, src1, ...) \ 11557 _nir_build_deref_atomic_and(build, bit_size, src0, src1, (struct _nir_deref_atomic_and_indices){0, __VA_ARGS__}) 11558 #endif 11559 #define nir_deref_atomic_and nir_build_deref_atomic_and 11560 #ifdef __cplusplus 11561 #define nir_build_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, ...) \ 11562 _nir_build_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, _nir_deref_atomic_comp_swap_indices{0, __VA_ARGS__}) 11563 #else 11564 #define nir_build_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, ...) \ 11565 _nir_build_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, (struct _nir_deref_atomic_comp_swap_indices){0, __VA_ARGS__}) 11566 #endif 11567 #define nir_deref_atomic_comp_swap nir_build_deref_atomic_comp_swap 11568 #ifdef __cplusplus 11569 #define nir_build_deref_atomic_exchange(build, bit_size, src0, src1, ...) \ 11570 _nir_build_deref_atomic_exchange(build, bit_size, src0, src1, _nir_deref_atomic_exchange_indices{0, __VA_ARGS__}) 11571 #else 11572 #define nir_build_deref_atomic_exchange(build, bit_size, src0, src1, ...) \ 11573 _nir_build_deref_atomic_exchange(build, bit_size, src0, src1, (struct _nir_deref_atomic_exchange_indices){0, __VA_ARGS__}) 11574 #endif 11575 #define nir_deref_atomic_exchange nir_build_deref_atomic_exchange 11576 #ifdef __cplusplus 11577 #define nir_build_deref_atomic_fadd(build, bit_size, src0, src1, ...) \ 11578 _nir_build_deref_atomic_fadd(build, bit_size, src0, src1, _nir_deref_atomic_fadd_indices{0, __VA_ARGS__}) 11579 #else 11580 #define nir_build_deref_atomic_fadd(build, bit_size, src0, src1, ...) \ 11581 _nir_build_deref_atomic_fadd(build, bit_size, src0, src1, (struct _nir_deref_atomic_fadd_indices){0, __VA_ARGS__}) 11582 #endif 11583 #define nir_deref_atomic_fadd nir_build_deref_atomic_fadd 11584 #ifdef __cplusplus 11585 #define nir_build_deref_atomic_fcomp_swap(build, bit_size, src0, src1, src2, ...) \ 11586 _nir_build_deref_atomic_fcomp_swap(build, bit_size, src0, src1, src2, _nir_deref_atomic_fcomp_swap_indices{0, __VA_ARGS__}) 11587 #else 11588 #define nir_build_deref_atomic_fcomp_swap(build, bit_size, src0, src1, src2, ...) \ 11589 _nir_build_deref_atomic_fcomp_swap(build, bit_size, src0, src1, src2, (struct _nir_deref_atomic_fcomp_swap_indices){0, __VA_ARGS__}) 11590 #endif 11591 #define nir_deref_atomic_fcomp_swap nir_build_deref_atomic_fcomp_swap 11592 #ifdef __cplusplus 11593 #define nir_build_deref_atomic_fmax(build, bit_size, src0, src1, ...) \ 11594 _nir_build_deref_atomic_fmax(build, bit_size, src0, src1, _nir_deref_atomic_fmax_indices{0, __VA_ARGS__}) 11595 #else 11596 #define nir_build_deref_atomic_fmax(build, bit_size, src0, src1, ...) \ 11597 _nir_build_deref_atomic_fmax(build, bit_size, src0, src1, (struct _nir_deref_atomic_fmax_indices){0, __VA_ARGS__}) 11598 #endif 11599 #define nir_deref_atomic_fmax nir_build_deref_atomic_fmax 11600 #ifdef __cplusplus 11601 #define nir_build_deref_atomic_fmin(build, bit_size, src0, src1, ...) \ 11602 _nir_build_deref_atomic_fmin(build, bit_size, src0, src1, _nir_deref_atomic_fmin_indices{0, __VA_ARGS__}) 11603 #else 11604 #define nir_build_deref_atomic_fmin(build, bit_size, src0, src1, ...) \ 11605 _nir_build_deref_atomic_fmin(build, bit_size, src0, src1, (struct _nir_deref_atomic_fmin_indices){0, __VA_ARGS__}) 11606 #endif 11607 #define nir_deref_atomic_fmin nir_build_deref_atomic_fmin 11608 #ifdef __cplusplus 11609 #define nir_build_deref_atomic_imax(build, bit_size, src0, src1, ...) \ 11610 _nir_build_deref_atomic_imax(build, bit_size, src0, src1, _nir_deref_atomic_imax_indices{0, __VA_ARGS__}) 11611 #else 11612 #define nir_build_deref_atomic_imax(build, bit_size, src0, src1, ...) \ 11613 _nir_build_deref_atomic_imax(build, bit_size, src0, src1, (struct _nir_deref_atomic_imax_indices){0, __VA_ARGS__}) 11614 #endif 11615 #define nir_deref_atomic_imax nir_build_deref_atomic_imax 11616 #ifdef __cplusplus 11617 #define nir_build_deref_atomic_imin(build, bit_size, src0, src1, ...) \ 11618 _nir_build_deref_atomic_imin(build, bit_size, src0, src1, _nir_deref_atomic_imin_indices{0, __VA_ARGS__}) 11619 #else 11620 #define nir_build_deref_atomic_imin(build, bit_size, src0, src1, ...) \ 11621 _nir_build_deref_atomic_imin(build, bit_size, src0, src1, (struct _nir_deref_atomic_imin_indices){0, __VA_ARGS__}) 11622 #endif 11623 #define nir_deref_atomic_imin nir_build_deref_atomic_imin 11624 #ifdef __cplusplus 11625 #define nir_build_deref_atomic_or(build, bit_size, src0, src1, ...) \ 11626 _nir_build_deref_atomic_or(build, bit_size, src0, src1, _nir_deref_atomic_or_indices{0, __VA_ARGS__}) 11627 #else 11628 #define nir_build_deref_atomic_or(build, bit_size, src0, src1, ...) \ 11629 _nir_build_deref_atomic_or(build, bit_size, src0, src1, (struct _nir_deref_atomic_or_indices){0, __VA_ARGS__}) 11630 #endif 11631 #define nir_deref_atomic_or nir_build_deref_atomic_or 11632 #ifdef __cplusplus 11633 #define nir_build_deref_atomic_umax(build, bit_size, src0, src1, ...) \ 11634 _nir_build_deref_atomic_umax(build, bit_size, src0, src1, _nir_deref_atomic_umax_indices{0, __VA_ARGS__}) 11635 #else 11636 #define nir_build_deref_atomic_umax(build, bit_size, src0, src1, ...) \ 11637 _nir_build_deref_atomic_umax(build, bit_size, src0, src1, (struct _nir_deref_atomic_umax_indices){0, __VA_ARGS__}) 11638 #endif 11639 #define nir_deref_atomic_umax nir_build_deref_atomic_umax 11640 #ifdef __cplusplus 11641 #define nir_build_deref_atomic_umin(build, bit_size, src0, src1, ...) \ 11642 _nir_build_deref_atomic_umin(build, bit_size, src0, src1, _nir_deref_atomic_umin_indices{0, __VA_ARGS__}) 11643 #else 11644 #define nir_build_deref_atomic_umin(build, bit_size, src0, src1, ...) \ 11645 _nir_build_deref_atomic_umin(build, bit_size, src0, src1, (struct _nir_deref_atomic_umin_indices){0, __VA_ARGS__}) 11646 #endif 11647 #define nir_deref_atomic_umin nir_build_deref_atomic_umin 11648 #ifdef __cplusplus 11649 #define nir_build_deref_atomic_xor(build, bit_size, src0, src1, ...) \ 11650 _nir_build_deref_atomic_xor(build, bit_size, src0, src1, _nir_deref_atomic_xor_indices{0, __VA_ARGS__}) 11651 #else 11652 #define nir_build_deref_atomic_xor(build, bit_size, src0, src1, ...) \ 11653 _nir_build_deref_atomic_xor(build, bit_size, src0, src1, (struct _nir_deref_atomic_xor_indices){0, __VA_ARGS__}) 11654 #endif 11655 #define nir_deref_atomic_xor nir_build_deref_atomic_xor 11656 #ifdef __cplusplus 11657 #define nir_build_deref_buffer_array_length(build, bit_size, src0, ...) \ 11658 _nir_build_deref_buffer_array_length(build, bit_size, src0, _nir_deref_buffer_array_length_indices{0, __VA_ARGS__}) 11659 #else 11660 #define nir_build_deref_buffer_array_length(build, bit_size, src0, ...) \ 11661 _nir_build_deref_buffer_array_length(build, bit_size, src0, (struct _nir_deref_buffer_array_length_indices){0, __VA_ARGS__}) 11662 #endif 11663 #define nir_deref_buffer_array_length nir_build_deref_buffer_array_length 11664 #ifdef __cplusplus 11665 #define nir_build_deref_mode_is(build, bit_size, src0, ...) \ 11666 _nir_build_deref_mode_is(build, bit_size, src0, _nir_deref_mode_is_indices{0, __VA_ARGS__}) 11667 #else 11668 #define nir_build_deref_mode_is(build, bit_size, src0, ...) \ 11669 _nir_build_deref_mode_is(build, bit_size, src0, (struct _nir_deref_mode_is_indices){0, __VA_ARGS__}) 11670 #endif 11671 #define nir_deref_mode_is nir_build_deref_mode_is 11672 #define nir_build_discard _nir_build_discard 11673 #define nir_discard nir_build_discard 11674 #define nir_build_discard_if _nir_build_discard_if 11675 #define nir_discard_if nir_build_discard_if 11676 #define nir_build_elect _nir_build_elect 11677 #define nir_elect nir_build_elect 11678 #ifdef __cplusplus 11679 #define nir_build_emit_vertex(build, ...) \ 11680 _nir_build_emit_vertex(build, _nir_emit_vertex_indices{0, __VA_ARGS__}) 11681 #else 11682 #define nir_build_emit_vertex(build, ...) \ 11683 _nir_build_emit_vertex(build, (struct _nir_emit_vertex_indices){0, __VA_ARGS__}) 11684 #endif 11685 #define nir_emit_vertex nir_build_emit_vertex 11686 #ifdef __cplusplus 11687 #define nir_build_emit_vertex_with_counter(build, src0, src1, ...) \ 11688 _nir_build_emit_vertex_with_counter(build, src0, src1, _nir_emit_vertex_with_counter_indices{0, __VA_ARGS__}) 11689 #else 11690 #define nir_build_emit_vertex_with_counter(build, src0, src1, ...) \ 11691 _nir_build_emit_vertex_with_counter(build, src0, src1, (struct _nir_emit_vertex_with_counter_indices){0, __VA_ARGS__}) 11692 #endif 11693 #define nir_emit_vertex_with_counter nir_build_emit_vertex_with_counter 11694 #define nir_build_end_invocation_interlock _nir_build_end_invocation_interlock 11695 #define nir_end_invocation_interlock nir_build_end_invocation_interlock 11696 #define nir_build_end_patch_ir3 _nir_build_end_patch_ir3 11697 #define nir_end_patch_ir3 nir_build_end_patch_ir3 11698 #ifdef __cplusplus 11699 #define nir_build_end_primitive(build, ...) \ 11700 _nir_build_end_primitive(build, _nir_end_primitive_indices{0, __VA_ARGS__}) 11701 #else 11702 #define nir_build_end_primitive(build, ...) \ 11703 _nir_build_end_primitive(build, (struct _nir_end_primitive_indices){0, __VA_ARGS__}) 11704 #endif 11705 #define nir_end_primitive nir_build_end_primitive 11706 #ifdef __cplusplus 11707 #define nir_build_end_primitive_with_counter(build, src0, src1, ...) \ 11708 _nir_build_end_primitive_with_counter(build, src0, src1, _nir_end_primitive_with_counter_indices{0, __VA_ARGS__}) 11709 #else 11710 #define nir_build_end_primitive_with_counter(build, src0, src1, ...) \ 11711 _nir_build_end_primitive_with_counter(build, src0, src1, (struct _nir_end_primitive_with_counter_indices){0, __VA_ARGS__}) 11712 #endif 11713 #define nir_end_primitive_with_counter nir_build_end_primitive_with_counter 11714 #ifdef __cplusplus 11715 #define nir_build_exclusive_scan(build, src0, ...) \ 11716 _nir_build_exclusive_scan(build, src0, _nir_exclusive_scan_indices{0, __VA_ARGS__}) 11717 #else 11718 #define nir_build_exclusive_scan(build, src0, ...) \ 11719 _nir_build_exclusive_scan(build, src0, (struct _nir_exclusive_scan_indices){0, __VA_ARGS__}) 11720 #endif 11721 #define nir_exclusive_scan nir_build_exclusive_scan 11722 #define nir_build_execute_callable _nir_build_execute_callable 11723 #define nir_execute_callable nir_build_execute_callable 11724 #define nir_build_export_primitive_amd _nir_build_export_primitive_amd 11725 #define nir_export_primitive_amd nir_build_export_primitive_amd 11726 #define nir_build_export_vertex_amd _nir_build_export_vertex_amd 11727 #define nir_export_vertex_amd nir_build_export_vertex_amd 11728 #define nir_build_first_invocation _nir_build_first_invocation 11729 #define nir_first_invocation nir_build_first_invocation 11730 #ifdef __cplusplus 11731 #define nir_build_gds_atomic_add_amd(build, bit_size, src0, src1, src2, ...) \ 11732 _nir_build_gds_atomic_add_amd(build, bit_size, src0, src1, src2, _nir_gds_atomic_add_amd_indices{0, __VA_ARGS__}) 11733 #else 11734 #define nir_build_gds_atomic_add_amd(build, bit_size, src0, src1, src2, ...) \ 11735 _nir_build_gds_atomic_add_amd(build, bit_size, src0, src1, src2, (struct _nir_gds_atomic_add_amd_indices){0, __VA_ARGS__}) 11736 #endif 11737 #define nir_gds_atomic_add_amd nir_build_gds_atomic_add_amd 11738 #ifdef __cplusplus 11739 #define nir_build_get_ssbo_size(build, src0, ...) \ 11740 _nir_build_get_ssbo_size(build, src0, _nir_get_ssbo_size_indices{0, __VA_ARGS__}) 11741 #else 11742 #define nir_build_get_ssbo_size(build, src0, ...) \ 11743 _nir_build_get_ssbo_size(build, src0, (struct _nir_get_ssbo_size_indices){0, __VA_ARGS__}) 11744 #endif 11745 #define nir_get_ssbo_size nir_build_get_ssbo_size 11746 #define nir_build_get_ubo_size _nir_build_get_ubo_size 11747 #define nir_get_ubo_size nir_build_get_ubo_size 11748 #ifdef __cplusplus 11749 #define nir_build_global_atomic_add(build, bit_size, src0, src1, ...) \ 11750 _nir_build_global_atomic_add(build, bit_size, src0, src1, _nir_global_atomic_add_indices{0, __VA_ARGS__}) 11751 #else 11752 #define nir_build_global_atomic_add(build, bit_size, src0, src1, ...) \ 11753 _nir_build_global_atomic_add(build, bit_size, src0, src1, (struct _nir_global_atomic_add_indices){0, __VA_ARGS__}) 11754 #endif 11755 #define nir_global_atomic_add nir_build_global_atomic_add 11756 #ifdef __cplusplus 11757 #define nir_build_global_atomic_and(build, bit_size, src0, src1, ...) \ 11758 _nir_build_global_atomic_and(build, bit_size, src0, src1, _nir_global_atomic_and_indices{0, __VA_ARGS__}) 11759 #else 11760 #define nir_build_global_atomic_and(build, bit_size, src0, src1, ...) \ 11761 _nir_build_global_atomic_and(build, bit_size, src0, src1, (struct _nir_global_atomic_and_indices){0, __VA_ARGS__}) 11762 #endif 11763 #define nir_global_atomic_and nir_build_global_atomic_and 11764 #ifdef __cplusplus 11765 #define nir_build_global_atomic_comp_swap(build, bit_size, src0, src1, src2, ...) \ 11766 _nir_build_global_atomic_comp_swap(build, bit_size, src0, src1, src2, _nir_global_atomic_comp_swap_indices{0, __VA_ARGS__}) 11767 #else 11768 #define nir_build_global_atomic_comp_swap(build, bit_size, src0, src1, src2, ...) \ 11769 _nir_build_global_atomic_comp_swap(build, bit_size, src0, src1, src2, (struct _nir_global_atomic_comp_swap_indices){0, __VA_ARGS__}) 11770 #endif 11771 #define nir_global_atomic_comp_swap nir_build_global_atomic_comp_swap 11772 #ifdef __cplusplus 11773 #define nir_build_global_atomic_exchange(build, bit_size, src0, src1, ...) \ 11774 _nir_build_global_atomic_exchange(build, bit_size, src0, src1, _nir_global_atomic_exchange_indices{0, __VA_ARGS__}) 11775 #else 11776 #define nir_build_global_atomic_exchange(build, bit_size, src0, src1, ...) \ 11777 _nir_build_global_atomic_exchange(build, bit_size, src0, src1, (struct _nir_global_atomic_exchange_indices){0, __VA_ARGS__}) 11778 #endif 11779 #define nir_global_atomic_exchange nir_build_global_atomic_exchange 11780 #ifdef __cplusplus 11781 #define nir_build_global_atomic_fadd(build, bit_size, src0, src1, ...) \ 11782 _nir_build_global_atomic_fadd(build, bit_size, src0, src1, _nir_global_atomic_fadd_indices{0, __VA_ARGS__}) 11783 #else 11784 #define nir_build_global_atomic_fadd(build, bit_size, src0, src1, ...) \ 11785 _nir_build_global_atomic_fadd(build, bit_size, src0, src1, (struct _nir_global_atomic_fadd_indices){0, __VA_ARGS__}) 11786 #endif 11787 #define nir_global_atomic_fadd nir_build_global_atomic_fadd 11788 #ifdef __cplusplus 11789 #define nir_build_global_atomic_fcomp_swap(build, bit_size, src0, src1, src2, ...) \ 11790 _nir_build_global_atomic_fcomp_swap(build, bit_size, src0, src1, src2, _nir_global_atomic_fcomp_swap_indices{0, __VA_ARGS__}) 11791 #else 11792 #define nir_build_global_atomic_fcomp_swap(build, bit_size, src0, src1, src2, ...) \ 11793 _nir_build_global_atomic_fcomp_swap(build, bit_size, src0, src1, src2, (struct _nir_global_atomic_fcomp_swap_indices){0, __VA_ARGS__}) 11794 #endif 11795 #define nir_global_atomic_fcomp_swap nir_build_global_atomic_fcomp_swap 11796 #ifdef __cplusplus 11797 #define nir_build_global_atomic_fmax(build, bit_size, src0, src1, ...) \ 11798 _nir_build_global_atomic_fmax(build, bit_size, src0, src1, _nir_global_atomic_fmax_indices{0, __VA_ARGS__}) 11799 #else 11800 #define nir_build_global_atomic_fmax(build, bit_size, src0, src1, ...) \ 11801 _nir_build_global_atomic_fmax(build, bit_size, src0, src1, (struct _nir_global_atomic_fmax_indices){0, __VA_ARGS__}) 11802 #endif 11803 #define nir_global_atomic_fmax nir_build_global_atomic_fmax 11804 #ifdef __cplusplus 11805 #define nir_build_global_atomic_fmin(build, bit_size, src0, src1, ...) \ 11806 _nir_build_global_atomic_fmin(build, bit_size, src0, src1, _nir_global_atomic_fmin_indices{0, __VA_ARGS__}) 11807 #else 11808 #define nir_build_global_atomic_fmin(build, bit_size, src0, src1, ...) \ 11809 _nir_build_global_atomic_fmin(build, bit_size, src0, src1, (struct _nir_global_atomic_fmin_indices){0, __VA_ARGS__}) 11810 #endif 11811 #define nir_global_atomic_fmin nir_build_global_atomic_fmin 11812 #ifdef __cplusplus 11813 #define nir_build_global_atomic_imax(build, bit_size, src0, src1, ...) \ 11814 _nir_build_global_atomic_imax(build, bit_size, src0, src1, _nir_global_atomic_imax_indices{0, __VA_ARGS__}) 11815 #else 11816 #define nir_build_global_atomic_imax(build, bit_size, src0, src1, ...) \ 11817 _nir_build_global_atomic_imax(build, bit_size, src0, src1, (struct _nir_global_atomic_imax_indices){0, __VA_ARGS__}) 11818 #endif 11819 #define nir_global_atomic_imax nir_build_global_atomic_imax 11820 #ifdef __cplusplus 11821 #define nir_build_global_atomic_imin(build, bit_size, src0, src1, ...) \ 11822 _nir_build_global_atomic_imin(build, bit_size, src0, src1, _nir_global_atomic_imin_indices{0, __VA_ARGS__}) 11823 #else 11824 #define nir_build_global_atomic_imin(build, bit_size, src0, src1, ...) \ 11825 _nir_build_global_atomic_imin(build, bit_size, src0, src1, (struct _nir_global_atomic_imin_indices){0, __VA_ARGS__}) 11826 #endif 11827 #define nir_global_atomic_imin nir_build_global_atomic_imin 11828 #ifdef __cplusplus 11829 #define nir_build_global_atomic_or(build, bit_size, src0, src1, ...) \ 11830 _nir_build_global_atomic_or(build, bit_size, src0, src1, _nir_global_atomic_or_indices{0, __VA_ARGS__}) 11831 #else 11832 #define nir_build_global_atomic_or(build, bit_size, src0, src1, ...) \ 11833 _nir_build_global_atomic_or(build, bit_size, src0, src1, (struct _nir_global_atomic_or_indices){0, __VA_ARGS__}) 11834 #endif 11835 #define nir_global_atomic_or nir_build_global_atomic_or 11836 #ifdef __cplusplus 11837 #define nir_build_global_atomic_umax(build, bit_size, src0, src1, ...) \ 11838 _nir_build_global_atomic_umax(build, bit_size, src0, src1, _nir_global_atomic_umax_indices{0, __VA_ARGS__}) 11839 #else 11840 #define nir_build_global_atomic_umax(build, bit_size, src0, src1, ...) \ 11841 _nir_build_global_atomic_umax(build, bit_size, src0, src1, (struct _nir_global_atomic_umax_indices){0, __VA_ARGS__}) 11842 #endif 11843 #define nir_global_atomic_umax nir_build_global_atomic_umax 11844 #ifdef __cplusplus 11845 #define nir_build_global_atomic_umin(build, bit_size, src0, src1, ...) \ 11846 _nir_build_global_atomic_umin(build, bit_size, src0, src1, _nir_global_atomic_umin_indices{0, __VA_ARGS__}) 11847 #else 11848 #define nir_build_global_atomic_umin(build, bit_size, src0, src1, ...) \ 11849 _nir_build_global_atomic_umin(build, bit_size, src0, src1, (struct _nir_global_atomic_umin_indices){0, __VA_ARGS__}) 11850 #endif 11851 #define nir_global_atomic_umin nir_build_global_atomic_umin 11852 #ifdef __cplusplus 11853 #define nir_build_global_atomic_xor(build, bit_size, src0, src1, ...) \ 11854 _nir_build_global_atomic_xor(build, bit_size, src0, src1, _nir_global_atomic_xor_indices{0, __VA_ARGS__}) 11855 #else 11856 #define nir_build_global_atomic_xor(build, bit_size, src0, src1, ...) \ 11857 _nir_build_global_atomic_xor(build, bit_size, src0, src1, (struct _nir_global_atomic_xor_indices){0, __VA_ARGS__}) 11858 #endif 11859 #define nir_global_atomic_xor nir_build_global_atomic_xor 11860 #define nir_build_group_memory_barrier _nir_build_group_memory_barrier 11861 #define nir_group_memory_barrier nir_build_group_memory_barrier 11862 #define nir_build_has_input_primitive_amd _nir_build_has_input_primitive_amd 11863 #define nir_has_input_primitive_amd nir_build_has_input_primitive_amd 11864 #define nir_build_has_input_vertex_amd _nir_build_has_input_vertex_amd 11865 #define nir_has_input_vertex_amd nir_build_has_input_vertex_amd 11866 #define nir_build_ignore_ray_intersection _nir_build_ignore_ray_intersection 11867 #define nir_ignore_ray_intersection nir_build_ignore_ray_intersection 11868 #ifdef __cplusplus 11869 #define nir_build_image_atomic_add(build, bit_size, src0, src1, src2, src3, ...) \ 11870 _nir_build_image_atomic_add(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_add_indices{0, __VA_ARGS__}) 11871 #else 11872 #define nir_build_image_atomic_add(build, bit_size, src0, src1, src2, src3, ...) \ 11873 _nir_build_image_atomic_add(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_add_indices){0, __VA_ARGS__}) 11874 #endif 11875 #define nir_image_atomic_add nir_build_image_atomic_add 11876 #ifdef __cplusplus 11877 #define nir_build_image_atomic_and(build, bit_size, src0, src1, src2, src3, ...) \ 11878 _nir_build_image_atomic_and(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_and_indices{0, __VA_ARGS__}) 11879 #else 11880 #define nir_build_image_atomic_and(build, bit_size, src0, src1, src2, src3, ...) \ 11881 _nir_build_image_atomic_and(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_and_indices){0, __VA_ARGS__}) 11882 #endif 11883 #define nir_image_atomic_and nir_build_image_atomic_and 11884 #ifdef __cplusplus 11885 #define nir_build_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, ...) \ 11886 _nir_build_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, _nir_image_atomic_comp_swap_indices{0, __VA_ARGS__}) 11887 #else 11888 #define nir_build_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, ...) \ 11889 _nir_build_image_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, (struct _nir_image_atomic_comp_swap_indices){0, __VA_ARGS__}) 11890 #endif 11891 #define nir_image_atomic_comp_swap nir_build_image_atomic_comp_swap 11892 #ifdef __cplusplus 11893 #define nir_build_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11894 _nir_build_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_dec_wrap_indices{0, __VA_ARGS__}) 11895 #else 11896 #define nir_build_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11897 _nir_build_image_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_dec_wrap_indices){0, __VA_ARGS__}) 11898 #endif 11899 #define nir_image_atomic_dec_wrap nir_build_image_atomic_dec_wrap 11900 #ifdef __cplusplus 11901 #define nir_build_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, ...) \ 11902 _nir_build_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_exchange_indices{0, __VA_ARGS__}) 11903 #else 11904 #define nir_build_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, ...) \ 11905 _nir_build_image_atomic_exchange(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_exchange_indices){0, __VA_ARGS__}) 11906 #endif 11907 #define nir_image_atomic_exchange nir_build_image_atomic_exchange 11908 #ifdef __cplusplus 11909 #define nir_build_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, ...) \ 11910 _nir_build_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_fadd_indices{0, __VA_ARGS__}) 11911 #else 11912 #define nir_build_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, ...) \ 11913 _nir_build_image_atomic_fadd(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_fadd_indices){0, __VA_ARGS__}) 11914 #endif 11915 #define nir_image_atomic_fadd nir_build_image_atomic_fadd 11916 #ifdef __cplusplus 11917 #define nir_build_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, ...) \ 11918 _nir_build_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_fmax_indices{0, __VA_ARGS__}) 11919 #else 11920 #define nir_build_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, ...) \ 11921 _nir_build_image_atomic_fmax(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_fmax_indices){0, __VA_ARGS__}) 11922 #endif 11923 #define nir_image_atomic_fmax nir_build_image_atomic_fmax 11924 #ifdef __cplusplus 11925 #define nir_build_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, ...) \ 11926 _nir_build_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_fmin_indices{0, __VA_ARGS__}) 11927 #else 11928 #define nir_build_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, ...) \ 11929 _nir_build_image_atomic_fmin(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_fmin_indices){0, __VA_ARGS__}) 11930 #endif 11931 #define nir_image_atomic_fmin nir_build_image_atomic_fmin 11932 #ifdef __cplusplus 11933 #define nir_build_image_atomic_imax(build, bit_size, src0, src1, src2, src3, ...) \ 11934 _nir_build_image_atomic_imax(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_imax_indices{0, __VA_ARGS__}) 11935 #else 11936 #define nir_build_image_atomic_imax(build, bit_size, src0, src1, src2, src3, ...) \ 11937 _nir_build_image_atomic_imax(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_imax_indices){0, __VA_ARGS__}) 11938 #endif 11939 #define nir_image_atomic_imax nir_build_image_atomic_imax 11940 #ifdef __cplusplus 11941 #define nir_build_image_atomic_imin(build, bit_size, src0, src1, src2, src3, ...) \ 11942 _nir_build_image_atomic_imin(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_imin_indices{0, __VA_ARGS__}) 11943 #else 11944 #define nir_build_image_atomic_imin(build, bit_size, src0, src1, src2, src3, ...) \ 11945 _nir_build_image_atomic_imin(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_imin_indices){0, __VA_ARGS__}) 11946 #endif 11947 #define nir_image_atomic_imin nir_build_image_atomic_imin 11948 #ifdef __cplusplus 11949 #define nir_build_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11950 _nir_build_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_inc_wrap_indices{0, __VA_ARGS__}) 11951 #else 11952 #define nir_build_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 11953 _nir_build_image_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_inc_wrap_indices){0, __VA_ARGS__}) 11954 #endif 11955 #define nir_image_atomic_inc_wrap nir_build_image_atomic_inc_wrap 11956 #ifdef __cplusplus 11957 #define nir_build_image_atomic_or(build, bit_size, src0, src1, src2, src3, ...) \ 11958 _nir_build_image_atomic_or(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_or_indices{0, __VA_ARGS__}) 11959 #else 11960 #define nir_build_image_atomic_or(build, bit_size, src0, src1, src2, src3, ...) \ 11961 _nir_build_image_atomic_or(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_or_indices){0, __VA_ARGS__}) 11962 #endif 11963 #define nir_image_atomic_or nir_build_image_atomic_or 11964 #ifdef __cplusplus 11965 #define nir_build_image_atomic_umax(build, bit_size, src0, src1, src2, src3, ...) \ 11966 _nir_build_image_atomic_umax(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_umax_indices{0, __VA_ARGS__}) 11967 #else 11968 #define nir_build_image_atomic_umax(build, bit_size, src0, src1, src2, src3, ...) \ 11969 _nir_build_image_atomic_umax(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_umax_indices){0, __VA_ARGS__}) 11970 #endif 11971 #define nir_image_atomic_umax nir_build_image_atomic_umax 11972 #ifdef __cplusplus 11973 #define nir_build_image_atomic_umin(build, bit_size, src0, src1, src2, src3, ...) \ 11974 _nir_build_image_atomic_umin(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_umin_indices{0, __VA_ARGS__}) 11975 #else 11976 #define nir_build_image_atomic_umin(build, bit_size, src0, src1, src2, src3, ...) \ 11977 _nir_build_image_atomic_umin(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_umin_indices){0, __VA_ARGS__}) 11978 #endif 11979 #define nir_image_atomic_umin nir_build_image_atomic_umin 11980 #ifdef __cplusplus 11981 #define nir_build_image_atomic_xor(build, bit_size, src0, src1, src2, src3, ...) \ 11982 _nir_build_image_atomic_xor(build, bit_size, src0, src1, src2, src3, _nir_image_atomic_xor_indices{0, __VA_ARGS__}) 11983 #else 11984 #define nir_build_image_atomic_xor(build, bit_size, src0, src1, src2, src3, ...) \ 11985 _nir_build_image_atomic_xor(build, bit_size, src0, src1, src2, src3, (struct _nir_image_atomic_xor_indices){0, __VA_ARGS__}) 11986 #endif 11987 #define nir_image_atomic_xor nir_build_image_atomic_xor 11988 #ifdef __cplusplus 11989 #define nir_build_image_deref_atomic_add(build, bit_size, src0, src1, src2, src3, ...) \ 11990 _nir_build_image_deref_atomic_add(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_add_indices{0, __VA_ARGS__}) 11991 #else 11992 #define nir_build_image_deref_atomic_add(build, bit_size, src0, src1, src2, src3, ...) \ 11993 _nir_build_image_deref_atomic_add(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_add_indices){0, __VA_ARGS__}) 11994 #endif 11995 #define nir_image_deref_atomic_add nir_build_image_deref_atomic_add 11996 #ifdef __cplusplus 11997 #define nir_build_image_deref_atomic_and(build, bit_size, src0, src1, src2, src3, ...) \ 11998 _nir_build_image_deref_atomic_and(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_and_indices{0, __VA_ARGS__}) 11999 #else 12000 #define nir_build_image_deref_atomic_and(build, bit_size, src0, src1, src2, src3, ...) \ 12001 _nir_build_image_deref_atomic_and(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_and_indices){0, __VA_ARGS__}) 12002 #endif 12003 #define nir_image_deref_atomic_and nir_build_image_deref_atomic_and 12004 #ifdef __cplusplus 12005 #define nir_build_image_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, ...) \ 12006 _nir_build_image_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, _nir_image_deref_atomic_comp_swap_indices{0, __VA_ARGS__}) 12007 #else 12008 #define nir_build_image_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, ...) \ 12009 _nir_build_image_deref_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, src4, (struct _nir_image_deref_atomic_comp_swap_indices){0, __VA_ARGS__}) 12010 #endif 12011 #define nir_image_deref_atomic_comp_swap nir_build_image_deref_atomic_comp_swap 12012 #ifdef __cplusplus 12013 #define nir_build_image_deref_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 12014 _nir_build_image_deref_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_dec_wrap_indices{0, __VA_ARGS__}) 12015 #else 12016 #define nir_build_image_deref_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 12017 _nir_build_image_deref_atomic_dec_wrap(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_dec_wrap_indices){0, __VA_ARGS__}) 12018 #endif 12019 #define nir_image_deref_atomic_dec_wrap nir_build_image_deref_atomic_dec_wrap 12020 #ifdef __cplusplus 12021 #define nir_build_image_deref_atomic_exchange(build, bit_size, src0, src1, src2, src3, ...) \ 12022 _nir_build_image_deref_atomic_exchange(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_exchange_indices{0, __VA_ARGS__}) 12023 #else 12024 #define nir_build_image_deref_atomic_exchange(build, bit_size, src0, src1, src2, src3, ...) \ 12025 _nir_build_image_deref_atomic_exchange(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_exchange_indices){0, __VA_ARGS__}) 12026 #endif 12027 #define nir_image_deref_atomic_exchange nir_build_image_deref_atomic_exchange 12028 #ifdef __cplusplus 12029 #define nir_build_image_deref_atomic_fadd(build, bit_size, src0, src1, src2, src3, ...) \ 12030 _nir_build_image_deref_atomic_fadd(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_fadd_indices{0, __VA_ARGS__}) 12031 #else 12032 #define nir_build_image_deref_atomic_fadd(build, bit_size, src0, src1, src2, src3, ...) \ 12033 _nir_build_image_deref_atomic_fadd(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_fadd_indices){0, __VA_ARGS__}) 12034 #endif 12035 #define nir_image_deref_atomic_fadd nir_build_image_deref_atomic_fadd 12036 #ifdef __cplusplus 12037 #define nir_build_image_deref_atomic_fmax(build, bit_size, src0, src1, src2, src3, ...) \ 12038 _nir_build_image_deref_atomic_fmax(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_fmax_indices{0, __VA_ARGS__}) 12039 #else 12040 #define nir_build_image_deref_atomic_fmax(build, bit_size, src0, src1, src2, src3, ...) \ 12041 _nir_build_image_deref_atomic_fmax(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_fmax_indices){0, __VA_ARGS__}) 12042 #endif 12043 #define nir_image_deref_atomic_fmax nir_build_image_deref_atomic_fmax 12044 #ifdef __cplusplus 12045 #define nir_build_image_deref_atomic_fmin(build, bit_size, src0, src1, src2, src3, ...) \ 12046 _nir_build_image_deref_atomic_fmin(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_fmin_indices{0, __VA_ARGS__}) 12047 #else 12048 #define nir_build_image_deref_atomic_fmin(build, bit_size, src0, src1, src2, src3, ...) \ 12049 _nir_build_image_deref_atomic_fmin(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_fmin_indices){0, __VA_ARGS__}) 12050 #endif 12051 #define nir_image_deref_atomic_fmin nir_build_image_deref_atomic_fmin 12052 #ifdef __cplusplus 12053 #define nir_build_image_deref_atomic_imax(build, bit_size, src0, src1, src2, src3, ...) \ 12054 _nir_build_image_deref_atomic_imax(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_imax_indices{0, __VA_ARGS__}) 12055 #else 12056 #define nir_build_image_deref_atomic_imax(build, bit_size, src0, src1, src2, src3, ...) \ 12057 _nir_build_image_deref_atomic_imax(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_imax_indices){0, __VA_ARGS__}) 12058 #endif 12059 #define nir_image_deref_atomic_imax nir_build_image_deref_atomic_imax 12060 #ifdef __cplusplus 12061 #define nir_build_image_deref_atomic_imin(build, bit_size, src0, src1, src2, src3, ...) \ 12062 _nir_build_image_deref_atomic_imin(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_imin_indices{0, __VA_ARGS__}) 12063 #else 12064 #define nir_build_image_deref_atomic_imin(build, bit_size, src0, src1, src2, src3, ...) \ 12065 _nir_build_image_deref_atomic_imin(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_imin_indices){0, __VA_ARGS__}) 12066 #endif 12067 #define nir_image_deref_atomic_imin nir_build_image_deref_atomic_imin 12068 #ifdef __cplusplus 12069 #define nir_build_image_deref_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 12070 _nir_build_image_deref_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_inc_wrap_indices{0, __VA_ARGS__}) 12071 #else 12072 #define nir_build_image_deref_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, ...) \ 12073 _nir_build_image_deref_atomic_inc_wrap(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_inc_wrap_indices){0, __VA_ARGS__}) 12074 #endif 12075 #define nir_image_deref_atomic_inc_wrap nir_build_image_deref_atomic_inc_wrap 12076 #ifdef __cplusplus 12077 #define nir_build_image_deref_atomic_or(build, bit_size, src0, src1, src2, src3, ...) \ 12078 _nir_build_image_deref_atomic_or(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_or_indices{0, __VA_ARGS__}) 12079 #else 12080 #define nir_build_image_deref_atomic_or(build, bit_size, src0, src1, src2, src3, ...) \ 12081 _nir_build_image_deref_atomic_or(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_or_indices){0, __VA_ARGS__}) 12082 #endif 12083 #define nir_image_deref_atomic_or nir_build_image_deref_atomic_or 12084 #ifdef __cplusplus 12085 #define nir_build_image_deref_atomic_umax(build, bit_size, src0, src1, src2, src3, ...) \ 12086 _nir_build_image_deref_atomic_umax(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_umax_indices{0, __VA_ARGS__}) 12087 #else 12088 #define nir_build_image_deref_atomic_umax(build, bit_size, src0, src1, src2, src3, ...) \ 12089 _nir_build_image_deref_atomic_umax(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_umax_indices){0, __VA_ARGS__}) 12090 #endif 12091 #define nir_image_deref_atomic_umax nir_build_image_deref_atomic_umax 12092 #ifdef __cplusplus 12093 #define nir_build_image_deref_atomic_umin(build, bit_size, src0, src1, src2, src3, ...) \ 12094 _nir_build_image_deref_atomic_umin(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_umin_indices{0, __VA_ARGS__}) 12095 #else 12096 #define nir_build_image_deref_atomic_umin(build, bit_size, src0, src1, src2, src3, ...) \ 12097 _nir_build_image_deref_atomic_umin(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_umin_indices){0, __VA_ARGS__}) 12098 #endif 12099 #define nir_image_deref_atomic_umin nir_build_image_deref_atomic_umin 12100 #ifdef __cplusplus 12101 #define nir_build_image_deref_atomic_xor(build, bit_size, src0, src1, src2, src3, ...) \ 12102 _nir_build_image_deref_atomic_xor(build, bit_size, src0, src1, src2, src3, _nir_image_deref_atomic_xor_indices{0, __VA_ARGS__}) 12103 #else 12104 #define nir_build_image_deref_atomic_xor(build, bit_size, src0, src1, src2, src3, ...) \ 12105 _nir_build_image_deref_atomic_xor(build, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_atomic_xor_indices){0, __VA_ARGS__}) 12106 #endif 12107 #define nir_image_deref_atomic_xor nir_build_image_deref_atomic_xor 12108 #ifdef __cplusplus 12109 #define nir_build_image_deref_format(build, bit_size, src0, ...) \ 12110 _nir_build_image_deref_format(build, bit_size, src0, _nir_image_deref_format_indices{0, __VA_ARGS__}) 12111 #else 12112 #define nir_build_image_deref_format(build, bit_size, src0, ...) \ 12113 _nir_build_image_deref_format(build, bit_size, src0, (struct _nir_image_deref_format_indices){0, __VA_ARGS__}) 12114 #endif 12115 #define nir_image_deref_format nir_build_image_deref_format 12116 #ifdef __cplusplus 12117 #define nir_build_image_deref_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12118 _nir_build_image_deref_load(build, num_components, bit_size, src0, src1, src2, src3, _nir_image_deref_load_indices{0, __VA_ARGS__}) 12119 #else 12120 #define nir_build_image_deref_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12121 _nir_build_image_deref_load(build, num_components, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_load_indices){0, __VA_ARGS__}) 12122 #endif 12123 #define nir_image_deref_load nir_build_image_deref_load 12124 #ifdef __cplusplus 12125 #define nir_build_image_deref_load_param_intel(build, num_components, bit_size, src0, ...) \ 12126 _nir_build_image_deref_load_param_intel(build, num_components, bit_size, src0, _nir_image_deref_load_param_intel_indices{0, __VA_ARGS__}) 12127 #else 12128 #define nir_build_image_deref_load_param_intel(build, num_components, bit_size, src0, ...) \ 12129 _nir_build_image_deref_load_param_intel(build, num_components, bit_size, src0, (struct _nir_image_deref_load_param_intel_indices){0, __VA_ARGS__}) 12130 #endif 12131 #define nir_image_deref_load_param_intel nir_build_image_deref_load_param_intel 12132 #ifdef __cplusplus 12133 #define nir_build_image_deref_load_raw_intel(build, num_components, bit_size, src0, src1, ...) \ 12134 _nir_build_image_deref_load_raw_intel(build, num_components, bit_size, src0, src1, _nir_image_deref_load_raw_intel_indices{0, __VA_ARGS__}) 12135 #else 12136 #define nir_build_image_deref_load_raw_intel(build, num_components, bit_size, src0, src1, ...) \ 12137 _nir_build_image_deref_load_raw_intel(build, num_components, bit_size, src0, src1, (struct _nir_image_deref_load_raw_intel_indices){0, __VA_ARGS__}) 12138 #endif 12139 #define nir_image_deref_load_raw_intel nir_build_image_deref_load_raw_intel 12140 #ifdef __cplusplus 12141 #define nir_build_image_deref_order(build, bit_size, src0, ...) \ 12142 _nir_build_image_deref_order(build, bit_size, src0, _nir_image_deref_order_indices{0, __VA_ARGS__}) 12143 #else 12144 #define nir_build_image_deref_order(build, bit_size, src0, ...) \ 12145 _nir_build_image_deref_order(build, bit_size, src0, (struct _nir_image_deref_order_indices){0, __VA_ARGS__}) 12146 #endif 12147 #define nir_image_deref_order nir_build_image_deref_order 12148 #ifdef __cplusplus 12149 #define nir_build_image_deref_samples(build, bit_size, src0, ...) \ 12150 _nir_build_image_deref_samples(build, bit_size, src0, _nir_image_deref_samples_indices{0, __VA_ARGS__}) 12151 #else 12152 #define nir_build_image_deref_samples(build, bit_size, src0, ...) \ 12153 _nir_build_image_deref_samples(build, bit_size, src0, (struct _nir_image_deref_samples_indices){0, __VA_ARGS__}) 12154 #endif 12155 #define nir_image_deref_samples nir_build_image_deref_samples 12156 #ifdef __cplusplus 12157 #define nir_build_image_deref_size(build, num_components, bit_size, src0, src1, ...) \ 12158 _nir_build_image_deref_size(build, num_components, bit_size, src0, src1, _nir_image_deref_size_indices{0, __VA_ARGS__}) 12159 #else 12160 #define nir_build_image_deref_size(build, num_components, bit_size, src0, src1, ...) \ 12161 _nir_build_image_deref_size(build, num_components, bit_size, src0, src1, (struct _nir_image_deref_size_indices){0, __VA_ARGS__}) 12162 #endif 12163 #define nir_image_deref_size nir_build_image_deref_size 12164 #ifdef __cplusplus 12165 #define nir_build_image_deref_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12166 _nir_build_image_deref_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, _nir_image_deref_sparse_load_indices{0, __VA_ARGS__}) 12167 #else 12168 #define nir_build_image_deref_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12169 _nir_build_image_deref_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, (struct _nir_image_deref_sparse_load_indices){0, __VA_ARGS__}) 12170 #endif 12171 #define nir_image_deref_sparse_load nir_build_image_deref_sparse_load 12172 #ifdef __cplusplus 12173 #define nir_build_image_deref_store(build, src0, src1, src2, src3, src4, ...) \ 12174 _nir_build_image_deref_store(build, src0, src1, src2, src3, src4, _nir_image_deref_store_indices{0, __VA_ARGS__}) 12175 #else 12176 #define nir_build_image_deref_store(build, src0, src1, src2, src3, src4, ...) \ 12177 _nir_build_image_deref_store(build, src0, src1, src2, src3, src4, (struct _nir_image_deref_store_indices){0, __VA_ARGS__}) 12178 #endif 12179 #define nir_image_deref_store nir_build_image_deref_store 12180 #ifdef __cplusplus 12181 #define nir_build_image_deref_store_raw_intel(build, src0, src1, src2, ...) \ 12182 _nir_build_image_deref_store_raw_intel(build, src0, src1, src2, _nir_image_deref_store_raw_intel_indices{0, __VA_ARGS__}) 12183 #else 12184 #define nir_build_image_deref_store_raw_intel(build, src0, src1, src2, ...) \ 12185 _nir_build_image_deref_store_raw_intel(build, src0, src1, src2, (struct _nir_image_deref_store_raw_intel_indices){0, __VA_ARGS__}) 12186 #endif 12187 #define nir_image_deref_store_raw_intel nir_build_image_deref_store_raw_intel 12188 #ifdef __cplusplus 12189 #define nir_build_image_format(build, bit_size, src0, ...) \ 12190 _nir_build_image_format(build, bit_size, src0, _nir_image_format_indices{0, __VA_ARGS__}) 12191 #else 12192 #define nir_build_image_format(build, bit_size, src0, ...) \ 12193 _nir_build_image_format(build, bit_size, src0, (struct _nir_image_format_indices){0, __VA_ARGS__}) 12194 #endif 12195 #define nir_image_format nir_build_image_format 12196 #ifdef __cplusplus 12197 #define nir_build_image_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12198 _nir_build_image_load(build, num_components, bit_size, src0, src1, src2, src3, _nir_image_load_indices{0, __VA_ARGS__}) 12199 #else 12200 #define nir_build_image_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12201 _nir_build_image_load(build, num_components, bit_size, src0, src1, src2, src3, (struct _nir_image_load_indices){0, __VA_ARGS__}) 12202 #endif 12203 #define nir_image_load nir_build_image_load 12204 #ifdef __cplusplus 12205 #define nir_build_image_load_raw_intel(build, num_components, bit_size, src0, src1, ...) \ 12206 _nir_build_image_load_raw_intel(build, num_components, bit_size, src0, src1, _nir_image_load_raw_intel_indices{0, __VA_ARGS__}) 12207 #else 12208 #define nir_build_image_load_raw_intel(build, num_components, bit_size, src0, src1, ...) \ 12209 _nir_build_image_load_raw_intel(build, num_components, bit_size, src0, src1, (struct _nir_image_load_raw_intel_indices){0, __VA_ARGS__}) 12210 #endif 12211 #define nir_image_load_raw_intel nir_build_image_load_raw_intel 12212 #ifdef __cplusplus 12213 #define nir_build_image_order(build, bit_size, src0, ...) \ 12214 _nir_build_image_order(build, bit_size, src0, _nir_image_order_indices{0, __VA_ARGS__}) 12215 #else 12216 #define nir_build_image_order(build, bit_size, src0, ...) \ 12217 _nir_build_image_order(build, bit_size, src0, (struct _nir_image_order_indices){0, __VA_ARGS__}) 12218 #endif 12219 #define nir_image_order nir_build_image_order 12220 #ifdef __cplusplus 12221 #define nir_build_image_samples(build, bit_size, src0, ...) \ 12222 _nir_build_image_samples(build, bit_size, src0, _nir_image_samples_indices{0, __VA_ARGS__}) 12223 #else 12224 #define nir_build_image_samples(build, bit_size, src0, ...) \ 12225 _nir_build_image_samples(build, bit_size, src0, (struct _nir_image_samples_indices){0, __VA_ARGS__}) 12226 #endif 12227 #define nir_image_samples nir_build_image_samples 12228 #ifdef __cplusplus 12229 #define nir_build_image_size(build, num_components, bit_size, src0, src1, ...) \ 12230 _nir_build_image_size(build, num_components, bit_size, src0, src1, _nir_image_size_indices{0, __VA_ARGS__}) 12231 #else 12232 #define nir_build_image_size(build, num_components, bit_size, src0, src1, ...) \ 12233 _nir_build_image_size(build, num_components, bit_size, src0, src1, (struct _nir_image_size_indices){0, __VA_ARGS__}) 12234 #endif 12235 #define nir_image_size nir_build_image_size 12236 #ifdef __cplusplus 12237 #define nir_build_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12238 _nir_build_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, _nir_image_sparse_load_indices{0, __VA_ARGS__}) 12239 #else 12240 #define nir_build_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, ...) \ 12241 _nir_build_image_sparse_load(build, num_components, bit_size, src0, src1, src2, src3, (struct _nir_image_sparse_load_indices){0, __VA_ARGS__}) 12242 #endif 12243 #define nir_image_sparse_load nir_build_image_sparse_load 12244 #ifdef __cplusplus 12245 #define nir_build_image_store(build, src0, src1, src2, src3, src4, ...) \ 12246 _nir_build_image_store(build, src0, src1, src2, src3, src4, _nir_image_store_indices{0, __VA_ARGS__}) 12247 #else 12248 #define nir_build_image_store(build, src0, src1, src2, src3, src4, ...) \ 12249 _nir_build_image_store(build, src0, src1, src2, src3, src4, (struct _nir_image_store_indices){0, __VA_ARGS__}) 12250 #endif 12251 #define nir_image_store nir_build_image_store 12252 #ifdef __cplusplus 12253 #define nir_build_image_store_raw_intel(build, src0, src1, src2, ...) \ 12254 _nir_build_image_store_raw_intel(build, src0, src1, src2, _nir_image_store_raw_intel_indices{0, __VA_ARGS__}) 12255 #else 12256 #define nir_build_image_store_raw_intel(build, src0, src1, src2, ...) \ 12257 _nir_build_image_store_raw_intel(build, src0, src1, src2, (struct _nir_image_store_raw_intel_indices){0, __VA_ARGS__}) 12258 #endif 12259 #define nir_image_store_raw_intel nir_build_image_store_raw_intel 12260 #ifdef __cplusplus 12261 #define nir_build_inclusive_scan(build, src0, ...) \ 12262 _nir_build_inclusive_scan(build, src0, _nir_inclusive_scan_indices{0, __VA_ARGS__}) 12263 #else 12264 #define nir_build_inclusive_scan(build, src0, ...) \ 12265 _nir_build_inclusive_scan(build, src0, (struct _nir_inclusive_scan_indices){0, __VA_ARGS__}) 12266 #endif 12267 #define nir_inclusive_scan nir_build_inclusive_scan 12268 #define nir_build_interp_deref_at_centroid _nir_build_interp_deref_at_centroid 12269 #define nir_interp_deref_at_centroid nir_build_interp_deref_at_centroid 12270 #define nir_build_interp_deref_at_offset _nir_build_interp_deref_at_offset 12271 #define nir_interp_deref_at_offset nir_build_interp_deref_at_offset 12272 #define nir_build_interp_deref_at_sample _nir_build_interp_deref_at_sample 12273 #define nir_interp_deref_at_sample nir_build_interp_deref_at_sample 12274 #define nir_build_interp_deref_at_vertex _nir_build_interp_deref_at_vertex 12275 #define nir_interp_deref_at_vertex nir_build_interp_deref_at_vertex 12276 #define nir_build_is_helper_invocation _nir_build_is_helper_invocation 12277 #define nir_is_helper_invocation nir_build_is_helper_invocation 12278 #define nir_build_is_sparse_texels_resident _nir_build_is_sparse_texels_resident 12279 #define nir_is_sparse_texels_resident nir_build_is_sparse_texels_resident 12280 #define nir_build_lane_permute_16_amd _nir_build_lane_permute_16_amd 12281 #define nir_lane_permute_16_amd nir_build_lane_permute_16_amd 12282 #define nir_build_last_invocation _nir_build_last_invocation 12283 #define nir_last_invocation nir_build_last_invocation 12284 #define nir_build_load_aa_line_width _nir_build_load_aa_line_width 12285 #define nir_load_aa_line_width nir_build_load_aa_line_width 12286 #define nir_build_load_back_face_agx _nir_build_load_back_face_agx 12287 #define nir_load_back_face_agx nir_build_load_back_face_agx 12288 #ifdef __cplusplus 12289 #define nir_build_load_barycentric_at_offset(build, bit_size, src0, ...) \ 12290 _nir_build_load_barycentric_at_offset(build, bit_size, src0, _nir_load_barycentric_at_offset_indices{0, __VA_ARGS__}) 12291 #else 12292 #define nir_build_load_barycentric_at_offset(build, bit_size, src0, ...) \ 12293 _nir_build_load_barycentric_at_offset(build, bit_size, src0, (struct _nir_load_barycentric_at_offset_indices){0, __VA_ARGS__}) 12294 #endif 12295 #define nir_load_barycentric_at_offset nir_build_load_barycentric_at_offset 12296 #ifdef __cplusplus 12297 #define nir_build_load_barycentric_at_sample(build, bit_size, src0, ...) \ 12298 _nir_build_load_barycentric_at_sample(build, bit_size, src0, _nir_load_barycentric_at_sample_indices{0, __VA_ARGS__}) 12299 #else 12300 #define nir_build_load_barycentric_at_sample(build, bit_size, src0, ...) \ 12301 _nir_build_load_barycentric_at_sample(build, bit_size, src0, (struct _nir_load_barycentric_at_sample_indices){0, __VA_ARGS__}) 12302 #endif 12303 #define nir_load_barycentric_at_sample nir_build_load_barycentric_at_sample 12304 #ifdef __cplusplus 12305 #define nir_build_load_barycentric_centroid(build, bit_size, ...) \ 12306 _nir_build_load_barycentric_centroid(build, bit_size, _nir_load_barycentric_centroid_indices{0, __VA_ARGS__}) 12307 #else 12308 #define nir_build_load_barycentric_centroid(build, bit_size, ...) \ 12309 _nir_build_load_barycentric_centroid(build, bit_size, (struct _nir_load_barycentric_centroid_indices){0, __VA_ARGS__}) 12310 #endif 12311 #define nir_load_barycentric_centroid nir_build_load_barycentric_centroid 12312 #ifdef __cplusplus 12313 #define nir_build_load_barycentric_model(build, bit_size, ...) \ 12314 _nir_build_load_barycentric_model(build, bit_size, _nir_load_barycentric_model_indices{0, __VA_ARGS__}) 12315 #else 12316 #define nir_build_load_barycentric_model(build, bit_size, ...) \ 12317 _nir_build_load_barycentric_model(build, bit_size, (struct _nir_load_barycentric_model_indices){0, __VA_ARGS__}) 12318 #endif 12319 #define nir_load_barycentric_model nir_build_load_barycentric_model 12320 #ifdef __cplusplus 12321 #define nir_build_load_barycentric_pixel(build, bit_size, ...) \ 12322 _nir_build_load_barycentric_pixel(build, bit_size, _nir_load_barycentric_pixel_indices{0, __VA_ARGS__}) 12323 #else 12324 #define nir_build_load_barycentric_pixel(build, bit_size, ...) \ 12325 _nir_build_load_barycentric_pixel(build, bit_size, (struct _nir_load_barycentric_pixel_indices){0, __VA_ARGS__}) 12326 #endif 12327 #define nir_load_barycentric_pixel nir_build_load_barycentric_pixel 12328 #ifdef __cplusplus 12329 #define nir_build_load_barycentric_sample(build, bit_size, ...) \ 12330 _nir_build_load_barycentric_sample(build, bit_size, _nir_load_barycentric_sample_indices{0, __VA_ARGS__}) 12331 #else 12332 #define nir_build_load_barycentric_sample(build, bit_size, ...) \ 12333 _nir_build_load_barycentric_sample(build, bit_size, (struct _nir_load_barycentric_sample_indices){0, __VA_ARGS__}) 12334 #endif 12335 #define nir_load_barycentric_sample nir_build_load_barycentric_sample 12336 #define nir_build_load_base_global_invocation_id _nir_build_load_base_global_invocation_id 12337 #define nir_load_base_global_invocation_id nir_build_load_base_global_invocation_id 12338 #define nir_build_load_base_instance _nir_build_load_base_instance 12339 #define nir_load_base_instance nir_build_load_base_instance 12340 #define nir_build_load_base_vertex _nir_build_load_base_vertex 12341 #define nir_load_base_vertex nir_build_load_base_vertex 12342 #define nir_build_load_base_workgroup_id _nir_build_load_base_workgroup_id 12343 #define nir_load_base_workgroup_id nir_build_load_base_workgroup_id 12344 #define nir_build_load_blend_const_color_a_float _nir_build_load_blend_const_color_a_float 12345 #define nir_load_blend_const_color_a_float nir_build_load_blend_const_color_a_float 12346 #define nir_build_load_blend_const_color_aaaa8888_unorm _nir_build_load_blend_const_color_aaaa8888_unorm 12347 #define nir_load_blend_const_color_aaaa8888_unorm nir_build_load_blend_const_color_aaaa8888_unorm 12348 #define nir_build_load_blend_const_color_b_float _nir_build_load_blend_const_color_b_float 12349 #define nir_load_blend_const_color_b_float nir_build_load_blend_const_color_b_float 12350 #define nir_build_load_blend_const_color_g_float _nir_build_load_blend_const_color_g_float 12351 #define nir_load_blend_const_color_g_float nir_build_load_blend_const_color_g_float 12352 #define nir_build_load_blend_const_color_r_float _nir_build_load_blend_const_color_r_float 12353 #define nir_load_blend_const_color_r_float nir_build_load_blend_const_color_r_float 12354 #define nir_build_load_blend_const_color_rgba _nir_build_load_blend_const_color_rgba 12355 #define nir_load_blend_const_color_rgba nir_build_load_blend_const_color_rgba 12356 #define nir_build_load_blend_const_color_rgba8888_unorm _nir_build_load_blend_const_color_rgba8888_unorm 12357 #define nir_load_blend_const_color_rgba8888_unorm nir_build_load_blend_const_color_rgba8888_unorm 12358 #define nir_build_load_btd_dss_id_intel _nir_build_load_btd_dss_id_intel 12359 #define nir_load_btd_dss_id_intel nir_build_load_btd_dss_id_intel 12360 #define nir_build_load_btd_global_arg_addr_intel _nir_build_load_btd_global_arg_addr_intel 12361 #define nir_load_btd_global_arg_addr_intel nir_build_load_btd_global_arg_addr_intel 12362 #define nir_build_load_btd_local_arg_addr_intel _nir_build_load_btd_local_arg_addr_intel 12363 #define nir_load_btd_local_arg_addr_intel nir_build_load_btd_local_arg_addr_intel 12364 #define nir_build_load_btd_resume_sbt_addr_intel _nir_build_load_btd_resume_sbt_addr_intel 12365 #define nir_load_btd_resume_sbt_addr_intel nir_build_load_btd_resume_sbt_addr_intel 12366 #define nir_build_load_btd_stack_id_intel _nir_build_load_btd_stack_id_intel 12367 #define nir_load_btd_stack_id_intel nir_build_load_btd_stack_id_intel 12368 #ifdef __cplusplus 12369 #define nir_build_load_buffer_amd(build, num_components, bit_size, src0, src1, src2, ...) \ 12370 _nir_build_load_buffer_amd(build, num_components, bit_size, src0, src1, src2, _nir_load_buffer_amd_indices{0, __VA_ARGS__}) 12371 #else 12372 #define nir_build_load_buffer_amd(build, num_components, bit_size, src0, src1, src2, ...) \ 12373 _nir_build_load_buffer_amd(build, num_components, bit_size, src0, src1, src2, (struct _nir_load_buffer_amd_indices){0, __VA_ARGS__}) 12374 #endif 12375 #define nir_load_buffer_amd nir_build_load_buffer_amd 12376 #define nir_build_load_callable_sbt_addr_intel _nir_build_load_callable_sbt_addr_intel 12377 #define nir_load_callable_sbt_addr_intel nir_build_load_callable_sbt_addr_intel 12378 #define nir_build_load_callable_sbt_stride_intel _nir_build_load_callable_sbt_stride_intel 12379 #define nir_load_callable_sbt_stride_intel nir_build_load_callable_sbt_stride_intel 12380 #define nir_build_load_color0 _nir_build_load_color0 12381 #define nir_load_color0 nir_build_load_color0 12382 #define nir_build_load_color1 _nir_build_load_color1 12383 #define nir_load_color1 nir_build_load_color1 12384 #ifdef __cplusplus 12385 #define nir_build_load_constant(build, num_components, bit_size, src0, ...) \ 12386 _nir_build_load_constant(build, num_components, bit_size, src0, _nir_load_constant_indices{0, __VA_ARGS__}) 12387 #else 12388 #define nir_build_load_constant(build, num_components, bit_size, src0, ...) \ 12389 _nir_build_load_constant(build, num_components, bit_size, src0, (struct _nir_load_constant_indices){0, __VA_ARGS__}) 12390 #endif 12391 #define nir_load_constant nir_build_load_constant 12392 #define nir_build_load_constant_base_ptr _nir_build_load_constant_base_ptr 12393 #define nir_load_constant_base_ptr nir_build_load_constant_base_ptr 12394 #define nir_build_load_cull_any_enabled_amd _nir_build_load_cull_any_enabled_amd 12395 #define nir_load_cull_any_enabled_amd nir_build_load_cull_any_enabled_amd 12396 #define nir_build_load_cull_back_face_enabled_amd _nir_build_load_cull_back_face_enabled_amd 12397 #define nir_load_cull_back_face_enabled_amd nir_build_load_cull_back_face_enabled_amd 12398 #define nir_build_load_cull_ccw_amd _nir_build_load_cull_ccw_amd 12399 #define nir_load_cull_ccw_amd nir_build_load_cull_ccw_amd 12400 #define nir_build_load_cull_front_face_enabled_amd _nir_build_load_cull_front_face_enabled_amd 12401 #define nir_load_cull_front_face_enabled_amd nir_build_load_cull_front_face_enabled_amd 12402 #define nir_build_load_cull_small_prim_precision_amd _nir_build_load_cull_small_prim_precision_amd 12403 #define nir_load_cull_small_prim_precision_amd nir_build_load_cull_small_prim_precision_amd 12404 #define nir_build_load_cull_small_primitives_enabled_amd _nir_build_load_cull_small_primitives_enabled_amd 12405 #define nir_load_cull_small_primitives_enabled_amd nir_build_load_cull_small_primitives_enabled_amd 12406 #ifdef __cplusplus 12407 #define nir_build_load_deref(build, num_components, bit_size, src0, ...) \ 12408 _nir_build_load_deref(build, num_components, bit_size, src0, _nir_load_deref_indices{0, __VA_ARGS__}) 12409 #else 12410 #define nir_build_load_deref(build, num_components, bit_size, src0, ...) \ 12411 _nir_build_load_deref(build, num_components, bit_size, src0, (struct _nir_load_deref_indices){0, __VA_ARGS__}) 12412 #endif 12413 #define nir_load_deref nir_build_load_deref 12414 #ifdef __cplusplus 12415 #define nir_build_load_deref_block_intel(build, num_components, bit_size, src0, ...) \ 12416 _nir_build_load_deref_block_intel(build, num_components, bit_size, src0, _nir_load_deref_block_intel_indices{0, __VA_ARGS__}) 12417 #else 12418 #define nir_build_load_deref_block_intel(build, num_components, bit_size, src0, ...) \ 12419 _nir_build_load_deref_block_intel(build, num_components, bit_size, src0, (struct _nir_load_deref_block_intel_indices){0, __VA_ARGS__}) 12420 #endif 12421 #define nir_load_deref_block_intel nir_build_load_deref_block_intel 12422 #define nir_build_load_desc_set_address_intel _nir_build_load_desc_set_address_intel 12423 #define nir_load_desc_set_address_intel nir_build_load_desc_set_address_intel 12424 #define nir_build_load_draw_id _nir_build_load_draw_id 12425 #define nir_load_draw_id nir_build_load_draw_id 12426 #define nir_build_load_fb_layers_v3d _nir_build_load_fb_layers_v3d 12427 #define nir_load_fb_layers_v3d nir_build_load_fb_layers_v3d 12428 #define nir_build_load_first_vertex _nir_build_load_first_vertex 12429 #define nir_load_first_vertex nir_build_load_first_vertex 12430 #define nir_build_load_frag_coord _nir_build_load_frag_coord 12431 #define nir_load_frag_coord nir_build_load_frag_coord 12432 #define nir_build_load_frag_shading_rate _nir_build_load_frag_shading_rate 12433 #define nir_load_frag_shading_rate nir_build_load_frag_shading_rate 12434 #define nir_build_load_front_face _nir_build_load_front_face 12435 #define nir_load_front_face nir_build_load_front_face 12436 #ifdef __cplusplus 12437 #define nir_build_load_fs_input_interp_deltas(build, bit_size, src0, ...) \ 12438 _nir_build_load_fs_input_interp_deltas(build, bit_size, src0, _nir_load_fs_input_interp_deltas_indices{0, __VA_ARGS__}) 12439 #else 12440 #define nir_build_load_fs_input_interp_deltas(build, bit_size, src0, ...) \ 12441 _nir_build_load_fs_input_interp_deltas(build, bit_size, src0, (struct _nir_load_fs_input_interp_deltas_indices){0, __VA_ARGS__}) 12442 #endif 12443 #define nir_load_fs_input_interp_deltas nir_build_load_fs_input_interp_deltas 12444 #ifdef __cplusplus 12445 #define nir_build_load_global(build, num_components, bit_size, src0, ...) \ 12446 _nir_build_load_global(build, num_components, bit_size, src0, _nir_load_global_indices{0, __VA_ARGS__}) 12447 #else 12448 #define nir_build_load_global(build, num_components, bit_size, src0, ...) \ 12449 _nir_build_load_global(build, num_components, bit_size, src0, (struct _nir_load_global_indices){0, __VA_ARGS__}) 12450 #endif 12451 #define nir_load_global nir_build_load_global 12452 #ifdef __cplusplus 12453 #define nir_build_load_global_block_intel(build, num_components, bit_size, src0, ...) \ 12454 _nir_build_load_global_block_intel(build, num_components, bit_size, src0, _nir_load_global_block_intel_indices{0, __VA_ARGS__}) 12455 #else 12456 #define nir_build_load_global_block_intel(build, num_components, bit_size, src0, ...) \ 12457 _nir_build_load_global_block_intel(build, num_components, bit_size, src0, (struct _nir_load_global_block_intel_indices){0, __VA_ARGS__}) 12458 #endif 12459 #define nir_load_global_block_intel nir_build_load_global_block_intel 12460 #ifdef __cplusplus 12461 #define nir_build_load_global_const_block_intel(build, num_components, src0, src1, ...) \ 12462 _nir_build_load_global_const_block_intel(build, num_components, src0, src1, _nir_load_global_const_block_intel_indices{0, __VA_ARGS__}) 12463 #else 12464 #define nir_build_load_global_const_block_intel(build, num_components, src0, src1, ...) \ 12465 _nir_build_load_global_const_block_intel(build, num_components, src0, src1, (struct _nir_load_global_const_block_intel_indices){0, __VA_ARGS__}) 12466 #endif 12467 #define nir_load_global_const_block_intel nir_build_load_global_const_block_intel 12468 #ifdef __cplusplus 12469 #define nir_build_load_global_constant(build, num_components, bit_size, src0, ...) \ 12470 _nir_build_load_global_constant(build, num_components, bit_size, src0, _nir_load_global_constant_indices{0, __VA_ARGS__}) 12471 #else 12472 #define nir_build_load_global_constant(build, num_components, bit_size, src0, ...) \ 12473 _nir_build_load_global_constant(build, num_components, bit_size, src0, (struct _nir_load_global_constant_indices){0, __VA_ARGS__}) 12474 #endif 12475 #define nir_load_global_constant nir_build_load_global_constant 12476 #ifdef __cplusplus 12477 #define nir_build_load_global_constant_bounded(build, num_components, bit_size, src0, src1, src2, ...) \ 12478 _nir_build_load_global_constant_bounded(build, num_components, bit_size, src0, src1, src2, _nir_load_global_constant_bounded_indices{0, __VA_ARGS__}) 12479 #else 12480 #define nir_build_load_global_constant_bounded(build, num_components, bit_size, src0, src1, src2, ...) \ 12481 _nir_build_load_global_constant_bounded(build, num_components, bit_size, src0, src1, src2, (struct _nir_load_global_constant_bounded_indices){0, __VA_ARGS__}) 12482 #endif 12483 #define nir_load_global_constant_bounded nir_build_load_global_constant_bounded 12484 #ifdef __cplusplus 12485 #define nir_build_load_global_constant_offset(build, num_components, bit_size, src0, src1, ...) \ 12486 _nir_build_load_global_constant_offset(build, num_components, bit_size, src0, src1, _nir_load_global_constant_offset_indices{0, __VA_ARGS__}) 12487 #else 12488 #define nir_build_load_global_constant_offset(build, num_components, bit_size, src0, src1, ...) \ 12489 _nir_build_load_global_constant_offset(build, num_components, bit_size, src0, src1, (struct _nir_load_global_constant_offset_indices){0, __VA_ARGS__}) 12490 #endif 12491 #define nir_load_global_constant_offset nir_build_load_global_constant_offset 12492 #define nir_build_load_global_invocation_id _nir_build_load_global_invocation_id 12493 #define nir_load_global_invocation_id nir_build_load_global_invocation_id 12494 #define nir_build_load_global_invocation_id_zero_base _nir_build_load_global_invocation_id_zero_base 12495 #define nir_load_global_invocation_id_zero_base nir_build_load_global_invocation_id_zero_base 12496 #define nir_build_load_global_invocation_index _nir_build_load_global_invocation_index 12497 #define nir_load_global_invocation_index nir_build_load_global_invocation_index 12498 #ifdef __cplusplus 12499 #define nir_build_load_global_ir3(build, num_components, bit_size, src0, src1, ...) \ 12500 _nir_build_load_global_ir3(build, num_components, bit_size, src0, src1, _nir_load_global_ir3_indices{0, __VA_ARGS__}) 12501 #else 12502 #define nir_build_load_global_ir3(build, num_components, bit_size, src0, src1, ...) \ 12503 _nir_build_load_global_ir3(build, num_components, bit_size, src0, src1, (struct _nir_load_global_ir3_indices){0, __VA_ARGS__}) 12504 #endif 12505 #define nir_load_global_ir3 nir_build_load_global_ir3 12506 #define nir_build_load_gs_header_ir3 _nir_build_load_gs_header_ir3 12507 #define nir_load_gs_header_ir3 nir_build_load_gs_header_ir3 12508 #ifdef __cplusplus 12509 #define nir_build_load_gs_vertex_offset_amd(build, ...) \ 12510 _nir_build_load_gs_vertex_offset_amd(build, _nir_load_gs_vertex_offset_amd_indices{0, __VA_ARGS__}) 12511 #else 12512 #define nir_build_load_gs_vertex_offset_amd(build, ...) \ 12513 _nir_build_load_gs_vertex_offset_amd(build, (struct _nir_load_gs_vertex_offset_amd_indices){0, __VA_ARGS__}) 12514 #endif 12515 #define nir_load_gs_vertex_offset_amd nir_build_load_gs_vertex_offset_amd 12516 #define nir_build_load_helper_invocation _nir_build_load_helper_invocation 12517 #define nir_load_helper_invocation nir_build_load_helper_invocation 12518 #define nir_build_load_hs_patch_stride_ir3 _nir_build_load_hs_patch_stride_ir3 12519 #define nir_load_hs_patch_stride_ir3 nir_build_load_hs_patch_stride_ir3 12520 #define nir_build_load_initial_edgeflags_amd _nir_build_load_initial_edgeflags_amd 12521 #define nir_load_initial_edgeflags_amd nir_build_load_initial_edgeflags_amd 12522 #ifdef __cplusplus 12523 #define nir_build_load_input(build, num_components, bit_size, src0, ...) \ 12524 _nir_build_load_input(build, num_components, bit_size, src0, _nir_load_input_indices{0, __VA_ARGS__}) 12525 #else 12526 #define nir_build_load_input(build, num_components, bit_size, src0, ...) \ 12527 _nir_build_load_input(build, num_components, bit_size, src0, (struct _nir_load_input_indices){0, __VA_ARGS__}) 12528 #endif 12529 #define nir_load_input nir_build_load_input 12530 #ifdef __cplusplus 12531 #define nir_build_load_input_vertex(build, num_components, bit_size, src0, src1, ...) \ 12532 _nir_build_load_input_vertex(build, num_components, bit_size, src0, src1, _nir_load_input_vertex_indices{0, __VA_ARGS__}) 12533 #else 12534 #define nir_build_load_input_vertex(build, num_components, bit_size, src0, src1, ...) \ 12535 _nir_build_load_input_vertex(build, num_components, bit_size, src0, src1, (struct _nir_load_input_vertex_indices){0, __VA_ARGS__}) 12536 #endif 12537 #define nir_load_input_vertex nir_build_load_input_vertex 12538 #define nir_build_load_instance_id _nir_build_load_instance_id 12539 #define nir_load_instance_id nir_build_load_instance_id 12540 #ifdef __cplusplus 12541 #define nir_build_load_interpolated_input(build, num_components, bit_size, src0, src1, ...) \ 12542 _nir_build_load_interpolated_input(build, num_components, bit_size, src0, src1, _nir_load_interpolated_input_indices{0, __VA_ARGS__}) 12543 #else 12544 #define nir_build_load_interpolated_input(build, num_components, bit_size, src0, src1, ...) \ 12545 _nir_build_load_interpolated_input(build, num_components, bit_size, src0, src1, (struct _nir_load_interpolated_input_indices){0, __VA_ARGS__}) 12546 #endif 12547 #define nir_load_interpolated_input nir_build_load_interpolated_input 12548 #define nir_build_load_intersection_opaque_amd _nir_build_load_intersection_opaque_amd 12549 #define nir_load_intersection_opaque_amd nir_build_load_intersection_opaque_amd 12550 #define nir_build_load_invocation_id _nir_build_load_invocation_id 12551 #define nir_load_invocation_id nir_build_load_invocation_id 12552 #define nir_build_load_is_indexed_draw _nir_build_load_is_indexed_draw 12553 #define nir_load_is_indexed_draw nir_build_load_is_indexed_draw 12554 #ifdef __cplusplus 12555 #define nir_build_load_kernel_input(build, num_components, bit_size, src0, ...) \ 12556 _nir_build_load_kernel_input(build, num_components, bit_size, src0, _nir_load_kernel_input_indices{0, __VA_ARGS__}) 12557 #else 12558 #define nir_build_load_kernel_input(build, num_components, bit_size, src0, ...) \ 12559 _nir_build_load_kernel_input(build, num_components, bit_size, src0, (struct _nir_load_kernel_input_indices){0, __VA_ARGS__}) 12560 #endif 12561 #define nir_load_kernel_input nir_build_load_kernel_input 12562 #define nir_build_load_layer_id _nir_build_load_layer_id 12563 #define nir_load_layer_id nir_build_load_layer_id 12564 #define nir_build_load_leaf_opaque_intel _nir_build_load_leaf_opaque_intel 12565 #define nir_load_leaf_opaque_intel nir_build_load_leaf_opaque_intel 12566 #define nir_build_load_leaf_procedural_intel _nir_build_load_leaf_procedural_intel 12567 #define nir_load_leaf_procedural_intel nir_build_load_leaf_procedural_intel 12568 #define nir_build_load_line_coord _nir_build_load_line_coord 12569 #define nir_load_line_coord nir_build_load_line_coord 12570 #define nir_build_load_line_width _nir_build_load_line_width 12571 #define nir_load_line_width nir_build_load_line_width 12572 #define nir_build_load_local_invocation_id _nir_build_load_local_invocation_id 12573 #define nir_load_local_invocation_id nir_build_load_local_invocation_id 12574 #define nir_build_load_local_invocation_index _nir_build_load_local_invocation_index 12575 #define nir_load_local_invocation_index nir_build_load_local_invocation_index 12576 #define nir_build_load_local_shared_r600 _nir_build_load_local_shared_r600 12577 #define nir_load_local_shared_r600 nir_build_load_local_shared_r600 12578 #define nir_build_load_num_subgroups _nir_build_load_num_subgroups 12579 #define nir_load_num_subgroups nir_build_load_num_subgroups 12580 #define nir_build_load_num_workgroups _nir_build_load_num_workgroups 12581 #define nir_load_num_workgroups nir_build_load_num_workgroups 12582 #ifdef __cplusplus 12583 #define nir_build_load_output(build, num_components, bit_size, src0, ...) \ 12584 _nir_build_load_output(build, num_components, bit_size, src0, _nir_load_output_indices{0, __VA_ARGS__}) 12585 #else 12586 #define nir_build_load_output(build, num_components, bit_size, src0, ...) \ 12587 _nir_build_load_output(build, num_components, bit_size, src0, (struct _nir_load_output_indices){0, __VA_ARGS__}) 12588 #endif 12589 #define nir_load_output nir_build_load_output 12590 #define nir_build_load_packed_passthrough_primitive_amd _nir_build_load_packed_passthrough_primitive_amd 12591 #define nir_load_packed_passthrough_primitive_amd nir_build_load_packed_passthrough_primitive_amd 12592 #ifdef __cplusplus 12593 #define nir_build_load_param(build, num_components, bit_size, ...) \ 12594 _nir_build_load_param(build, num_components, bit_size, _nir_load_param_indices{0, __VA_ARGS__}) 12595 #else 12596 #define nir_build_load_param(build, num_components, bit_size, ...) \ 12597 _nir_build_load_param(build, num_components, bit_size, (struct _nir_load_param_indices){0, __VA_ARGS__}) 12598 #endif 12599 #define nir_load_param nir_build_load_param 12600 #define nir_build_load_patch_vertices_in _nir_build_load_patch_vertices_in 12601 #define nir_load_patch_vertices_in nir_build_load_patch_vertices_in 12602 #ifdef __cplusplus 12603 #define nir_build_load_per_primitive_output(build, num_components, bit_size, src0, src1, ...) \ 12604 _nir_build_load_per_primitive_output(build, num_components, bit_size, src0, src1, _nir_load_per_primitive_output_indices{0, __VA_ARGS__}) 12605 #else 12606 #define nir_build_load_per_primitive_output(build, num_components, bit_size, src0, src1, ...) \ 12607 _nir_build_load_per_primitive_output(build, num_components, bit_size, src0, src1, (struct _nir_load_per_primitive_output_indices){0, __VA_ARGS__}) 12608 #endif 12609 #define nir_load_per_primitive_output nir_build_load_per_primitive_output 12610 #ifdef __cplusplus 12611 #define nir_build_load_per_vertex_input(build, num_components, bit_size, src0, src1, ...) \ 12612 _nir_build_load_per_vertex_input(build, num_components, bit_size, src0, src1, _nir_load_per_vertex_input_indices{0, __VA_ARGS__}) 12613 #else 12614 #define nir_build_load_per_vertex_input(build, num_components, bit_size, src0, src1, ...) \ 12615 _nir_build_load_per_vertex_input(build, num_components, bit_size, src0, src1, (struct _nir_load_per_vertex_input_indices){0, __VA_ARGS__}) 12616 #endif 12617 #define nir_load_per_vertex_input nir_build_load_per_vertex_input 12618 #ifdef __cplusplus 12619 #define nir_build_load_per_vertex_output(build, num_components, bit_size, src0, src1, ...) \ 12620 _nir_build_load_per_vertex_output(build, num_components, bit_size, src0, src1, _nir_load_per_vertex_output_indices{0, __VA_ARGS__}) 12621 #else 12622 #define nir_build_load_per_vertex_output(build, num_components, bit_size, src0, src1, ...) \ 12623 _nir_build_load_per_vertex_output(build, num_components, bit_size, src0, src1, (struct _nir_load_per_vertex_output_indices){0, __VA_ARGS__}) 12624 #endif 12625 #define nir_load_per_vertex_output nir_build_load_per_vertex_output 12626 #define nir_build_load_point_coord _nir_build_load_point_coord 12627 #define nir_load_point_coord nir_build_load_point_coord 12628 #define nir_build_load_primitive_id _nir_build_load_primitive_id 12629 #define nir_load_primitive_id nir_build_load_primitive_id 12630 #ifdef __cplusplus 12631 #define nir_build_load_primitive_location_ir3(build, ...) \ 12632 _nir_build_load_primitive_location_ir3(build, _nir_load_primitive_location_ir3_indices{0, __VA_ARGS__}) 12633 #else 12634 #define nir_build_load_primitive_location_ir3(build, ...) \ 12635 _nir_build_load_primitive_location_ir3(build, (struct _nir_load_primitive_location_ir3_indices){0, __VA_ARGS__}) 12636 #endif 12637 #define nir_load_primitive_location_ir3 nir_build_load_primitive_location_ir3 12638 #define nir_build_load_printf_buffer_address _nir_build_load_printf_buffer_address 12639 #define nir_load_printf_buffer_address nir_build_load_printf_buffer_address 12640 #define nir_build_load_ptr_dxil _nir_build_load_ptr_dxil 12641 #define nir_load_ptr_dxil nir_build_load_ptr_dxil 12642 #ifdef __cplusplus 12643 #define nir_build_load_push_constant(build, num_components, bit_size, src0, ...) \ 12644 _nir_build_load_push_constant(build, num_components, bit_size, src0, _nir_load_push_constant_indices{0, __VA_ARGS__}) 12645 #else 12646 #define nir_build_load_push_constant(build, num_components, bit_size, src0, ...) \ 12647 _nir_build_load_push_constant(build, num_components, bit_size, src0, (struct _nir_load_push_constant_indices){0, __VA_ARGS__}) 12648 #endif 12649 #define nir_load_push_constant nir_build_load_push_constant 12650 #ifdef __cplusplus 12651 #define nir_build_load_raw_output_pan(build, num_components, bit_size, src0, ...) \ 12652 _nir_build_load_raw_output_pan(build, num_components, bit_size, src0, _nir_load_raw_output_pan_indices{0, __VA_ARGS__}) 12653 #else 12654 #define nir_build_load_raw_output_pan(build, num_components, bit_size, src0, ...) \ 12655 _nir_build_load_raw_output_pan(build, num_components, bit_size, src0, (struct _nir_load_raw_output_pan_indices){0, __VA_ARGS__}) 12656 #endif 12657 #define nir_load_raw_output_pan nir_build_load_raw_output_pan 12658 #define nir_build_load_ray_base_mem_addr_intel _nir_build_load_ray_base_mem_addr_intel 12659 #define nir_load_ray_base_mem_addr_intel nir_build_load_ray_base_mem_addr_intel 12660 #define nir_build_load_ray_flags _nir_build_load_ray_flags 12661 #define nir_load_ray_flags nir_build_load_ray_flags 12662 #define nir_build_load_ray_geometry_index _nir_build_load_ray_geometry_index 12663 #define nir_load_ray_geometry_index nir_build_load_ray_geometry_index 12664 #define nir_build_load_ray_hit_kind _nir_build_load_ray_hit_kind 12665 #define nir_load_ray_hit_kind nir_build_load_ray_hit_kind 12666 #define nir_build_load_ray_hit_sbt_addr_intel _nir_build_load_ray_hit_sbt_addr_intel 12667 #define nir_load_ray_hit_sbt_addr_intel nir_build_load_ray_hit_sbt_addr_intel 12668 #define nir_build_load_ray_hit_sbt_stride_intel _nir_build_load_ray_hit_sbt_stride_intel 12669 #define nir_load_ray_hit_sbt_stride_intel nir_build_load_ray_hit_sbt_stride_intel 12670 #define nir_build_load_ray_hw_stack_size_intel _nir_build_load_ray_hw_stack_size_intel 12671 #define nir_load_ray_hw_stack_size_intel nir_build_load_ray_hw_stack_size_intel 12672 #define nir_build_load_ray_instance_custom_index _nir_build_load_ray_instance_custom_index 12673 #define nir_load_ray_instance_custom_index nir_build_load_ray_instance_custom_index 12674 #define nir_build_load_ray_launch_id _nir_build_load_ray_launch_id 12675 #define nir_load_ray_launch_id nir_build_load_ray_launch_id 12676 #define nir_build_load_ray_launch_size _nir_build_load_ray_launch_size 12677 #define nir_load_ray_launch_size nir_build_load_ray_launch_size 12678 #define nir_build_load_ray_miss_sbt_addr_intel _nir_build_load_ray_miss_sbt_addr_intel 12679 #define nir_load_ray_miss_sbt_addr_intel nir_build_load_ray_miss_sbt_addr_intel 12680 #define nir_build_load_ray_miss_sbt_stride_intel _nir_build_load_ray_miss_sbt_stride_intel 12681 #define nir_load_ray_miss_sbt_stride_intel nir_build_load_ray_miss_sbt_stride_intel 12682 #define nir_build_load_ray_num_dss_rt_stacks_intel _nir_build_load_ray_num_dss_rt_stacks_intel 12683 #define nir_load_ray_num_dss_rt_stacks_intel nir_build_load_ray_num_dss_rt_stacks_intel 12684 #define nir_build_load_ray_object_direction _nir_build_load_ray_object_direction 12685 #define nir_load_ray_object_direction nir_build_load_ray_object_direction 12686 #define nir_build_load_ray_object_origin _nir_build_load_ray_object_origin 12687 #define nir_load_ray_object_origin nir_build_load_ray_object_origin 12688 #ifdef __cplusplus 12689 #define nir_build_load_ray_object_to_world(build, ...) \ 12690 _nir_build_load_ray_object_to_world(build, _nir_load_ray_object_to_world_indices{0, __VA_ARGS__}) 12691 #else 12692 #define nir_build_load_ray_object_to_world(build, ...) \ 12693 _nir_build_load_ray_object_to_world(build, (struct _nir_load_ray_object_to_world_indices){0, __VA_ARGS__}) 12694 #endif 12695 #define nir_load_ray_object_to_world nir_build_load_ray_object_to_world 12696 #define nir_build_load_ray_sw_stack_size_intel _nir_build_load_ray_sw_stack_size_intel 12697 #define nir_load_ray_sw_stack_size_intel nir_build_load_ray_sw_stack_size_intel 12698 #define nir_build_load_ray_t_max _nir_build_load_ray_t_max 12699 #define nir_load_ray_t_max nir_build_load_ray_t_max 12700 #define nir_build_load_ray_t_min _nir_build_load_ray_t_min 12701 #define nir_load_ray_t_min nir_build_load_ray_t_min 12702 #define nir_build_load_ray_world_direction _nir_build_load_ray_world_direction 12703 #define nir_load_ray_world_direction nir_build_load_ray_world_direction 12704 #define nir_build_load_ray_world_origin _nir_build_load_ray_world_origin 12705 #define nir_load_ray_world_origin nir_build_load_ray_world_origin 12706 #ifdef __cplusplus 12707 #define nir_build_load_ray_world_to_object(build, ...) \ 12708 _nir_build_load_ray_world_to_object(build, _nir_load_ray_world_to_object_indices{0, __VA_ARGS__}) 12709 #else 12710 #define nir_build_load_ray_world_to_object(build, ...) \ 12711 _nir_build_load_ray_world_to_object(build, (struct _nir_load_ray_world_to_object_indices){0, __VA_ARGS__}) 12712 #endif 12713 #define nir_load_ray_world_to_object nir_build_load_ray_world_to_object 12714 #define nir_build_load_rel_patch_id_ir3 _nir_build_load_rel_patch_id_ir3 12715 #define nir_load_rel_patch_id_ir3 nir_build_load_rel_patch_id_ir3 12716 #ifdef __cplusplus 12717 #define nir_build_load_reloc_const_intel(build, ...) \ 12718 _nir_build_load_reloc_const_intel(build, _nir_load_reloc_const_intel_indices{0, __VA_ARGS__}) 12719 #else 12720 #define nir_build_load_reloc_const_intel(build, ...) \ 12721 _nir_build_load_reloc_const_intel(build, (struct _nir_load_reloc_const_intel_indices){0, __VA_ARGS__}) 12722 #endif 12723 #define nir_load_reloc_const_intel nir_build_load_reloc_const_intel 12724 #define nir_build_load_ring_es2gs_offset_amd _nir_build_load_ring_es2gs_offset_amd 12725 #define nir_load_ring_es2gs_offset_amd nir_build_load_ring_es2gs_offset_amd 12726 #define nir_build_load_ring_esgs_amd _nir_build_load_ring_esgs_amd 12727 #define nir_load_ring_esgs_amd nir_build_load_ring_esgs_amd 12728 #define nir_build_load_ring_tess_factors_amd _nir_build_load_ring_tess_factors_amd 12729 #define nir_load_ring_tess_factors_amd nir_build_load_ring_tess_factors_amd 12730 #define nir_build_load_ring_tess_factors_offset_amd _nir_build_load_ring_tess_factors_offset_amd 12731 #define nir_load_ring_tess_factors_offset_amd nir_build_load_ring_tess_factors_offset_amd 12732 #define nir_build_load_ring_tess_offchip_amd _nir_build_load_ring_tess_offchip_amd 12733 #define nir_load_ring_tess_offchip_amd nir_build_load_ring_tess_offchip_amd 12734 #define nir_build_load_ring_tess_offchip_offset_amd _nir_build_load_ring_tess_offchip_offset_amd 12735 #define nir_load_ring_tess_offchip_offset_amd nir_build_load_ring_tess_offchip_offset_amd 12736 #define nir_build_load_rt_arg_scratch_offset_amd _nir_build_load_rt_arg_scratch_offset_amd 12737 #define nir_load_rt_arg_scratch_offset_amd nir_build_load_rt_arg_scratch_offset_amd 12738 #define nir_build_load_sample_id _nir_build_load_sample_id 12739 #define nir_load_sample_id nir_build_load_sample_id 12740 #define nir_build_load_sample_id_no_per_sample _nir_build_load_sample_id_no_per_sample 12741 #define nir_load_sample_id_no_per_sample nir_build_load_sample_id_no_per_sample 12742 #define nir_build_load_sample_mask_in _nir_build_load_sample_mask_in 12743 #define nir_load_sample_mask_in nir_build_load_sample_mask_in 12744 #define nir_build_load_sample_pos _nir_build_load_sample_pos 12745 #define nir_load_sample_pos nir_build_load_sample_pos 12746 #define nir_build_load_sample_pos_from_id _nir_build_load_sample_pos_from_id 12747 #define nir_load_sample_pos_from_id nir_build_load_sample_pos_from_id 12748 #define nir_build_load_sample_positions_pan _nir_build_load_sample_positions_pan 12749 #define nir_load_sample_positions_pan nir_build_load_sample_positions_pan 12750 #define nir_build_load_sampler_lod_parameters_pan _nir_build_load_sampler_lod_parameters_pan 12751 #define nir_load_sampler_lod_parameters_pan nir_build_load_sampler_lod_parameters_pan 12752 #ifdef __cplusplus 12753 #define nir_build_load_sbt_amd(build, ...) \ 12754 _nir_build_load_sbt_amd(build, _nir_load_sbt_amd_indices{0, __VA_ARGS__}) 12755 #else 12756 #define nir_build_load_sbt_amd(build, ...) \ 12757 _nir_build_load_sbt_amd(build, (struct _nir_load_sbt_amd_indices){0, __VA_ARGS__}) 12758 #endif 12759 #define nir_load_sbt_amd nir_build_load_sbt_amd 12760 #ifdef __cplusplus 12761 #define nir_build_load_scratch(build, num_components, bit_size, src0, ...) \ 12762 _nir_build_load_scratch(build, num_components, bit_size, src0, _nir_load_scratch_indices{0, __VA_ARGS__}) 12763 #else 12764 #define nir_build_load_scratch(build, num_components, bit_size, src0, ...) \ 12765 _nir_build_load_scratch(build, num_components, bit_size, src0, (struct _nir_load_scratch_indices){0, __VA_ARGS__}) 12766 #endif 12767 #define nir_load_scratch nir_build_load_scratch 12768 #ifdef __cplusplus 12769 #define nir_build_load_scratch_base_ptr(build, num_components, bit_size, ...) \ 12770 _nir_build_load_scratch_base_ptr(build, num_components, bit_size, _nir_load_scratch_base_ptr_indices{0, __VA_ARGS__}) 12771 #else 12772 #define nir_build_load_scratch_base_ptr(build, num_components, bit_size, ...) \ 12773 _nir_build_load_scratch_base_ptr(build, num_components, bit_size, (struct _nir_load_scratch_base_ptr_indices){0, __VA_ARGS__}) 12774 #endif 12775 #define nir_load_scratch_base_ptr nir_build_load_scratch_base_ptr 12776 #define nir_build_load_scratch_dxil _nir_build_load_scratch_dxil 12777 #define nir_load_scratch_dxil nir_build_load_scratch_dxil 12778 #define nir_build_load_shader_query_enabled_amd _nir_build_load_shader_query_enabled_amd 12779 #define nir_load_shader_query_enabled_amd nir_build_load_shader_query_enabled_amd 12780 #define nir_build_load_shader_record_ptr _nir_build_load_shader_record_ptr 12781 #define nir_load_shader_record_ptr nir_build_load_shader_record_ptr 12782 #ifdef __cplusplus 12783 #define nir_build_load_shared(build, num_components, bit_size, src0, ...) \ 12784 _nir_build_load_shared(build, num_components, bit_size, src0, _nir_load_shared_indices{0, __VA_ARGS__}) 12785 #else 12786 #define nir_build_load_shared(build, num_components, bit_size, src0, ...) \ 12787 _nir_build_load_shared(build, num_components, bit_size, src0, (struct _nir_load_shared_indices){0, __VA_ARGS__}) 12788 #endif 12789 #define nir_load_shared nir_build_load_shared 12790 #define nir_build_load_shared_base_ptr _nir_build_load_shared_base_ptr 12791 #define nir_load_shared_base_ptr nir_build_load_shared_base_ptr 12792 #ifdef __cplusplus 12793 #define nir_build_load_shared_block_intel(build, num_components, bit_size, src0, ...) \ 12794 _nir_build_load_shared_block_intel(build, num_components, bit_size, src0, _nir_load_shared_block_intel_indices{0, __VA_ARGS__}) 12795 #else 12796 #define nir_build_load_shared_block_intel(build, num_components, bit_size, src0, ...) \ 12797 _nir_build_load_shared_block_intel(build, num_components, bit_size, src0, (struct _nir_load_shared_block_intel_indices){0, __VA_ARGS__}) 12798 #endif 12799 #define nir_load_shared_block_intel nir_build_load_shared_block_intel 12800 #define nir_build_load_shared_dxil _nir_build_load_shared_dxil 12801 #define nir_load_shared_dxil nir_build_load_shared_dxil 12802 #ifdef __cplusplus 12803 #define nir_build_load_shared_ir3(build, num_components, bit_size, src0, ...) \ 12804 _nir_build_load_shared_ir3(build, num_components, bit_size, src0, _nir_load_shared_ir3_indices{0, __VA_ARGS__}) 12805 #else 12806 #define nir_build_load_shared_ir3(build, num_components, bit_size, src0, ...) \ 12807 _nir_build_load_shared_ir3(build, num_components, bit_size, src0, (struct _nir_load_shared_ir3_indices){0, __VA_ARGS__}) 12808 #endif 12809 #define nir_load_shared_ir3 nir_build_load_shared_ir3 12810 #define nir_build_load_simd_width_intel _nir_build_load_simd_width_intel 12811 #define nir_load_simd_width_intel nir_build_load_simd_width_intel 12812 #define nir_build_load_size_ir3 _nir_build_load_size_ir3 12813 #define nir_load_size_ir3 nir_build_load_size_ir3 12814 #ifdef __cplusplus 12815 #define nir_build_load_ssbo(build, num_components, bit_size, src0, src1, ...) \ 12816 _nir_build_load_ssbo(build, num_components, bit_size, src0, src1, _nir_load_ssbo_indices{0, __VA_ARGS__}) 12817 #else 12818 #define nir_build_load_ssbo(build, num_components, bit_size, src0, src1, ...) \ 12819 _nir_build_load_ssbo(build, num_components, bit_size, src0, src1, (struct _nir_load_ssbo_indices){0, __VA_ARGS__}) 12820 #endif 12821 #define nir_load_ssbo nir_build_load_ssbo 12822 #define nir_build_load_ssbo_address _nir_build_load_ssbo_address 12823 #define nir_load_ssbo_address nir_build_load_ssbo_address 12824 #ifdef __cplusplus 12825 #define nir_build_load_ssbo_block_intel(build, num_components, bit_size, src0, src1, ...) \ 12826 _nir_build_load_ssbo_block_intel(build, num_components, bit_size, src0, src1, _nir_load_ssbo_block_intel_indices{0, __VA_ARGS__}) 12827 #else 12828 #define nir_build_load_ssbo_block_intel(build, num_components, bit_size, src0, src1, ...) \ 12829 _nir_build_load_ssbo_block_intel(build, num_components, bit_size, src0, src1, (struct _nir_load_ssbo_block_intel_indices){0, __VA_ARGS__}) 12830 #endif 12831 #define nir_load_ssbo_block_intel nir_build_load_ssbo_block_intel 12832 #ifdef __cplusplus 12833 #define nir_build_load_ssbo_ir3(build, num_components, bit_size, src0, src1, src2, ...) \ 12834 _nir_build_load_ssbo_ir3(build, num_components, bit_size, src0, src1, src2, _nir_load_ssbo_ir3_indices{0, __VA_ARGS__}) 12835 #else 12836 #define nir_build_load_ssbo_ir3(build, num_components, bit_size, src0, src1, src2, ...) \ 12837 _nir_build_load_ssbo_ir3(build, num_components, bit_size, src0, src1, src2, (struct _nir_load_ssbo_ir3_indices){0, __VA_ARGS__}) 12838 #endif 12839 #define nir_load_ssbo_ir3 nir_build_load_ssbo_ir3 12840 #define nir_build_load_subgroup_eq_mask _nir_build_load_subgroup_eq_mask 12841 #define nir_load_subgroup_eq_mask nir_build_load_subgroup_eq_mask 12842 #define nir_build_load_subgroup_ge_mask _nir_build_load_subgroup_ge_mask 12843 #define nir_load_subgroup_ge_mask nir_build_load_subgroup_ge_mask 12844 #define nir_build_load_subgroup_gt_mask _nir_build_load_subgroup_gt_mask 12845 #define nir_load_subgroup_gt_mask nir_build_load_subgroup_gt_mask 12846 #define nir_build_load_subgroup_id _nir_build_load_subgroup_id 12847 #define nir_load_subgroup_id nir_build_load_subgroup_id 12848 #define nir_build_load_subgroup_id_shift_ir3 _nir_build_load_subgroup_id_shift_ir3 12849 #define nir_load_subgroup_id_shift_ir3 nir_build_load_subgroup_id_shift_ir3 12850 #define nir_build_load_subgroup_invocation _nir_build_load_subgroup_invocation 12851 #define nir_load_subgroup_invocation nir_build_load_subgroup_invocation 12852 #define nir_build_load_subgroup_le_mask _nir_build_load_subgroup_le_mask 12853 #define nir_load_subgroup_le_mask nir_build_load_subgroup_le_mask 12854 #define nir_build_load_subgroup_lt_mask _nir_build_load_subgroup_lt_mask 12855 #define nir_load_subgroup_lt_mask nir_build_load_subgroup_lt_mask 12856 #define nir_build_load_subgroup_size _nir_build_load_subgroup_size 12857 #define nir_load_subgroup_size nir_build_load_subgroup_size 12858 #define nir_build_load_tcs_header_ir3 _nir_build_load_tcs_header_ir3 12859 #define nir_load_tcs_header_ir3 nir_build_load_tcs_header_ir3 12860 #define nir_build_load_tcs_in_param_base_r600 _nir_build_load_tcs_in_param_base_r600 12861 #define nir_load_tcs_in_param_base_r600 nir_build_load_tcs_in_param_base_r600 12862 #define nir_build_load_tcs_num_patches_amd _nir_build_load_tcs_num_patches_amd 12863 #define nir_load_tcs_num_patches_amd nir_build_load_tcs_num_patches_amd 12864 #define nir_build_load_tcs_out_param_base_r600 _nir_build_load_tcs_out_param_base_r600 12865 #define nir_load_tcs_out_param_base_r600 nir_build_load_tcs_out_param_base_r600 12866 #define nir_build_load_tcs_rel_patch_id_r600 _nir_build_load_tcs_rel_patch_id_r600 12867 #define nir_load_tcs_rel_patch_id_r600 nir_build_load_tcs_rel_patch_id_r600 12868 #define nir_build_load_tcs_tess_factor_base_r600 _nir_build_load_tcs_tess_factor_base_r600 12869 #define nir_load_tcs_tess_factor_base_r600 nir_build_load_tcs_tess_factor_base_r600 12870 #define nir_build_load_tess_coord _nir_build_load_tess_coord 12871 #define nir_load_tess_coord nir_build_load_tess_coord 12872 #define nir_build_load_tess_coord_r600 _nir_build_load_tess_coord_r600 12873 #define nir_load_tess_coord_r600 nir_build_load_tess_coord_r600 12874 #define nir_build_load_tess_factor_base_ir3 _nir_build_load_tess_factor_base_ir3 12875 #define nir_load_tess_factor_base_ir3 nir_build_load_tess_factor_base_ir3 12876 #define nir_build_load_tess_level_inner _nir_build_load_tess_level_inner 12877 #define nir_load_tess_level_inner nir_build_load_tess_level_inner 12878 #define nir_build_load_tess_level_inner_default _nir_build_load_tess_level_inner_default 12879 #define nir_load_tess_level_inner_default nir_build_load_tess_level_inner_default 12880 #define nir_build_load_tess_level_outer _nir_build_load_tess_level_outer 12881 #define nir_load_tess_level_outer nir_build_load_tess_level_outer 12882 #define nir_build_load_tess_level_outer_default _nir_build_load_tess_level_outer_default 12883 #define nir_load_tess_level_outer_default nir_build_load_tess_level_outer_default 12884 #define nir_build_load_tess_param_base_ir3 _nir_build_load_tess_param_base_ir3 12885 #define nir_load_tess_param_base_ir3 nir_build_load_tess_param_base_ir3 12886 #define nir_build_load_tess_rel_patch_id_amd _nir_build_load_tess_rel_patch_id_amd 12887 #define nir_load_tess_rel_patch_id_amd nir_build_load_tess_rel_patch_id_amd 12888 #define nir_build_load_texture_rect_scaling _nir_build_load_texture_rect_scaling 12889 #define nir_load_texture_rect_scaling nir_build_load_texture_rect_scaling 12890 #ifdef __cplusplus 12891 #define nir_build_load_tlb_color_v3d(build, num_components, bit_size, src0, ...) \ 12892 _nir_build_load_tlb_color_v3d(build, num_components, bit_size, src0, _nir_load_tlb_color_v3d_indices{0, __VA_ARGS__}) 12893 #else 12894 #define nir_build_load_tlb_color_v3d(build, num_components, bit_size, src0, ...) \ 12895 _nir_build_load_tlb_color_v3d(build, num_components, bit_size, src0, (struct _nir_load_tlb_color_v3d_indices){0, __VA_ARGS__}) 12896 #endif 12897 #define nir_load_tlb_color_v3d nir_build_load_tlb_color_v3d 12898 #ifdef __cplusplus 12899 #define nir_build_load_ubo(build, num_components, bit_size, src0, src1, ...) \ 12900 _nir_build_load_ubo(build, num_components, bit_size, src0, src1, _nir_load_ubo_indices{0, __VA_ARGS__}) 12901 #else 12902 #define nir_build_load_ubo(build, num_components, bit_size, src0, src1, ...) \ 12903 _nir_build_load_ubo(build, num_components, bit_size, src0, src1, (struct _nir_load_ubo_indices){0, __VA_ARGS__}) 12904 #endif 12905 #define nir_load_ubo nir_build_load_ubo 12906 #define nir_build_load_ubo_dxil _nir_build_load_ubo_dxil 12907 #define nir_load_ubo_dxil nir_build_load_ubo_dxil 12908 #ifdef __cplusplus 12909 #define nir_build_load_ubo_vec4(build, num_components, bit_size, src0, src1, ...) \ 12910 _nir_build_load_ubo_vec4(build, num_components, bit_size, src0, src1, _nir_load_ubo_vec4_indices{0, __VA_ARGS__}) 12911 #else 12912 #define nir_build_load_ubo_vec4(build, num_components, bit_size, src0, src1, ...) \ 12913 _nir_build_load_ubo_vec4(build, num_components, bit_size, src0, src1, (struct _nir_load_ubo_vec4_indices){0, __VA_ARGS__}) 12914 #endif 12915 #define nir_load_ubo_vec4 nir_build_load_ubo_vec4 12916 #ifdef __cplusplus 12917 #define nir_build_load_uniform(build, num_components, bit_size, src0, ...) \ 12918 _nir_build_load_uniform(build, num_components, bit_size, src0, _nir_load_uniform_indices{0, __VA_ARGS__}) 12919 #else 12920 #define nir_build_load_uniform(build, num_components, bit_size, src0, ...) \ 12921 _nir_build_load_uniform(build, num_components, bit_size, src0, (struct _nir_load_uniform_indices){0, __VA_ARGS__}) 12922 #endif 12923 #define nir_load_uniform nir_build_load_uniform 12924 #ifdef __cplusplus 12925 #define nir_build_load_user_clip_plane(build, ...) \ 12926 _nir_build_load_user_clip_plane(build, _nir_load_user_clip_plane_indices{0, __VA_ARGS__}) 12927 #else 12928 #define nir_build_load_user_clip_plane(build, ...) \ 12929 _nir_build_load_user_clip_plane(build, (struct _nir_load_user_clip_plane_indices){0, __VA_ARGS__}) 12930 #endif 12931 #define nir_load_user_clip_plane nir_build_load_user_clip_plane 12932 #define nir_build_load_user_data_amd _nir_build_load_user_data_amd 12933 #define nir_load_user_data_amd nir_build_load_user_data_amd 12934 #define nir_build_load_vertex_id _nir_build_load_vertex_id 12935 #define nir_load_vertex_id nir_build_load_vertex_id 12936 #define nir_build_load_vertex_id_zero_base _nir_build_load_vertex_id_zero_base 12937 #define nir_load_vertex_id_zero_base nir_build_load_vertex_id_zero_base 12938 #define nir_build_load_view_index _nir_build_load_view_index 12939 #define nir_load_view_index nir_build_load_view_index 12940 #define nir_build_load_viewport_offset _nir_build_load_viewport_offset 12941 #define nir_load_viewport_offset nir_build_load_viewport_offset 12942 #define nir_build_load_viewport_scale _nir_build_load_viewport_scale 12943 #define nir_load_viewport_scale nir_build_load_viewport_scale 12944 #define nir_build_load_viewport_x_offset _nir_build_load_viewport_x_offset 12945 #define nir_load_viewport_x_offset nir_build_load_viewport_x_offset 12946 #define nir_build_load_viewport_x_scale _nir_build_load_viewport_x_scale 12947 #define nir_load_viewport_x_scale nir_build_load_viewport_x_scale 12948 #define nir_build_load_viewport_y_offset _nir_build_load_viewport_y_offset 12949 #define nir_load_viewport_y_offset nir_build_load_viewport_y_offset 12950 #define nir_build_load_viewport_y_scale _nir_build_load_viewport_y_scale 12951 #define nir_load_viewport_y_scale nir_build_load_viewport_y_scale 12952 #define nir_build_load_viewport_z_offset _nir_build_load_viewport_z_offset 12953 #define nir_load_viewport_z_offset nir_build_load_viewport_z_offset 12954 #define nir_build_load_viewport_z_scale _nir_build_load_viewport_z_scale 12955 #define nir_load_viewport_z_scale nir_build_load_viewport_z_scale 12956 #define nir_build_load_vs_primitive_stride_ir3 _nir_build_load_vs_primitive_stride_ir3 12957 #define nir_load_vs_primitive_stride_ir3 nir_build_load_vs_primitive_stride_ir3 12958 #define nir_build_load_vs_vertex_stride_ir3 _nir_build_load_vs_vertex_stride_ir3 12959 #define nir_load_vs_vertex_stride_ir3 nir_build_load_vs_vertex_stride_ir3 12960 #ifdef __cplusplus 12961 #define nir_build_load_vulkan_descriptor(build, num_components, bit_size, src0, ...) \ 12962 _nir_build_load_vulkan_descriptor(build, num_components, bit_size, src0, _nir_load_vulkan_descriptor_indices{0, __VA_ARGS__}) 12963 #else 12964 #define nir_build_load_vulkan_descriptor(build, num_components, bit_size, src0, ...) \ 12965 _nir_build_load_vulkan_descriptor(build, num_components, bit_size, src0, (struct _nir_load_vulkan_descriptor_indices){0, __VA_ARGS__}) 12966 #endif 12967 #define nir_load_vulkan_descriptor nir_build_load_vulkan_descriptor 12968 #define nir_build_load_work_dim _nir_build_load_work_dim 12969 #define nir_load_work_dim nir_build_load_work_dim 12970 #define nir_build_load_workgroup_id _nir_build_load_workgroup_id 12971 #define nir_load_workgroup_id nir_build_load_workgroup_id 12972 #define nir_build_load_workgroup_id_zero_base _nir_build_load_workgroup_id_zero_base 12973 #define nir_load_workgroup_id_zero_base nir_build_load_workgroup_id_zero_base 12974 #define nir_build_load_workgroup_num_input_primitives_amd _nir_build_load_workgroup_num_input_primitives_amd 12975 #define nir_load_workgroup_num_input_primitives_amd nir_build_load_workgroup_num_input_primitives_amd 12976 #define nir_build_load_workgroup_num_input_vertices_amd _nir_build_load_workgroup_num_input_vertices_amd 12977 #define nir_load_workgroup_num_input_vertices_amd nir_build_load_workgroup_num_input_vertices_amd 12978 #define nir_build_load_workgroup_size _nir_build_load_workgroup_size 12979 #define nir_load_workgroup_size nir_build_load_workgroup_size 12980 #ifdef __cplusplus 12981 #define nir_build_masked_swizzle_amd(build, src0, ...) \ 12982 _nir_build_masked_swizzle_amd(build, src0, _nir_masked_swizzle_amd_indices{0, __VA_ARGS__}) 12983 #else 12984 #define nir_build_masked_swizzle_amd(build, src0, ...) \ 12985 _nir_build_masked_swizzle_amd(build, src0, (struct _nir_masked_swizzle_amd_indices){0, __VA_ARGS__}) 12986 #endif 12987 #define nir_masked_swizzle_amd nir_build_masked_swizzle_amd 12988 #define nir_build_mbcnt_amd _nir_build_mbcnt_amd 12989 #define nir_mbcnt_amd nir_build_mbcnt_amd 12990 #ifdef __cplusplus 12991 #define nir_build_memcpy_deref(build, src0, src1, src2, ...) \ 12992 _nir_build_memcpy_deref(build, src0, src1, src2, _nir_memcpy_deref_indices{0, __VA_ARGS__}) 12993 #else 12994 #define nir_build_memcpy_deref(build, src0, src1, src2, ...) \ 12995 _nir_build_memcpy_deref(build, src0, src1, src2, (struct _nir_memcpy_deref_indices){0, __VA_ARGS__}) 12996 #endif 12997 #define nir_memcpy_deref nir_build_memcpy_deref 12998 #define nir_build_memory_barrier _nir_build_memory_barrier 12999 #define nir_memory_barrier nir_build_memory_barrier 13000 #define nir_build_memory_barrier_atomic_counter _nir_build_memory_barrier_atomic_counter 13001 #define nir_memory_barrier_atomic_counter nir_build_memory_barrier_atomic_counter 13002 #define nir_build_memory_barrier_buffer _nir_build_memory_barrier_buffer 13003 #define nir_memory_barrier_buffer nir_build_memory_barrier_buffer 13004 #define nir_build_memory_barrier_image _nir_build_memory_barrier_image 13005 #define nir_memory_barrier_image nir_build_memory_barrier_image 13006 #define nir_build_memory_barrier_shared _nir_build_memory_barrier_shared 13007 #define nir_memory_barrier_shared nir_build_memory_barrier_shared 13008 #define nir_build_memory_barrier_tcs_patch _nir_build_memory_barrier_tcs_patch 13009 #define nir_memory_barrier_tcs_patch nir_build_memory_barrier_tcs_patch 13010 #define nir_build_nop _nir_build_nop 13011 #define nir_nop nir_build_nop 13012 #define nir_build_overwrite_tes_arguments_amd _nir_build_overwrite_tes_arguments_amd 13013 #define nir_overwrite_tes_arguments_amd nir_build_overwrite_tes_arguments_amd 13014 #define nir_build_overwrite_vs_arguments_amd _nir_build_overwrite_vs_arguments_amd 13015 #define nir_overwrite_vs_arguments_amd nir_build_overwrite_vs_arguments_amd 13016 #define nir_build_printf _nir_build_printf 13017 #define nir_printf nir_build_printf 13018 #define nir_build_quad_broadcast _nir_build_quad_broadcast 13019 #define nir_quad_broadcast nir_build_quad_broadcast 13020 #define nir_build_quad_swap_diagonal _nir_build_quad_swap_diagonal 13021 #define nir_quad_swap_diagonal nir_build_quad_swap_diagonal 13022 #define nir_build_quad_swap_horizontal _nir_build_quad_swap_horizontal 13023 #define nir_quad_swap_horizontal nir_build_quad_swap_horizontal 13024 #define nir_build_quad_swap_vertical _nir_build_quad_swap_vertical 13025 #define nir_quad_swap_vertical nir_build_quad_swap_vertical 13026 #ifdef __cplusplus 13027 #define nir_build_quad_swizzle_amd(build, src0, ...) \ 13028 _nir_build_quad_swizzle_amd(build, src0, _nir_quad_swizzle_amd_indices{0, __VA_ARGS__}) 13029 #else 13030 #define nir_build_quad_swizzle_amd(build, src0, ...) \ 13031 _nir_build_quad_swizzle_amd(build, src0, (struct _nir_quad_swizzle_amd_indices){0, __VA_ARGS__}) 13032 #endif 13033 #define nir_quad_swizzle_amd nir_build_quad_swizzle_amd 13034 #define nir_build_read_first_invocation _nir_build_read_first_invocation 13035 #define nir_read_first_invocation nir_build_read_first_invocation 13036 #define nir_build_read_invocation _nir_build_read_invocation 13037 #define nir_read_invocation nir_build_read_invocation 13038 #define nir_build_read_invocation_cond_ir3 _nir_build_read_invocation_cond_ir3 13039 #define nir_read_invocation_cond_ir3 nir_build_read_invocation_cond_ir3 13040 #ifdef __cplusplus 13041 #define nir_build_reduce(build, src0, ...) \ 13042 _nir_build_reduce(build, src0, _nir_reduce_indices{0, __VA_ARGS__}) 13043 #else 13044 #define nir_build_reduce(build, src0, ...) \ 13045 _nir_build_reduce(build, src0, (struct _nir_reduce_indices){0, __VA_ARGS__}) 13046 #endif 13047 #define nir_reduce nir_build_reduce 13048 #define nir_build_report_ray_intersection _nir_build_report_ray_intersection 13049 #define nir_report_ray_intersection nir_build_report_ray_intersection 13050 #ifdef __cplusplus 13051 #define nir_build_rt_execute_callable(build, src0, src1, ...) \ 13052 _nir_build_rt_execute_callable(build, src0, src1, _nir_rt_execute_callable_indices{0, __VA_ARGS__}) 13053 #else 13054 #define nir_build_rt_execute_callable(build, src0, src1, ...) \ 13055 _nir_build_rt_execute_callable(build, src0, src1, (struct _nir_rt_execute_callable_indices){0, __VA_ARGS__}) 13056 #endif 13057 #define nir_rt_execute_callable nir_build_rt_execute_callable 13058 #ifdef __cplusplus 13059 #define nir_build_rt_resume(build, ...) \ 13060 _nir_build_rt_resume(build, _nir_rt_resume_indices{0, __VA_ARGS__}) 13061 #else 13062 #define nir_build_rt_resume(build, ...) \ 13063 _nir_build_rt_resume(build, (struct _nir_rt_resume_indices){0, __VA_ARGS__}) 13064 #endif 13065 #define nir_rt_resume nir_build_rt_resume 13066 #define nir_build_rt_return_amd _nir_build_rt_return_amd 13067 #define nir_rt_return_amd nir_build_rt_return_amd 13068 #ifdef __cplusplus 13069 #define nir_build_rt_trace_ray(build, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, ...) \ 13070 _nir_build_rt_trace_ray(build, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, _nir_rt_trace_ray_indices{0, __VA_ARGS__}) 13071 #else 13072 #define nir_build_rt_trace_ray(build, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, ...) \ 13073 _nir_build_rt_trace_ray(build, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, (struct _nir_rt_trace_ray_indices){0, __VA_ARGS__}) 13074 #endif 13075 #define nir_rt_trace_ray nir_build_rt_trace_ray 13076 #ifdef __cplusplus 13077 #define nir_build_scoped_barrier(build, ...) \ 13078 _nir_build_scoped_barrier(build, _nir_scoped_barrier_indices{0, __VA_ARGS__}) 13079 #else 13080 #define nir_build_scoped_barrier(build, ...) \ 13081 _nir_build_scoped_barrier(build, (struct _nir_scoped_barrier_indices){0, __VA_ARGS__}) 13082 #endif 13083 #define nir_scoped_barrier nir_build_scoped_barrier 13084 #ifdef __cplusplus 13085 #define nir_build_set_vertex_and_primitive_count(build, src0, src1, ...) \ 13086 _nir_build_set_vertex_and_primitive_count(build, src0, src1, _nir_set_vertex_and_primitive_count_indices{0, __VA_ARGS__}) 13087 #else 13088 #define nir_build_set_vertex_and_primitive_count(build, src0, src1, ...) \ 13089 _nir_build_set_vertex_and_primitive_count(build, src0, src1, (struct _nir_set_vertex_and_primitive_count_indices){0, __VA_ARGS__}) 13090 #endif 13091 #define nir_set_vertex_and_primitive_count nir_build_set_vertex_and_primitive_count 13092 #ifdef __cplusplus 13093 #define nir_build_shader_clock(build, ...) \ 13094 _nir_build_shader_clock(build, _nir_shader_clock_indices{0, __VA_ARGS__}) 13095 #else 13096 #define nir_build_shader_clock(build, ...) \ 13097 _nir_build_shader_clock(build, (struct _nir_shader_clock_indices){0, __VA_ARGS__}) 13098 #endif 13099 #define nir_shader_clock nir_build_shader_clock 13100 #ifdef __cplusplus 13101 #define nir_build_shared_atomic_add(build, bit_size, src0, src1, ...) \ 13102 _nir_build_shared_atomic_add(build, bit_size, src0, src1, _nir_shared_atomic_add_indices{0, __VA_ARGS__}) 13103 #else 13104 #define nir_build_shared_atomic_add(build, bit_size, src0, src1, ...) \ 13105 _nir_build_shared_atomic_add(build, bit_size, src0, src1, (struct _nir_shared_atomic_add_indices){0, __VA_ARGS__}) 13106 #endif 13107 #define nir_shared_atomic_add nir_build_shared_atomic_add 13108 #define nir_build_shared_atomic_add_dxil _nir_build_shared_atomic_add_dxil 13109 #define nir_shared_atomic_add_dxil nir_build_shared_atomic_add_dxil 13110 #ifdef __cplusplus 13111 #define nir_build_shared_atomic_and(build, bit_size, src0, src1, ...) \ 13112 _nir_build_shared_atomic_and(build, bit_size, src0, src1, _nir_shared_atomic_and_indices{0, __VA_ARGS__}) 13113 #else 13114 #define nir_build_shared_atomic_and(build, bit_size, src0, src1, ...) \ 13115 _nir_build_shared_atomic_and(build, bit_size, src0, src1, (struct _nir_shared_atomic_and_indices){0, __VA_ARGS__}) 13116 #endif 13117 #define nir_shared_atomic_and nir_build_shared_atomic_and 13118 #define nir_build_shared_atomic_and_dxil _nir_build_shared_atomic_and_dxil 13119 #define nir_shared_atomic_and_dxil nir_build_shared_atomic_and_dxil 13120 #ifdef __cplusplus 13121 #define nir_build_shared_atomic_comp_swap(build, bit_size, src0, src1, src2, ...) \ 13122 _nir_build_shared_atomic_comp_swap(build, bit_size, src0, src1, src2, _nir_shared_atomic_comp_swap_indices{0, __VA_ARGS__}) 13123 #else 13124 #define nir_build_shared_atomic_comp_swap(build, bit_size, src0, src1, src2, ...) \ 13125 _nir_build_shared_atomic_comp_swap(build, bit_size, src0, src1, src2, (struct _nir_shared_atomic_comp_swap_indices){0, __VA_ARGS__}) 13126 #endif 13127 #define nir_shared_atomic_comp_swap nir_build_shared_atomic_comp_swap 13128 #define nir_build_shared_atomic_comp_swap_dxil _nir_build_shared_atomic_comp_swap_dxil 13129 #define nir_shared_atomic_comp_swap_dxil nir_build_shared_atomic_comp_swap_dxil 13130 #ifdef __cplusplus 13131 #define nir_build_shared_atomic_exchange(build, bit_size, src0, src1, ...) \ 13132 _nir_build_shared_atomic_exchange(build, bit_size, src0, src1, _nir_shared_atomic_exchange_indices{0, __VA_ARGS__}) 13133 #else 13134 #define nir_build_shared_atomic_exchange(build, bit_size, src0, src1, ...) \ 13135 _nir_build_shared_atomic_exchange(build, bit_size, src0, src1, (struct _nir_shared_atomic_exchange_indices){0, __VA_ARGS__}) 13136 #endif 13137 #define nir_shared_atomic_exchange nir_build_shared_atomic_exchange 13138 #define nir_build_shared_atomic_exchange_dxil _nir_build_shared_atomic_exchange_dxil 13139 #define nir_shared_atomic_exchange_dxil nir_build_shared_atomic_exchange_dxil 13140 #ifdef __cplusplus 13141 #define nir_build_shared_atomic_fadd(build, bit_size, src0, src1, ...) \ 13142 _nir_build_shared_atomic_fadd(build, bit_size, src0, src1, _nir_shared_atomic_fadd_indices{0, __VA_ARGS__}) 13143 #else 13144 #define nir_build_shared_atomic_fadd(build, bit_size, src0, src1, ...) \ 13145 _nir_build_shared_atomic_fadd(build, bit_size, src0, src1, (struct _nir_shared_atomic_fadd_indices){0, __VA_ARGS__}) 13146 #endif 13147 #define nir_shared_atomic_fadd nir_build_shared_atomic_fadd 13148 #ifdef __cplusplus 13149 #define nir_build_shared_atomic_fcomp_swap(build, bit_size, src0, src1, src2, ...) \ 13150 _nir_build_shared_atomic_fcomp_swap(build, bit_size, src0, src1, src2, _nir_shared_atomic_fcomp_swap_indices{0, __VA_ARGS__}) 13151 #else 13152 #define nir_build_shared_atomic_fcomp_swap(build, bit_size, src0, src1, src2, ...) \ 13153 _nir_build_shared_atomic_fcomp_swap(build, bit_size, src0, src1, src2, (struct _nir_shared_atomic_fcomp_swap_indices){0, __VA_ARGS__}) 13154 #endif 13155 #define nir_shared_atomic_fcomp_swap nir_build_shared_atomic_fcomp_swap 13156 #ifdef __cplusplus 13157 #define nir_build_shared_atomic_fmax(build, bit_size, src0, src1, ...) \ 13158 _nir_build_shared_atomic_fmax(build, bit_size, src0, src1, _nir_shared_atomic_fmax_indices{0, __VA_ARGS__}) 13159 #else 13160 #define nir_build_shared_atomic_fmax(build, bit_size, src0, src1, ...) \ 13161 _nir_build_shared_atomic_fmax(build, bit_size, src0, src1, (struct _nir_shared_atomic_fmax_indices){0, __VA_ARGS__}) 13162 #endif 13163 #define nir_shared_atomic_fmax nir_build_shared_atomic_fmax 13164 #ifdef __cplusplus 13165 #define nir_build_shared_atomic_fmin(build, bit_size, src0, src1, ...) \ 13166 _nir_build_shared_atomic_fmin(build, bit_size, src0, src1, _nir_shared_atomic_fmin_indices{0, __VA_ARGS__}) 13167 #else 13168 #define nir_build_shared_atomic_fmin(build, bit_size, src0, src1, ...) \ 13169 _nir_build_shared_atomic_fmin(build, bit_size, src0, src1, (struct _nir_shared_atomic_fmin_indices){0, __VA_ARGS__}) 13170 #endif 13171 #define nir_shared_atomic_fmin nir_build_shared_atomic_fmin 13172 #ifdef __cplusplus 13173 #define nir_build_shared_atomic_imax(build, bit_size, src0, src1, ...) \ 13174 _nir_build_shared_atomic_imax(build, bit_size, src0, src1, _nir_shared_atomic_imax_indices{0, __VA_ARGS__}) 13175 #else 13176 #define nir_build_shared_atomic_imax(build, bit_size, src0, src1, ...) \ 13177 _nir_build_shared_atomic_imax(build, bit_size, src0, src1, (struct _nir_shared_atomic_imax_indices){0, __VA_ARGS__}) 13178 #endif 13179 #define nir_shared_atomic_imax nir_build_shared_atomic_imax 13180 #define nir_build_shared_atomic_imax_dxil _nir_build_shared_atomic_imax_dxil 13181 #define nir_shared_atomic_imax_dxil nir_build_shared_atomic_imax_dxil 13182 #ifdef __cplusplus 13183 #define nir_build_shared_atomic_imin(build, bit_size, src0, src1, ...) \ 13184 _nir_build_shared_atomic_imin(build, bit_size, src0, src1, _nir_shared_atomic_imin_indices{0, __VA_ARGS__}) 13185 #else 13186 #define nir_build_shared_atomic_imin(build, bit_size, src0, src1, ...) \ 13187 _nir_build_shared_atomic_imin(build, bit_size, src0, src1, (struct _nir_shared_atomic_imin_indices){0, __VA_ARGS__}) 13188 #endif 13189 #define nir_shared_atomic_imin nir_build_shared_atomic_imin 13190 #define nir_build_shared_atomic_imin_dxil _nir_build_shared_atomic_imin_dxil 13191 #define nir_shared_atomic_imin_dxil nir_build_shared_atomic_imin_dxil 13192 #ifdef __cplusplus 13193 #define nir_build_shared_atomic_or(build, bit_size, src0, src1, ...) \ 13194 _nir_build_shared_atomic_or(build, bit_size, src0, src1, _nir_shared_atomic_or_indices{0, __VA_ARGS__}) 13195 #else 13196 #define nir_build_shared_atomic_or(build, bit_size, src0, src1, ...) \ 13197 _nir_build_shared_atomic_or(build, bit_size, src0, src1, (struct _nir_shared_atomic_or_indices){0, __VA_ARGS__}) 13198 #endif 13199 #define nir_shared_atomic_or nir_build_shared_atomic_or 13200 #define nir_build_shared_atomic_or_dxil _nir_build_shared_atomic_or_dxil 13201 #define nir_shared_atomic_or_dxil nir_build_shared_atomic_or_dxil 13202 #ifdef __cplusplus 13203 #define nir_build_shared_atomic_umax(build, bit_size, src0, src1, ...) \ 13204 _nir_build_shared_atomic_umax(build, bit_size, src0, src1, _nir_shared_atomic_umax_indices{0, __VA_ARGS__}) 13205 #else 13206 #define nir_build_shared_atomic_umax(build, bit_size, src0, src1, ...) \ 13207 _nir_build_shared_atomic_umax(build, bit_size, src0, src1, (struct _nir_shared_atomic_umax_indices){0, __VA_ARGS__}) 13208 #endif 13209 #define nir_shared_atomic_umax nir_build_shared_atomic_umax 13210 #define nir_build_shared_atomic_umax_dxil _nir_build_shared_atomic_umax_dxil 13211 #define nir_shared_atomic_umax_dxil nir_build_shared_atomic_umax_dxil 13212 #ifdef __cplusplus 13213 #define nir_build_shared_atomic_umin(build, bit_size, src0, src1, ...) \ 13214 _nir_build_shared_atomic_umin(build, bit_size, src0, src1, _nir_shared_atomic_umin_indices{0, __VA_ARGS__}) 13215 #else 13216 #define nir_build_shared_atomic_umin(build, bit_size, src0, src1, ...) \ 13217 _nir_build_shared_atomic_umin(build, bit_size, src0, src1, (struct _nir_shared_atomic_umin_indices){0, __VA_ARGS__}) 13218 #endif 13219 #define nir_shared_atomic_umin nir_build_shared_atomic_umin 13220 #define nir_build_shared_atomic_umin_dxil _nir_build_shared_atomic_umin_dxil 13221 #define nir_shared_atomic_umin_dxil nir_build_shared_atomic_umin_dxil 13222 #ifdef __cplusplus 13223 #define nir_build_shared_atomic_xor(build, bit_size, src0, src1, ...) \ 13224 _nir_build_shared_atomic_xor(build, bit_size, src0, src1, _nir_shared_atomic_xor_indices{0, __VA_ARGS__}) 13225 #else 13226 #define nir_build_shared_atomic_xor(build, bit_size, src0, src1, ...) \ 13227 _nir_build_shared_atomic_xor(build, bit_size, src0, src1, (struct _nir_shared_atomic_xor_indices){0, __VA_ARGS__}) 13228 #endif 13229 #define nir_shared_atomic_xor nir_build_shared_atomic_xor 13230 #define nir_build_shared_atomic_xor_dxil _nir_build_shared_atomic_xor_dxil 13231 #define nir_shared_atomic_xor_dxil nir_build_shared_atomic_xor_dxil 13232 #define nir_build_shuffle _nir_build_shuffle 13233 #define nir_shuffle nir_build_shuffle 13234 #define nir_build_shuffle_down _nir_build_shuffle_down 13235 #define nir_shuffle_down nir_build_shuffle_down 13236 #define nir_build_shuffle_up _nir_build_shuffle_up 13237 #define nir_shuffle_up nir_build_shuffle_up 13238 #define nir_build_shuffle_xor _nir_build_shuffle_xor 13239 #define nir_shuffle_xor nir_build_shuffle_xor 13240 #define nir_build_sparse_residency_code_and _nir_build_sparse_residency_code_and 13241 #define nir_sparse_residency_code_and nir_build_sparse_residency_code_and 13242 #ifdef __cplusplus 13243 #define nir_build_ssbo_atomic_add(build, bit_size, src0, src1, src2, ...) \ 13244 _nir_build_ssbo_atomic_add(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_add_indices{0, __VA_ARGS__}) 13245 #else 13246 #define nir_build_ssbo_atomic_add(build, bit_size, src0, src1, src2, ...) \ 13247 _nir_build_ssbo_atomic_add(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_add_indices){0, __VA_ARGS__}) 13248 #endif 13249 #define nir_ssbo_atomic_add nir_build_ssbo_atomic_add 13250 #ifdef __cplusplus 13251 #define nir_build_ssbo_atomic_add_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13252 _nir_build_ssbo_atomic_add_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_add_ir3_indices{0, __VA_ARGS__}) 13253 #else 13254 #define nir_build_ssbo_atomic_add_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13255 _nir_build_ssbo_atomic_add_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_add_ir3_indices){0, __VA_ARGS__}) 13256 #endif 13257 #define nir_ssbo_atomic_add_ir3 nir_build_ssbo_atomic_add_ir3 13258 #ifdef __cplusplus 13259 #define nir_build_ssbo_atomic_and(build, bit_size, src0, src1, src2, ...) \ 13260 _nir_build_ssbo_atomic_and(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_and_indices{0, __VA_ARGS__}) 13261 #else 13262 #define nir_build_ssbo_atomic_and(build, bit_size, src0, src1, src2, ...) \ 13263 _nir_build_ssbo_atomic_and(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_and_indices){0, __VA_ARGS__}) 13264 #endif 13265 #define nir_ssbo_atomic_and nir_build_ssbo_atomic_and 13266 #ifdef __cplusplus 13267 #define nir_build_ssbo_atomic_and_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13268 _nir_build_ssbo_atomic_and_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_and_ir3_indices{0, __VA_ARGS__}) 13269 #else 13270 #define nir_build_ssbo_atomic_and_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13271 _nir_build_ssbo_atomic_and_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_and_ir3_indices){0, __VA_ARGS__}) 13272 #endif 13273 #define nir_ssbo_atomic_and_ir3 nir_build_ssbo_atomic_and_ir3 13274 #ifdef __cplusplus 13275 #define nir_build_ssbo_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, ...) \ 13276 _nir_build_ssbo_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_comp_swap_indices{0, __VA_ARGS__}) 13277 #else 13278 #define nir_build_ssbo_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, ...) \ 13279 _nir_build_ssbo_atomic_comp_swap(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_comp_swap_indices){0, __VA_ARGS__}) 13280 #endif 13281 #define nir_ssbo_atomic_comp_swap nir_build_ssbo_atomic_comp_swap 13282 #ifdef __cplusplus 13283 #define nir_build_ssbo_atomic_comp_swap_ir3(build, bit_size, src0, src1, src2, src3, src4, ...) \ 13284 _nir_build_ssbo_atomic_comp_swap_ir3(build, bit_size, src0, src1, src2, src3, src4, _nir_ssbo_atomic_comp_swap_ir3_indices{0, __VA_ARGS__}) 13285 #else 13286 #define nir_build_ssbo_atomic_comp_swap_ir3(build, bit_size, src0, src1, src2, src3, src4, ...) \ 13287 _nir_build_ssbo_atomic_comp_swap_ir3(build, bit_size, src0, src1, src2, src3, src4, (struct _nir_ssbo_atomic_comp_swap_ir3_indices){0, __VA_ARGS__}) 13288 #endif 13289 #define nir_ssbo_atomic_comp_swap_ir3 nir_build_ssbo_atomic_comp_swap_ir3 13290 #ifdef __cplusplus 13291 #define nir_build_ssbo_atomic_exchange(build, bit_size, src0, src1, src2, ...) \ 13292 _nir_build_ssbo_atomic_exchange(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_exchange_indices{0, __VA_ARGS__}) 13293 #else 13294 #define nir_build_ssbo_atomic_exchange(build, bit_size, src0, src1, src2, ...) \ 13295 _nir_build_ssbo_atomic_exchange(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_exchange_indices){0, __VA_ARGS__}) 13296 #endif 13297 #define nir_ssbo_atomic_exchange nir_build_ssbo_atomic_exchange 13298 #ifdef __cplusplus 13299 #define nir_build_ssbo_atomic_exchange_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13300 _nir_build_ssbo_atomic_exchange_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_exchange_ir3_indices{0, __VA_ARGS__}) 13301 #else 13302 #define nir_build_ssbo_atomic_exchange_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13303 _nir_build_ssbo_atomic_exchange_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_exchange_ir3_indices){0, __VA_ARGS__}) 13304 #endif 13305 #define nir_ssbo_atomic_exchange_ir3 nir_build_ssbo_atomic_exchange_ir3 13306 #ifdef __cplusplus 13307 #define nir_build_ssbo_atomic_fadd(build, bit_size, src0, src1, src2, ...) \ 13308 _nir_build_ssbo_atomic_fadd(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_fadd_indices{0, __VA_ARGS__}) 13309 #else 13310 #define nir_build_ssbo_atomic_fadd(build, bit_size, src0, src1, src2, ...) \ 13311 _nir_build_ssbo_atomic_fadd(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_fadd_indices){0, __VA_ARGS__}) 13312 #endif 13313 #define nir_ssbo_atomic_fadd nir_build_ssbo_atomic_fadd 13314 #ifdef __cplusplus 13315 #define nir_build_ssbo_atomic_fcomp_swap(build, bit_size, src0, src1, src2, src3, ...) \ 13316 _nir_build_ssbo_atomic_fcomp_swap(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_fcomp_swap_indices{0, __VA_ARGS__}) 13317 #else 13318 #define nir_build_ssbo_atomic_fcomp_swap(build, bit_size, src0, src1, src2, src3, ...) \ 13319 _nir_build_ssbo_atomic_fcomp_swap(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_fcomp_swap_indices){0, __VA_ARGS__}) 13320 #endif 13321 #define nir_ssbo_atomic_fcomp_swap nir_build_ssbo_atomic_fcomp_swap 13322 #ifdef __cplusplus 13323 #define nir_build_ssbo_atomic_fmax(build, bit_size, src0, src1, src2, ...) \ 13324 _nir_build_ssbo_atomic_fmax(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_fmax_indices{0, __VA_ARGS__}) 13325 #else 13326 #define nir_build_ssbo_atomic_fmax(build, bit_size, src0, src1, src2, ...) \ 13327 _nir_build_ssbo_atomic_fmax(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_fmax_indices){0, __VA_ARGS__}) 13328 #endif 13329 #define nir_ssbo_atomic_fmax nir_build_ssbo_atomic_fmax 13330 #ifdef __cplusplus 13331 #define nir_build_ssbo_atomic_fmin(build, bit_size, src0, src1, src2, ...) \ 13332 _nir_build_ssbo_atomic_fmin(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_fmin_indices{0, __VA_ARGS__}) 13333 #else 13334 #define nir_build_ssbo_atomic_fmin(build, bit_size, src0, src1, src2, ...) \ 13335 _nir_build_ssbo_atomic_fmin(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_fmin_indices){0, __VA_ARGS__}) 13336 #endif 13337 #define nir_ssbo_atomic_fmin nir_build_ssbo_atomic_fmin 13338 #ifdef __cplusplus 13339 #define nir_build_ssbo_atomic_imax(build, bit_size, src0, src1, src2, ...) \ 13340 _nir_build_ssbo_atomic_imax(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_imax_indices{0, __VA_ARGS__}) 13341 #else 13342 #define nir_build_ssbo_atomic_imax(build, bit_size, src0, src1, src2, ...) \ 13343 _nir_build_ssbo_atomic_imax(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_imax_indices){0, __VA_ARGS__}) 13344 #endif 13345 #define nir_ssbo_atomic_imax nir_build_ssbo_atomic_imax 13346 #ifdef __cplusplus 13347 #define nir_build_ssbo_atomic_imax_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13348 _nir_build_ssbo_atomic_imax_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_imax_ir3_indices{0, __VA_ARGS__}) 13349 #else 13350 #define nir_build_ssbo_atomic_imax_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13351 _nir_build_ssbo_atomic_imax_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_imax_ir3_indices){0, __VA_ARGS__}) 13352 #endif 13353 #define nir_ssbo_atomic_imax_ir3 nir_build_ssbo_atomic_imax_ir3 13354 #ifdef __cplusplus 13355 #define nir_build_ssbo_atomic_imin(build, bit_size, src0, src1, src2, ...) \ 13356 _nir_build_ssbo_atomic_imin(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_imin_indices{0, __VA_ARGS__}) 13357 #else 13358 #define nir_build_ssbo_atomic_imin(build, bit_size, src0, src1, src2, ...) \ 13359 _nir_build_ssbo_atomic_imin(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_imin_indices){0, __VA_ARGS__}) 13360 #endif 13361 #define nir_ssbo_atomic_imin nir_build_ssbo_atomic_imin 13362 #ifdef __cplusplus 13363 #define nir_build_ssbo_atomic_imin_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13364 _nir_build_ssbo_atomic_imin_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_imin_ir3_indices{0, __VA_ARGS__}) 13365 #else 13366 #define nir_build_ssbo_atomic_imin_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13367 _nir_build_ssbo_atomic_imin_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_imin_ir3_indices){0, __VA_ARGS__}) 13368 #endif 13369 #define nir_ssbo_atomic_imin_ir3 nir_build_ssbo_atomic_imin_ir3 13370 #ifdef __cplusplus 13371 #define nir_build_ssbo_atomic_or(build, bit_size, src0, src1, src2, ...) \ 13372 _nir_build_ssbo_atomic_or(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_or_indices{0, __VA_ARGS__}) 13373 #else 13374 #define nir_build_ssbo_atomic_or(build, bit_size, src0, src1, src2, ...) \ 13375 _nir_build_ssbo_atomic_or(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_or_indices){0, __VA_ARGS__}) 13376 #endif 13377 #define nir_ssbo_atomic_or nir_build_ssbo_atomic_or 13378 #ifdef __cplusplus 13379 #define nir_build_ssbo_atomic_or_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13380 _nir_build_ssbo_atomic_or_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_or_ir3_indices{0, __VA_ARGS__}) 13381 #else 13382 #define nir_build_ssbo_atomic_or_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13383 _nir_build_ssbo_atomic_or_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_or_ir3_indices){0, __VA_ARGS__}) 13384 #endif 13385 #define nir_ssbo_atomic_or_ir3 nir_build_ssbo_atomic_or_ir3 13386 #ifdef __cplusplus 13387 #define nir_build_ssbo_atomic_umax(build, bit_size, src0, src1, src2, ...) \ 13388 _nir_build_ssbo_atomic_umax(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_umax_indices{0, __VA_ARGS__}) 13389 #else 13390 #define nir_build_ssbo_atomic_umax(build, bit_size, src0, src1, src2, ...) \ 13391 _nir_build_ssbo_atomic_umax(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_umax_indices){0, __VA_ARGS__}) 13392 #endif 13393 #define nir_ssbo_atomic_umax nir_build_ssbo_atomic_umax 13394 #ifdef __cplusplus 13395 #define nir_build_ssbo_atomic_umax_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13396 _nir_build_ssbo_atomic_umax_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_umax_ir3_indices{0, __VA_ARGS__}) 13397 #else 13398 #define nir_build_ssbo_atomic_umax_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13399 _nir_build_ssbo_atomic_umax_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_umax_ir3_indices){0, __VA_ARGS__}) 13400 #endif 13401 #define nir_ssbo_atomic_umax_ir3 nir_build_ssbo_atomic_umax_ir3 13402 #ifdef __cplusplus 13403 #define nir_build_ssbo_atomic_umin(build, bit_size, src0, src1, src2, ...) \ 13404 _nir_build_ssbo_atomic_umin(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_umin_indices{0, __VA_ARGS__}) 13405 #else 13406 #define nir_build_ssbo_atomic_umin(build, bit_size, src0, src1, src2, ...) \ 13407 _nir_build_ssbo_atomic_umin(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_umin_indices){0, __VA_ARGS__}) 13408 #endif 13409 #define nir_ssbo_atomic_umin nir_build_ssbo_atomic_umin 13410 #ifdef __cplusplus 13411 #define nir_build_ssbo_atomic_umin_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13412 _nir_build_ssbo_atomic_umin_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_umin_ir3_indices{0, __VA_ARGS__}) 13413 #else 13414 #define nir_build_ssbo_atomic_umin_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13415 _nir_build_ssbo_atomic_umin_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_umin_ir3_indices){0, __VA_ARGS__}) 13416 #endif 13417 #define nir_ssbo_atomic_umin_ir3 nir_build_ssbo_atomic_umin_ir3 13418 #ifdef __cplusplus 13419 #define nir_build_ssbo_atomic_xor(build, bit_size, src0, src1, src2, ...) \ 13420 _nir_build_ssbo_atomic_xor(build, bit_size, src0, src1, src2, _nir_ssbo_atomic_xor_indices{0, __VA_ARGS__}) 13421 #else 13422 #define nir_build_ssbo_atomic_xor(build, bit_size, src0, src1, src2, ...) \ 13423 _nir_build_ssbo_atomic_xor(build, bit_size, src0, src1, src2, (struct _nir_ssbo_atomic_xor_indices){0, __VA_ARGS__}) 13424 #endif 13425 #define nir_ssbo_atomic_xor nir_build_ssbo_atomic_xor 13426 #ifdef __cplusplus 13427 #define nir_build_ssbo_atomic_xor_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13428 _nir_build_ssbo_atomic_xor_ir3(build, bit_size, src0, src1, src2, src3, _nir_ssbo_atomic_xor_ir3_indices{0, __VA_ARGS__}) 13429 #else 13430 #define nir_build_ssbo_atomic_xor_ir3(build, bit_size, src0, src1, src2, src3, ...) \ 13431 _nir_build_ssbo_atomic_xor_ir3(build, bit_size, src0, src1, src2, src3, (struct _nir_ssbo_atomic_xor_ir3_indices){0, __VA_ARGS__}) 13432 #endif 13433 #define nir_ssbo_atomic_xor_ir3 nir_build_ssbo_atomic_xor_ir3 13434 #ifdef __cplusplus 13435 #define nir_build_store_buffer_amd(build, src0, src1, src2, src3, ...) \ 13436 _nir_build_store_buffer_amd(build, src0, src1, src2, src3, _nir_store_buffer_amd_indices{0, __VA_ARGS__}) 13437 #else 13438 #define nir_build_store_buffer_amd(build, src0, src1, src2, src3, ...) \ 13439 _nir_build_store_buffer_amd(build, src0, src1, src2, src3, (struct _nir_store_buffer_amd_indices){0, __VA_ARGS__}) 13440 #endif 13441 #define nir_store_buffer_amd nir_build_store_buffer_amd 13442 #ifdef __cplusplus 13443 #define nir_build_store_combined_output_pan(build, src0, src1, src2, src3, ...) \ 13444 _nir_build_store_combined_output_pan(build, src0, src1, src2, src3, _nir_store_combined_output_pan_indices{0, __VA_ARGS__}) 13445 #else 13446 #define nir_build_store_combined_output_pan(build, src0, src1, src2, src3, ...) \ 13447 _nir_build_store_combined_output_pan(build, src0, src1, src2, src3, (struct _nir_store_combined_output_pan_indices){0, __VA_ARGS__}) 13448 #endif 13449 #define nir_store_combined_output_pan nir_build_store_combined_output_pan 13450 #ifdef __cplusplus 13451 #define nir_build_store_deref(build, src0, src1, ...) \ 13452 _nir_build_store_deref(build, src0, src1, _nir_store_deref_indices{0, __VA_ARGS__}) 13453 #else 13454 #define nir_build_store_deref(build, src0, src1, ...) \ 13455 _nir_build_store_deref(build, src0, src1, (struct _nir_store_deref_indices){0, __VA_ARGS__}) 13456 #endif 13457 #define nir_store_deref nir_build_store_deref 13458 #ifdef __cplusplus 13459 #define nir_build_store_deref_block_intel(build, src0, src1, ...) \ 13460 _nir_build_store_deref_block_intel(build, src0, src1, _nir_store_deref_block_intel_indices{0, __VA_ARGS__}) 13461 #else 13462 #define nir_build_store_deref_block_intel(build, src0, src1, ...) \ 13463 _nir_build_store_deref_block_intel(build, src0, src1, (struct _nir_store_deref_block_intel_indices){0, __VA_ARGS__}) 13464 #endif 13465 #define nir_store_deref_block_intel nir_build_store_deref_block_intel 13466 #ifdef __cplusplus 13467 #define nir_build_store_global(build, src0, src1, ...) \ 13468 _nir_build_store_global(build, src0, src1, _nir_store_global_indices{0, __VA_ARGS__}) 13469 #else 13470 #define nir_build_store_global(build, src0, src1, ...) \ 13471 _nir_build_store_global(build, src0, src1, (struct _nir_store_global_indices){0, __VA_ARGS__}) 13472 #endif 13473 #define nir_store_global nir_build_store_global 13474 #ifdef __cplusplus 13475 #define nir_build_store_global_block_intel(build, src0, src1, ...) \ 13476 _nir_build_store_global_block_intel(build, src0, src1, _nir_store_global_block_intel_indices{0, __VA_ARGS__}) 13477 #else 13478 #define nir_build_store_global_block_intel(build, src0, src1, ...) \ 13479 _nir_build_store_global_block_intel(build, src0, src1, (struct _nir_store_global_block_intel_indices){0, __VA_ARGS__}) 13480 #endif 13481 #define nir_store_global_block_intel nir_build_store_global_block_intel 13482 #ifdef __cplusplus 13483 #define nir_build_store_global_ir3(build, src0, src1, src2, ...) \ 13484 _nir_build_store_global_ir3(build, src0, src1, src2, _nir_store_global_ir3_indices{0, __VA_ARGS__}) 13485 #else 13486 #define nir_build_store_global_ir3(build, src0, src1, src2, ...) \ 13487 _nir_build_store_global_ir3(build, src0, src1, src2, (struct _nir_store_global_ir3_indices){0, __VA_ARGS__}) 13488 #endif 13489 #define nir_store_global_ir3 nir_build_store_global_ir3 13490 #ifdef __cplusplus 13491 #define nir_build_store_local_shared_r600(build, src0, src1, ...) \ 13492 _nir_build_store_local_shared_r600(build, src0, src1, _nir_store_local_shared_r600_indices{0, __VA_ARGS__}) 13493 #else 13494 #define nir_build_store_local_shared_r600(build, src0, src1, ...) \ 13495 _nir_build_store_local_shared_r600(build, src0, src1, (struct _nir_store_local_shared_r600_indices){0, __VA_ARGS__}) 13496 #endif 13497 #define nir_store_local_shared_r600 nir_build_store_local_shared_r600 13498 #ifdef __cplusplus 13499 #define nir_build_store_output(build, src0, src1, ...) \ 13500 _nir_build_store_output(build, src0, src1, _nir_store_output_indices{0, __VA_ARGS__}) 13501 #else 13502 #define nir_build_store_output(build, src0, src1, ...) \ 13503 _nir_build_store_output(build, src0, src1, (struct _nir_store_output_indices){0, __VA_ARGS__}) 13504 #endif 13505 #define nir_store_output nir_build_store_output 13506 #ifdef __cplusplus 13507 #define nir_build_store_per_primitive_output(build, src0, src1, src2, ...) \ 13508 _nir_build_store_per_primitive_output(build, src0, src1, src2, _nir_store_per_primitive_output_indices{0, __VA_ARGS__}) 13509 #else 13510 #define nir_build_store_per_primitive_output(build, src0, src1, src2, ...) \ 13511 _nir_build_store_per_primitive_output(build, src0, src1, src2, (struct _nir_store_per_primitive_output_indices){0, __VA_ARGS__}) 13512 #endif 13513 #define nir_store_per_primitive_output nir_build_store_per_primitive_output 13514 #ifdef __cplusplus 13515 #define nir_build_store_per_vertex_output(build, src0, src1, src2, ...) \ 13516 _nir_build_store_per_vertex_output(build, src0, src1, src2, _nir_store_per_vertex_output_indices{0, __VA_ARGS__}) 13517 #else 13518 #define nir_build_store_per_vertex_output(build, src0, src1, src2, ...) \ 13519 _nir_build_store_per_vertex_output(build, src0, src1, src2, (struct _nir_store_per_vertex_output_indices){0, __VA_ARGS__}) 13520 #endif 13521 #define nir_store_per_vertex_output nir_build_store_per_vertex_output 13522 #define nir_build_store_raw_output_pan _nir_build_store_raw_output_pan 13523 #define nir_store_raw_output_pan nir_build_store_raw_output_pan 13524 #ifdef __cplusplus 13525 #define nir_build_store_scratch(build, src0, src1, ...) \ 13526 _nir_build_store_scratch(build, src0, src1, _nir_store_scratch_indices{0, __VA_ARGS__}) 13527 #else 13528 #define nir_build_store_scratch(build, src0, src1, ...) \ 13529 _nir_build_store_scratch(build, src0, src1, (struct _nir_store_scratch_indices){0, __VA_ARGS__}) 13530 #endif 13531 #define nir_store_scratch nir_build_store_scratch 13532 #define nir_build_store_scratch_dxil _nir_build_store_scratch_dxil 13533 #define nir_store_scratch_dxil nir_build_store_scratch_dxil 13534 #ifdef __cplusplus 13535 #define nir_build_store_shared(build, src0, src1, ...) \ 13536 _nir_build_store_shared(build, src0, src1, _nir_store_shared_indices{0, __VA_ARGS__}) 13537 #else 13538 #define nir_build_store_shared(build, src0, src1, ...) \ 13539 _nir_build_store_shared(build, src0, src1, (struct _nir_store_shared_indices){0, __VA_ARGS__}) 13540 #endif 13541 #define nir_store_shared nir_build_store_shared 13542 #ifdef __cplusplus 13543 #define nir_build_store_shared_block_intel(build, src0, src1, ...) \ 13544 _nir_build_store_shared_block_intel(build, src0, src1, _nir_store_shared_block_intel_indices{0, __VA_ARGS__}) 13545 #else 13546 #define nir_build_store_shared_block_intel(build, src0, src1, ...) \ 13547 _nir_build_store_shared_block_intel(build, src0, src1, (struct _nir_store_shared_block_intel_indices){0, __VA_ARGS__}) 13548 #endif 13549 #define nir_store_shared_block_intel nir_build_store_shared_block_intel 13550 #define nir_build_store_shared_dxil _nir_build_store_shared_dxil 13551 #define nir_store_shared_dxil nir_build_store_shared_dxil 13552 #ifdef __cplusplus 13553 #define nir_build_store_shared_ir3(build, src0, src1, ...) \ 13554 _nir_build_store_shared_ir3(build, src0, src1, _nir_store_shared_ir3_indices{0, __VA_ARGS__}) 13555 #else 13556 #define nir_build_store_shared_ir3(build, src0, src1, ...) \ 13557 _nir_build_store_shared_ir3(build, src0, src1, (struct _nir_store_shared_ir3_indices){0, __VA_ARGS__}) 13558 #endif 13559 #define nir_store_shared_ir3 nir_build_store_shared_ir3 13560 #define nir_build_store_shared_masked_dxil _nir_build_store_shared_masked_dxil 13561 #define nir_store_shared_masked_dxil nir_build_store_shared_masked_dxil 13562 #ifdef __cplusplus 13563 #define nir_build_store_ssbo(build, src0, src1, src2, ...) \ 13564 _nir_build_store_ssbo(build, src0, src1, src2, _nir_store_ssbo_indices{0, __VA_ARGS__}) 13565 #else 13566 #define nir_build_store_ssbo(build, src0, src1, src2, ...) \ 13567 _nir_build_store_ssbo(build, src0, src1, src2, (struct _nir_store_ssbo_indices){0, __VA_ARGS__}) 13568 #endif 13569 #define nir_store_ssbo nir_build_store_ssbo 13570 #ifdef __cplusplus 13571 #define nir_build_store_ssbo_block_intel(build, src0, src1, src2, ...) \ 13572 _nir_build_store_ssbo_block_intel(build, src0, src1, src2, _nir_store_ssbo_block_intel_indices{0, __VA_ARGS__}) 13573 #else 13574 #define nir_build_store_ssbo_block_intel(build, src0, src1, src2, ...) \ 13575 _nir_build_store_ssbo_block_intel(build, src0, src1, src2, (struct _nir_store_ssbo_block_intel_indices){0, __VA_ARGS__}) 13576 #endif 13577 #define nir_store_ssbo_block_intel nir_build_store_ssbo_block_intel 13578 #ifdef __cplusplus 13579 #define nir_build_store_ssbo_ir3(build, src0, src1, src2, src3, ...) \ 13580 _nir_build_store_ssbo_ir3(build, src0, src1, src2, src3, _nir_store_ssbo_ir3_indices{0, __VA_ARGS__}) 13581 #else 13582 #define nir_build_store_ssbo_ir3(build, src0, src1, src2, src3, ...) \ 13583 _nir_build_store_ssbo_ir3(build, src0, src1, src2, src3, (struct _nir_store_ssbo_ir3_indices){0, __VA_ARGS__}) 13584 #endif 13585 #define nir_store_ssbo_ir3 nir_build_store_ssbo_ir3 13586 #define nir_build_store_ssbo_masked_dxil _nir_build_store_ssbo_masked_dxil 13587 #define nir_store_ssbo_masked_dxil nir_build_store_ssbo_masked_dxil 13588 #define nir_build_store_tf_r600 _nir_build_store_tf_r600 13589 #define nir_store_tf_r600 nir_build_store_tf_r600 13590 #ifdef __cplusplus 13591 #define nir_build_store_tlb_sample_color_v3d(build, src0, src1, ...) \ 13592 _nir_build_store_tlb_sample_color_v3d(build, src0, src1, _nir_store_tlb_sample_color_v3d_indices{0, __VA_ARGS__}) 13593 #else 13594 #define nir_build_store_tlb_sample_color_v3d(build, src0, src1, ...) \ 13595 _nir_build_store_tlb_sample_color_v3d(build, src0, src1, (struct _nir_store_tlb_sample_color_v3d_indices){0, __VA_ARGS__}) 13596 #endif 13597 #define nir_store_tlb_sample_color_v3d nir_build_store_tlb_sample_color_v3d 13598 #define nir_build_terminate _nir_build_terminate 13599 #define nir_terminate nir_build_terminate 13600 #define nir_build_terminate_if _nir_build_terminate_if 13601 #define nir_terminate_if nir_build_terminate_if 13602 #define nir_build_terminate_ray _nir_build_terminate_ray 13603 #define nir_terminate_ray nir_build_terminate_ray 13604 #define nir_build_trace_ray _nir_build_trace_ray 13605 #define nir_trace_ray nir_build_trace_ray 13606 #define nir_build_trace_ray_commit_intel _nir_build_trace_ray_commit_intel 13607 #define nir_trace_ray_commit_intel nir_build_trace_ray_commit_intel 13608 #define nir_build_trace_ray_continue_intel _nir_build_trace_ray_continue_intel 13609 #define nir_trace_ray_continue_intel nir_build_trace_ray_continue_intel 13610 #define nir_build_trace_ray_initial_intel _nir_build_trace_ray_initial_intel 13611 #define nir_trace_ray_initial_intel nir_build_trace_ray_initial_intel 13612 #define nir_build_vote_all _nir_build_vote_all 13613 #define nir_vote_all nir_build_vote_all 13614 #define nir_build_vote_any _nir_build_vote_any 13615 #define nir_vote_any nir_build_vote_any 13616 #define nir_build_vote_feq _nir_build_vote_feq 13617 #define nir_vote_feq nir_build_vote_feq 13618 #define nir_build_vote_ieq _nir_build_vote_ieq 13619 #define nir_vote_ieq nir_build_vote_ieq 13620 #ifdef __cplusplus 13621 #define nir_build_vulkan_resource_index(build, num_components, bit_size, src0, ...) \ 13622 _nir_build_vulkan_resource_index(build, num_components, bit_size, src0, _nir_vulkan_resource_index_indices{0, __VA_ARGS__}) 13623 #else 13624 #define nir_build_vulkan_resource_index(build, num_components, bit_size, src0, ...) \ 13625 _nir_build_vulkan_resource_index(build, num_components, bit_size, src0, (struct _nir_vulkan_resource_index_indices){0, __VA_ARGS__}) 13626 #endif 13627 #define nir_vulkan_resource_index nir_build_vulkan_resource_index 13628 #ifdef __cplusplus 13629 #define nir_build_vulkan_resource_reindex(build, bit_size, src0, src1, ...) \ 13630 _nir_build_vulkan_resource_reindex(build, bit_size, src0, src1, _nir_vulkan_resource_reindex_indices{0, __VA_ARGS__}) 13631 #else 13632 #define nir_build_vulkan_resource_reindex(build, bit_size, src0, src1, ...) \ 13633 _nir_build_vulkan_resource_reindex(build, bit_size, src0, src1, (struct _nir_vulkan_resource_reindex_indices){0, __VA_ARGS__}) 13634 #endif 13635 #define nir_vulkan_resource_reindex nir_build_vulkan_resource_reindex 13636 #define nir_build_write_invocation_amd _nir_build_write_invocation_amd 13637 #define nir_write_invocation_amd nir_build_write_invocation_amd 13638 13639 #endif /* _NIR_BUILDER_OPCODES_ */ 13640