diff options
author | Rhys Perry <[email protected]> | 2020-04-10 15:11:03 +0100 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-04-14 10:49:12 +0000 |
commit | e18711cda3bf173e03d9773001f641fd85ffd18d (patch) | |
tree | ee6cba3ac7a838710b5c040622989150d92ad10f /src/amd/compiler/aco_validate.cpp | |
parent | 41ac44e1b3ad19b9a889fc3d1052611ae309ffb0 (diff) |
aco: fix p_extract_vector validation
Signed-off-by: Rhys Perry <[email protected]>
Reviewed-by: Daniel Schürmann <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4507>
Diffstat (limited to 'src/amd/compiler/aco_validate.cpp')
-rw-r--r-- | src/amd/compiler/aco_validate.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/amd/compiler/aco_validate.cpp b/src/amd/compiler/aco_validate.cpp index 39174971b04..3e0f4584cd3 100644 --- a/src/amd/compiler/aco_validate.cpp +++ b/src/amd/compiler/aco_validate.cpp @@ -261,7 +261,7 @@ void validate(Program* program, FILE * output) } } else if (instr->opcode == aco_opcode::p_extract_vector) { check((instr->operands[0].isTemp()) && instr->operands[1].isConstant(), "Wrong Operand types", instr.get()); - check(instr->operands[1].constantValue() < instr->operands[0].size(), "Index out of range", instr.get()); + check((instr->operands[1].constantValue() + 1) * instr->definitions[0].bytes() <= instr->operands[0].bytes(), "Index out of range", instr.get()); check(instr->definitions[0].getTemp().type() == RegType::vgpr || instr->operands[0].regClass().type() == RegType::sgpr, "Cannot extract SGPR value from VGPR vector", instr.get()); } else if (instr->opcode == aco_opcode::p_parallelcopy) { |