diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index de056aea09b..ca320d8f432 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -1027,8 +1027,6 @@ can_apply_extract(opt_ctx& ctx, aco_ptr& instr, unsigned idx, ssa_i if (!sel) { return false; - } else if (sel.size() == 4) { - return true; } else if ((instr->opcode == aco_opcode::v_cvt_f32_u32 || instr->opcode == aco_opcode::v_cvt_f32_i32) && sel.size() == 1 && !sel.sign_extend() && !instr->usesModifiers()) { diff --git a/src/amd/compiler/aco_validate.cpp b/src/amd/compiler/aco_validate.cpp index c65c255d8db..dbd05113500 100644 --- a/src/amd/compiler/aco_validate.cpp +++ b/src/amd/compiler/aco_validate.cpp @@ -699,12 +699,10 @@ validate_ir(Program* program) unsigned data_bits = instr->operands[0].bytes() * 8u; unsigned op_bits = instr->operands[2].constantValue(); + check(op_bits == 8 || op_bits == 16, "Size must be 8 or 16", instr.get()); if (instr->opcode == aco_opcode::p_insert) { - check(op_bits == 8 || op_bits == 16, "Size must be 8 or 16", instr.get()); check(op_bits < data_bits, "Size must be smaller than source", instr.get()); } else if (instr->opcode == aco_opcode::p_extract) { - check(op_bits == 8 || op_bits == 16 || op_bits == 32, - "Size must be 8 or 16 or 32", instr.get()); check(data_bits >= op_bits, "Can't extract more bits than what the data has.", instr.get()); }