i965/vec4: don't constant propagate 64-bit immediates

v2: Also check if the instruction source target is 64-bit. (Samuel)

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Connor Abbott 2015-08-13 15:44:14 -07:00 committed by Samuel Iglesias Gonsálvez
parent 8eea41e75d
commit 0fec5e9867

View file

@ -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.