freedreno: fix crash w/ masked non-SSA dst

Fixes
dEQP-GLES3.functional.shaders.indexing.varying_array.vec3_dynamic_write_dynamic_loop_read
regression.

Fixes: c1a27ba9ba freedreno/ir3: HIGH reg w/a for a6xx
Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark
2019-02-19 13:25:02 -05:00
parent 8c486083d0
commit 7fe9e790e7
+2
View File
@@ -251,6 +251,8 @@ put_dst(struct ir3_context *ctx, nir_dest *dst)
* ir3_cp will clean up the extra mov:
*/
for (unsigned i = 0; i < ctx->last_dst_n; i++) {
if (!ctx->last_dst[i])
continue;
if (ctx->last_dst[i]->regs[0]->flags & IR3_REG_HIGH) {
ctx->last_dst[i] = ir3_MOV(ctx->block, ctx->last_dst[i], TYPE_U32);
}