Lines Matching refs:ir3_instruction
43 struct ir3_instruction;
202 struct ir3_instruction *instr;
258 struct ir3_instruction {
454 DECLARE_ARRAY(struct ir3_instruction *, deps);
504 DECLARE_ARRAY(struct ir3_instruction *, inputs);
512 DECLARE_ARRAY(struct ir3_instruction *, baryfs);
524 DECLARE_ARRAY(struct ir3_instruction *, a0_users);
527 DECLARE_ARRAY(struct ir3_instruction *, a1_users);
530 DECLARE_ARRAY(struct ir3_instruction *, predicates);
535 DECLARE_ARRAY(struct ir3_instruction *, astc_srgb);
540 DECLARE_ARRAY(struct ir3_instruction *, tg4);
596 struct list_head instr_list; /* list of ir3_instruction */
615 struct ir3_instruction *condition;
627 DECLARE_ARRAY(struct ir3_instruction *, keeps);
713 struct ir3_instruction *ir3_instr_create(struct ir3_block *block, opc_t opc,
715 struct ir3_instruction *ir3_instr_clone(struct ir3_instruction *instr);
716 void ir3_instr_add_dep(struct ir3_instruction *instr,
717 struct ir3_instruction *dep);
718 const char *ir3_instr_name(struct ir3_instruction *instr);
720 struct ir3_register *ir3_src_create(struct ir3_instruction *instr, int num,
722 struct ir3_register *ir3_dst_create(struct ir3_instruction *instr, int num,
735 void ir3_reg_set_last_array(struct ir3_instruction *instr,
739 void ir3_instr_set_address(struct ir3_instruction *instr,
740 struct ir3_instruction *addr);
743 ir3_instr_check_mark(struct ir3_instruction *instr)
761 ir3_instr_move_before(struct ir3_instruction *instr,
762 struct ir3_instruction *after)
772 ir3_instr_move_after(struct ir3_instruction *instr,
773 struct ir3_instruction *before)
783 ir3_instr_move_before_block(struct ir3_instruction *instr,
792 void ir3_set_dst_type(struct ir3_instruction *instr, bool half);
793 void ir3_fixup_src_type(struct ir3_instruction *instr);
797 bool ir3_valid_flags(struct ir3_instruction *instr, unsigned n, unsigned flags);
799 bool ir3_valid_immediate(struct ir3_instruction *instr, int32_t immed);
803 for (struct ir3_instruction *__use = (void *)~0; __use && (__instr)->uses; \
821 is_flow(struct ir3_instruction *instr)
827 is_kill_or_demote(struct ir3_instruction *instr)
833 is_nop(struct ir3_instruction *instr)
859 is_same_type_mov(struct ir3_instruction *instr)
907 is_const_mov(struct ir3_instruction *instr)
924 is_subgroup_cond_mov_macro(struct ir3_instruction *instr)
942 is_alu(struct ir3_instruction *instr)
948 is_sfu(struct ir3_instruction *instr)
954 is_tex(struct ir3_instruction *instr)
960 is_tex_or_prefetch(struct ir3_instruction *instr)
966 is_mem(struct ir3_instruction *instr)
972 is_barrier(struct ir3_instruction *instr)
978 is_half(struct ir3_instruction *instr)
984 is_shared(struct ir3_instruction *instr)
990 is_store(struct ir3_instruction *instr)
1012 is_load(struct ir3_instruction *instr)
1033 is_input(struct ir3_instruction *instr)
1050 is_bool(struct ir3_instruction *instr)
1131 is_meta(struct ir3_instruction *instr)
1158 dest_regs(struct ir3_instruction *instr)
1179 writes_gpr(struct ir3_instruction *instr)
1187 writes_addr0(struct ir3_instruction *instr)
1198 writes_addr1(struct ir3_instruction *instr)
1209 writes_pred(struct ir3_instruction *instr)
1242 static inline struct ir3_instruction *
1464 ir3_output_conv_type(struct ir3_instruction *instr, bool *can_fold)
1530 ir3_output_conv_src_type(struct ir3_instruction *instr, type_t base_type)
1565 ir3_output_conv_dst_type(struct ir3_instruction *instr, type_t base_type)
1625 __ssa_src_cnt(struct ir3_instruction *instr)
1631 __is_false_dep(struct ir3_instruction *instr, unsigned n)
1638 static inline struct ir3_instruction **
1639 __ssa_srcp_n(struct ir3_instruction *instr, unsigned n)
1649 for (struct ir3_instruction **__srcp = (void *)~0; __srcp; __srcp = NULL) \
1659 for (struct ir3_instruction *__srcinst = (void *)~0; __srcinst; \
1670 for (struct ir3_instruction *__ininstr = (void *)~0; __ininstr; \
1678 list_for_each_entry (struct ir3_instruction, __instr, __list, node)
1680 list_for_each_entry_rev (struct ir3_instruction, __instr, __list, node)
1682 list_for_each_entry_safe (struct ir3_instruction, __instr, __list, node)
1684 list_for_each_entry_from_safe(struct ir3_instruction, __instr, __start, \
1716 void ir3_print_instr(struct ir3_instruction *instr);
1719 void ir3_print_instr_stream(struct log_stream *stream, struct ir3_instruction *instr);
1722 int ir3_delayslots(struct ir3_instruction *assigner,
1723 struct ir3_instruction *consumer, unsigned n, bool soft);
1724 unsigned ir3_delayslots_with_repeat(struct ir3_instruction *assigner,
1725 struct ir3_instruction *consumer,
1728 struct ir3_instruction *instr, bool mergedregs);
1733 is_local_mem_load(struct ir3_instruction *instr)
1741 is_ss_producer(struct ir3_instruction *instr)
1752 soft_ss_delay(struct ir3_instruction *instr)
1774 is_sy_producer(struct ir3_instruction *instr)
1782 soft_sy_delay(struct ir3_instruction *instr, struct ir3 *shader)
1908 __ssa_src(struct ir3_instruction *instr, struct ir3_instruction *src,
1921 __ssa_dst(struct ir3_instruction *instr)
1928 static inline struct ir3_instruction *
1931 struct ir3_instruction *mov;
1943 static inline struct ir3_instruction *
1949 static inline struct ir3_instruction *
1952 struct ir3_instruction *mov;
1964 static inline struct ir3_instruction *
1970 static inline struct ir3_instruction *
1972 struct ir3_instruction *address)
1974 struct ir3_instruction *mov;
1987 static inline struct ir3_instruction *
1988 ir3_MOV(struct ir3_block *block, struct ir3_instruction *src, type_t type)
1990 struct ir3_instruction *instr = ir3_instr_create(block, OPC_MOV, 1, 1);
2006 static inline struct ir3_instruction *
2007 ir3_COV(struct ir3_block *block, struct ir3_instruction *src, type_t src_type,
2010 struct ir3_instruction *instr = ir3_instr_create(block, OPC_MOV, 1, 1);
2024 static inline struct ir3_instruction *
2027 struct ir3_instruction *instr = ir3_instr_create(block, OPC_MOVMSK, 1, 0);
2036 static inline struct ir3_instruction *
2037 ir3_BALLOT_MACRO(struct ir3_block *block, struct ir3_instruction *src,
2040 struct ir3_instruction *instr =
2052 static inline struct ir3_instruction *
2060 static inline struct ir3_instruction *ir3_##name(struct ir3_block *block) \
2062 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 0); \
2072 static inline struct ir3_instruction *ir3_##name( \
2073 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags) \
2075 struct ir3_instruction *instr = \
2090 static inline struct ir3_instruction *ir3_##name( \
2091 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
2092 struct ir3_instruction *b, unsigned bflags) \
2094 struct ir3_instruction *instr = ir3_instr_create(block, opc, dst_count, 2); \
2109 static inline struct ir3_instruction *ir3_##name( \
2110 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
2111 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
2114 struct ir3_instruction *instr = \
2131 static inline struct ir3_instruction *ir3_##name( \
2132 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
2133 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
2134 unsigned cflags, struct ir3_instruction *d, unsigned dflags) \
2136 struct ir3_instruction *instr = \
2154 static inline struct ir3_instruction *ir3_##name( \
2155 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
2156 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
2157 unsigned cflags, struct ir3_instruction *d, unsigned dflags, \
2158 struct ir3_instruction *e, unsigned eflags) \
2160 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 5); \
2176 static inline struct ir3_instruction *ir3_##name( \
2177 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
2178 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
2179 unsigned cflags, struct ir3_instruction *d, unsigned dflags, \
2180 struct ir3_instruction *e, unsigned eflags, struct ir3_instruction *f, \
2183 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 6); \
2221 static inline struct ir3_instruction *
2224 struct ir3_instruction *instr =
2230 static inline struct ir3_instruction *
2233 struct ir3_instruction *instr =
2330 static inline struct ir3_instruction *
2332 unsigned flags, struct ir3_instruction *samp_tex,
2333 struct ir3_instruction *src0, struct ir3_instruction *src1)
2335 struct ir3_instruction *sam;