diff --git a/src/freedreno/ir3/ir3_validate.c b/src/freedreno/ir3/ir3_validate.c index 59d369c0a20..53cce7477b2 100644 --- a/src/freedreno/ir3/ir3_validate.c +++ b/src/freedreno/ir3/ir3_validate.c @@ -411,6 +411,12 @@ validate_instr(struct ir3_validate_ctx *ctx, struct ir3_instruction *instr) validate_assert(ctx, !(instr->srcs[0]->flags & IR3_REG_HALF)); validate_assert(ctx, !(instr->srcs[1]->flags & IR3_REG_HALF)); break; + case OPC_LDP: + validate_assert(ctx, !(instr->srcs[0]->flags & IR3_REG_HALF)); + validate_assert(ctx, !(instr->srcs[1]->flags & IR3_REG_HALF)); + validate_assert(ctx, !(instr->srcs[2]->flags & IR3_REG_HALF)); + validate_reg_size(ctx, instr->dsts[0], instr->cat6.type); + break; default: validate_reg_size(ctx, instr->dsts[0], instr->cat6.type); validate_assert(ctx, !(instr->srcs[0]->flags & IR3_REG_HALF)); diff --git a/src/freedreno/isa/ir3-cat6.xml b/src/freedreno/isa/ir3-cat6.xml index 33336a9b4da..691caef169f 100644 --- a/src/freedreno/isa/ir3-cat6.xml +++ b/src/freedreno/isa/ir3-cat6.xml @@ -356,7 +356,7 @@ SOFTWARE. LoaD Private - {SY}{JP}{NAME}.{TYPE} {DST}, p[{SRC}{OFF}], {SIZE} + {SY}{JP}{NAME}.{TYPE} {TYPE_HALF}{DST}, p[{SRC}{OFF}], {SIZE} 00010