Lines Matching refs:src0
28 bi_pack_fma_arshift_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
35 return 0x335018 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9);
39 bi_pack_fma_arshift_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
54 return 0x334818 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
62 return 0x335818 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
69 bi_pack_fma_arshift_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
84 return 0x334018 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
86 return 0x335818 | (src0 << 0) | (src1 << 3) | (src2 << 6);
93 bi_pack_fma_arshift_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
103 return 0x33e000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10) | (result_word << 11);
107 bi_pack_fma_atom_c_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
109 assert((1 << src0) & 0xf3);
116 return 0x2f4000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (atom_opc << 9);
120 bi_pack_fma_atom_c_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
122 assert((1 << src0) & 0xf3);
129 return 0x2f0000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (atom_opc << 9);
133 bi_pack_fma_atom_c1_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
135 assert((1 << src0) & 0xf3);
141 return 0x2f5e00 | (src0 << 0) | (src1 << 3) | (atom_opc << 6);
145 bi_pack_fma_atom_c1_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
147 assert((1 << src0) & 0xf3);
153 return 0x2f1e00 | (src0 << 0) | (src1 << 3) | (atom_opc << 6);
157 bi_pack_fma_atom_c1_return_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
159 assert((1 << src0) & 0xf3);
165 return 0x2f7e00 | (src0 << 0) | (src1 << 3) | (atom_opc << 6);
169 bi_pack_fma_atom_c1_return_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
171 assert((1 << src0) & 0xf3);
177 return 0x2f3e00 | (src0 << 0) | (src1 << 3) | (atom_opc << 6);
181 bi_pack_fma_atom_c_return_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
183 assert((1 << src0) & 0xf3);
190 return 0x2f6000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (atom_opc << 9);
194 bi_pack_fma_atom_c_return_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
196 assert((1 << src0) & 0xf3);
203 return 0x2f2000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (atom_opc << 9);
207 bi_pack_fma_atom_post_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
213 return 0x6ee400 | (src0 << 0) | (src1 << 3) | (atom_opc << 6);
217 bi_pack_fma_atom_post_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
223 return 0x6ee000 | (src0 << 0) | (src1 << 3) | (atom_opc << 6);
227 bi_pack_fma_atom_pre_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
233 return 0x6ec000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (atom_opc << 9);
237 bi_pack_fma_bitrev_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
240 return 0x701fc0 | (src0 << 0);
244 bi_pack_fma_clz_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
248 return 0x701fd0 | (src0 << 0) | (mask << 3);
252 bi_pack_fma_clz_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
260 return 0x701ec0 | (src0 << 0) | (mask << 3) | (swz0 << 4);
264 bi_pack_fma_clz_v4u8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
268 return 0x701f90 | (src0 << 0) | (mask << 3);
272 bi_pack_fma_csel_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
277 { unsigned temp = src0; src0 = src1; src1 = temp; }
293 return 0x2e0000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
297 bi_pack_fma_csel_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
312 return 0x2e0000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
316 bi_pack_fma_csel_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
323 { unsigned temp = src0; src0 = src1; src1 = temp; }
333 return 0x2e4000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
337 bi_pack_fma_csel_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
344 { unsigned temp = src0; src0 = src1; src1 = temp; }
354 return 0x2e6000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
358 bi_pack_fma_csel_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
363 { unsigned temp = src0; src0 = src1; src1 = temp; }
379 return 0x6e0000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
383 bi_pack_fma_csel_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
398 return 0x6e0000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
402 src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
409 { unsigned temp = src0; src0 = src1; src1 = temp; }
419 return 0x6e4000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
423 bi_pack_fma_csel_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
430 { unsigned temp = src0; src0 = src1; src1 = temp; }
440 return 0x6e6000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (derived_12 << 12);
444 bi_pack_fma_cubeface1(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
457 return 0x706800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
461 bi_pack_fma_dtsel_imm(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
467 return 0x70f3e0 | (src0 << 0) | (table << 3);
471 bi_pack_fma_f16_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
477 return 0x700d10 | (src0 << 0) | (lane0 << 3);
481 bi_pack_fma_fadd_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
504 { unsigned temp = src0; src0 = src1; src1 = temp; }
521 return 0x2c0000 | (src0 << 0) | (src1 << 3) | (abs1 << 6) | (neg0 << 7) | (neg1 << 8) | (abs0 << 12) | (round << 13) | (clamp << 15) | (derived_9 << 9);
525 bi_pack_fma_fadd_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
547 if (((abs0 == 0) && (src0 > src1)) || ((abs1 == 1) && (src0 <= src1))) {
548 { unsigned temp = src0; src0 = src1; src1 = temp; }
555 if (((abs0 == 1) && (abs1 == 0) && (src0 > src1)) || ((abs0 == 0) && (abs1 == 0) && (src0 <= src1))) derived_6 = 0;
556 else if (((abs0 == 1) && (abs1 == 1) && (src0 > src1)) || ((abs0 == 1) && (abs1 == 0) && (src0 <= src1))) derived_6 = 1;
559 return 0x6c0000 | (src0 << 0) | (src1 << 3) | (neg0 << 7) | (neg1 << 8) | (swz0 << 9) | (swz1 << 11) | (round << 13) | (clamp << 15) | (derived_6 << 6);
563 bi_pack_fma_fadd_lscale_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
573 return 0x70f400 | (src0 << 0) | (src1 << 3) | (abs0 << 6) | (neg0 << 7) | (abs1 << 8) | (neg1 << 9);
577 bi_pack_fma_fcmp_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
602 { unsigned temp = src0; src0 = src1; src1 = temp; }
623 return 0x240000 | (src0 << 0) | (src1 << 3) | (abs1 << 6) | (neg0 << 7) | (neg1 << 8) | (abs0 << 12) | (cmpf << 13) | (result_type << 16) | (derived_9 << 9);
627 bi_pack_fma_fcmp_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
651 if (((abs0 == 0) && (src0 > src1)) || ((abs1 == 1) && (src0 <= src1))) {
652 { unsigned temp = src0; src0 = src1; src1 = temp; }
663 if (((abs0 == 1) && (abs1 == 0) && (src0 > src1)) || ((abs0 == 0) && (abs1 == 0) && (src0 <= src1))) derived_6 = 0;
664 else if (((abs0 == 1) && (abs1 == 1) && (src0 > src1)) || ((abs0 == 1) && (abs1 == 0) && (src0 <= src1))) derived_6 = 1;
678 return 0x640000 | (src0 << 0) | (src1 << 3) | (neg0 << 7) | (neg1 << 8) | (swz0 << 9) | (swz1 << 11) | (result_type << 16) | (derived_6 << 6) | (derived_13 << 13);
682 bi_pack_fma_flshift_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
690 return 0x33f800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10);
694 bi_pack_fma_fma_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
721 { unsigned temp = src0; src0 = src1; src1 = temp; }
743 return 0x0 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (abs0 << 12) | (round << 13) | (clamp << 15) | (abs1 << 19) | (neg2 << 18) | (abs2 << 20) | (derived_9 << 9) | (derived_17 << 17);
747 bi_pack_fma_fma_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
776 return 0x400000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (swz0 << 9) | (swz1 << 11) | (round << 13) | (clamp << 15) | (neg2 << 18) | (swz2 << 19) | (derived_17 << 17);
780 bi_pack_fma_fma_rscale_f32(bi_instr *I, enum bifrost_packed_src src0
814 return 0x280000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (abs0 << 15) | (neg2 << 17) | (derived_16 << 16) | (derived_12 << 12);
818 bi_pack_fma_fma_rscale_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
851 return 0x680000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (abs0 << 15) | (neg2 << 17) | (derived_16 << 16) | (derived_12 << 12);
855 bi_pack_fma_fmul_cslice(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
865 return 0x70d000 | (src0 << 0) | (src1 << 3) | (lane0 << 6) | (abs0 << 7) | (neg0 << 8);
869 bi_pack_fma_fmul_slice_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
872 return 0x70cb40 | (src0 << 0) | (src1 << 3);
876 bi_pack_fma_frexpe_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
889 return 0x701c20 | (src0 << 0) | (neg0 << 6) | (sqrt << 8) | (widen0 << 3);
891 return 0x701e20 | (src0 << 0) | (widen0 << 3);
898 bi_pack_fma_frexpe_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
911 return 0x701c00 | (src0 << 0) | (neg0 << 6) | (sqrt << 8) | (swz0 << 3);
913 return 0x701e00 | (src0 << 0) | (swz0 << 3);
920 bi_pack_fma_frexpm_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
935 return 0x701b20 | (src0 << 0) | (abs0 << 6) | (sqrt << 7) | (widen0 << 3);
937 return 0x701a20 | (src0 << 0) | (abs0 << 6) | (widen0 << 3) | (neg0 << 7);
944 bi_pack_fma_frexpm_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
959 return 0x701b00 | (src0 << 0) | (abs0 << 6) | (sqrt << 7) | (swz0 << 3);
961 return 0x701a00 | (src0 << 0) | (abs0 << 6) | (swz0 << 3) | (neg0 << 7);
968 bi_pack_fma_fround_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
988 return 0x70c020 | (src0 << 0) | (abs0 << 7) | (neg0 << 8) | (widen0 << 3) | (derived_9 << 9);
990 return 0x707620 | (src0 << 0) | (abs0 << 7) | (neg0 << 8) | (widen0 << 3);
997 bi_pack_fma_fround_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1017 return 0x70c000 | (src0 << 0) | (abs0 << 7) | (neg0 << 8) | (swz0 << 3) | (derived_9 << 9);
1019 return 0x707600 | (src0 << 0) | (abs0 << 7) | (neg0 << 8) | (swz0 << 3);
1026 bi_pack_fma_frshift_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1034 return 0x33f000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10);
1038 bi_pack_fma_iaddc_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1041 return 0x27fc00 | (src0 << 0) | (src1 << 3) | (src2 << 6);
1045 bi_pack_fma_idp_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1051 return 0x73e8c0 | (src0 << 0) | (src1 << 3) | (sign0 << 9) | (sign1 << 10);
1055 bi_pack_fma_imul_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1064 return 0x73c0c0 | (src0 << 0) | (src1 << 3);
1076 return 0x73c8c0 | (src0 << 0) | (src1 << 3) | (derived_9 << 9) | (derived_10 << 10);
1090 return 0x73b0c0 | (src0 << 0) | (src1 << 3) | (derived_9 << 9) | (derived_11 << 11);
1097 bi_pack_fma_imul_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1107 return 0x7240c0 | (src0 << 0) | (src1 << 3) | (swz0 << 9) | (swz1 << 11);
1111 bi_pack_fma_imul_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1122 return 0x73e0c0 | (src0 << 0) | (src1 << 3);
1131 return 0x7380c0 | (src0 << 0) | (src1 << 3) | (derived_9 << 9);
1138 bi_pack_fma_imuld(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1140 assert((1 << src0) & 0x33);
1144 return 0x70f100 | (src0 << 0) | (src1 << 3) | (threads << 6);
1148 bi_pack_fma_isubb_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1151 return 0x27fe00 | (src0 << 0) | (src1 << 3) | (src2 << 6);
1155 bi_pack_fma_jump_ex(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1161 return 0x2eb000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (test_mode << 9) | (stack_mode << 10);
1165 bi_pack_fma_lrot_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1175 return 0x33b000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10) | (result_word << 11);
1179 bi_pack_fma_lshift_and_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1190 return 0x311000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9) | (not1 << 14) | (not_result << 15);
1194 bi_pack_fma_lshift_and_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1213 return 0x310800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1221 return 0x311800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1228 bi_pack_fma_lshift_and_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1247 return 0x310000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1249 return 0x311800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15);
1256 bi_pack_fma_lshift_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1266 return 0x33c000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10) | (result_word << 11);
1270 bi_pack_fma_lshift_or_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1281 return 0x313000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9) | (not1 << 14) | (not_result << 15);
1285 bi_pack_fma_lshift_or_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1304 return 0x312800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1312 return 0x313800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1319 bi_pack_fma_lshift_or_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1338 return 0x312000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1340 return 0x313800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15);
1347 bi_pack_fma_lshift_xor_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1355 return 0x325000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9) | (not_result << 13);
1359 bi_pack_fma_lshift_xor_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1375 return 0x324800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13) | (derived_9 << 9);
1383 return 0x325800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13) | (derived_9 << 9);
1390 bi_pack_fma_lshift_xor_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1406 return 0x324000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13) | (derived_9 << 9);
1408 return 0x325800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13);
1415 bi_pack_fma_mkvec_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1425 return 0x70f000 | (src0 << 0) | (src1 << 3) | (lane0 << 6) | (lane1 << 7);
1429 bi_pack_fma_mkvec_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1447 return 0x710000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (lane0 << 12) | (lane1 << 13) | (lane2 << 14) | (lane3 << 15);
1451 bi_pack_fma_mov_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1454 return 0x701968 | (src0 << 0);
1458 bi_pack_fma_nop(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1465 bi_pack_fma_popcount_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1468 return 0x73c6d8 | (src0 << 0);
1472 bi_pack_fma_quiet_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1475 return 0x701970 | (src0 << 0);
1479 bi_pack_fma_quiet_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1485 return 0x701900 | (src0 << 0) | (swz0 << 4);
1489 bi_pack_fma_rrot_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1499 return 0x33a000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10) | (result_word << 11);
1503 bi_pack_fma_rshift_and_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1514 return 0x301000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9) | (not1 << 14) | (not_result << 15);
1518 bi_pack_fma_rshift_and_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1537 return 0x300800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1545 return 0x301800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1552 bi_pack_fma_rshift_and_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1571 return 0x300000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1573 return 0x301800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15);
1580 bi_pack_fma_rshift_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1590 return 0x33d000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (bytes2 << 9) | (lane2 << 10) | (result_word << 11);
1594 bi_pack_fma_rshift_or_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1605 return 0x303000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9) | (not1 << 14) | (not_result << 15);
1609 bi_pack_fma_rshift_or_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1628 return 0x302800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1636 return 0x303800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1643 bi_pack_fma_rshift_or_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1662 return 0x302000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15) | (derived_9 << 9);
1664 return 0x303800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not1 << 14) | (not_result << 15);
1671 bi_pack_fma_rshift_xor_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1679 return 0x321000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (lane2 << 9) | (not_result << 13);
1683 bi_pack_fma_rshift_xor_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1699 return 0x320800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13) | (derived_9 << 9);
1707 return 0x321800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13) | (derived_9 << 9);
1714 bi_pack_fma_rshift_xor_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1730 return 0x320000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13) | (derived_9 << 9);
1732 return 0x321800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (not_result << 13);
1739 bi_pack_fma_s16_to_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1745 return 0x700cc0 | (src0 << 0) | (lane0 << 4);
1749 bi_pack_fma_s8_to_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1755 return 0x700b40 | (src0 << 0) | (lane0 << 4);
1759 bi_pack_fma_seg_add(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1767 return 0x701500 | (src0 << 0) | (seg << 3) | (preserve_null << 7);
1771 bi_pack_fma_shaddxl_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1775 return 0x70e600 | (src0 << 0) | (src1 << 3) | (shift << 6);
1779 bi_pack_fma_shaddxl_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1787 return 0x70e800 | (src0 << 0) | (src1 << 3) | (lane1 << 9) | (shift << 6);
1791 bi_pack_fma_shaddxl_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1799 return 0x70e000 | (src0 << 0) | (src1 << 3) | (lane1 << 9) | (shift << 6);
1803 bi_pack_fma_u16_to_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1809 return 0x700cc8 | (src0 << 0) | (lane0 << 4);
1813 bi_pack_fma_u8_to_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1819 return 0x700b48 | (src0 << 0) | (lane0 << 4);
1823 bi_pack_fma_v2f32_to_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1847 return 0x6e8000 | (src0 << 0) | (src1 << 3) | (clamp << 8) | (round << 10) | (derived_6 << 6) | (derived_7 << 7);
1851 bi_pack_fma_vn_asst1_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1859 return 0x6eb000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (h << 9) | (l << 10) | (neg2 << 11);
1863 bi_pack_fma_vn_asst1_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1867 return 0x27c000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (src3 << 9) | (neg2 << 12);
1871 bi_pack_add_acmpstore_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1875 return 0x648c0 | (src0 << 0) | (src1 << 3) | (seg << 9);
1879 bi_pack_add_acmpstore_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1883 return 0x64900 | (src0 << 0) | (src1 << 3) | (seg << 9);
1887 bi_pack_add_acmpxchg_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1891 return 0x644c0 | (src0 << 0) | (src1 << 3) | (seg << 9);
1895 bi_pack_add_acmpxchg_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1899 return 0x64500 | (src0 << 0) | (src1 << 3) | (seg << 9);
1903 bi_pack_add_atest(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1905 assert((1 << src0) & 0xf7);
1911 return 0xc8f00 | (src0 << 0) | (src1 << 3) | (widen1 << 6);
1915 bi_pack_add_atom_cx(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1918 return 0xd7400 | (src0 << 0) | (src1 << 3) | (src2 << 6);
1922 bi_pack_add_axchg_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1926 return 0x640c0 | (src0 << 0) | (src1 << 3) | (seg << 9);
1930 bi_pack_add_axchg_i64(bi_instr *I, enum bifrost_packed_src src0
1934 return 0x64100 | (src0 << 0) | (src1 << 3) | (seg << 9);
1938 bi_pack_add_barrier(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1945 bi_pack_add_blend(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1949 return 0xca800 | (src0 << 0) | (src1 << 3) | (src2 << 6);
1953 bi_pack_add_branch_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
1966 if (((widen0 == 1) && (widen1 == 2)) || ((widen0 == widen1) && (src0 > src1) && ((cmpf == 0) || (cmpf == 1) || (cmpf == 4))) || ((widen0 == widen1) && (src0 < src1) && ((cmpf == 3) || (cmpf == 2) || (cmpf == 5)))) {
1967 { unsigned temp = src0; src0 = src1; src1 = temp; }
1983 if ((widen0 == widen1) && (src0 == src1) && ((cmpf == 1) || (cmpf == 4))) derived_9 = 4;
1984 else if (((widen0 == 2) && (widen1 == 1) && ((cmpf == 0) || (cmpf == 3))) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 0)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 3))) derived_9 = 5;
1985 else if (((widen0 == 2) && (widen1 == 1) && ((cmpf == 1) || (cmpf == 2))) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 1)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 2))) derived_9 = 6;
1986 else if (((widen0 == 2) && (widen1 == 1) && ((cmpf == 4) || (cmpf == 5))) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 4)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 5)) || ((widen0 == widen1) && (src0 == src1) && (cmpf == 0))) derived_9 = 7;
1989 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
1993 bi_pack_add_branch_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2006 if (((widen0 != 0) && (widen1 == 0)) || ((widen0 == 0) && (widen1 == 0) && (src0 > src1) && ((cmpf == 0) || (cmpf == 1) || (cmpf == 4))) || ((widen0 == 0) && (widen1 == 0) && (src0 < src1) && ((cmpf == 3) || (cmpf == 2) || (cmpf == 5)))) {
2007 { unsigned temp = src0; src0 = src1; src1 = temp; }
2025 else if ((widen0 == 0) && (widen1 == 0) && (src0 == src1) && ((cmpf == 1) || (cmpf == 4))) derived_9 = 4;
2026 else if (((widen0 == 0) && (widen1 != 0) && (cmpf == 0)) || ((widen0 == 0) && (widen1 == 0) && (src0 < src1) && (cmpf == 0)) || ((widen0 == 0) && (widen1 == 0) && (src0 >= src1) && (cmpf == 3))) derived_9 = 5;
2027 else if (((widen0 == 0) && (widen1 != 0) && (cmpf == 1)) || ((widen0 == 0) && (widen1 == 0) && (src0 < src1) && (cmpf == 1)) || ((widen0 == 0) && (widen1 == 0) && (src0 >= src1) && (cmpf == 2))) derived_9 = 6;
2028 else if (((widen0 == 0) && (widen1 != 0) && (cmpf == 4)) || ((widen0 == 0) && (widen1 == 0) && (src0 < src1) && (cmpf == 4)) || ((widen0 == 0) && (widen1 == 0) && (src0 >= src1) && (cmpf == 5)) || ((widen0 == 0) && (widen1 == 0) && (src0 == src1) && (cmpf == 0))) derived_9 = 7;
2031 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2035 bi_pack_add_branch_i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2050 if (((widen0 == 1) && (widen1 == 2)) || ((widen0 == widen1) && (src0 > src1) && (cmpf == 0)) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 1))) {
2051 { unsigned temp = src0; src0 = src1; src1 = temp; }
2063 if ((widen0 == widen1) && (src0 == src1) && (cmpf == 0)) derived_9 = 1;
2064 else if (((widen0 == 2) && (widen1 == 1)) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 0)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 1))) derived_9 = 4;
2067 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2071 bi_pack_add_branch_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2086 if (((src0 > src1) && (cmpf == 0)) || ((src0 < src1) && (cmpf == 1))) {
2087 { unsigned temp = src0; src0 = src1; src1 = temp; }
2096 if ((src0 == src1) && (cmpf == 0)) derived_9 = 1;
2097 else if (((src0 < src1) && (cmpf == 0)) || ((src0 >= src1) && (cmpf == 1))) derived_9 = 4;
2100 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2104 bi_pack_add_branch_s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2119 if (((widen0 == 1) && (widen1 == 2)) || ((widen0 == widen1) && (src0 > src1))) {
2120 { unsigned temp = src0; src0 = src1; src1 = temp; }
2135 if (((widen0 == 2) && (widen1 == 1) && (cmpf == 2)) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 2))) derived_9 = 0;
2136 else if (((widen0 == 2) && (widen1 == 1) && (cmpf == 3)) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 3)) || ((widen0 == widen1) && (src0 == src1) && ((cmpf == 3) || (cmpf == 1)))) derived_9 = 1;
2137 else if (((widen0 == 2) && (widen1 == 1) && (cmpf == 1)) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 1))) derived_9 = 2;
2138 else if (((widen0 == 2) && (widen1 == 1) && (cmpf == 0)) || ((widen0 == widen1) && (src0 < src1) && (cmpf == 0))) derived_9 = 3;
2139 else if ((widen0 == widen1) && (src0 == src1) && ((cmpf == 2) || (cmpf == 0))) derived_9 = 4;
2142 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2146 bi_pack_add_branch_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2161 if (src0 > src1) {
2162 { unsigned temp = src0; src0 = src1; src1 = temp; }
2175 if ((src0 < src1) && (cmpf == 2)) derived_9 = 0;
2176 else if (((src0 < src1) && (cmpf == 3)) || ((src0 == src1) && ((cmpf == 3) || (cmpf == 1)))) derived_9 = 1;
2177 else if ((src0 < src1) && (cmpf == 1)) derived_9 = 2;
2178 else if ((src0 < src1) && (cmpf == 0)) derived_9 = 3;
2179 else if ((src0 == src1) && ((cmpf == 2) || (cmpf == 0))) derived_9 = 4;
2182 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2186 bi_pack_add_branch_u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2201 if (((widen0 == 1) && (widen1 == 2)) || ((widen0 == widen1) && (src0 < src1))) {
2202 { unsigned temp = src0; src0 = src1; src1 = temp; }
2217 if (((widen0 == 2) && (widen1 == 1) && (cmpf == 2)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 2))) derived_9 = 0;
2218 else if (((widen0 == 2) && (widen1 == 1) && (cmpf == 3)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 3))) derived_9 = 1;
2219 else if (((widen0 == 2) && (widen1 == 1) && (cmpf == 1)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 1))) derived_9 = 2;
2220 else if (((widen0 == 2) && (widen1 == 1) && (cmpf == 0)) || ((widen0 == widen1) && (src0 >= src1) && (cmpf == 0))) derived_9 = 3;
2223 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2227 bi_pack_add_branch_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2242 if (src0 < src1) {
2243 { unsigned temp = src0; src0 = src1; src1 = temp; }
2256 if ((src0 >= src1) && (cmpf == 2)) derived_9 = 0;
2257 else if ((src0 >= src1) && (cmpf == 3)) derived_9 = 1;
2258 else if ((src0 >= src1) && (cmpf == 1)) derived_9 = 2;
2259 else if ((src0 >= src1) && (cmpf == 0)) derived_9 = 3;
2262 return 0x68000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_12 << 12) | (derived_9 << 9);
2266 bi_pack_add_branchc_i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2285 return 0x6f030 | (src0 << 0) | (src1 << 6) | (combine << 10) | (derived_9 << 9) | (derived_3 << 3);
2289 bi_pack_add_branchc_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2294 return 0x6f238 | (src0 << 0) | (src1 << 6) | (combine << 10);
2298 bi_pack_add_branchz_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2323 return 0x6f000 | (src0 << 0) | (src1 << 6) | (derived_4 << 4) | (derived_3 << 3) | (derived_9 << 9);
2327 bi_pack_add_branchz_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2343 return 0x6f000 | (src0 << 0) | (src1 << 6) | (derived_3 << 3) | (derived_9 << 9);
2347 bi_pack_add_branchz_i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2368 return 0x6f800 | (src0 << 0) | (src1 << 6) | (derived_4 << 4) | (derived_3 << 3);
2372 bi_pack_add_branchz_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2384 return 0x6f800 | (src0 << 0) | (src1 << 6) | (derived_3 << 3);
2388 bi_pack_add_branchz_s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2411 return 0x6f008 | (src0 << 0) | (src1 << 6) | (derived_4 << 4) | (derived_9 << 9);
2415 bi_pack_add_branchz_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2429 return 0x6f008 | (src0 << 0) | (src1 << 6) | (derived_9 << 9);
2433 bi_pack_add_branchz_u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2456 return 0x6f000 | (src0 << 0) | (src1 << 6) | (derived_4 << 4) | (derived_9 << 9);
2460 bi_pack_add_branchz_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2474 return 0x6f000 | (src0 << 0) | (src1 << 6) | (derived_9 << 9);
2478 bi_pack_add_branch_diverg(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2480 assert((1 << src0) & 0xf7);
2481 return 0x6f83c | (src0 << 6);
2485 bi_pack_add_branch_lowbits_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2488 return 0x6fa38 | (src0 << 0) | (src1 << 6);
2492 bi_pack_add_branch_no_diverg(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2494 assert((1 << src0) & 0xf7);
2495 return 0x6fa34 | (src0 << 6);
2499 bi_pack_add_clper_v6_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2501 assert((1 << src0) & 0x7);
2502 return 0x3f0c0 | (src0 << 0) | (src1 << 3);
2506 bi_pack_add_clper_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2508 assert((1 << src0) & 0x7);
2515 return 0x7c000 | (src0 << 0) | (src1 << 3) | (lane_op << 6) | (subgroup << 8) | (inactive_result << 10);
2519 bi_pack_add_cubeface2(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2522 return 0x3de58 | (src0 << 0);
2526 bi_pack_add_cube_ssel(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2537 return 0x3e000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
2541 bi_pack_add_cube_tsel(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2552 return 0x3e400 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
2556 bi_pack_add_discard_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2569 { unsigned temp = src0; src0 = src1; src1 = temp; }
2590 return 0xc8800 | (src0 << 0) | (src1 << 3) | (derived_6 << 6) | (derived_8 << 8);
2594 bi_pack_add_f16_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2600 return 0x3cd10 | (src0 << 0) | (lane0 << 3);
2604 bi_pack_add_f16_to_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2620 return 0x3c500 | (src0 << 0) | (lane0 << 7) | (derived_4 << 4);
2622 return 0x3cc40 | (src0 << 0) | (lane0 << 5);
2629 bi_pack_add_f16_to_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2645 return 0x3c508 | (src0 << 0) | (lane0 << 7) | (derived_4 << 4);
2647 return 0x3cc48 | (src0 << 0) | (lane0 << 5);
2654 bi_pack_add_f32_to_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2666 return 0x3c980 | (src0 << 0) | (derived_4 << 4);
2668 return 0x3cca0 | (src0 << 0);
2675 bi_pack_add_f32_to_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2687 return 0x3c988 | (src0 << 0) | (derived_4 << 4);
2689 return 0x3cca8 | (src0 << 0);
2696 bi_pack_add_fadd_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2721 { unsigned temp = src0; src0 = src1; src1 = temp; }
2742 return 0x20000 | (src0 << 0) | (src1 << 3) | (abs1 << 6) | (neg0 << 7) | (neg1 << 8) | (clamp << 11) | (abs0 << 15) | (derived_13 << 13) | (derived_9 << 9);
2744 return 0x75200 | (src0 << 0) | (src1 << 3);
2751 bi_pack_add_fadd_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2771 return 0xa0000 | (src0 << 0) | (src1 << 3) | (abs1 << 6) | (neg0 << 7) | (neg1 << 8) | (swz0 << 9) | (swz1 << 11) | (round << 13) | (abs0 << 15);
2775 bi_pack_add_fadd_rscale_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2803 return 0x88000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (abs1 << 12) | (neg0 << 13) | (neg1 << 14) | (abs0 << 16) | (derived_9 << 9);
2807 bi_pack_add_fcmp_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2832 { unsigned temp = src0; src0 = src1; src1 = temp; }
2854 return 0x30000 | (src0 << 0) | (src1 << 3) | (cmpf << 6) | (abs0 << 11) | (abs1 << 12) | (result_type << 14) | (derived_9 << 9) | (derived_13 << 13);
2858 bi_pack_add_fcmp_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2879 { unsigned temp = src0; src0 = src1; src1 = temp; }
2893 return 0xb0000 | (src0 << 0) | (src1 << 3) | (cmpf << 6) | (swz0 << 9) | (swz1 << 11) | (result_type << 14) | (derived_13 << 13);
2897 bi_pack_add_fcos_table_u6(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2899 assert((1 << src0) & 0xf7);
2902 return 0x67a88 | (src0 << 0) | (offset << 4);
2906 bi_pack_add_fexp_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2908 assert((1 << src0) & 0xf7);
2910 return 0x66ac0 | (src0 << 0) | (src1 << 3);
2914 bi_pack_add_fexp_table_u4(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2916 assert((1 << src0) & 0xf7);
2919 return 0x67ac0 | (src0 << 0) | (adj << 3);
2923 bi_pack_add_flogd_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2925 assert((1 << src0) & 0xf7);
2926 return 0x66340 | (src0 << 0);
2930 bi_pack_add_flog_table_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
2932 assert((1 << src0) & 0xf7);
2948 return 0x67300 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5);
2955 return 0x67340 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5) | (derived_7 << 7);
2962 return 0x67b00 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (derived_5 << 5);
2974 return 0x67b40 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (derived_5 << 5) | (derived_7 << 7);
2986 return 0x67ae0 | (src0 << 0) | (derived_3 << 3) | (derived_4 << 4);
2993 bi_pack_add_fmax_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3007 return 0x0 | (src0 << 0) | (src1 << 3) | (abs1 << 6) | (neg0 << 7) | (neg1 << 8) | (clamp << 11) | (sem << 13) | (abs0 << 15);
3011 bi_pack_add_fmax_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3031 if (((abs0 == 0) && (src0 > src1)) || ((abs1 == 1) && (src0 <= src1))) {
3032 { unsigned temp = src0; src0 = src1; src1 = temp; }
3041 if (((abs0 == 1) && (abs1 == 0) && (src0 > src1)) || ((abs0 == 0) && (abs1 == 0) && (src0 <= src1))) derived_6 = 0;
3042 else if (((abs0 == 1) && (abs1 == 1) && (src0 > src1)) || ((abs0 == 1) && (abs1 == 0) && (src0 <= src1))) derived_6 = 1;
3045 return 0x80000 | (src0 << 0) | (src1 << 3) | (neg0 << 7) | (neg1 << 8) | (swz0 << 9) | (swz1 << 11) | (sem << 13) | (derived_6 << 6);
3049 bi_pack_add_fmin_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3063 return 0x10000 | (src0 << 0) | (src1 << 3) | (abs1 << 6) | (neg0 << 7) | (neg1 << 8) | (clamp << 11) | (sem << 13) | (abs0 << 15);
3067 bi_pack_add_fmin_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3087 if (((abs0 == 0) && (src0 > src1)) || ((abs1 == 1) && (src0 <= src1))) {
3088 { unsigned temp = src0; src0 = src1; src1 = temp; }
3097 if (((abs0 == 1) && (abs1 == 0) && (src0 > src1)) || ((abs0 == 0) && (abs1 == 0) && (src0 <= src1))) derived_6 = 0;
3098 else if (((abs0 == 1) && (abs1 == 1) && (src0 > src1)) || ((abs0 == 1) && (abs1 == 0) && (src0 <= src1))) derived_6 = 1;
3101 return 0x90000 | (src0 << 0) | (src1 << 3) | (neg0 << 7) | (neg1 << 8) | (swz0 << 9) | (swz1 << 11) | (sem << 13) | (derived_6 << 6);
3105 bi_pack_add_fpclass_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3107 assert((1 << src0) & 0xf7);
3112 return 0x67c40 | (src0 << 0) | (lane0 << 3);
3116 bi_pack_add_fpclass_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3118 assert((1 << src0) & 0xf7);
3119 return 0x67c50 | (src0 << 0);
3123 bi_pack_add_fpow_sc_apply(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3126 return 0x75080 | (src0 << 0) | (src1 << 3);
3130 bi_pack_add_fpow_sc_det_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3132 assert((1 << src0) & 0xf7);
3155 return 0x67400 | (src0 << 0) | (src1 << 3) | (lane0 << 7) | (derived_6 << 6) | (derived_8 << 8);
3162 return 0x67600 | (src0 << 0) | (src1 << 3) | (lane0 << 7) | (derived_8 << 8);
3169 bi_pack_add_fpow_sc_det_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3171 assert((1 << src0) & 0xf7);
3175 return 0x67640 | (src0 << 0) | (src1 << 3) | (func << 7);
3179 bi_pack_add_frcp_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3181 assert((1 << src0) & 0xf7);
3192 return 0x67080 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5) | (lane0 << 8);
3196 bi_pack_add_frcp_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3198 assert((1 << src0) & 0xf7);
3211 return 0x66000 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (derived_6 << 6);
3215 bi_pack_add_frcp_approx_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3217 assert((1 << src0) & 0xf7);
3229 return 0x67000 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5);
3236 return 0x67040 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5) | (derived_7 << 7);
3243 bi_pack_add_frexpe_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3256 return 0x3dc20 | (src0 << 0) | (neg0 << 6) | (sqrt << 8) | (widen0 << 3);
3258 return 0x3de20 | (src0 << 0) | (widen0 << 3);
3265 bi_pack_add_frexpe_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3278 return 0x3dc00 | (src0 << 0) | (neg0 << 6) | (sqrt << 8) | (swz0 << 3);
3280 return 0x3de00 | (src0 << 0) | (swz0 << 3);
3287 bi_pack_add_frexpm_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3302 return 0x3db20 | (src0 << 0) | (abs0 << 6) | (sqrt << 7) | (widen0 << 3);
3304 return 0x3da20 | (src0 << 0) | (abs0 << 6) | (widen0 << 3) | (neg0 << 7);
3311 bi_pack_add_frexpm_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3326 return 0x3db00 | (src0 << 0) | (abs0 << 6) | (sqrt << 7) | (swz0 << 3);
3328 return 0x3da00 | (src0 << 0) | (abs0 << 6) | (swz0 << 3) | (neg0 << 7);
3335 bi_pack_add_fround_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3347 return 0x3e820 | (src0 << 0) | (abs0 << 7) | (neg0 << 8) | (widen0 << 3) | (round << 9);
3351 bi_pack_add_fround_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3363 return 0x3e800 | (src0 << 0) | (abs0 << 7) | (neg0 << 8) | (swz0 << 3) | (round << 9);
3367 bi_pack_add_frsq_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3369 assert((1 << src0) & 0xf7);
3380 return 0x67280 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5) | (lane0 << 8);
3384 bi_pack_add_frsq_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3386 assert((1 << src0) & 0xf7);
3399 return 0x66100 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (derived_6 << 6);
3403 bi_pack_add_frsq_approx_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3405 assert((1 << src0) & 0xf7);
3417 return 0x67100 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5);
3424 return 0x67140 | (src0 << 0) | (neg0 << 3) | (abs0 << 4) | (divzero << 5) | (derived_7 << 7);
3431 bi_pack_add_fsincos_offset_u6(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3433 assert((1 << src0) & 0xf7);
3436 return 0x67aa0 | (src0 << 0) | (scale << 3);
3440 bi_pack_add_fsin_table_u6(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3442 assert((1 << src0) & 0xf7);
3445 return 0x67a80 | (src0 << 0) | (offset << 4);
3449 bi_pack_add_hadd_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3455 return 0xbc640 | (src0 << 0) | (src1 << 3) | (round << 12);
3459 bi_pack_add_hadd_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3465 return 0xbc6c0 | (src0 << 0) | (src1 << 3) | (round << 12);
3469 src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3483 return 0xbc840 | (src0 << 0) | (src1 << 3) | (round << 12) | (swap1 << 9) | (swap0 << 10);
3487 bi_pack_add_hadd_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3501 return 0xbc8c0 | (src0 << 0) | (src1 << 3) | (round << 12) | (swap1 << 9) | (swap0 << 10);
3505 bi_pack_add_hadd_v4s8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3511 return 0xbc440 | (src0 << 0) | (src1 << 3) | (round << 12);
3515 bi_pack_add_hadd_v4u8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3521 return 0xbc4c0 | (src0 << 0) | (src1 << 3) | (round << 12);
3525 bi_pack_add_iabs_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3528 return 0x3dea0 | (src0 << 0);
3532 bi_pack_add_iabs_v2s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3538 return 0x3de88 | (src0 << 0) | (swz0 << 4);
3542 bi_pack_add_iabs_v4s8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3545 return 0x3deb0 | (src0 << 0);
3549 bi_pack_add_iadd_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3558 return 0xbc600 | (src0 << 0) | (src1 << 3) | (saturate << 8);
3565 return 0xbec00 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
3574 return 0xbe000 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
3581 bi_pack_add_iadd_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3595 return 0xbc600 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7);
3607 return 0xbec00 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
3621 return 0xbe000 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
3628 bi_pack_add_iadd_v2s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3651 return 0xbc800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9) | (derived_10 << 10);
3658 return 0xbec40 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
3665 return 0xbe800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
3672 bi_pack_add_iadd_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3700 return 0xbc800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9) | (derived_10 << 10);
3712 return 0xbec40 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
3724 return 0xbe800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
3731 bi_pack_add_iadd_v4s8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3744 return 0xbc400 | (src0 << 0) | (src1 << 3) | (saturate << 8);
3753 return 0xbe040 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
3760 return 0xbe840 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
3767 bi_pack_add_iadd_v4u8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3785 return 0xbc400 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7);
3799 return 0xbe040 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
3811 return 0xbe840 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
3818 bi_pack_add_icmp_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3828 return 0x7b300 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (cmpf << 6);
3832 bi_pack_add_icmp_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3843 { unsigned temp = src0; src0 = src1; src1 = temp; }
3853 return 0x7b200 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (derived_6 << 6);
3857 bi_pack_add_icmp_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3868 { unsigned temp = src0; src0 = src1; src1 = temp; }
3878 return 0x7b280 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (derived_6 << 6);
3882 bi_pack_add_icmp_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3900 return 0x7a000 | (src0 << 0) | (src1 << 3) | (swz0 << 6) | (swz1 << 8) | (result_type << 10) | (cmpf << 11);
3904 bi_pack_add_icmp_v2s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3923 { unsigned temp = src0; src0 = src1; src1 = temp; }
3934 return 0x78000 | (src0 << 0) | (src1 << 3) | (swz0 << 6) | (swz1 << 8) | (result_type << 10) | (derived_12 << 12);
3938 bi_pack_add_icmp_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3957 { unsigned temp = src0; src0 = src1; src1 = temp; }
3968 return 0x78800 | (src0 << 0) | (src1 << 3) | (swz0 << 6) | (swz1 << 8) | (result_type << 10) | (derived_12 << 12);
3972 bi_pack_add_icmp_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3982 return 0x7b100 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (cmpf << 6);
3986 bi_pack_add_icmp_v4s8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
3997 { unsigned temp = src0; src0 = src1; src1 = temp; }
4007 return 0x7b000 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (derived_6 << 6);
4011 bi_pack_add_icmp_v4u8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4022 { unsigned temp = src0; src0 = src1; src1 = temp; }
4032 return 0x7b080 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (derived_6 << 6);
4036 bi_pack_add_icmpf_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4039 return 0x7be00 | (src0 << 0) | (src1 << 3) | (src2 << 6);
4043 bi_pack_add_icmpi_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4053 return 0x7b900 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (cmpf << 6);
4057 bi_pack_add_icmpi_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4067 return 0x7b800 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (cmpf << 6);
4071 bi_pack_add_icmpi_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4081 return 0x7b880 | (src0 << 0) | (src1 << 3) | (result_type << 10) | (cmpf << 6);
4085 bi_pack_add_icmpm_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4088 return 0x7ba00 | (src0 << 0) | (src1 << 3) | (src2 << 6);
4092 bi_pack_add_ilogb_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4098 return 0x3d9e0 | (src0 << 0) | (widen0 << 3);
4102 bi_pack_add_ilogb_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4108 return 0x3d9c0 | (src0 << 0) | (swz0 << 3);
4112 bi_pack_add_imov_fma(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4120 bi_pack_add_isub_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4129 return 0xbd600 | (src0 << 0) | (src1 << 3) | (saturate << 8);
4136 return 0xbfc00 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
4145 return 0xbf000 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
4152 bi_pack_add_isub_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4166 return 0xbd600 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7);
4178 return 0xbfc00 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
4192 return 0xbf000 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
4199 bi_pack_add_isub_v2s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4222 return 0xbd800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9) | (derived_10 << 10);
4229 return 0xbfc40 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
4236 return 0xbf800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
4243 bi_pack_add_isub_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4271 return 0xbd800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9) | (derived_10 << 10);
4283 return 0xbfc40 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
4295 return 0xbf800 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
4302 bi_pack_add_isub_v4s8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4315 return 0xbd400 | (src0 << 0) | (src1 << 3) | (saturate << 8);
4324 return 0xbf040 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
4331 return 0xbf840 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_9 << 9);
4338 bi_pack_add_isub_v4u8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4356 return 0xbd400 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7);
4370 return 0xbf040 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
4382 return 0xbf840 | (src0 << 0) | (src1 << 3) | (saturate << 8) | (derived_7 << 7) | (derived_9 << 9);
4389 bi_pack_add_jump(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4391 assert((1 << src0) & 0xf7);
4392 return 0x6fe34 | (src0 << 6);
4396 bi_pack_add_ldexp_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4402 return 0x74c00 | (src0 << 0) | (src1 << 3) | (round << 6);
4406 bi_pack_add_ldexp_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4412 return 0x74e00 | (src0 << 0) | (src1 << 3) | (round << 6);
4416 bi_pack_add_ld_attr(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4434 return 0x40400 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 11) | (derived_13 << 13);
4436 return 0xc4400 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 11);
4443 bi_pack_add_ld_attr_imm(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4463 return 0x40000 | (src0 << 0) | (src1 << 3) | (vecsize << 11) | (attribute_index << 6) | (derived_13 << 13);
4465 return 0xc4000 | (src0 << 0) | (src1 << 3) | (vecsize << 11) | (attribute_index << 6);
4472 bi_pack_add_ld_attr_tex(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4490 return 0x40600 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 11) | (derived_13 << 13);
4492 return 0xc4600 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 11);
4499 bi_pack_add_ld_cvt(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4504 return 0xc9000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 9);
4508 bi_pack_add_ld_gclk_u64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4518 bi_pack_add_ld_tile(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4523 return 0xcb000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 9);
4527 bi_pack_add_ld_var(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4559 return 0x500c0 | (src0 << 0) | (src1 << 3) | (vecsize << 8) | (derived_19 << 19) | (derived_10 << 10);
4575 return 0xcc0c0 | (src0 << 0) | (src1 << 3) | (vecsize << 8) | (derived_10 << 10);
4582 bi_pack_add_ld_var_flat(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4605 return 0x538c0 | (src0 << 3) | (vecsize << 8) | (function << 0) | (derived_10 << 10) | (derived_19 << 19);
4607 return 0xcf8c0 | (src0 << 3) | (vecsize << 8) | (function << 0);
4614 bi_pack_add_ld_var_flat_imm(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4648 bi_pack_add_ld_var_imm(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4682 return 0x50000 | (src0 << 0) | (vecsize << 8) | (index << 3) | (derived_19 << 19) | (derived_10 << 10);
4698 return 0xcc000 | (src0 << 0) | (vecsize << 8) | (index << 3) | (derived_10 << 10);
4705 bi_pack_add_ld_var_special(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4745 return 0x500a0 | (src0 << 0) | (derived_3 << 3) | (derived_19 << 19) | (derived_10 << 10);
4767 return 0xcc0a0 | (src0 << 0) | (derived_3 << 3) | (derived_10 << 10);
4774 bi_pack_add_lea_attr(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4790 return 0xc0400 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_11 << 11);
4792 return 0xc8400 | (src0 << 0) | (src1 << 3) | (src2 << 6);
4799 bi_pack_add_lea_attr_imm(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4817 return 0xc0000 | (src0 << 0) | (src1 << 3) | (attribute_index << 6) | (derived_11 << 11);
4819 return 0xc8000 | (src0 << 0) | (src1 << 3) | (attribute_index << 6);
4826 bi_pack_add_lea_attr_tex(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4842 return 0xc0600 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_11 << 11);
4844 return 0xc8600 | (src0 << 0) | (src1 << 3) | (src2 << 6);
4851 bi_pack_add_lea_tex(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4855 return 0xd6600 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (format << 11);
4859 bi_pack_add_lea_tex_imm(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4865 return 0xd6000 | (src0 << 0) | (src1 << 3) | (format << 11) | (texture_index << 6);
4869 bi_pack_add_load_i128(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4875 return 0x61000 | (src0 << 0) | (src1 << 3) | (seg << 6);
4879 bi_pack_add_load_i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4897 return 0x60800 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
4904 return 0x63000 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
4911 return 0x61800 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
4918 bi_pack_add_load_i24(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4924 return 0x65000 | (src0 << 0) | (src1 << 3) | (seg << 6);
4928 bi_pack_add_load_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4941 return 0x60c00 | (src0 << 0) | (src1 << 3) | (seg << 6);
4948 return 0x61c00 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
4955 bi_pack_add_load_i48(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4961 return 0x65200 | (src0 << 0) | (src1 << 3) | (seg << 6);
4965 bi_pack_add_load_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4971 return 0x60e00 | (src0 << 0) | (src1 << 3) | (seg << 6);
4975 bi_pack_add_load_i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
4995 return 0x60000 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
5007 return 0x63800 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9) | (derived_10 << 10);
5014 return 0x63400 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
5021 return 0x61400 | (src0 << 0) | (src1 << 3) | (seg << 6) | (derived_9 << 9);
5028 bi_pack_add_load_i96(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5034 return 0x65400 | (src0 << 0) | (src1 << 3) | (seg << 6);
5038 bi_pack_add_logb_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5044 return 0x3d9a0 | (src0 << 0) | (widen0 << 3);
5048 bi_pack_add_logb_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5054 return 0x3d980 | (src0 << 0) | (swz0 << 3);
5058 bi_pack_add_mkvec_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5068 return 0x75300 | (src0 << 0) | (src1 << 3) | (lane0 << 6) | (lane1 << 7);
5072 bi_pack_add_mov_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5075 return 0x3d968 | (src0 << 0);
5079 bi_pack_add_mux_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5083 return 0x74000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (mux << 9);
5087 bi_pack_add_mux_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5103 return 0x70000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (mux << 9) | (swap2 << 11) | (swap1 << 12) | (swap0 << 13);
5107 bi_pack_add_mux_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5111 return 0x74800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (mux << 9);
5115 bi_pack_add_nop(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5122 bi_pack_add_quiet_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5125 return 0x3d970 | (src0 << 0);
5129 bi_pack_add_quiet_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5135 return 0x3d900 | (src0 << 0) | (swz0 << 4);
5139 bi_pack_add_s16_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5145 return 0x3cce0 | (src0 << 0) | (lane0 << 4);
5149 bi_pack_add_s16_to_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5155 return 0x3ccc0 | (src0 << 0) | (lane0 << 4);
5159 bi_pack_add_s32_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5171 return 0x3cbc0 | (src0 << 0) | (derived_4 << 4);
5173 return 0x3cd00 | (src0 << 0);
5180 bi_pack_add_s8_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5186 return 0x3cb80 | (src0 << 0) | (lane0 << 4);
5190 bi_pack_add_s8_to_s32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5196 return 0x3cb40 | (src0 << 0) | (lane0 << 4);
5200 bi_pack_add_seg_add(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5208 return 0x3d500 | (src0 << 0) | (seg << 3) | (preserve_null << 7);
5212 bi_pack_add_shaddxh_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5215 return 0x3f8c0 | (src0 << 0) | (src1 << 3);
5219 bi_pack_add_shift_double_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5222 return 0xefe00 | (src0 << 0) | (src1 << 3) | (src2 << 6);
5226 bi_pack_add_store_i128(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5232 return 0x61200 | (src0 << 0) | (src1 << 3) | (seg << 6);
5236 bi_pack_add_store_i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5242 return 0x62800 | (src0 << 0) | (src1 << 3) | (seg << 6);
5246 bi_pack_add_store_i24(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5252 return 0x65800 | (src0 << 0) | (src1 << 3) | (seg << 6);
5256 bi_pack_add_store_i32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5262 return 0x62c00 | (src0 << 0) | (src1 << 3) | (seg << 6);
5266 bi_pack_add_store_i48(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5272 return 0x65a00 | (src0 << 0) | (src1 << 3) | (seg << 6);
5276 bi_pack_add_store_i64(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5282 return 0x62e00 | (src0 << 0) | (src1 << 3) | (seg << 6);
5286 bi_pack_add_store_i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5292 return 0x62000 | (src0 << 0) | (src1 << 3) | (seg << 6);
5296 bi_pack_add_store_i96(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5302 return 0x65c00 | (src0 << 0) | (src1 << 3) | (seg << 6);
5306 bi_pack_add_st_cvt(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5311 return 0xc9800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 9);
5315 bi_pack_add_st_tile(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5320 return 0xcb800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (vecsize << 9);
5324 bi_pack_add_swz_v2i16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5330 return 0x3d948 | (src0 << 0) | (swz0 << 4);
5334 bi_pack_add_swz_v4i8(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5340 return 0x3df40 | (src0 << 0) | (swz0 << 3);
5344 bi_pack_add_texc(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5349 return 0xd7000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (skip << 9);
5353 bi_pack_add_texs_2d_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5363 return 0xd8000 | (src0 << 0) | (src1 << 3) | (skip << 9) | (lod_mode << 13) | (texture_index << 6) | (sampler_index << 10);
5367 bi_pack_add_texs_2d_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5377 return 0x58000 | (src0 << 0) | (src1 << 3) | (skip << 9) | (lod_mode << 13) | (texture_index << 6) | (sampler_index << 10);
5381 bi_pack_add_texs_cube_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5389 return 0xdc000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (skip << 9) | (sampler_index << 10) | (texture_index << 12);
5393 bi_pack_add_texs_cube_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5401 return 0x5c000 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (skip << 9) | (sampler_index << 10) | (texture_index << 12);
5405 bi_pack_add_u16_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5411 return 0x3cce8 | (src0 << 0) | (lane0 << 4);
5415 bi_pack_add_u16_to_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5421 return 0x3ccc8 | (src0 << 0) | (lane0 << 4);
5425 bi_pack_add_u32_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5437 return 0x3cbc8 | (src0 << 0) | (derived_4 << 4);
5439 return 0x3cd08 | (src0 << 0);
5446 bi_pack_add_u8_to_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5452 return 0x3cb88 | (src0 << 0) | (lane0 << 4);
5456 bi_pack_add_u8_to_u32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5462 return 0x3cb48 | (src0 << 0) | (lane0 << 4);
5466 bi_pack_add_v2f16_to_v2s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5482 return 0x3c200 | (src0 << 0) | (swz0 << 6) | (derived_4 << 4);
5484 return 0x3ca80 | (src0 << 0) | (swz0 << 4);
5491 bi_pack_add_v2f16_to_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5507 return 0x3c208 | (src0 << 0) | (swz0 << 6) | (derived_4 << 4);
5509 return 0x3ca88 | (src0 << 0) | (swz0 << 4);
5516 bi_pack_add_v2f32_to_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5540 return 0x76000 | (src0 << 0) | (src1 << 3) | (clamp << 8) | (round << 10) | (derived_6 << 6) | (derived_7 << 7);
5544 bi_pack_add_v2s16_to_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5560 return 0x3c600 | (src0 << 0) | (swz0 << 6) | (derived_4 << 4);
5562 return 0x3cb00 | (src0 << 0) | (swz0 << 4);
5569 bi_pack_add_v2s8_to_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5575 return 0x3c800 | (src0 << 0) | (swz0 << 4);
5579 bi_pack_add_v2s8_to_v2s16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5585 return 0x3c700 | (src0 << 0) | (swz0 << 4);
5589 bi_pack_add_v2u16_to_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5605 return 0x3c608 | (src0 << 0) | (swz0 << 6) | (derived_4 << 4);
5607 return 0x3cb08 | (src0 << 0) | (swz0 << 4);
5614 bi_pack_add_v2u8_to_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5620 return 0x3c808 | (src0 << 0) | (swz0 << 4);
5624 bi_pack_add_v2u8_to_v2u16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5630 return 0x3c708 | (src0 << 0) | (swz0 << 4);
5634 bi_pack_add_var_tex_f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5659 bi_pack_add_var_tex_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5684 bi_pack_add_vn_asst2_f32(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5691 return 0x3df80 | (src0 << 0) | (neg0 << 3);
5693 return 0x3de80 | (src0 << 0) | (neg0 << 4);
5700 bi_pack_add_vn_asst2_v2f16(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5704 return 0x3dfa0 | (src0 << 0) | (neg0 << 3);
5708 bi_pack_add_wmask(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5714 return 0x3d700 | (src0 << 0) | (subgroup << 4) | (fill << 3);
5718 bi_pack_add_zs_emit(bi_instr *I, enum bifrost_packed_src src0, enum bifrost_packed_src src1, enum bifrost_packed_src src2, enum bifrost_packed_src src3)
5730 return 0xd7800 | (src0 << 0) | (src1 << 3) | (src2 << 6) | (derived_9 << 9);
5735 enum bifrost_packed_src src0,
5741 return bi_pack_fma_nop(I, src0, src1, src2, src3);
5743 assert((1 << src0) & 0xfb);
5748 return bi_pack_fma_arshift_i32(I, src0, src1, src2, src3);
5750 return bi_pack_fma_arshift_v2i16(I, src0, src1, src2, src3);
5752 return bi_pack_fma_arshift_v4i8(I, src0, src1, src2, src3);
5754 return bi_pack_fma_arshift_double_i32(I, src0, src1, src2, src3);
5756 return bi_pack_fma_atom_c_i32(I, src0, src1, src2, src3);
5758 return bi_pack_fma_atom_c_i64(I, src0, src1, src2, src3);
5760 return bi_pack_fma_atom_c1_i32(I, src0, src1, src2, src3);
5762 return bi_pack_fma_atom_c1_i64(I, src0, src1, src2, src3);
5764 return bi_pack_fma_atom_c1_return_i32(I, src0, src1, src2, src3);
5766 src0, src1, src2, src3);
5768 return bi_pack_fma_atom_c_return_i32(I, src0, src1, src2, src3);
5770 return bi_pack_fma_atom_c_return_i64(I, src0, src1, src2, src3);
5772 return bi_pack_fma_atom_post_i32(I, src0, src1, src2, src3);
5774 return bi_pack_fma_atom_post_i64(I, src0, src1, src2, src3);
5776 return bi_pack_fma_atom_pre_i64(I, src0, src1, src2, src3);
5778 return bi_pack_fma_bitrev_i32(I, src0, src1, src2, src3);
5780 return bi_pack_fma_clz_u32(I, src0, src1, src2, src3);
5782 return bi_pack_fma_clz_v2u16(I, src0, src1, src2, src3);
5784 return bi_pack_fma_clz_v4u8(I, src0, src1, src2, src3);
5786 return bi_pack_fma_csel_f32(I, src0, src1, src2, src3);
5788 return bi_pack_fma_csel_i32(I, src0, src1, src2, src3);
5790 return bi_pack_fma_csel_s32(I, src0, src1, src2, src3);
5792 return bi_pack_fma_csel_u32(I, src0, src1, src2, src3);
5794 return bi_pack_fma_csel_v2f16(I, src0, src1, src2, src3);
5796 return bi_pack_fma_csel_v2i16(I, src0, src1, src2, src3);
5798 return bi_pack_fma_csel_v2s16(I, src0, src1, src2, src3);
5800 return bi_pack_fma_csel_v2u16(I, src0, src1, src2, src3);
5802 return bi_pack_fma_cubeface1(I, src0, src1, src2, src3);
5804 return bi_pack_fma_dtsel_imm(I, src0, src1, src2, src3);
5806 return bi_pack_fma_f16_to_f32(I, src0, src1, src2, src3);
5808 return bi_pack_fma_fadd_f32(I, src0, src1, src2, src3);
5810 return bi_pack_fma_fadd_v2f16(I, src0, src1, src2, src3);
5812 return bi_pack_fma_fadd_lscale_f32(I, src0, src1, src2, src3);
5814 return bi_pack_fma_fcmp_f32(I, src0, src1, src2, src3);
5816 return bi_pack_fma_fcmp_v2f16(I, src0, src1, src2, src3);
5818 return bi_pack_fma_flshift_double_i32(I, src0, src1, src2, src3);
5820 return bi_pack_fma_fma_f32(I, src0, src1, src2, src3);
5822 return bi_pack_fma_fma_v2f16(I, src0, src1, src2, src3);
5824 return bi_pack_fma_fma_rscale_f32(I, src0, src1, src2, src3);
5826 return bi_pack_fma_fma_rscale_v2f16(I, src0, src1, src2, src3);
5828 return bi_pack_fma_fmul_cslice(I, src0, src1, src2, src3);
5830 return bi_pack_fma_fmul_slice_f32(I, src0, src1, src2, src3);
5832 return bi_pack_fma_frexpe_f32(I, src0, src1, src2, src3);
5834 return bi_pack_fma_frexpe_v2f16(I, src0, src1, src2, src3);
5836 return bi_pack_fma_frexpm_f32(I, src0, src1, src2, src3);
5838 return bi_pack_fma_frexpm_v2f16(I, src0, src1, src2, src3);
5840 return bi_pack_fma_fround_f32(I, src0, src1, src2, src3);
5842 return bi_pack_fma_fround_v2f16(I, src0, src1, src2, src3);
5844 return bi_pack_fma_frshift_double_i32(I, src0, src1, src2, src3);
5846 return bi_pack_fma_iaddc_i32(I, src0, src1, src2, src3);
5848 return bi_pack_fma_idp_v4i8(I, src0, src1, src2, src3);
5850 return bi_pack_fma_imul_i32(I, src0, src1, src2, src3);
5852 return bi_pack_fma_imul_v2i16(I, src0, src1, src2, src3);
5854 return bi_pack_fma_imul_v4i8(I, src0, src1, src2, src3);
5856 return bi_pack_fma_imuld(I, src0, src1, src2, src3);
5858 return bi_pack_fma_isubb_i32(I, src0, src1, src2, src3);
5860 return bi_pack_fma_jump_ex(I, src0, src1, src2, src3);
5862 return bi_pack_fma_lrot_double_i32(I, src0, src1, src2, src3);
5864 return bi_pack_fma_lshift_and_i32(I, src0, src1, src2, src3);
5866 return bi_pack_fma_lshift_and_v2i16(I, src0, src1, src2, src3);
5868 return bi_pack_fma_lshift_and_v4i8(I, src0, src1, src2, src3);
5870 return bi_pack_fma_lshift_double_i32(I, src0, src1, src2, src3);
5872 return bi_pack_fma_lshift_or_i32(I, src0, src1, src2, src3);
5874 return bi_pack_fma_lshift_or_v2i16(I, src0, src1, src2, src3);
5876 return bi_pack_fma_lshift_or_v4i8(I, src0, src1, src2, src3);
5878 return bi_pack_fma_lshift_xor_i32(I, src0, src1, src2, src3);
5880 return bi_pack_fma_lshift_xor_v2i16(I, src0, src1, src2, src3);
5882 return bi_pack_fma_lshift_xor_v4i8(I, src0, src1, src2, src3);
5884 return bi_pack_fma_mkvec_v2i16(I, src0, src1, src2, src3);
5886 return bi_pack_fma_mkvec_v4i8(I, src0, src1, src2, src3);
5888 return bi_pack_fma_mov_i32(I, src0, src1, src2, src3);
5890 return bi_pack_fma_nop(I, src0, src1, src2, src3);
5892 return bi_pack_fma_popcount_i32(I, src0, src1, src2, src3);
5894 return bi_pack_fma_quiet_f32(I, src0, src1, src2, src3);
5896 return bi_pack_fma_quiet_v2f16(I, src0, src1, src2, src3);
5898 return bi_pack_fma_rrot_double_i32(I, src0, src1, src2, src3);
5900 return bi_pack_fma_rshift_and_i32(I, src0, src1, src2, src3);
5902 return bi_pack_fma_rshift_and_v2i16(I, src0, src1, src2, src3);
5904 return bi_pack_fma_rshift_and_v4i8(I, src0, src1, src2, src3);
5906 return bi_pack_fma_rshift_double_i32(I, src0, src1, src2, src3);
5908 return bi_pack_fma_rshift_or_i32(I, src0, src1, src2, src3);
5910 return bi_pack_fma_rshift_or_v2i16(I, src0, src1, src2, src3);
5912 return bi_pack_fma_rshift_or_v4i8(I, src0, src1, src2, src3);
5914 return bi_pack_fma_rshift_xor_i32(I, src0, src1, src2, src3);
5916 return bi_pack_fma_rshift_xor_v2i16(I, src0, src1, src2, src3);
5918 return bi_pack_fma_rshift_xor_v4i8(I, src0, src1, src2, src3);
5920 return bi_pack_fma_s16_to_s32(I, src0, src1, src2, src3);
5922 return bi_pack_fma_s8_to_s32(I, src0, src1, src2, src3);
5924 return bi_pack_fma_seg_add(I, src0, src1, src2, src3);
5926 return bi_pack_fma_shaddxl_i64(I, src0, src1, src2, src3);
5928 return bi_pack_fma_shaddxl_s32(I, src0, src1, src2, src3);
5930 return bi_pack_fma_shaddxl_u32(I, src0, src1, src2, src3);
5932 return bi_pack_fma_u16_to_u32(I, src0, src1, src2, src3);
5934 return bi_pack_fma_u8_to_u32(I, src0, src1, src2, src3);
5936 return bi_pack_fma_v2f32_to_v2f16(I, src0, src1, src2, src3);
5938 return bi_pack_fma_vn_asst1_f16(I, src0, src1, src2, src3);
5940 return bi_pack_fma_vn_asst1_f32(I, src0, src1, src2, src3);
5951 enum bifrost_packed_src src0,
5957 return bi_pack_add_nop(I, src0, src1, src2, src3);
5961 return bi_pack_add_acmpstore_i32(I, src0, src1, src2, src3);
5963 return bi_pack_add_acmpstore_i64(I, src0, src1, src2, src3);
5965 return bi_pack_add_acmpxchg_i32(I, src0, src1, src2, src3);
5967 return bi_pack_add_acmpxchg_i64(I, src0, src1, src2, src3);
5969 return bi_pack_add_atest(I, src0, src1, src2, src3);
5971 return bi_pack_add_atom_cx(I, src0, src1, src2, src3);
5973 return bi_pack_add_axchg_i32(I, src0, src1, src2, src3);
5975 return bi_pack_add_axchg_i64(I, src0, src1, src2, src3);
5977 return bi_pack_add_barrier(I, src0, src1, src2, src3);
5979 return bi_pack_add_blend(I, src0, src1, src2, src3);
5981 return bi_pack_add_branch_f16(I, src0, src1, src2, src3);
5983 return bi_pack_add_branch_f32(I, src0, src1, src2, src3);
5985 return bi_pack_add_branch_i16(I, src0, src1, src2, src3);
5987 return bi_pack_add_branch_i32(I, src0, src1, src2, src3);
5989 return bi_pack_add_branch_s16(I, src0, src1, src2, src3);
5991 return bi_pack_add_branch_s32(I, src0, src1, src2, src3);
5993 return bi_pack_add_branch_u16(I, src0, src1, src2, src3);
5995 return bi_pack_add_branch_u32(I, src0, src1, src2, src3);
5997 return bi_pack_add_branchc_i16(I, src0, src1, src2, src3);
5999 return bi_pack_add_branchc_i32(I, src0, src1, src2, src3);
6001 return bi_pack_add_branchz_f16(I, src0, src1, src2, src3);
6003 return bi_pack_add_branchz_f32(I, src0, src1, src2, src3);
6005 return bi_pack_add_branchz_i16(I, src0, src1, src2, src3);
6007 return bi_pack_add_branchz_i32(I, src0, src1, src2, src3);
6009 return bi_pack_add_branchz_s16(I, src0, src1, src2, src3);
6011 return bi_pack_add_branchz_s32(I, src0, src1, src2, src3);
6013 return bi_pack_add_branchz_u16(I, src0, src1, src2, src3);
6015 return bi_pack_add_branchz_u32(I, src0, src1, src2, src3);
6017 return bi_pack_add_branch_diverg(I, src0, src1, src2, src3);
6019 return bi_pack_add_branch_lowbits_f32(I, src0, src1, src2, src3);
6021 return bi_pack_add_branch_no_diverg(I, src0, src1, src2, src3);
6023 return bi_pack_add_clper_i32(I, src0, src1, src2, src3);
6025 return bi_pack_add_clper_v6_i32(I, src0, src1, src2, src3);
6027 return bi_pack_add_cubeface2(I, src0, src1, src2, src3);
6029 return bi_pack_add_cube_ssel(I, src0, src1, src2, src3);
6031 return bi_pack_add_cube_tsel(I, src0, src1, src2, src3);
6033 return bi_pack_add_discard_f32(I, src0, src1, src2, src3);
6035 return bi_pack_add_f16_to_f32(I, src0, src1, src2, src3);
6037 return bi_pack_add_f16_to_s32(I, src0, src1, src2, src3);
6039 return bi_pack_add_f16_to_u32(I, src0, src1, src2, src3);
6041 return bi_pack_add_f32_to_s32(I, src0, src1, src2, src3);
6043 return bi_pack_add_f32_to_u32(I, src0, src1, src2, src3);
6045 return bi_pack_add_fadd_f32(I, src0, src1, src2, src3);
6047 return bi_pack_add_fadd_v2f16(I, src0, src1, src2, src3);
6049 return bi_pack_add_fadd_rscale_f32(I, src0, src1, src2, src3);
6051 return bi_pack_add_fcmp_f32(I, src0, src1, src2, src3);
6053 return bi_pack_add_fcmp_v2f16(I, src0, src1, src2, src3);
6055 return bi_pack_add_fcos_table_u6(I, src0, src1, src2, src3);
6057 return bi_pack_add_fexp_f32(I, src0, src1, src2, src3);
6059 return bi_pack_add_fexp_table_u4(I, src0, src1, src2, src3);
6061 return bi_pack_add_flogd_f32(I, src0, src1, src2, src3);
6063 return bi_pack_add_flog_table_f32(I, src0, src1, src2, src3);
6065 return bi_pack_add_fmax_f32(I, src0, src1, src2, src3);
6067 return bi_pack_add_fmax_v2f16(I, src0, src1, src2, src3);
6069 return bi_pack_add_fmin_f32(I, src0, src1, src2, src3);
6071 return bi_pack_add_fmin_v2f16(I, src0, src1, src2, src3);
6073 return bi_pack_add_fpclass_f16(I, src0, src1, src2, src3);
6075 return bi_pack_add_fpclass_f32(I, src0, src1, src2, src3);
6077 return bi_pack_add_fpow_sc_apply(I, src0, src1, src2, src3);
6079 return bi_pack_add_fpow_sc_det_f16(I, src0, src1, src2, src3);
6081 return bi_pack_add_fpow_sc_det_f32(I, src0, src1, src2, src3);
6083 return bi_pack_add_frcp_f16(I, src0, src1, src2, src3);
6085 return bi_pack_add_frcp_f32(I, src0, src1, src2, src3);
6087 return bi_pack_add_frcp_approx_f32(I, src0, src1, src2, src3);
6089 return bi_pack_add_frexpe_f32(I, src0, src1, src2, src3);
6091 return bi_pack_add_frexpe_v2f16(I, src0, src1, src2, src3);
6093 return bi_pack_add_frexpm_f32(I, src0, src1, src2, src3);
6095 return bi_pack_add_frexpm_v2f16(I, src0, src1, src2, src3);
6097 return bi_pack_add_fround_f32(I, src0, src1, src2, src3);
6099 return bi_pack_add_fround_v2f16(I, src0, src1, src2, src3);
6101 return bi_pack_add_frsq_f16(I, src0, src1, src2, src3);
6103 return bi_pack_add_frsq_f32(I, src0, src1, src2, src3);
6105 return bi_pack_add_frsq_approx_f32(I, src0, src1, src2, src3);
6107 src0, src1, src2, src3);
6109 return bi_pack_add_fsin_table_u6(I, src0, src1, src2, src3);
6111 return bi_pack_add_hadd_s32(I, src0, src1, src2, src3);
6113 return bi_pack_add_hadd_u32(I, src0, src1, src2, src3);
6115 return bi_pack_add_hadd_v2s16(I, src0, src1, src2, src3);
6117 return bi_pack_add_hadd_v2u16(I, src0, src1, src2, src3);
6119 return bi_pack_add_hadd_v4s8(I, src0, src1, src2, src3);
6121 return bi_pack_add_hadd_v4u8(I, src0, src1, src2, src3);
6123 return bi_pack_add_iabs_s32(I, src0, src1, src2, src3);
6125 return bi_pack_add_iabs_v2s16(I, src0, src1, src2, src3);
6127 return bi_pack_add_iabs_v4s8(I, src0, src1, src2, src3);
6129 return bi_pack_add_iadd_s32(I, src0, src1, src2, src3);
6131 return bi_pack_add_iadd_u32(I, src0, src1, src2, src3);
6133 return bi_pack_add_iadd_v2s16(I, src0, src1, src2, src3);
6135 return bi_pack_add_iadd_v2u16(I, src0, src1, src2, src3);
6137 return bi_pack_add_iadd_v4s8(I, src0, src1, src2, src3);
6139 return bi_pack_add_iadd_v4u8(I, src0, src1, src2, src3);
6141 return bi_pack_add_icmp_i32(I, src0, src1, src2, src3);
6143 return bi_pack_add_icmp_s32(I, src0, src1, src2, src3);
6145 return bi_pack_add_icmp_u32(I, src0, src1, src2, src3);
6147 return bi_pack_add_icmp_v2i16(I, src0, src1, src2, src3);
6149 return bi_pack_add_icmp_v2s16(I, src0, src1, src2, src3);
6151 return bi_pack_add_icmp_v2u16(I, src0, src1, src2, src3);
6153 return bi_pack_add_icmp_v4i8(I, src0, src1, src2, src3);
6155 return bi_pack_add_icmp_v4s8(I, src0, src1, src2, src3);
6157 return bi_pack_add_icmp_v4u8(I, src0, src1, src2, src3);
6159 return bi_pack_add_icmpf_i32(I, src0, src1, src2, src3);
6161 return bi_pack_add_icmpi_i32(I, src0, src1, src2, src3);
6163 return bi_pack_add_icmpi_s32(I, src0, src1, src2, src3);
6165 return bi_pack_add_icmpi_u32(I, src0, src1, src2, src3);
6167 return bi_pack_add_icmpm_i32(I, src0, src1, src2, src3);
6169 return bi_pack_add_ilogb_f32(I, src0, src1, src2, src3);
6171 return bi_pack_add_ilogb_v2f16(I, src0, src1, src2, src3);
6173 return bi_pack_add_imov_fma(I, src0, src1, src2, src3);
6175 return bi_pack_add_isub_s32(I, src0, src1, src2, src3);
6177 return bi_pack_add_isub_u32(I, src0, src1, src2, src3);
6179 return bi_pack_add_isub_v2s16(I, src0, src1, src2, src3);
6181 return bi_pack_add_isub_v2u16(I, src0, src1, src2, src3);
6183 return bi_pack_add_isub_v4s8(I, src0, src1, src2, src3);
6185 return bi_pack_add_isub_v4u8(I, src0, src1, src2, src3);
6187 return bi_pack_add_jump(I, src0, src1, src2, src3);
6189 return bi_pack_add_ldexp_f32(I, src0, src1, src2, src3);
6191 return bi_pack_add_ldexp_v2f16(I, src0, src1, src2, src3);
6193 return bi_pack_add_ld_attr(I, src0, src1, src2, src3);
6195 return bi_pack_add_ld_attr_imm(I, src0, src1, src2, src3);
6197 return bi_pack_add_ld_attr_tex(I, src0, src1, src2, src3);
6199 return bi_pack_add_ld_cvt(I, src0, src1, src2, src3);
6201 return bi_pack_add_ld_gclk_u64(I, src0, src1, src2, src3);
6203 return bi_pack_add_ld_tile(I, src0, src1, src2, src3);
6205 return bi_pack_add_ld_var(I, src0, src1, src2, src3);
6207 return bi_pack_add_ld_var_flat(I, src0, src1, src2, src3);
6209 return bi_pack_add_ld_var_flat_imm(I, src0, src1, src2, src3);
6211 return bi_pack_add_ld_var_imm(I, src0, src1, src2, src3);
6213 return bi_pack_add_ld_var_special(I, src0, src1, src2, src3);
6215 return bi_pack_add_lea_attr(I, src0, src1, src2, src3);
6217 return bi_pack_add_lea_attr_imm(I, src0, src1, src2, src3);
6219 return bi_pack_add_lea_attr_tex(I, src0, src1, src2, src3);
6221 return bi_pack_add_lea_tex(I, src0, src1, src2, src3);
6223 return bi_pack_add_lea_tex_imm(I, src0, src1, src2, src3);
6225 return bi_pack_add_load_i128(I, src0, src1, src2, src3);
6227 return bi_pack_add_load_i16(I, src0, src1, src2, src3);
6229 return bi_pack_add_load_i24(I, src0, src1, src2, src3);
6231 return bi_pack_add_load_i32(I, src0, src1, src2, src3);
6233 return bi_pack_add_load_i48(I, src0, src1, src2, src3);
6235 return bi_pack_add_load_i64(I, src0, src1, src2, src3);
6237 return bi_pack_add_load_i8(I, src0, src1, src2, src3);
6239 return bi_pack_add_load_i96(I, src0, src1, src2, src3);
6241 return bi_pack_add_logb_f32(I, src0, src1, src2, src3);
6243 return bi_pack_add_logb_v2f16(I, src0, src1, src2, src3);
6245 return bi_pack_add_mkvec_v2i16(I, src0, src1, src2, src3);
6247 return bi_pack_add_mov_i32(I, src0, src1, src2, src3);
6249 return bi_pack_add_mux_i32(I, src0, src1, src2, src3);
6251 return bi_pack_add_mux_v2i16(I, src0, src1, src2, src3);
6253 return bi_pack_add_mux_v4i8(I, src0, src1, src2, src3);
6255 return bi_pack_add_nop(I, src0, src1, src2, src3);
6257 return bi_pack_add_quiet_f32(I, src0, src1, src2, src3);
6259 return bi_pack_add_quiet_v2f16(I, src0, src1, src2, src3);
6261 return bi_pack_add_s16_to_f32(I, src0, src1, src2, src3);
6263 return bi_pack_add_s16_to_s32(I, src0, src1, src2, src3);
6265 return bi_pack_add_s32_to_f32(I, src0, src1, src2, src3);
6267 return bi_pack_add_s8_to_f32(I, src0, src1, src2, src3);
6269 return bi_pack_add_s8_to_s32(I, src0, src1, src2, src3);
6271 return bi_pack_add_seg_add(I, src0, src1, src2, src3);
6273 return bi_pack_add_shaddxh_i32(I, src0, src1, src2, src3);
6275 return bi_pack_add_shift_double_i32(I, src0, src1, src2, src3);
6277 return bi_pack_add_store_i128(I, src0, src1, src2, src3);
6279 return bi_pack_add_store_i16(I, src0, src1, src2, src3);
6281 return bi_pack_add_store_i24(I, src0, src1, src2, src3);
6283 return bi_pack_add_store_i32(I, src0, src1, src2, src3);
6285 return bi_pack_add_store_i48(I, src0, src1, src2, src3);
6287 return bi_pack_add_store_i64(I, src0, src1, src2, src3);
6289 return bi_pack_add_store_i8(I, src0, src1, src2, src3);
6291 return bi_pack_add_store_i96(I, src0, src1, src2, src3);
6293 return bi_pack_add_st_cvt(I, src0, src1, src2, src3);
6295 return bi_pack_add_st_tile(I, src0, src1, src2, src3);
6297 return bi_pack_add_swz_v2i16(I, src0, src1, src2, src3);
6299 return bi_pack_add_swz_v4i8(I, src0, src1, src2, src3);
6301 return bi_pack_add_texc(I, src0, src1, src2, src3);
6303 return bi_pack_add_texs_2d_f16(I, src0, src1, src2, src3);
6305 return bi_pack_add_texs_2d_f32(I, src0, src1, src2, src3);
6307 return bi_pack_add_texs_cube_f16(I, src0, src1, src2, src3);
6309 return bi_pack_add_texs_cube_f32(I, src0, src1, src2, src3);
6311 return bi_pack_add_u16_to_f32(I, src0, src1, src2, src3);
6313 return bi_pack_add_u16_to_u32(I, src0, src1, src2, src3);
6315 return bi_pack_add_u32_to_f32(I, src0, src1, src2, src3);
6317 return bi_pack_add_u8_to_f32(I, src0, src1, src2, src3);
6319 return bi_pack_add_u8_to_u32(I, src0, src1, src2, src3);
6321 return bi_pack_add_v2f16_to_v2s16(I, src0, src1, src2, src3);
6323 return bi_pack_add_v2f16_to_v2u16(I, src0, src1, src2, src3);
6325 return bi_pack_add_v2f32_to_v2f16(I, src0, src1, src2, src3);
6327 return bi_pack_add_v2s16_to_v2f16(I, src0, src1, src2, src3);
6329 return bi_pack_add_v2s8_to_v2f16(I, src0, src1, src2, src3);
6331 return bi_pack_add_v2s8_to_v2s16(I, src0, src1, src2, src3);
6333 return bi_pack_add_v2u16_to_v2f16(I, src0, src1, src2, src3);
6335 return bi_pack_add_v2u8_to_v2f16(I, src0, src1, src2, src3);
6337 return bi_pack_add_v2u8_to_v2u16(I, src0, src1, src2, src3);
6339 return bi_pack_add_var_tex_f16(I, src0, src1, src2, src3);
6341 return bi_pack_add_var_tex_f32(I, src0, src1, src2, src3);
6343 return bi_pack_add_vn_asst2_f32(I, src0, src1, src2, src3);
6345 return bi_pack_add_vn_asst2_v2f16(I, src0, src1, src2, src3);
6347 return bi_pack_add_wmask(I, src0, src1, src2, src3);
6349 return bi_pack_add_zs_emit(I, src0, src1, src2, src3);