Lines Matching defs:ir3_instruction
43 struct ir3_instruction;
192 struct ir3_instruction *instr;
232 struct ir3_instruction {
416 DECLARE_ARRAY(struct ir3_instruction *, deps);
463 DECLARE_ARRAY(struct ir3_instruction *, inputs);
471 DECLARE_ARRAY(struct ir3_instruction *, baryfs);
483 DECLARE_ARRAY(struct ir3_instruction *, a0_users);
486 DECLARE_ARRAY(struct ir3_instruction *, a1_users);
489 DECLARE_ARRAY(struct ir3_instruction *, predicates);
494 DECLARE_ARRAY(struct ir3_instruction *, astc_srgb);
549 struct list_head instr_list; /* list of ir3_instruction */
568 struct ir3_instruction *condition;
580 DECLARE_ARRAY(struct ir3_instruction *, keeps);
653 struct ir3_instruction *ir3_instr_create(struct ir3_block *block, opc_t opc,
655 struct ir3_instruction *ir3_instr_clone(struct ir3_instruction *instr);
656 void ir3_instr_add_dep(struct ir3_instruction *instr,
657 struct ir3_instruction *dep);
658 const char *ir3_instr_name(struct ir3_instruction *instr);
660 struct ir3_register *ir3_src_create(struct ir3_instruction *instr, int num,
662 struct ir3_register *ir3_dst_create(struct ir3_instruction *instr, int num,
675 void ir3_reg_set_last_array(struct ir3_instruction *instr,
679 void ir3_instr_set_address(struct ir3_instruction *instr,
680 struct ir3_instruction *addr);
683 ir3_instr_check_mark(struct ir3_instruction *instr)
701 ir3_instr_move_before(struct ir3_instruction *instr,
702 struct ir3_instruction *after)
712 ir3_instr_move_after(struct ir3_instruction *instr,
713 struct ir3_instruction *before)
723 ir3_instr_move_before_block(struct ir3_instruction *instr,
732 void ir3_set_dst_type(struct ir3_instruction *instr, bool half);
733 void ir3_fixup_src_type(struct ir3_instruction *instr);
737 bool ir3_valid_flags(struct ir3_instruction *instr, unsigned n, unsigned flags);
739 bool ir3_valid_immediate(struct ir3_instruction *instr, int32_t immed);
743 for (struct ir3_instruction *__use = (void *)~0; __use && (__instr)->uses; \
761 is_flow(struct ir3_instruction *instr)
767 is_kill_or_demote(struct ir3_instruction *instr)
773 is_nop(struct ir3_instruction *instr)
799 is_same_type_mov(struct ir3_instruction *instr)
847 is_const_mov(struct ir3_instruction *instr)
864 is_alu(struct ir3_instruction *instr)
870 is_sfu(struct ir3_instruction *instr)
876 is_tex(struct ir3_instruction *instr)
882 is_tex_or_prefetch(struct ir3_instruction *instr)
888 is_mem(struct ir3_instruction *instr)
894 is_barrier(struct ir3_instruction *instr)
900 is_half(struct ir3_instruction *instr)
906 is_shared(struct ir3_instruction *instr)
912 is_store(struct ir3_instruction *instr)
934 is_load(struct ir3_instruction *instr)
955 is_input(struct ir3_instruction *instr)
971 is_bool(struct ir3_instruction *instr)
1052 is_meta(struct ir3_instruction *instr)
1079 dest_regs(struct ir3_instruction *instr)
1100 writes_gpr(struct ir3_instruction *instr)
1108 writes_addr0(struct ir3_instruction *instr)
1119 writes_addr1(struct ir3_instruction *instr)
1130 writes_pred(struct ir3_instruction *instr)
1163 static inline struct ir3_instruction *
1373 ir3_output_conv_type(struct ir3_instruction *instr, bool *can_fold)
1432 ir3_output_conv_src_type(struct ir3_instruction *instr, type_t base_type)
1463 ir3_output_conv_dst_type(struct ir3_instruction *instr, type_t base_type)
1523 __ssa_src_cnt(struct ir3_instruction *instr)
1529 __is_false_dep(struct ir3_instruction *instr, unsigned n)
1536 static inline struct ir3_instruction **
1537 __ssa_srcp_n(struct ir3_instruction *instr, unsigned n)
1547 for (struct ir3_instruction **__srcp = (void *)~0; __srcp; __srcp = NULL) \
1557 for (struct ir3_instruction *__srcinst = (void *)~0; __srcinst; \
1568 for (struct ir3_instruction *__ininstr = (void *)~0; __ininstr; \
1576 list_for_each_entry (struct ir3_instruction, __instr, __list, node)
1578 list_for_each_entry_rev (struct ir3_instruction, __instr, __list, node)
1580 list_for_each_entry_safe (struct ir3_instruction, __instr, __list, node)
1582 list_for_each_entry_from_safe(struct ir3_instruction, __instr, __start, \
1614 void ir3_print_instr(struct ir3_instruction *instr);
1617 void ir3_print_instr_stream(struct log_stream *stream, struct ir3_instruction *instr);
1620 int ir3_delayslots(struct ir3_instruction *assigner,
1621 struct ir3_instruction *consumer, unsigned n, bool soft);
1623 struct ir3_instruction *instr);
1625 struct ir3_instruction *instr, bool soft,
1628 struct ir3_instruction *instr, bool mergedregs);
1703 __ssa_src(struct ir3_instruction *instr, struct ir3_instruction *src,
1716 __ssa_dst(struct ir3_instruction *instr)
1723 static inline struct ir3_instruction *
1726 struct ir3_instruction *mov;
1738 static inline struct ir3_instruction *
1744 static inline struct ir3_instruction *
1747 struct ir3_instruction *mov;
1759 static inline struct ir3_instruction *
1765 static inline struct ir3_instruction *
1767 struct ir3_instruction *address)
1769 struct ir3_instruction *mov;
1782 static inline struct ir3_instruction *
1783 ir3_MOV(struct ir3_block *block, struct ir3_instruction *src, type_t type)
1785 struct ir3_instruction *instr = ir3_instr_create(block, OPC_MOV, 1, 1);
1801 static inline struct ir3_instruction *
1802 ir3_COV(struct ir3_block *block, struct ir3_instruction *src, type_t src_type,
1805 struct ir3_instruction *instr = ir3_instr_create(block, OPC_MOV, 1, 1);
1819 static inline struct ir3_instruction *
1822 struct ir3_instruction *instr = ir3_instr_create(block, OPC_MOVMSK, 1, 0);
1831 static inline struct ir3_instruction *
1832 ir3_BALLOT_MACRO(struct ir3_block *block, struct ir3_instruction *src,
1835 struct ir3_instruction *instr =
1847 static inline struct ir3_instruction *
1857 static inline struct ir3_instruction *ir3_##name(struct ir3_block *block) \
1859 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 0); \
1869 static inline struct ir3_instruction *ir3_##name( \
1870 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags) \
1872 struct ir3_instruction *instr = \
1887 static inline struct ir3_instruction *ir3_##name( \
1888 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
1889 struct ir3_instruction *b, unsigned bflags) \
1891 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 2); \
1904 static inline struct ir3_instruction *ir3_##name( \
1905 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
1906 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
1909 struct ir3_instruction *instr = \
1926 static inline struct ir3_instruction *ir3_##name( \
1927 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
1928 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
1929 unsigned cflags, struct ir3_instruction *d, unsigned dflags) \
1931 struct ir3_instruction *instr = \
1949 static inline struct ir3_instruction *ir3_##name( \
1950 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
1951 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
1952 unsigned cflags, struct ir3_instruction *d, unsigned dflags, \
1953 struct ir3_instruction *e, unsigned eflags) \
1955 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 5); \
1971 static inline struct ir3_instruction *ir3_##name( \
1972 struct ir3_block *block, struct ir3_instruction *a, unsigned aflags, \
1973 struct ir3_instruction *b, unsigned bflags, struct ir3_instruction *c, \
1974 unsigned cflags, struct ir3_instruction *d, unsigned dflags, \
1975 struct ir3_instruction *e, unsigned eflags, struct ir3_instruction *f, \
1978 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 6); \
2014 static inline struct ir3_instruction *
2017 struct ir3_instruction *instr =
2111 static inline struct ir3_instruction *
2113 unsigned flags, struct ir3_instruction *samp_tex,
2114 struct ir3_instruction *src0, struct ir3_instruction *src1)
2116 struct ir3_instruction *sam;