Lines Matching refs:inst
89 brw_set_dest(struct brw_codegen *p, brw_inst *inst, struct brw_reg dest)
113 (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SEND ||
114 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDC)) {
119 assert(brw_inst_exec_size(devinfo, inst) == BRW_EXECUTE_1 ||
123 brw_inst_set_dst_reg_file(devinfo, inst, dest.file);
124 brw_inst_set_dst_da_reg_nr(devinfo, inst, dest.nr);
126 } else if (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDS ||
127 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDSC) {
136 brw_inst_set_dst_da_reg_nr(devinfo, inst, dest.nr);
137 brw_inst_set_dst_da16_subreg_nr(devinfo, inst, dest.subnr / 16);
138 brw_inst_set_send_dst_reg_file(devinfo, inst, dest.file);
140 brw_inst_set_dst_file_type(devinfo, inst, dest.file, dest.type);
141 brw_inst_set_dst_address_mode(devinfo, inst, dest.address_mode);
144 brw_inst_set_dst_da_reg_nr(devinfo, inst, dest.nr);
146 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
147 brw_inst_set_dst_da1_subreg_nr(devinfo, inst, dest.subnr);
150 brw_inst_set_dst_hstride(devinfo, inst, dest.hstride);
152 brw_inst_set_dst_da16_subreg_nr(devinfo, inst, dest.subnr / 16);
153 brw_inst_set_da16_writemask(devinfo, inst, dest.writemask);
162 brw_inst_set_dst_hstride(devinfo, inst, 1);
165 brw_inst_set_dst_ia_subreg_nr(devinfo, inst, dest.subnr);
169 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
170 brw_inst_set_dst_ia1_addr_imm(devinfo, inst,
174 brw_inst_set_dst_hstride(devinfo, inst, dest.hstride);
176 brw_inst_set_dst_ia16_addr_imm(devinfo, inst,
179 brw_inst_set_dst_hstride(devinfo, inst, 1);
204 brw_inst_set_exec_size(devinfo, inst, dest.width);
209 brw_set_src0(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg)
221 (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SEND ||
222 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDC ||
223 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDS ||
224 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDSC)) {
235 (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SEND ||
236 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDC)) {
244 brw_inst_set_send_src0_reg_file(devinfo, inst, reg.file);
245 brw_inst_set_src0_da_reg_nr(devinfo, inst, reg.nr);
247 } else if (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDS ||
248 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDSC) {
256 brw_inst_set_src0_da_reg_nr(devinfo, inst, reg.nr);
257 brw_inst_set_src0_da16_subreg_nr(devinfo, inst, reg.subnr / 16);
259 brw_inst_set_src0_file_type(devinfo, inst, reg.file, reg.type);
260 brw_inst_set_src0_abs(devinfo, inst, reg.abs);
261 brw_inst_set_src0_negate(devinfo, inst, reg.negate);
262 brw_inst_set_src0_address_mode(devinfo, inst, reg.address_mode);
266 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_DIM)
267 brw_inst_set_imm_df(devinfo, inst, reg.df);
270 brw_inst_set_imm_uq(devinfo, inst, reg.u64);
272 brw_inst_set_imm_ud(devinfo, inst, reg.ud);
275 brw_inst_set_src1_reg_file(devinfo, inst,
277 brw_inst_set_src1_reg_hw_type(devinfo, inst,
278 brw_inst_src0_reg_hw_type(devinfo, inst));
282 brw_inst_set_src0_da_reg_nr(devinfo, inst, reg.nr);
283 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
284 brw_inst_set_src0_da1_subreg_nr(devinfo, inst, reg.subnr);
286 brw_inst_set_src0_da16_subreg_nr(devinfo, inst, reg.subnr / 16);
289 brw_inst_set_src0_ia_subreg_nr(devinfo, inst, reg.subnr);
291 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
292 brw_inst_set_src0_ia1_addr_imm(devinfo, inst, reg.indirect_offset);
294 brw_inst_set_src0_ia16_addr_imm(devinfo, inst, reg.indirect_offset);
298 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
300 brw_inst_exec_size(devinfo, inst) == BRW_EXECUTE_1) {
301 brw_inst_set_src0_hstride(devinfo, inst, BRW_HORIZONTAL_STRIDE_0);
302 brw_inst_set_src0_width(devinfo, inst, BRW_WIDTH_1);
303 brw_inst_set_src0_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_0);
305 brw_inst_set_src0_hstride(devinfo, inst, reg.hstride);
306 brw_inst_set_src0_width(devinfo, inst, reg.width);
307 brw_inst_set_src0_vstride(devinfo, inst, reg.vstride);
310 brw_inst_set_src0_da16_swiz_x(devinfo, inst,
312 brw_inst_set_src0_da16_swiz_y(devinfo, inst,
314 brw_inst_set_src0_da16_swiz_z(devinfo, inst,
316 brw_inst_set_src0_da16_swiz_w(devinfo, inst,
323 brw_inst_set_src0_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
334 brw_inst_set_src0_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
336 brw_inst_set_src0_vstride(devinfo, inst, reg.vstride);
345 brw_set_src1(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg)
352 if (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDS ||
353 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDSC ||
355 (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SEND ||
356 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDC))) {
365 brw_inst_set_send_src1_reg_nr(devinfo, inst, reg.nr);
366 brw_inst_set_send_src1_reg_file(devinfo, inst, reg.file);
379 brw_inst_set_src1_file_type(devinfo, inst, reg.file, reg.type);
380 brw_inst_set_src1_abs(devinfo, inst, reg.abs);
381 brw_inst_set_src1_negate(devinfo, inst, reg.negate);
385 assert(brw_inst_src0_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE);
390 brw_inst_set_imm_ud(devinfo, inst, reg.ud);
398 brw_inst_set_src1_da_reg_nr(devinfo, inst, reg.nr);
399 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
400 brw_inst_set_src1_da1_subreg_nr(devinfo, inst, reg.subnr);
402 brw_inst_set_src1_da16_subreg_nr(devinfo, inst, reg.subnr / 16);
405 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
407 brw_inst_exec_size(devinfo, inst) == BRW_EXECUTE_1) {
408 brw_inst_set_src1_hstride(devinfo, inst, BRW_HORIZONTAL_STRIDE_0);
409 brw_inst_set_src1_width(devinfo, inst, BRW_WIDTH_1);
410 brw_inst_set_src1_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_0);
412 brw_inst_set_src1_hstride(devinfo, inst, reg.hstride);
413 brw_inst_set_src1_width(devinfo, inst, reg.width);
414 brw_inst_set_src1_vstride(devinfo, inst, reg.vstride);
417 brw_inst_set_src1_da16_swiz_x(devinfo, inst,
419 brw_inst_set_src1_da16_swiz_y(devinfo, inst,
421 brw_inst_set_src1_da16_swiz_z(devinfo, inst,
423 brw_inst_set_src1_da16_swiz_w(devinfo, inst,
430 brw_inst_set_src1_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
441 brw_inst_set_src1_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
443 brw_inst_set_src1_vstride(devinfo, inst, reg.vstride);
455 brw_set_desc_ex(struct brw_codegen *p, brw_inst *inst,
459 assert(brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SEND ||
460 brw_inst_opcode(p->isa, inst) == BRW_OPCODE_SENDC);
462 brw_inst_set_src1_file_type(devinfo, inst,
464 brw_inst_set_send_desc(devinfo, inst, desc);
466 brw_inst_set_send_ex_desc(devinfo, inst, ex_desc);
470 brw_inst *inst,
504 brw_set_desc(p, inst, brw_message_desc(
507 brw_inst_set_sfid(devinfo, inst, BRW_SFID_MATH);
508 brw_inst_set_math_msg_function(devinfo, inst, function);
509 brw_inst_set_math_msg_signed_int(devinfo, inst, integer_type);
510 brw_inst_set_math_msg_precision(devinfo, inst, low_precision);
511 brw_inst_set_math_msg_saturate(devinfo, inst, brw_inst_saturate(devinfo, inst));
512 brw_inst_set_math_msg_data_type(devinfo, inst, dataType);
513 brw_inst_set_saturate(devinfo, inst, 0);
584 brw_inst *inst,
600 brw_set_desc(p, inst, brw_message_desc(
603 brw_inst_set_sfid(devinfo, inst, GFX7_SFID_DATAPORT_DATA_CACHE);
604 brw_inst_set_dp_category(devinfo, inst, 1); /* Scratch Block Read/Write msgs */
605 brw_inst_set_scratch_read_write(devinfo, inst, write);
606 brw_inst_set_scratch_type(devinfo, inst, dword);
607 brw_inst_set_scratch_invalidate_after_read(devinfo, inst, invalidate_after_read);
608 brw_inst_set_scratch_block_size(devinfo, inst, block_size);
609 brw_inst_set_scratch_addr_offset(devinfo, inst, addr_offset);
810 brw_inst *inst = next_insn(p, opcode);
828 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
833 brw_inst_set_3src_a1_dst_reg_file(devinfo, inst, dest.file);
834 brw_inst_set_3src_dst_reg_nr(devinfo, inst, dest.nr);
837 brw_inst_set_3src_a1_dst_reg_file(devinfo, inst,
839 brw_inst_set_3src_dst_reg_nr(devinfo, inst, BRW_ARF_ACCUMULATOR);
841 brw_inst_set_3src_a1_dst_reg_file(devinfo, inst,
843 brw_inst_set_3src_dst_reg_nr(devinfo, inst, dest.nr);
846 brw_inst_set_3src_a1_dst_subreg_nr(devinfo, inst, dest.subnr / 8);
848 brw_inst_set_3src_a1_dst_hstride(devinfo, inst, BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_1);
851 brw_inst_set_3src_a1_exec_type(devinfo, inst,
854 brw_inst_set_3src_a1_exec_type(devinfo, inst,
858 brw_inst_set_3src_a1_dst_type(devinfo, inst, dest.type);
859 brw_inst_set_3src_a1_src0_type(devinfo, inst, src0.type);
860 brw_inst_set_3src_a1_src1_type(devinfo, inst, src1.type);
861 brw_inst_set_3src_a1_src2_type(devinfo, inst, src2.type);
864 brw_inst_set_3src_a1_src0_imm(devinfo, inst, src0.ud);
867 devinfo, inst, to_3src_align1_vstride(devinfo, src0.vstride));
868 brw_inst_set_3src_a1_src0_hstride(devinfo, inst,
870 brw_inst_set_3src_a1_src0_subreg_nr(devinfo, inst, src0.subnr);
872 brw_inst_set_3src_src0_reg_nr(devinfo, inst, BRW_ARF_ACCUMULATOR);
874 brw_inst_set_3src_src0_reg_nr(devinfo, inst, src0.nr);
876 brw_inst_set_3src_src0_abs(devinfo, inst, src0.abs);
877 brw_inst_set_3src_src0_negate(devinfo, inst, src0.negate);
880 devinfo, inst, to_3src_align1_vstride(devinfo, src1.vstride));
881 brw_inst_set_3src_a1_src1_hstride(devinfo, inst,
884 brw_inst_set_3src_a1_src1_subreg_nr(devinfo, inst, src1.subnr);
886 brw_inst_set_3src_src1_reg_nr(devinfo, inst, BRW_ARF_ACCUMULATOR);
888 brw_inst_set_3src_src1_reg_nr(devinfo, inst, src1.nr);
890 brw_inst_set_3src_src1_abs(devinfo, inst, src1.abs);
891 brw_inst_set_3src_src1_negate(devinfo, inst, src1.negate);
894 brw_inst_set_3src_a1_src2_imm(devinfo, inst, src2.ud);
896 brw_inst_set_3src_a1_src2_hstride(devinfo, inst,
899 brw_inst_set_3src_a1_src2_subreg_nr(devinfo, inst, src2.subnr);
900 brw_inst_set_3src_src2_reg_nr(devinfo, inst, src2.nr);
901 brw_inst_set_3src_src2_abs(devinfo, inst, src2.abs);
902 brw_inst_set_3src_src2_negate(devinfo, inst, src2.negate);
916 brw_inst_set_3src_a1_src0_is_imm(devinfo, inst, 1);
918 brw_inst_set_3src_a1_src0_reg_file(devinfo, inst, src0.file);
921 brw_inst_set_3src_a1_src1_reg_file(devinfo, inst, src1.file);
924 brw_inst_set_3src_a1_src2_is_imm(devinfo, inst, 1);
926 brw_inst_set_3src_a1_src2_reg_file(devinfo, inst, src2.file);
929 brw_inst_set_3src_a1_src0_reg_file(devinfo, inst,
933 brw_inst_set_3src_a1_src1_reg_file(devinfo, inst,
937 brw_inst_set_3src_a1_src2_reg_file(devinfo, inst,
952 brw_inst_set_3src_a16_dst_reg_file(devinfo, inst,
955 brw_inst_set_3src_dst_reg_nr(devinfo, inst, dest.nr);
956 brw_inst_set_3src_a16_dst_subreg_nr(devinfo, inst, dest.subnr / 4);
957 brw_inst_set_3src_a16_dst_writemask(devinfo, inst, dest.writemask);
960 brw_inst_set_3src_a16_src0_swizzle(devinfo, inst, src0.swizzle);
961 brw_inst_set_3src_a16_src0_subreg_nr(devinfo, inst, get_3src_subreg_nr(src0));
962 brw_inst_set_3src_src0_reg_nr(devinfo, inst, src0.nr);
963 brw_inst_set_3src_src0_abs(devinfo, inst, src0.abs);
964 brw_inst_set_3src_src0_negate(devinfo, inst, src0.negate);
965 brw_inst_set_3src_a16_src0_rep_ctrl(devinfo, inst,
969 brw_inst_set_3src_a16_src1_swizzle(devinfo, inst, src1.swizzle);
970 brw_inst_set_3src_a16_src1_subreg_nr(devinfo, inst, get_3src_subreg_nr(src1));
971 brw_inst_set_3src_src1_reg_nr(devinfo, inst, src1.nr);
972 brw_inst_set_3src_src1_abs(devinfo, inst, src1.abs);
973 brw_inst_set_3src_src1_negate(devinfo, inst, src1.negate);
974 brw_inst_set_3src_a16_src1_rep_ctrl(devinfo, inst,
978 brw_inst_set_3src_a16_src2_swizzle(devinfo, inst, src2.swizzle);
979 brw_inst_set_3src_a16_src2_subreg_nr(devinfo, inst, get_3src_subreg_nr(src2));
980 brw_inst_set_3src_src2_reg_nr(devinfo, inst, src2.nr);
981 brw_inst_set_3src_src2_abs(devinfo, inst, src2.abs);
982 brw_inst_set_3src_src2_negate(devinfo, inst, src2.negate);
983 brw_inst_set_3src_a16_src2_rep_ctrl(devinfo, inst,
993 brw_inst_set_3src_a16_src_type(devinfo, inst, dest.type);
994 brw_inst_set_3src_a16_dst_type(devinfo, inst, dest.type);
1007 brw_inst_set_3src_a16_src1_type(devinfo, inst, 1);
1010 brw_inst_set_3src_a16_src2_type(devinfo, inst, 1);
1014 return inst;
1261 brw_inst *inst;
1282 inst = brw_MOV(p, retype(dst, BRW_REGISTER_TYPE_HF), src);
1285 inst = brw_alu1(p, BRW_OPCODE_F32TO16, dst, src);
1290 brw_inst_set_no_dd_clear(devinfo, inst, true);
1292 inst = brw_MOV(p, suboffset(dst, 1), brw_imm_w(0));
1294 brw_inst_set_no_dd_check(devinfo, inst, true);
1298 return inst;
1356 brw_inst *inst = brw_alu2(p, BRW_OPCODE_JMPI, ip, ip, index);
1358 brw_inst_set_exec_size(devinfo, inst, BRW_EXECUTE_1);
1359 brw_inst_set_qtr_control(devinfo, inst, BRW_COMPRESSION_NONE);
1360 brw_inst_set_mask_control(devinfo, inst, BRW_MASK_DISABLE);
1361 brw_inst_set_pred_control(devinfo, inst, predicate_control);
1363 return inst;
1367 push_if_stack(struct brw_codegen *p, brw_inst *inst)
1369 p->if_stack[p->if_stack_depth] = inst - p->store;
1387 push_loop_stack(struct brw_codegen *p, brw_inst *inst)
1397 p->loop_stack[p->loop_stack_depth] = inst - p->store;
1879 brw_inst *inst;
1884 for (inst = while_inst - 1; inst != do_inst; inst--) {
1889 if (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_BREAK &&
1890 brw_inst_gfx4_jump_count(devinfo, inst) == 0) {
1891 brw_inst_set_gfx4_jump_count(devinfo, inst, br*((while_inst - inst) + 1));
1892 } else if (brw_inst_opcode(p->isa, inst) == BRW_OPCODE_CONTINUE &&
1893 brw_inst_gfx4_jump_count(devinfo, inst) == 0) {
1894 brw_inst_set_gfx4_jump_count(devinfo, inst, br * (while_inst - inst));
3373 brw_inst *inst;
3404 inst = brw_MOV(p, retype(brw_null_reg(), BRW_REGISTER_TYPE_UW),
3406 brw_inst_set_mask_control(devinfo, inst, BRW_MASK_ENABLE);
3407 brw_inst_set_group(devinfo, inst, lower_size * i + 8 * qtr_control);
3408 brw_inst_set_cond_modifier(devinfo, inst, BRW_CONDITIONAL_Z);
3409 brw_inst_set_exec_size(devinfo, inst, cvt(lower_size) - 1);
3410 brw_inst_set_flag_reg_nr(devinfo, inst, flag_subreg / 2);
3411 brw_inst_set_flag_subreg_nr(devinfo, inst, flag_subreg % 2);
3421 inst = brw_FBL(p, vec1(dst), byte_offset(retype(flag, type), qtr_control));
3423 inst = brw_LZD(p, vec1(dst), byte_offset(retype(flag, type), qtr_control));
3426 inst = brw_ADD(p, vec1(dst), neg, brw_imm_uw(31));
3439 inst = brw_MOV(p, brw_writemask(vec4(dst), WRITEMASK_X),
3442 brw_inst_set_mask_control(devinfo, inst, BRW_MASK_ENABLE);
3456 brw_inst *inst;
3563 inst = brw_MOV(p,
3566 brw_inst_set_pred_control(devinfo, inst, BRW_PREDICATE_NONE);
3567 brw_inst_set_cond_modifier(devinfo, inst, BRW_CONDITIONAL_NZ);
3568 brw_inst_set_flag_reg_nr(devinfo, inst, 1);
3571 inst = brw_SEL(p, dst,
3574 brw_inst_set_pred_control(devinfo, inst, BRW_PREDICATE_NORMAL);
3575 brw_inst_set_flag_reg_nr(devinfo, inst, 1);
3590 struct brw_inst *inst;
3596 inst = next_insn(p, BRW_OPCODE_SEND);
3597 brw_set_dest(p, inst, retype(brw_null_reg(), BRW_REGISTER_TYPE_UW));
3598 brw_set_src0(p, inst, src);
3599 brw_set_src1(p, inst, brw_null_reg());
3600 brw_set_desc(p, inst, brw_message_desc(devinfo, 1, 0, false));
3602 brw_inst_set_sfid(devinfo, inst, BRW_SFID_MESSAGE_GATEWAY);
3603 brw_inst_set_gateway_subfuncid(devinfo, inst,
3606 brw_inst_set_mask_control(devinfo, inst, BRW_MASK_DISABLE);
3646 brw_inst *inst = brw_AND(p, brw_cr0_reg(0), brw_cr0_reg(0),
3648 brw_inst_set_exec_size(p->devinfo, inst, BRW_EXECUTE_1);
3650 brw_inst_set_thread_control(p->devinfo, inst, BRW_THREAD_SWITCH);
3666 brw_inst *inst,
3672 assert(brw_inst_opcode(isa, inst) == BRW_OPCODE_MOV);
3673 assert(brw_inst_src0_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE);
3676 assert(brw_inst_cmpt_control(devinfo, inst) == 0);
3678 brw_inst_set_imm_ud(devinfo, inst, value);