mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
panfrost/midgard: Verify src_bitsize == dst_bitsize
We can handle differing, but we'd prefer not to because there are restrictions on sizing which aren't accounted for yet. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
1686ef8655
commit
0ed8cca008
1 changed files with 5 additions and 4 deletions
|
|
@ -690,12 +690,14 @@ emit_indirect_offset(compiler_context *ctx, nir_src *src)
|
|||
#define ALU_CASE(nir, _op) \
|
||||
case nir_op_##nir: \
|
||||
op = midgard_alu_op_##_op; \
|
||||
assert(src_bitsize == dst_bitsize); \
|
||||
break;
|
||||
|
||||
#define ALU_CASE_BCAST(nir, _op, count) \
|
||||
case nir_op_##nir: \
|
||||
op = midgard_alu_op_##_op; \
|
||||
broadcast_swizzle = count; \
|
||||
assert(src_bitsize == dst_bitsize); \
|
||||
break;
|
||||
static bool
|
||||
nir_is_fzero_constant(nir_src src)
|
||||
|
|
@ -773,6 +775,9 @@ emit_alu(compiler_context *ctx, nir_alu_instr *instr)
|
|||
bool half_1 = false, sext_1 = false;
|
||||
bool half_2 = false, sext_2 = false;
|
||||
|
||||
unsigned src_bitsize = nir_src_bit_size(instr->src[0].src);
|
||||
unsigned dst_bitsize = nir_dest_bit_size(instr->dest.dest);
|
||||
|
||||
switch (instr->op) {
|
||||
ALU_CASE(fadd, fadd);
|
||||
ALU_CASE(fmul, fmul);
|
||||
|
|
@ -888,10 +893,6 @@ emit_alu(compiler_context *ctx, nir_alu_instr *instr)
|
|||
case nir_op_u2u32: {
|
||||
op = midgard_alu_op_imov;
|
||||
|
||||
unsigned src_bitsize = nir_src_bit_size(instr->src[0].src);
|
||||
unsigned dst_bitsize = nir_dest_bit_size(instr->dest.dest);
|
||||
|
||||
|
||||
if (dst_bitsize == (src_bitsize * 2)) {
|
||||
/* Converting up */
|
||||
half_2 = true;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue