1
0
Fork 0
mirror of https://git.suyu.dev/suyu/dynarmic.git synced 2025-03-05 13:45:36 +00:00

constant_propagation_pass: Fold IsZero

This commit is contained in:
MerryMage 2020-04-22 00:20:38 +01:00
parent df1a0eecaf
commit d51a83d265

View file

@ -337,6 +337,16 @@ void ConstantPropagation(IR::Block& block) {
case Op::MostSignificantBit:
FoldMostSignificantBit(inst);
break;
case Op::IsZero32:
if (inst.AreAllArgsImmediates()) {
inst.ReplaceUsesWith(IR::Value{inst.GetArg(0).GetU32() == 0});
}
break;
case Op::IsZero64:
if (inst.AreAllArgsImmediates()) {
inst.ReplaceUsesWith(IR::Value{inst.GetArg(0).GetU64() == 0});
}
break;
case Op::LogicalShiftLeft32:
if (FoldShifts(inst)) {
ReplaceUsesWith(inst, true, Safe::LogicalShiftLeft<u32>(inst.GetArg(0).GetU32(), inst.GetArg(1).GetU8()));