/art/test/2252-rem-optimization-dividend-divisor/ |
D | Android.bp | 3 // Build rules for ART run-test `2252-rem-optimization-dividend-divisor`. 16 name: "art-run-test-2252-rem-optimization-dividend-divisor", 21 ":art-run-test-2252-rem-optimization-dividend-divisor-expected-stdout", 22 ":art-run-test-2252-rem-optimization-dividend-divisor-expected-stderr", 28 name: "art-run-test-2252-rem-optimization-dividend-divisor-expected-stdout", 29 out: ["art-run-test-2252-rem-optimization-dividend-divisor-expected-stdout.txt"], 36 name: "art-run-test-2252-rem-optimization-dividend-divisor-expected-stderr", 37 out: ["art-run-test-2252-rem-optimization-dividend-divisor-expected-stderr.txt"],
|
D | info.txt | 2 if the dividend equals the divisor.
|
/art/compiler/optimizing/ |
D | code_generator_utils.cc | 25 void CalculateMagicAndShiftForDivRem(int64_t divisor, bool is_long, in CalculateMagicAndShiftForDivRem() argument 28 DCHECK_NE(divisor, 0); in CalculateMagicAndShiftForDivRem() 58 uint64_t abs_d = (divisor >= 0) ? divisor : -divisor; in CalculateMagicAndShiftForDivRem() 59 uint64_t sign_bit = is_long ? static_cast<uint64_t>(divisor) >> 63 : in CalculateMagicAndShiftForDivRem() 60 static_cast<uint32_t>(divisor) >> 31; in CalculateMagicAndShiftForDivRem() 90 *magic = (divisor > 0) ? (quotient2 + 1) : (-quotient2 - 1); in CalculateMagicAndShiftForDivRem()
|
D | code_generator_utils.h | 32 void CalculateMagicAndShiftForDivRem(int64_t divisor, bool is_long, int64_t* magic, int* shift);
|
D | constant_folding.cc | 464 HInstruction* divisor = inst->InputAt(1); in FoldDivideUnsignedIntrinsic() local 465 if (!divisor->IsConstant()) { in FoldDivideUnsignedIntrinsic() 469 divisor->IsIntConstant()); in FoldDivideUnsignedIntrinsic() 471 divisor->IsLongConstant()); in FoldDivideUnsignedIntrinsic() 473 if ((is_int_intrinsic && divisor->AsIntConstant()->IsArithmeticZero()) || in FoldDivideUnsignedIntrinsic() 474 (!is_int_intrinsic && divisor->AsLongConstant()->IsArithmeticZero())) { in FoldDivideUnsignedIntrinsic() 494 dchecked_integral_cast<uint32_t>(divisor->AsIntConstant()->GetValueAsUint64()); in FoldDivideUnsignedIntrinsic() 498 uint64_t divisor_val = divisor->AsLongConstant()->GetValueAsUint64(); in FoldDivideUnsignedIntrinsic()
|
D | instruction_simplifier.cc | 1872 static constexpr bool CanDivideByReciprocalMultiplyFloat(int32_t divisor) { in CanDivideByReciprocalMultiplyFloat() argument 1874 return ((divisor & 0x7fffff) == 0); in CanDivideByReciprocalMultiplyFloat() 1878 static constexpr bool CanDivideByReciprocalMultiplyDouble(int64_t divisor) { in CanDivideByReciprocalMultiplyDouble() argument 1880 return ((divisor & ((UINT64_C(1) << 52) - 1)) == 0); in CanDivideByReciprocalMultiplyDouble() 1942 HInstruction* divisor, in FindDivWithInputsInBasicBlock() argument 1949 user->InputAt(1) == divisor) { in FindDivWithInputsInBasicBlock() 1972 HInstruction* divisor = rem->GetRight(); in TryToReuseDiv() local 1974 if (divisor->IsConstant()) { in TryToReuseDiv() 1984 HDiv* quotient = FindDivWithInputsInBasicBlock(dividend, divisor, basic_block); in TryToReuseDiv() 1993 HInstruction* mul = new (allocator) HMul(type, quotient, divisor); in TryToReuseDiv()
|
D | code_generator_arm64.cc | 3404 static inline bool NeedToAddDividend(int64_t magic_number, int64_t divisor) { in NeedToAddDividend() argument 3405 return divisor > 0 && magic_number < 0; in NeedToAddDividend() 3410 static inline bool NeedToSubDividend(int64_t magic_number, int64_t divisor) { in NeedToSubDividend() argument 3411 return divisor < 0 && magic_number > 0; in NeedToSubDividend() 3434 int64_t divisor, in GenerateResultRemWithAnyConstant() argument 3437 __ Mov(temp_imm, divisor); in GenerateResultRemWithAnyConstant() 3614 int64_t divisor) { in GenerateDivRemWithAnyConstant() argument 3617 if (divisor > 0 && HasNonNegativeInputAt(instruction, 0)) { in GenerateDivRemWithAnyConstant() 3653 Register divisor = InputRegisterAt(instruction, 1); in GenerateIntDiv() local 3654 __ Sdiv(out, dividend, divisor); in GenerateIntDiv() [all …]
|
D | code_generator_arm64.h | 409 int64_t divisor, 415 void GenerateDivRemWithAnyConstant(HBinaryOperation* instruction, int64_t divisor);
|
D | intrinsics_riscv64.cc | 605 XRegister divisor = locations->InAt(1).AsRegister<XRegister>(); in GenerateDivRemUnsigned() local 612 __ Beqz(divisor, slow_path->GetEntryLabel()); in GenerateDivRemUnsigned() 616 __ Divuw(out, dividend, divisor); in GenerateDivRemUnsigned() 618 __ Divu(out, dividend, divisor); in GenerateDivRemUnsigned() 622 __ Remuw(out, dividend, divisor); in GenerateDivRemUnsigned() 624 __ Remu(out, dividend, divisor); in GenerateDivRemUnsigned()
|
D | code_generator_riscv64.cc | 1557 XRegister divisor = second.AsRegister<XRegister>(); in GenerateDivRemIntegral() local 1560 __ Divw(out, dividend, divisor); in GenerateDivRemIntegral() 1562 __ Div(out, dividend, divisor); in GenerateDivRemIntegral() 1566 __ Remw(out, dividend, divisor); in GenerateDivRemIntegral() 1568 __ Rem(out, dividend, divisor); in GenerateDivRemIntegral() 3680 int64_t divisor = codegen_->GetInt64ValueOf(value.GetConstant()->AsConstant()); in VisitDivZeroCheck() local 3681 if (divisor == 0) { in VisitDivZeroCheck()
|
D | code_generator_arm_vixl.cc | 4706 HInstruction* divisor = div->InputAt(1); in VisitDiv() local 4707 if (divisor->IsConstant()) { in VisitDiv() 4709 locations->SetInAt(1, Location::ConstantLocation(divisor)); in VisitDiv() 4710 int32_t value = Int32ConstantFrom(divisor); in VisitDiv() 4824 HInstruction* divisor = rem->InputAt(1); in VisitRem() local 4825 if (divisor->IsConstant()) { in VisitRem() 4827 locations->SetInAt(1, Location::ConstantLocation(divisor)); in VisitRem() 4828 int32_t value = Int32ConstantFrom(divisor); in VisitRem()
|
D | intrinsics_arm_vixl.cc | 2553 vixl32::Register divisor = RegisterFrom(locations->InAt(1)); in VisitIntegerDivideUnsigned() local 2560 __ CompareAndBranchIfZero(divisor, slow_path->GetEntryLabel()); in VisitIntegerDivideUnsigned() 2562 __ Udiv(out, dividend, divisor); in VisitIntegerDivideUnsigned()
|
D | intrinsics_arm64.cc | 4244 Register divisor = RegisterFrom(locations->InAt(1), type); in GenerateDivideUnsigned() local 4251 __ Cbz(divisor, slow_path->GetEntryLabel()); in GenerateDivideUnsigned() 4253 __ Udiv(out, dividend, divisor); in GenerateDivideUnsigned()
|
/art/runtime/interpreter/ |
D | interpreter_common.h | 349 int32_t dividend, int32_t divisor) in DoIntDivide() argument 352 if (UNLIKELY(divisor == 0)) { in DoIntDivide() 356 if (UNLIKELY(dividend == kMinInt && divisor == -1)) { in DoIntDivide() 359 shadow_frame.SetVReg(result_reg, dividend / divisor); in DoIntDivide() 367 int32_t dividend, int32_t divisor) in DoIntRemainder() argument 370 if (UNLIKELY(divisor == 0)) { in DoIntRemainder() 374 if (UNLIKELY(dividend == kMinInt && divisor == -1)) { in DoIntRemainder() 377 shadow_frame.SetVReg(result_reg, dividend % divisor); in DoIntRemainder() 387 int64_t divisor) in DoLongDivide() argument 390 if (UNLIKELY(divisor == 0)) { in DoLongDivide() [all …]
|
/art/test/2260-checker-inline-unimplemented-intrinsics/src/ |
D | Main.java | 46 private static long $noinline$divideUnsignedLong(long dividend, long divisor) { in $noinline$divideUnsignedLong() argument 47 return Long.divideUnsigned(dividend, divisor); in $noinline$divideUnsignedLong()
|
/art/libartbase/base/ |
D | time_utils.cc | 98 uint64_t divisor = GetNsToTimeUnitDivisor(time_unit); in FormatDuration() local 113 const uint64_t whole_part = nano_duration / divisor; in FormatDuration() 114 uint64_t fractional_part = nano_duration % divisor; in FormatDuration() 124 while (avail_digits > 1 && fractional_part * multiplier < divisor) { in FormatDuration()
|
/art/test/435-try-finally-without-catch/ |
D | info.txt | 8 divisor is non-null, as it wouldn't be used. However, dx is not 9 that clever regarding exception handling: if the divisor is known to
|
/art/runtime/base/ |
D | timing_logger.cc | 205 uint64_t divisor = GetNsToTimeUnitDivisor(tu); in Dump() local 206 uint64_t mod_fraction = divisor >= 1000 ? divisor / 1000 : 1; in Dump()
|
/art/ |
D | TEST_MAPPING | 461 "name": "art-run-test-2252-rem-optimization-dividend-divisor" 1889 "name": "art-run-test-2252-rem-optimization-dividend-divisor[com.google.android.art.apex]" 3335 "name": "art-run-test-2252-rem-optimization-dividend-divisor" 4771 "name": "art-run-test-2252-rem-optimization-dividend-divisor"
|