summaryrefslogtreecommitdiffstats
path: root/src/intel/compiler/brw_fs.cpp
diff options
context:
space:
mode:
authorJuan A. Suarez Romero <[email protected]>2016-07-18 07:17:39 +0000
committerFrancisco Jerez <[email protected]>2017-04-14 14:56:07 -0700
commit79af2563889098550de5d4a0955efbeb87a24565 (patch)
tree6481bb265d63dfdd9194be00663bdfb32b3a5752 /src/intel/compiler/brw_fs.cpp
parentfd349d29e43fa9c2227cbf649282810782ecf555 (diff)
i965/fs: add helper to retrieve instruction execution type
The execution data size is the biggest type size of any instruction operand. We will use it to know if the instruction deals with DF, because in Ivy we need to double the execution size and regioning parameters. v2: - Fix typo in commit log (Matt) - Use static inline function instead of fs_inst's method (Curro). - Define the result as a constant (Curro). - Fix indentation (Matt). - Add braces to nested control flow (Matt). v3 (Curro): - Add get_exec_type() and other auxiliary functions and use them to calculate its size. Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]> [ Francisco Jerez: Fix bogus 'type != BAD_FILE' check. Fix deduced execution type for integer vector types. Take destination type as execution type where there is no valid source. Assert-fail if the deduced execution type is byte. Move into brw_ir_fs.h header for consistency with the VEC4 back-end. ] Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs.cpp')
-rw-r--r--src/intel/compiler/brw_fs.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 9dc21ac5e38..3fc7ae48943 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -4585,11 +4585,7 @@ get_fpu_lowered_simd_width(const struct gen_device_info *devinfo,
!inst->force_writemask_all) {
const unsigned channels_per_grf = inst->exec_size /
DIV_ROUND_UP(inst->size_written, REG_SIZE);
- unsigned exec_type_size = 0;
- for (int i = 0; i < inst->sources; i++) {
- if (inst->src[i].file != BAD_FILE)
- exec_type_size = MAX2(exec_type_size, type_sz(inst->src[i].type));
- }
+ const unsigned exec_type_size = get_exec_type_size(inst);
assert(exec_type_size);
/* The hardware shifts exactly 8 channels per compressed half of the