Browse Source

shader: Fix BFE s32 undefined check

Our unit tests were hitting this exception.
ameerj 5 years ago
parent
commit
20e86fd615
1 changed files with 1 additions and 1 deletions
  1. 1 1
      src/shader_recompiler/ir_opt/constant_propagation_pass.cpp

+ 1 - 1
src/shader_recompiler/ir_opt/constant_propagation_pass.cpp

@@ -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 left_shift{32 - back_shift};
             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,
                                  base, shift, count);
             }