From: Karol Herbst Date: Sun, 22 Apr 2018 01:29:07 +0000 (+0200) Subject: nir/opt_constant_folding: fix folding of 8 and 16 bit ints X-Git-Tag: upstream/19.0.0~5463 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=227b1af866112236e6788396731f2c6b4a050525;p=platform%2Fupstream%2Fmesa.git nir/opt_constant_folding: fix folding of 8 and 16 bit ints Signed-off-by: Karol Herbst Reviewed-by: Jose Maria Casanova Crespo Reviewed-by: Jason Ekstrand --- diff --git a/src/compiler/nir/nir_opt_constant_folding.c b/src/compiler/nir/nir_opt_constant_folding.c index d6be807..a848b14 100644 --- a/src/compiler/nir/nir_opt_constant_folding.c +++ b/src/compiler/nir/nir_opt_constant_folding.c @@ -76,10 +76,20 @@ constant_fold_alu_instr(nir_alu_instr *instr, void *mem_ctx) for (unsigned j = 0; j < nir_ssa_alu_instr_src_components(instr, i); j++) { - if (load_const->def.bit_size == 64) + switch(load_const->def.bit_size) { + case 64: src[i].u64[j] = load_const->value.u64[instr->src[i].swizzle[j]]; - else + break; + case 32: src[i].u32[j] = load_const->value.u32[instr->src[i].swizzle[j]]; + break; + case 16: + src[i].u16[j] = load_const->value.u16[instr->src[i].swizzle[j]]; + break; + case 8: + src[i].u8[j] = load_const->value.u8[instr->src[i].swizzle[j]]; + break; + } } /* We shouldn't have any source modifiers in the optimization loop. */