shader: Fix BFE s32 undefined check
Our unit tests were hitting this exception.
This commit is contained in:
parent
8fda599a31
commit
20e86fd615
@ -565,7 +565,7 @@ void ConstantPropagation(IR::Block& block, IR::Inst& inst) {
|
|||||||
const size_t back_shift{static_cast<size_t>(shift) + static_cast<size_t>(count)};
|
const size_t back_shift{static_cast<size_t>(shift) + static_cast<size_t>(count)};
|
||||||
const size_t left_shift{32 - back_shift};
|
const size_t left_shift{32 - back_shift};
|
||||||
const size_t right_shift{static_cast<size_t>(32 - count)};
|
const size_t right_shift{static_cast<size_t>(32 - count)};
|
||||||
if (back_shift >= 32 || left_shift >= 32 || right_shift >= 32) {
|
if (back_shift > 32 || left_shift >= 32 || right_shift >= 32) {
|
||||||
throw LogicError("Undefined result in {}({}, {}, {})", IR::Opcode::BitFieldSExtract,
|
throw LogicError("Undefined result in {}({}, {}, {})", IR::Opcode::BitFieldSExtract,
|
||||||
base, shift, count);
|
base, shift, count);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user