1 #include "radeon_program_constants.h"
3 #ifndef RADEON_PROGRAM_UTIL_H
4 #define RADEON_PROGRAM_UTIL_H
7 struct rc_src_register
;
9 unsigned int rc_swizzle_to_writemask(unsigned int swz
);
11 rc_swizzle
get_swz(unsigned int swz
, rc_swizzle idx
);
13 unsigned int rc_init_swizzle(unsigned int initial_value
, unsigned int channels
);
15 unsigned int combine_swizzles4(unsigned int src
,
16 rc_swizzle swz_x
, rc_swizzle swz_y
,
17 rc_swizzle swz_z
, rc_swizzle swz_w
);
19 unsigned int combine_swizzles(unsigned int src
, unsigned int swz
);
21 rc_swizzle
rc_mask_to_swizzle(unsigned int mask
);
23 unsigned swizzle_mask(unsigned swizzle
, unsigned mask
);
25 struct rc_src_register
lmul_swizzle(unsigned int swizzle
, struct rc_src_register srcreg
);
27 void reset_srcreg(struct rc_src_register
* reg
);
29 unsigned int rc_src_reads_dst_mask(
30 rc_register_file src_file
,
33 rc_register_file dst_file
,
35 unsigned int dst_mask
);
37 unsigned int rc_source_type_swz(unsigned int swizzle
);
39 unsigned int rc_source_type_mask(unsigned int mask
);
41 unsigned int rc_inst_can_use_presub(
42 struct rc_instruction
* inst
,
43 rc_presubtract_op presub_op
,
44 unsigned int presub_writemask
,
45 struct rc_src_register replace_reg
,
46 struct rc_src_register presub_src0
,
47 struct rc_src_register presub_src1
);
49 #endif /* RADEON_PROGRAM_UTIL_H */