| Index: src/IceTargetLoweringX8632.cpp
|
| diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
|
| index a5704b530a20158506602b4271ed386faedc6838..8e56a10bbb83adba9e884821290dda0f289b6c54 100644
|
| --- a/src/IceTargetLoweringX8632.cpp
|
| +++ b/src/IceTargetLoweringX8632.cpp
|
| @@ -1584,7 +1584,7 @@ void TargetX8632::lowerBr(const InstBr *Inst) {
|
| if (Inst->isUnconditional()) {
|
| _br(Inst->getTargetUnconditional());
|
| } else {
|
| - Operand *Src0 = legalize(Inst->getCondition());
|
| + Operand *Src0 = legalize(Inst->getCondition(), Legal_Reg | Legal_Mem);
|
| Constant *Zero = Ctx->getConstantZero(IceType_i32);
|
| _cmp(Src0, Zero);
|
| _br(InstX8632Br::Br_ne, Inst->getTargetTrue(), Inst->getTargetFalse());
|
| @@ -2481,8 +2481,8 @@ void TargetX8632::lowerIcmp(const InstIcmp *Inst) {
|
| if (InstBr *NextBr = llvm::dyn_cast_or_null<InstBr>(Context.getNextInst())) {
|
| if (Src0->getType() != IceType_i64 && !NextBr->isUnconditional() &&
|
| Dest == NextBr->getSrc(0) && NextBr->isLastUse(Dest)) {
|
| - Operand *Src0New =
|
| - legalize(Src0, IsSrc1ImmOrReg ? Legal_All : Legal_Reg, true);
|
| + Operand *Src0New = legalize(
|
| + Src0, IsSrc1ImmOrReg ? (Legal_Reg | Legal_Mem) : Legal_Reg, true);
|
| _cmp(Src0New, Src1);
|
| _br(getIcmp32Mapping(Inst->getCondition()), NextBr->getTargetTrue(),
|
| NextBr->getTargetFalse());
|
|
|