WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
the patch
blah.patch (text/plain), 115.54 KB, created by
Filip Pizlo
on 2013-05-26 19:19:29 PDT
(
hide
)
Description:
the patch
Filename:
MIME Type:
Creator:
Filip Pizlo
Created:
2013-05-26 19:19:29 PDT
Size:
115.54 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 150720) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,54 @@ >+2013-05-26 Filip Pizlo <fpizlo@apple.com> >+ >+ fourthTier: clean up ArithDiv/ArithMod in the DFG >+ https://bugs.webkit.org/show_bug.cgi?id=116793 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This makes ArithDiv and ArithMod behave similarly, and moves both of their >+ implementations entirely into DFGSpeculativeJIT.cpp into methods named like >+ the ones for ArithSub/ArithMul. >+ >+ Specifically, ArithMod now uses the wrap-in-conversion-nodes idiom that >+ ArithDiv used for platforms that don't support integer division. Previously >+ ArithMod had its own int-to-double and double-to-int conversions for this >+ purpose. >+ >+ As well, this gets rid of confusing methods like compileSoftModulo() (which >+ did no such thing, there wasn't anything "soft" about it) and >+ compileIntegerArithDivForX86() (which is accurately named but we don't use >+ the platform-specific method convention anywhere else). >+ >+ Finally, this takes the optimized power-of-two modulo operation that was >+ previously only for ARMv7s, and makes it available for all platforms. Well, >+ sort of: I actually rewrote it to do what latest LLVM appears to do, which >+ is a crazy straight-line power-of-2 modulo based on a combination of shifts, >+ ands, additions, and subtractions. I can kind of understand it well enough >+ to see that it complies with both C and JS power-of-2 modulo semantics. I've >+ also confirmed that it does by testing (hence the corresponding improvements >+ to one of the division tests). But, I don't claim to know exactly how this >+ code works other than to observe that it is super leet. >+ >+ Overall, this patch has the effect of killing some code (no more hackish >+ int-to-double conversions in ArithMod), making some optimization work on >+ more platforms, and making the compiler less confusing by doing more things >+ with the same idiom. >+ >+ * dfg/DFGAbstractState.cpp: >+ (JSC::DFG::AbstractState::executeEffects): >+ * dfg/DFGFixupPhase.cpp: >+ (JSC::DFG::FixupPhase::fixupNode): >+ * dfg/DFGSpeculativeJIT.cpp: >+ (DFG): >+ (JSC::DFG::SpeculativeJIT::compileArithDiv): >+ (JSC::DFG::SpeculativeJIT::compileArithMod): >+ * dfg/DFGSpeculativeJIT.h: >+ (SpeculativeJIT): >+ * dfg/DFGSpeculativeJIT32_64.cpp: >+ (JSC::DFG::SpeculativeJIT::compile): >+ * dfg/DFGSpeculativeJIT64.cpp: >+ (JSC::DFG::SpeculativeJIT::compile): >+ > 2013-05-26 Filip Pizlo <fpizlo@apple.com> > > Merge trunk r150694. >Index: Source/JavaScriptCore/dfg/DFGAbstractState.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGAbstractState.cpp (revision 150720) >+++ Source/JavaScriptCore/dfg/DFGAbstractState.cpp (working copy) >@@ -563,6 +563,11 @@ bool AbstractState::executeEffects(unsig > case ArithMod: { > JSValue left = forNode(node->child1()).value(); > JSValue right = forNode(node->child2()).value(); >+ if (node->op() == ArithMod && right && right.isNumber() && right.asNumber() == 1 >+ && trySetConstant(node, JSValue(0))) { >+ m_foundConstants = true; >+ break; >+ } > if (left && right && left.isNumber() && right.isNumber()) { > double a = left.asNumber(); > double b = right.asNumber(); >Index: Source/JavaScriptCore/dfg/DFGFixupPhase.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGFixupPhase.cpp (revision 150720) >+++ Source/JavaScriptCore/dfg/DFGFixupPhase.cpp (working copy) >@@ -209,7 +209,8 @@ private: > break; > } > >- case ArithDiv: { >+ case ArithDiv: >+ case ArithMod: { > if (Node::shouldSpeculateIntegerForArithmetic(node->child1().node(), node->child2().node()) > && node->canSpeculateInteger()) { > if (isX86() || isARMv7s()) { >@@ -235,8 +236,7 @@ private: > } > > case ArithMin: >- case ArithMax: >- case ArithMod: { >+ case ArithMax: { > if (Node::shouldSpeculateIntegerForArithmetic(node->child1().node(), node->child2().node()) > && node->canSpeculateInteger()) { > setUseKindAndUnboxIfProfitable<Int32Use>(node->child1()); >Index: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp (revision 150720) >+++ Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp (working copy) >@@ -2247,35 +2247,7 @@ void SpeculativeJIT::compile(Node* node) > break; > > case ArithDiv: { >- switch (node->binaryUseKind()) { >- case Int32Use: { >-#if CPU(X86) >- compileIntegerArithDivForX86(node); >-#elif CPU(APPLE_ARMV7S) >- compileIntegerArithDivForARMv7s(node); >-#else // CPU type without integer divide >- RELEASE_ASSERT_NOT_REACHED(); // should have been coverted into a double divide. >-#endif >- break; >- } >- >- case NumberUse: { >- SpeculateDoubleOperand op1(this, node->child1()); >- SpeculateDoubleOperand op2(this, node->child2()); >- FPRTemporary result(this, op1); >- >- FPRReg reg1 = op1.fpr(); >- FPRReg reg2 = op2.fpr(); >- m_jit.divDouble(reg1, reg2, result.fpr()); >- >- doubleResult(result.fpr(), node); >- break; >- } >- >- default: >- RELEASE_ASSERT_NOT_REACHED(); >- break; >- } >+ compileArithDiv(node); > break; > } > >Index: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp (revision 150720) >+++ Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp (working copy) >@@ -2188,29 +2188,7 @@ void SpeculativeJIT::compile(Node* node) > break; > > case ArithDiv: { >- switch (node->binaryUseKind()) { >- case Int32Use: { >- compileIntegerArithDivForX86(node); >- break; >- } >- >- case NumberUse: { >- SpeculateDoubleOperand op1(this, node->child1()); >- SpeculateDoubleOperand op2(this, node->child2()); >- FPRTemporary result(this, op1); >- >- FPRReg reg1 = op1.fpr(); >- FPRReg reg2 = op2.fpr(); >- m_jit.divDouble(reg1, reg2, result.fpr()); >- >- doubleResult(result.fpr(), node); >- break; >- } >- >- default: >- RELEASE_ASSERT_NOT_REACHED(); >- break; >- } >+ compileArithDiv(node); > break; > } > >Index: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp (revision 150720) >+++ Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp (working copy) >@@ -2777,185 +2777,6 @@ void SpeculativeJIT::compileInstanceOf(N > #endif > } > >-void SpeculativeJIT::compileSoftModulo(Node* node) >-{ >- // In the fast path, the dividend value could be the final result >- // (in case of |dividend| < |divisor|), so we speculate it as strict int32. >- SpeculateStrictInt32Operand op1(this, node->child1()); >-#if CPU(X86) || CPU(X86_64) >- if (isInt32Constant(node->child2().node())) { >- int32_t divisor = valueOfInt32Constant(node->child2().node()); >- if (divisor) { >- GPRReg op1Gpr = op1.gpr(); >- >- GPRTemporary eax(this, X86Registers::eax); >- GPRTemporary edx(this, X86Registers::edx); >- GPRTemporary scratch(this); >- GPRReg scratchGPR = scratch.gpr(); >- >- GPRReg op1SaveGPR; >- if (op1Gpr == X86Registers::eax || op1Gpr == X86Registers::edx) { >- op1SaveGPR = allocate(); >- ASSERT(op1Gpr != op1SaveGPR); >- m_jit.move(op1Gpr, op1SaveGPR); >- } else >- op1SaveGPR = op1Gpr; >- ASSERT(op1SaveGPR != X86Registers::eax); >- ASSERT(op1SaveGPR != X86Registers::edx); >- >- m_jit.move(op1Gpr, eax.gpr()); >- m_jit.move(TrustedImm32(divisor), scratchGPR); >- if (divisor == -1) >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::Equal, eax.gpr(), TrustedImm32(-2147483647-1))); >- m_jit.assembler().cdq(); >- m_jit.assembler().idivl_r(scratchGPR); >- // Check that we're not about to create negative zero. >- // FIXME: if the node use doesn't care about neg zero, we can do this more easily. >- JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, op1SaveGPR, TrustedImm32(0)); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, edx.gpr())); >- numeratorPositive.link(&m_jit); >- >- if (op1SaveGPR != op1Gpr) >- unlock(op1SaveGPR); >- >- integerResult(edx.gpr(), node); >- return; >- } >- } >-#elif CPU(APPLE_ARMV7S) >- if (isInt32Constant(node->child2().node())) { >- int32_t divisor = valueOfInt32Constant(node->child2().node()); >- if (divisor > 0 && hasOneBitSet(divisor)) { // If power of 2 then just mask >- GPRReg dividendGPR = op1.gpr(); >- GPRTemporary result(this); >- GPRReg resultGPR = result.gpr(); >- >- m_jit.assembler().cmp(dividendGPR, ARMThumbImmediate::makeEncodedImm(0)); >- m_jit.assembler().it(ARMv7Assembler::ConditionLT, false); >- m_jit.assembler().neg(resultGPR, dividendGPR); >- m_jit.assembler().mov(resultGPR, dividendGPR); >- m_jit.and32(TrustedImm32(divisor - 1), resultGPR); >- m_jit.assembler().it(ARMv7Assembler::ConditionLT); >- m_jit.assembler().neg(resultGPR, resultGPR); >- >- integerResult(resultGPR, node); >- return; >- } >- } >-#endif >- >- SpeculateIntegerOperand op2(this, node->child2()); >-#if CPU(X86) || CPU(X86_64) >- GPRTemporary eax(this, X86Registers::eax); >- GPRTemporary edx(this, X86Registers::edx); >- GPRReg op1GPR = op1.gpr(); >- GPRReg op2GPR = op2.gpr(); >- >- GPRReg op2TempGPR; >- GPRReg temp; >- GPRReg op1SaveGPR; >- >- if (op2GPR == X86Registers::eax || op2GPR == X86Registers::edx) { >- op2TempGPR = allocate(); >- temp = op2TempGPR; >- } else { >- op2TempGPR = InvalidGPRReg; >- if (op1GPR == X86Registers::eax) >- temp = X86Registers::edx; >- else >- temp = X86Registers::eax; >- } >- >- if (op1GPR == X86Registers::eax || op1GPR == X86Registers::edx) { >- op1SaveGPR = allocate(); >- ASSERT(op1GPR != op1SaveGPR); >- m_jit.move(op1GPR, op1SaveGPR); >- } else >- op1SaveGPR = op1GPR; >- >- ASSERT(temp != op1GPR); >- ASSERT(temp != op2GPR); >- ASSERT(op1SaveGPR != X86Registers::eax); >- ASSERT(op1SaveGPR != X86Registers::edx); >- >- m_jit.add32(JITCompiler::TrustedImm32(1), op2GPR, temp); >- >- JITCompiler::Jump safeDenominator = m_jit.branch32(JITCompiler::Above, temp, JITCompiler::TrustedImm32(1)); >- >- JITCompiler::Jump done; >- // FIXME: if the node is not used as number then we can do this more easily. >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, op2GPR)); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::Equal, op1GPR, TrustedImm32(-2147483647-1))); >- >- safeDenominator.link(&m_jit); >- >- if (op2TempGPR != InvalidGPRReg) { >- m_jit.move(op2GPR, op2TempGPR); >- op2GPR = op2TempGPR; >- } >- >- m_jit.move(op1GPR, eax.gpr()); >- m_jit.assembler().cdq(); >- m_jit.assembler().idivl_r(op2GPR); >- >- if (op2TempGPR != InvalidGPRReg) >- unlock(op2TempGPR); >- >- // Check that we're not about to create negative zero. >- // FIXME: if the node use doesn't care about neg zero, we can do this more easily. >- JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, op1SaveGPR, TrustedImm32(0)); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, edx.gpr())); >- numeratorPositive.link(&m_jit); >- >- if (op1SaveGPR != op1GPR) >- unlock(op1SaveGPR); >- >- integerResult(edx.gpr(), node); >- >-#elif CPU(APPLE_ARMV7S) >- GPRTemporary temp(this); >- GPRTemporary quotientThenRemainder(this); >- GPRTemporary multiplyAnswer(this); >- GPRReg dividendGPR = op1.gpr(); >- GPRReg divisorGPR = op2.gpr(); >- GPRReg quotientThenRemainderGPR = quotientThenRemainder.gpr(); >- GPRReg multiplyAnswerGPR = multiplyAnswer.gpr(); >- >- m_jit.assembler().sdiv(quotientThenRemainderGPR, dividendGPR, divisorGPR); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchMul32(JITCompiler::Overflow, quotientThenRemainderGPR, divisorGPR, multiplyAnswerGPR)); >- m_jit.assembler().sub(quotientThenRemainderGPR, dividendGPR, multiplyAnswerGPR); >- >- // If the user cares about negative zero, then speculate that we're not about >- // to produce negative zero. >- if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >- // Check that we're not about to create negative zero. >- JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, dividendGPR, TrustedImm32(0)); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, quotientThenRemainderGPR)); >- numeratorPositive.link(&m_jit); >- } >- >- integerResult(quotientThenRemainderGPR, node); >-#else // not architecture that can do integer division >- // Do this the *safest* way possible: call out to a C function that will do the modulo, >- // and then attempt to convert back. >- GPRReg op1GPR = op1.gpr(); >- GPRReg op2GPR = op2.gpr(); >- >- FPRResult result(this); >- >- flushRegisters(); >- callOperation(operationFModOnInts, result.fpr(), op1GPR, op2GPR); >- >- FPRTemporary scratch(this); >- GPRTemporary intResult(this); >- JITCompiler::JumpList failureCases; >- m_jit.branchConvertDoubleToInt32(result.fpr(), intResult.gpr(), failureCases, scratch.fpr()); >- speculationCheck(Overflow, JSValueRegs(), 0, failureCases); >- >- integerResult(intResult.gpr(), node); >-#endif // CPU(X86) || CPU(X86_64) >-} >- > void SpeculativeJIT::compileAdd(Node* node) > { > switch (node->binaryUseKind()) { >@@ -3275,128 +3096,318 @@ void SpeculativeJIT::compileArithMul(Nod > } > } > >-#if CPU(X86) || CPU(X86_64) >-void SpeculativeJIT::compileIntegerArithDivForX86(Node* node) >+void SpeculativeJIT::compileArithDiv(Node* node) > { >- SpeculateIntegerOperand op1(this, node->child1()); >- SpeculateIntegerOperand op2(this, node->child2()); >- GPRTemporary eax(this, X86Registers::eax); >- GPRTemporary edx(this, X86Registers::edx); >- GPRReg op1GPR = op1.gpr(); >- GPRReg op2GPR = op2.gpr(); >- >- GPRReg op2TempGPR; >- GPRReg temp; >- if (op2GPR == X86Registers::eax || op2GPR == X86Registers::edx) { >- op2TempGPR = allocate(); >- temp = op2TempGPR; >- } else { >- op2TempGPR = InvalidGPRReg; >- if (op1GPR == X86Registers::eax) >- temp = X86Registers::edx; >- else >- temp = X86Registers::eax; >- } >+ switch (node->binaryUseKind()) { >+ case Int32Use: { >+#if CPU(X86) || CPU(X86_64) >+ SpeculateIntegerOperand op1(this, node->child1()); >+ SpeculateIntegerOperand op2(this, node->child2()); >+ GPRTemporary eax(this, X86Registers::eax); >+ GPRTemporary edx(this, X86Registers::edx); >+ GPRReg op1GPR = op1.gpr(); >+ GPRReg op2GPR = op2.gpr(); >+ >+ GPRReg op2TempGPR; >+ GPRReg temp; >+ if (op2GPR == X86Registers::eax || op2GPR == X86Registers::edx) { >+ op2TempGPR = allocate(); >+ temp = op2TempGPR; >+ } else { >+ op2TempGPR = InvalidGPRReg; >+ if (op1GPR == X86Registers::eax) >+ temp = X86Registers::edx; >+ else >+ temp = X86Registers::eax; >+ } > >- ASSERT(temp != op1GPR); >- ASSERT(temp != op2GPR); >+ ASSERT(temp != op1GPR); >+ ASSERT(temp != op2GPR); > >- m_jit.add32(JITCompiler::TrustedImm32(1), op2GPR, temp); >+ m_jit.add32(JITCompiler::TrustedImm32(1), op2GPR, temp); > >- JITCompiler::Jump safeDenominator = m_jit.branch32(JITCompiler::Above, temp, JITCompiler::TrustedImm32(1)); >+ JITCompiler::Jump safeDenominator = m_jit.branch32(JITCompiler::Above, temp, JITCompiler::TrustedImm32(1)); > >- JITCompiler::JumpList done; >- if (nodeUsedAsNumber(node->arithNodeFlags())) { >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, op2GPR)); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::Equal, op1GPR, TrustedImm32(-2147483647-1))); >- } else { >- // This is the case where we convert the result to an int after we're done, and we >- // already know that the denominator is either -1 or 0. So, if the denominator is >- // zero, then the result should be zero. If the denominator is not zero (i.e. it's >- // -1) and the numerator is -2^31 then the result should be -2^31. Otherwise we >- // are happy to fall through to a normal division, since we're just dividing >- // something by negative 1. >- >- JITCompiler::Jump notZero = m_jit.branchTest32(JITCompiler::NonZero, op2GPR); >- m_jit.move(TrustedImm32(0), eax.gpr()); >- done.append(m_jit.jump()); >- >- notZero.link(&m_jit); >- JITCompiler::Jump notNeg2ToThe31 = >- m_jit.branch32(JITCompiler::NotEqual, op1GPR, TrustedImm32(-2147483647-1)); >- m_jit.move(op1GPR, eax.gpr()); >- done.append(m_jit.jump()); >+ JITCompiler::JumpList done; >+ if (nodeUsedAsNumber(node->arithNodeFlags())) { >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, op2GPR)); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::Equal, op1GPR, TrustedImm32(-2147483647-1))); >+ } else { >+ // This is the case where we convert the result to an int after we're done, and we >+ // already know that the denominator is either -1 or 0. So, if the denominator is >+ // zero, then the result should be zero. If the denominator is not zero (i.e. it's >+ // -1) and the numerator is -2^31 then the result should be -2^31. Otherwise we >+ // are happy to fall through to a normal division, since we're just dividing >+ // something by negative 1. >+ >+ JITCompiler::Jump notZero = m_jit.branchTest32(JITCompiler::NonZero, op2GPR); >+ m_jit.move(TrustedImm32(0), eax.gpr()); >+ done.append(m_jit.jump()); >+ >+ notZero.link(&m_jit); >+ JITCompiler::Jump notNeg2ToThe31 = >+ m_jit.branch32(JITCompiler::NotEqual, op1GPR, TrustedImm32(-2147483647-1)); >+ m_jit.move(op1GPR, eax.gpr()); >+ done.append(m_jit.jump()); > >- notNeg2ToThe31.link(&m_jit); >- } >+ notNeg2ToThe31.link(&m_jit); >+ } > >- safeDenominator.link(&m_jit); >+ safeDenominator.link(&m_jit); > >- // If the user cares about negative zero, then speculate that we're not about >- // to produce negative zero. >- if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >- MacroAssembler::Jump numeratorNonZero = m_jit.branchTest32(MacroAssembler::NonZero, op1GPR); >- speculationCheck(NegativeZero, JSValueRegs(), 0, m_jit.branch32(MacroAssembler::LessThan, op2GPR, TrustedImm32(0))); >- numeratorNonZero.link(&m_jit); >- } >+ // If the user cares about negative zero, then speculate that we're not about >+ // to produce negative zero. >+ if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >+ MacroAssembler::Jump numeratorNonZero = m_jit.branchTest32(MacroAssembler::NonZero, op1GPR); >+ speculationCheck(NegativeZero, JSValueRegs(), 0, m_jit.branch32(MacroAssembler::LessThan, op2GPR, TrustedImm32(0))); >+ numeratorNonZero.link(&m_jit); >+ } > >- if (op2TempGPR != InvalidGPRReg) { >- m_jit.move(op2GPR, op2TempGPR); >- op2GPR = op2TempGPR; >- } >+ if (op2TempGPR != InvalidGPRReg) { >+ m_jit.move(op2GPR, op2TempGPR); >+ op2GPR = op2TempGPR; >+ } > >- m_jit.move(op1GPR, eax.gpr()); >- m_jit.assembler().cdq(); >- m_jit.assembler().idivl_r(op2GPR); >+ m_jit.move(op1GPR, eax.gpr()); >+ m_jit.assembler().cdq(); >+ m_jit.assembler().idivl_r(op2GPR); > >- if (op2TempGPR != InvalidGPRReg) >- unlock(op2TempGPR); >+ if (op2TempGPR != InvalidGPRReg) >+ unlock(op2TempGPR); > >- // Check that there was no remainder. If there had been, then we'd be obligated to >- // produce a double result instead. >- if (nodeUsedAsNumber(node->arithNodeFlags())) >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::NonZero, edx.gpr())); >- else >- done.link(&m_jit); >+ // Check that there was no remainder. If there had been, then we'd be obligated to >+ // produce a double result instead. >+ if (nodeUsedAsNumber(node->arithNodeFlags())) >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::NonZero, edx.gpr())); >+ else >+ done.link(&m_jit); > >- integerResult(eax.gpr(), node); >-} >+ integerResult(eax.gpr(), node); > #elif CPU(APPLE_ARMV7S) >-void SpeculativeJIT::compileIntegerArithDivForARMv7s(Node* node) >-{ >- SpeculateIntegerOperand op1(this, node->child1()); >- SpeculateIntegerOperand op2(this, node->child2()); >- GPRReg op1GPR = op1.gpr(); >- GPRReg op2GPR = op2.gpr(); >- GPRTemporary quotient(this); >- GPRTemporary multiplyAnswer(this); >+ SpeculateIntegerOperand op1(this, node->child1()); >+ SpeculateIntegerOperand op2(this, node->child2()); >+ GPRReg op1GPR = op1.gpr(); >+ GPRReg op2GPR = op2.gpr(); >+ GPRTemporary quotient(this); >+ GPRTemporary multiplyAnswer(this); > >- // If the user cares about negative zero, then speculate that we're not about >- // to produce negative zero. >- if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >- MacroAssembler::Jump numeratorNonZero = m_jit.branchTest32(MacroAssembler::NonZero, op1GPR); >- speculationCheck(NegativeZero, JSValueRegs(), 0, m_jit.branch32(MacroAssembler::LessThan, op2GPR, TrustedImm32(0))); >- numeratorNonZero.link(&m_jit); >- } >+ // If the user cares about negative zero, then speculate that we're not about >+ // to produce negative zero. >+ if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >+ MacroAssembler::Jump numeratorNonZero = m_jit.branchTest32(MacroAssembler::NonZero, op1GPR); >+ speculationCheck(NegativeZero, JSValueRegs(), 0, m_jit.branch32(MacroAssembler::LessThan, op2GPR, TrustedImm32(0))); >+ numeratorNonZero.link(&m_jit); >+ } > >- m_jit.assembler().sdiv(quotient.gpr(), op1GPR, op2GPR); >+ m_jit.assembler().sdiv(quotient.gpr(), op1GPR, op2GPR); > >- // Check that there was no remainder. If there had been, then we'd be obligated to >- // produce a double result instead. >- if (nodeUsedAsNumber(node->arithNodeFlags())) { >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchMul32(JITCompiler::Overflow, quotient.gpr(), op2GPR, multiplyAnswer.gpr())); >- speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::NotEqual, multiplyAnswer.gpr(), op1GPR)); >- } >+ // Check that there was no remainder. If there had been, then we'd be obligated to >+ // produce a double result instead. >+ if (nodeUsedAsNumber(node->arithNodeFlags())) { >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchMul32(JITCompiler::Overflow, quotient.gpr(), op2GPR, multiplyAnswer.gpr())); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::NotEqual, multiplyAnswer.gpr(), op1GPR)); >+ } > >- integerResult(quotient.gpr(), node); >-} >+ integerResult(quotient.gpr(), node); >+#else >+ RELEASE_ASSERT_NOT_REACHED(); > #endif >+ break; >+ } >+ >+ case NumberUse: { >+ SpeculateDoubleOperand op1(this, node->child1()); >+ SpeculateDoubleOperand op2(this, node->child2()); >+ FPRTemporary result(this, op1); >+ >+ FPRReg reg1 = op1.fpr(); >+ FPRReg reg2 = op2.fpr(); >+ m_jit.divDouble(reg1, reg2, result.fpr()); >+ >+ doubleResult(result.fpr(), node); >+ break; >+ } >+ >+ default: >+ RELEASE_ASSERT_NOT_REACHED(); >+ break; >+ } >+} > > void SpeculativeJIT::compileArithMod(Node* node) > { > switch (node->binaryUseKind()) { > case Int32Use: { >- compileSoftModulo(node); >+ // In the fast path, the dividend value could be the final result >+ // (in case of |dividend| < |divisor|), so we speculate it as strict int32. >+ SpeculateStrictInt32Operand op1(this, node->child1()); >+ >+ if (isInt32Constant(node->child2().node())) { >+ int32_t divisor = valueOfInt32Constant(node->child2().node()); >+ if (divisor > 0 && hasOneBitSet(divisor)) { >+ ASSERT(divisor != 1); >+ unsigned logarithm = WTF::fastLog2(divisor); >+ GPRReg dividendGPR = op1.gpr(); >+ GPRTemporary result(this); >+ GPRReg resultGPR = result.gpr(); >+ >+ // Don't ask. This is what LLVM generates. >+ m_jit.move(dividendGPR, resultGPR); >+ m_jit.rshift32(TrustedImm32(31), resultGPR); >+ m_jit.urshift32(TrustedImm32(32 - logarithm), resultGPR); >+ m_jit.add32(dividendGPR, resultGPR); >+ m_jit.and32(TrustedImm32(-divisor), resultGPR); >+ m_jit.neg32(resultGPR); >+ m_jit.add32(dividendGPR, resultGPR); >+ >+ if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >+ // Check that we're not about to create negative zero. >+ JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, dividendGPR, TrustedImm32(0)); >+ speculationCheck(NegativeZero, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, resultGPR)); >+ numeratorPositive.link(&m_jit); >+ } >+ >+ integerResult(resultGPR, node); >+ return; >+ } >+ } >+ >+#if CPU(X86) || CPU(X86_64) >+ if (isInt32Constant(node->child2().node())) { >+ int32_t divisor = valueOfInt32Constant(node->child2().node()); >+ if (divisor) { >+ GPRReg op1Gpr = op1.gpr(); >+ >+ GPRTemporary eax(this, X86Registers::eax); >+ GPRTemporary edx(this, X86Registers::edx); >+ GPRTemporary scratch(this); >+ GPRReg scratchGPR = scratch.gpr(); >+ >+ GPRReg op1SaveGPR; >+ if (op1Gpr == X86Registers::eax || op1Gpr == X86Registers::edx) { >+ op1SaveGPR = allocate(); >+ ASSERT(op1Gpr != op1SaveGPR); >+ m_jit.move(op1Gpr, op1SaveGPR); >+ } else >+ op1SaveGPR = op1Gpr; >+ ASSERT(op1SaveGPR != X86Registers::eax); >+ ASSERT(op1SaveGPR != X86Registers::edx); >+ >+ m_jit.move(op1Gpr, eax.gpr()); >+ m_jit.move(TrustedImm32(divisor), scratchGPR); >+ if (divisor == -1) >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::Equal, eax.gpr(), TrustedImm32(-2147483647-1))); >+ m_jit.assembler().cdq(); >+ m_jit.assembler().idivl_r(scratchGPR); >+ // Check that we're not about to create negative zero. >+ // FIXME: if the node use doesn't care about neg zero, we can do this more easily. >+ JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, op1SaveGPR, TrustedImm32(0)); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, edx.gpr())); >+ numeratorPositive.link(&m_jit); >+ >+ if (op1SaveGPR != op1Gpr) >+ unlock(op1SaveGPR); >+ >+ integerResult(edx.gpr(), node); >+ return; >+ } >+ } >+#endif >+ >+ SpeculateIntegerOperand op2(this, node->child2()); >+#if CPU(X86) || CPU(X86_64) >+ GPRTemporary eax(this, X86Registers::eax); >+ GPRTemporary edx(this, X86Registers::edx); >+ GPRReg op1GPR = op1.gpr(); >+ GPRReg op2GPR = op2.gpr(); >+ >+ GPRReg op2TempGPR; >+ GPRReg temp; >+ GPRReg op1SaveGPR; >+ >+ if (op2GPR == X86Registers::eax || op2GPR == X86Registers::edx) { >+ op2TempGPR = allocate(); >+ temp = op2TempGPR; >+ } else { >+ op2TempGPR = InvalidGPRReg; >+ if (op1GPR == X86Registers::eax) >+ temp = X86Registers::edx; >+ else >+ temp = X86Registers::eax; >+ } >+ >+ if (op1GPR == X86Registers::eax || op1GPR == X86Registers::edx) { >+ op1SaveGPR = allocate(); >+ ASSERT(op1GPR != op1SaveGPR); >+ m_jit.move(op1GPR, op1SaveGPR); >+ } else >+ op1SaveGPR = op1GPR; >+ >+ ASSERT(temp != op1GPR); >+ ASSERT(temp != op2GPR); >+ ASSERT(op1SaveGPR != X86Registers::eax); >+ ASSERT(op1SaveGPR != X86Registers::edx); >+ >+ m_jit.add32(JITCompiler::TrustedImm32(1), op2GPR, temp); >+ >+ JITCompiler::Jump safeDenominator = m_jit.branch32(JITCompiler::Above, temp, JITCompiler::TrustedImm32(1)); >+ >+ JITCompiler::Jump done; >+ // FIXME: if the node is not used as number then we can do this more easily. >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, op2GPR)); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branch32(JITCompiler::Equal, op1GPR, TrustedImm32(-2147483647-1))); >+ >+ safeDenominator.link(&m_jit); >+ >+ if (op2TempGPR != InvalidGPRReg) { >+ m_jit.move(op2GPR, op2TempGPR); >+ op2GPR = op2TempGPR; >+ } >+ >+ m_jit.move(op1GPR, eax.gpr()); >+ m_jit.assembler().cdq(); >+ m_jit.assembler().idivl_r(op2GPR); >+ >+ if (op2TempGPR != InvalidGPRReg) >+ unlock(op2TempGPR); >+ >+ // Check that we're not about to create negative zero. >+ // FIXME: if the node use doesn't care about neg zero, we can do this more easily. >+ JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, op1SaveGPR, TrustedImm32(0)); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, edx.gpr())); >+ numeratorPositive.link(&m_jit); >+ >+ if (op1SaveGPR != op1GPR) >+ unlock(op1SaveGPR); >+ >+ integerResult(edx.gpr(), node); >+ >+#elif CPU(APPLE_ARMV7S) >+ GPRTemporary temp(this); >+ GPRTemporary quotientThenRemainder(this); >+ GPRTemporary multiplyAnswer(this); >+ GPRReg dividendGPR = op1.gpr(); >+ GPRReg divisorGPR = op2.gpr(); >+ GPRReg quotientThenRemainderGPR = quotientThenRemainder.gpr(); >+ GPRReg multiplyAnswerGPR = multiplyAnswer.gpr(); >+ >+ m_jit.assembler().sdiv(quotientThenRemainderGPR, dividendGPR, divisorGPR); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchMul32(JITCompiler::Overflow, quotientThenRemainderGPR, divisorGPR, multiplyAnswerGPR)); >+ m_jit.assembler().sub(quotientThenRemainderGPR, dividendGPR, multiplyAnswerGPR); >+ >+ // If the user cares about negative zero, then speculate that we're not about >+ // to produce negative zero. >+ if (!nodeCanIgnoreNegativeZero(node->arithNodeFlags())) { >+ // Check that we're not about to create negative zero. >+ JITCompiler::Jump numeratorPositive = m_jit.branch32(JITCompiler::GreaterThanOrEqual, dividendGPR, TrustedImm32(0)); >+ speculationCheck(Overflow, JSValueRegs(), 0, m_jit.branchTest32(JITCompiler::Zero, quotientThenRemainderGPR)); >+ numeratorPositive.link(&m_jit); >+ } >+ >+ integerResult(quotientThenRemainderGPR, node); >+#else // not architecture that can do integer division >+ RELEASE_ASSERT_NOT_REACHED(); >+#endif > return; > } > >Index: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h >=================================================================== >--- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h (revision 150720) >+++ Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h (working copy) >@@ -2138,13 +2138,8 @@ public: > void compileArithSub(Node*); > void compileArithNegate(Node*); > void compileArithMul(Node*); >-#if CPU(X86) || CPU(X86_64) >- void compileIntegerArithDivForX86(Node*); >-#elif CPU(APPLE_ARMV7S) >- void compileIntegerArithDivForARMv7s(Node*); >-#endif >+ void compileArithDiv(Node*); > void compileArithMod(Node*); >- void compileSoftModulo(Node*); > void compileGetIndexedPropertyStorage(Node*); > void compileGetByValOnIntTypedArray(const TypedArrayDescriptor&, Node*, size_t elementSize, TypedArraySignedness); > void compilePutByValForIntTypedArray(const TypedArrayDescriptor&, GPRReg base, GPRReg property, Node*, size_t elementSize, TypedArraySignedness, TypedArrayRounding = TruncateRounding); >Index: LayoutTests/ChangeLog >=================================================================== >--- LayoutTests/ChangeLog (revision 150720) >+++ LayoutTests/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2013-05-26 Filip Pizlo <fpizlo@apple.com> >+ >+ fourthTier: clean up ArithDiv/ArithMod in the DFG >+ https://bugs.webkit.org/show_bug.cgi?id=116793 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * fast/js/script-tests/integer-division-neg2tothe32-by-neg1.js: >+ (myModBy2): >+ (myModBy1073741824): >+ > 2013-05-26 Filip Pizlo <fpizlo@apple.com> > > Merge trunk r150694. >Index: LayoutTests/fast/js/integer-division-neg2tothe32-by-neg1-expected.txt >=================================================================== >--- LayoutTests/fast/js/integer-division-neg2tothe32-by-neg1-expected.txt (revision 150720) >+++ LayoutTests/fast/js/integer-division-neg2tothe32-by-neg1-expected.txt (working copy) >@@ -1,4 +1,4 @@ >-Tests that -2^31/-1 does the right thing. >+Tests that -2^31/-1 (and a bunch of other corner cases) does the right thing. > > On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > >@@ -9,6 +9,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -24,6 +30,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -39,6 +51,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -54,6 +72,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -69,6 +93,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -84,6 +114,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -99,6 +135,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -114,6 +156,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -129,6 +177,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -144,6 +198,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -159,6 +219,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -174,6 +240,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -189,6 +261,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -204,6 +282,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -219,6 +303,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -234,6 +324,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -249,6 +345,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -264,6 +366,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -279,6 +387,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -294,6 +408,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -309,6 +429,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -324,6 +450,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -339,6 +471,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -354,6 +492,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -369,6 +513,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -384,6 +534,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -399,6 +555,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -414,6 +576,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -429,6 +597,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -444,6 +618,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -459,6 +639,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -474,6 +660,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -489,6 +681,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -504,6 +702,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -519,6 +723,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -534,6 +744,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -549,6 +765,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -564,6 +786,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -579,6 +807,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -594,6 +828,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -609,6 +849,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -624,6 +870,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -639,6 +891,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -654,6 +912,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -669,6 +933,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -684,6 +954,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -699,6 +975,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -714,6 +996,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -729,6 +1017,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -744,6 +1038,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -759,6 +1059,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -774,6 +1080,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -789,6 +1101,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -804,6 +1122,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -819,6 +1143,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -834,6 +1164,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -849,6 +1185,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -864,6 +1206,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -879,6 +1227,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -894,6 +1248,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -909,6 +1269,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -924,6 +1290,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -939,6 +1311,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -954,6 +1332,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -969,6 +1353,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -984,6 +1374,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -999,6 +1395,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1014,6 +1416,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1029,6 +1437,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1044,6 +1458,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1059,6 +1479,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1074,6 +1500,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1089,6 +1521,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1104,6 +1542,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1119,6 +1563,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1134,6 +1584,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1149,6 +1605,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1164,6 +1626,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1179,6 +1647,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1194,6 +1668,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1209,6 +1689,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1224,6 +1710,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1239,6 +1731,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1254,6 +1752,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1269,6 +1773,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1284,6 +1794,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1299,6 +1815,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1314,6 +1836,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1329,6 +1857,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1344,6 +1878,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1359,6 +1899,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1374,6 +1920,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1389,6 +1941,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1404,6 +1962,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1419,6 +1983,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1434,6 +2004,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1449,6 +2025,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1464,6 +2046,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1479,6 +2067,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1494,6 +2088,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1509,6 +2109,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2 > PASS myOtherDivByNeg1(w) is -4 >@@ -1524,6 +2130,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1539,6 +2151,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1554,6 +2172,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1569,6 +2193,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1584,6 +2214,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1599,6 +2235,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1614,6 +2256,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1629,6 +2277,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1644,6 +2298,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1659,6 +2319,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1674,6 +2340,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1689,6 +2361,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1704,6 +2382,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1719,6 +2403,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1734,6 +2424,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1749,6 +2445,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1764,6 +2466,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1779,6 +2487,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1794,6 +2508,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1809,6 +2529,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1824,6 +2550,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1839,6 +2571,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1854,6 +2592,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1869,6 +2613,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1884,6 +2634,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1899,6 +2655,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1914,6 +2676,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1929,6 +2697,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1944,6 +2718,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1959,6 +2739,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1974,6 +2760,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -1989,6 +2781,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2004,6 +2802,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2019,6 +2823,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2034,6 +2844,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2049,6 +2865,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2064,6 +2886,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2079,6 +2907,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2094,6 +2928,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2109,6 +2949,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2124,6 +2970,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2139,6 +2991,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2154,6 +3012,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2169,6 +3033,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2184,6 +3054,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2199,6 +3075,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2214,6 +3096,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2229,6 +3117,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2244,6 +3138,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2259,6 +3159,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2274,6 +3180,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2289,6 +3201,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2304,6 +3222,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2319,6 +3243,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2334,6 +3264,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2349,6 +3285,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2364,6 +3306,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2379,6 +3327,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2394,6 +3348,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2409,6 +3369,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2424,6 +3390,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2439,6 +3411,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2454,6 +3432,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2469,6 +3453,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2484,6 +3474,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2499,6 +3495,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2514,6 +3516,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2529,6 +3537,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2544,6 +3558,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2559,6 +3579,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2574,6 +3600,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2589,6 +3621,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2604,6 +3642,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2619,6 +3663,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2634,6 +3684,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2649,6 +3705,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2664,6 +3726,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2679,6 +3747,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2694,6 +3768,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2709,6 +3789,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2724,6 +3810,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2739,6 +3831,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2754,6 +3852,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2769,6 +3873,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2784,6 +3894,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2799,6 +3915,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2814,6 +3936,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2829,6 +3957,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2844,6 +3978,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2859,6 +3999,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2874,6 +4020,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2889,6 +4041,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2904,6 +4062,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2919,6 +4083,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2934,6 +4104,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2949,6 +4125,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2964,6 +4146,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2979,6 +4167,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >@@ -2994,6 +4188,12 @@ PASS myDivNeg2ToThe31(y) is 2147483648 > PASS myMod(x, y) is -0 > PASS myMod(x, z) is -2 > PASS myModByNeg1(x) is -0 >+PASS myModBy2(x) is -0 >+PASS myModBy1073741824(x) is -0 >+PASS myModBy2(y) is -1 >+PASS myModBy1073741824(y) is -1 >+PASS myModBy2(z) is 1 >+PASS myModBy1073741824(z) is 3 > PASS myModNeg2ToThe31(y) is -0 > PASS myOtherDiv(w, v) is 2147483648 > PASS myOtherDivByNeg1(w) is 2147483648 >Index: LayoutTests/fast/js/script-tests/integer-division-neg2tothe32-by-neg1.js >=================================================================== >--- LayoutTests/fast/js/script-tests/integer-division-neg2tothe32-by-neg1.js (revision 150720) >+++ LayoutTests/fast/js/script-tests/integer-division-neg2tothe32-by-neg1.js (working copy) >@@ -1,5 +1,5 @@ > description( >-"Tests that -2^31/-1 does the right thing." >+"Tests that -2^31/-1 (and a bunch of other corner cases) does the right thing." > ); > > function myDiv(a, b) { >@@ -22,6 +22,14 @@ function myModByNeg1(a) { > return a % -1; > } > >+function myModBy2(a) { >+ return a % 2; >+} >+ >+function myModBy1073741824(a) { >+ return a % 1073741824; >+} >+ > function myModNeg2ToThe31(b) { > return -2147483648 % b; > } >@@ -68,6 +76,12 @@ for (var i = 0; i < 200; ++i) { > shouldBe("myMod(x, y)", "-0"); > shouldBe("myMod(x, z)", "-2"); > shouldBe("myModByNeg1(x)", "-0"); >+ shouldBe("myModBy2(x)", "-0"); >+ shouldBe("myModBy1073741824(x)", "-0"); >+ shouldBe("myModBy2(y)", "-1"); >+ shouldBe("myModBy1073741824(y)", "-1"); >+ shouldBe("myModBy2(z)", "1"); >+ shouldBe("myModBy1073741824(z)", "3"); > shouldBe("myModNeg2ToThe31(y)", "-0"); > if (i > 100) { > w = x;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
mhahnenberg
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 116793
:
202927
| 202945