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