From 0fec5e9867fe46c543509f6555d31b8ada835f8e Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Thu, 13 Aug 2015 15:44:14 -0700 Subject: [PATCH] i965/vec4: don't constant propagate 64-bit immediates MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit v2: Also check if the instruction source target is 64-bit. (Samuel) Signed-off-by: Samuel Iglesias Gonsálvez Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp index 739f33eed34..55413abbc6e 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp @@ -151,6 +151,13 @@ try_constant_propagate(const struct gen_device_info *devinfo, if (value.file != IMM) return false; + /* 64-bit types can't be used except for one-source instructions, which + * higher levels should have constant folded away, so there's no point in + * propagating immediates here. + */ + if (type_sz(value.type) == 8 || type_sz(inst->src[arg].type) == 8) + return false; + if (value.type == BRW_REGISTER_TYPE_VF) { /* The result of bit-casting the component values of a vector float * cannot in general be represented as an immediate. -- 2.30.2