diff --git a/ext/standard/JitPowIntegerEmitHigh.php b/ext/standard/JitPowIntegerEmitHigh.php index f55e7bfb79..ef4947bdb1 100644 --- a/ext/standard/JitPowIntegerEmitHigh.php +++ b/ext/standard/JitPowIntegerEmitHigh.php @@ -15,7 +15,7 @@ /** * High compile-time exponent integer {@code pow}/{@code **} chained-smul - * emit (ninetysecond … ninetythird) (#36387 / #36386). + * emit (ninetysecond … ninetyfourth) (#36387 / #36386). * * Extracted from {@see JitPowIntegerEmit} so gen-0 spine gets another TU * instead of one ~33k-line monolith; 80–91 live in @@ -43,6 +43,7 @@ public static function tryEmitIntegerPowViaMathFpow( static $high = [ 'ninetysecond' => true, 'ninetythird' => true, + 'ninetyfourth' => true, ]; if (!isset($high[$expFold])) { return false; @@ -6144,7 +6145,3178 @@ public static function tryEmitIntegerPowViaMathFpow( return true; } +if ('ninetyfourth' === $expFold) { + // n^91 = ninetieth*n; overflow arms +1 ×nF vs **90. + // tenth=fifth*fifth, twentieth=tenth*tenth, + // fortieth=twentieth*twentieth, fortysecond=fortieth*sq, fortyfourth=fortysecond*sq, + // fortysixth=fortyfourth*sq, then fortysixth*sq*sq*n… (sixtyseventh×n). + // Overflow arms finish in float with one extra ×nF vs **91. + $baseL = JitLongArg::lower($context, $base, 'pow() base'); + $i64 = $context->getTypeFromString('int64'); + $f64 = $context->getTypeFromString('double'); + $n = $context->builder->intCast($baseL, $i64); + $sqVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $n, + $n + ); + $ov1 = JitLongArithOverflow::loadOverflowFlagI1($context, $sqVar->longArithOverflowFlag); + if (null === $ov1 || null === $sqVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sq)'); + } + $sqLong = JITVariable::KIND_VARIABLE === $sqVar->kind + ? $context->builder->load($sqVar->value) + : $sqVar->value; + $ov1Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sq_ov'); + $ok1Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sq_ok'); + $doneBlock = BasicBlockHelper::append($context, 'pow_ninetyfourth_done'); + $context->builder->branchIf($ov1, $ov1Block, $ok1Block); + + $context->builder->positionAtEnd($ov1Block); + $sqF = $context->builder->load($sqVar->longArithOverflowDoubleSlot); + $sq2F = $context->builder->fmul($sqF, $sqF); + $sq4F = $context->builder->fmul($sq2F, $sq2F); + $sq8F = $context->builder->fmul($sq4F, $sq4F); + $twentiethF = $context->builder->fmul($sq8F, $sq2F); + $fortiethF = $context->builder->fmul($twentiethF, $twentiethF); + $fortysecondF = $context->builder->fmul($fortiethF, $sqF); + $fortyfourthF = $context->builder->fmul($fortysecondF, $sqF); + $ninetyfourthFSq = $context->builder->fmul($fortyfourthF, $sqF); + $ninetyfourthFEighth = $context->builder->fmul($ninetyfourthFSq, $sqF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthFEighth, $sqF); + $nF = $context->builder->siToFp($n, $f64); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $ninetyfourthF = $context->builder->fmul($ninetyfourthF, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok1Block); + $cuVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sqLong, + $n + ); + $ov2 = JitLongArithOverflow::loadOverflowFlagI1($context, $cuVar->longArithOverflowFlag); + if (null === $ov2 || null === $cuVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (cu)'); + } + $cuLong = JITVariable::KIND_VARIABLE === $cuVar->kind + ? $context->builder->load($cuVar->value) + : $cuVar->value; + $ov2Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_cu_ov'); + $ok2Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_cu_ok'); + $context->builder->branchIf($ov2, $ov2Block, $ok2Block); + + $context->builder->positionAtEnd($ov2Block); + $cuF = $context->builder->load($cuVar->longArithOverflowDoubleSlot); + $sqF2 = $context->builder->siToFp($sqLong, $f64); + $fifthF = $context->builder->fmul($cuF, $sqF2); + $tenthF2 = $context->builder->fmul($fifthF, $fifthF); + $twentiethF2 = $context->builder->fmul($tenthF2, $tenthF2); + $fortiethF2 = $context->builder->fmul($twentiethF2, $twentiethF2); + $fortysecondF2 = $context->builder->fmul($fortiethF2, $sqF2); + $fortyfourthF2 = $context->builder->fmul($fortysecondF2, $sqF2); + $ninetyfourthF2Sq = $context->builder->fmul($fortyfourthF2, $sqF2); + $ninetyfourthF2Eighth = $context->builder->fmul($ninetyfourthF2Sq, $sqF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2Eighth, $sqF2); + $nF2 = $context->builder->siToFp($n, $f64); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $ninetyfourthF2 = $context->builder->fmul($ninetyfourthF2, $nF2); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF2 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok2Block); + $fifthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $cuLong, + $sqLong + ); + $ov3 = JitLongArithOverflow::loadOverflowFlagI1($context, $fifthVar->longArithOverflowFlag); + if (null === $ov3 || null === $fifthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fifth)'); + } + $fifthLong = JITVariable::KIND_VARIABLE === $fifthVar->kind + ? $context->builder->load($fifthVar->value) + : $fifthVar->value; + $ov3Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fifth_ov'); + $ok3Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fifth_ok'); + $context->builder->branchIf($ov3, $ov3Block, $ok3Block); + + $context->builder->positionAtEnd($ov3Block); + $fifthF2 = $context->builder->load($fifthVar->longArithOverflowDoubleSlot); + $tenthF3 = $context->builder->fmul($fifthF2, $fifthF2); + $twentiethF3 = $context->builder->fmul($tenthF3, $tenthF3); + $fortiethF3 = $context->builder->fmul($twentiethF3, $twentiethF3); + $sqF3 = $context->builder->siToFp($sqLong, $f64); + $fortysecondF3 = $context->builder->fmul($fortiethF3, $sqF3); + $fortyfourthF3 = $context->builder->fmul($fortysecondF3, $sqF3); + $ninetyfourthF3Sq = $context->builder->fmul($fortyfourthF3, $sqF3); + $ninetyfourthF3Eighth = $context->builder->fmul($ninetyfourthF3Sq, $sqF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3Eighth, $sqF3); + $nF3 = $context->builder->siToFp($n, $f64); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $ninetyfourthF3 = $context->builder->fmul($ninetyfourthF3, $nF3); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF3 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok3Block); + $tenthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fifthLong, + $fifthLong + ); + $ov4 = JitLongArithOverflow::loadOverflowFlagI1($context, $tenthVar->longArithOverflowFlag); + if (null === $ov4 || null === $tenthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (tenth)'); + } + $tenthLong = JITVariable::KIND_VARIABLE === $tenthVar->kind + ? $context->builder->load($tenthVar->value) + : $tenthVar->value; + $ov4Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_tenth_ov'); + $ok4Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_tenth_ok'); + $context->builder->branchIf($ov4, $ov4Block, $ok4Block); + + $context->builder->positionAtEnd($ov4Block); + $tenthF4 = $context->builder->load($tenthVar->longArithOverflowDoubleSlot); + $twentiethF4 = $context->builder->fmul($tenthF4, $tenthF4); + $fortiethF4 = $context->builder->fmul($twentiethF4, $twentiethF4); + $sqF4 = $context->builder->siToFp($sqLong, $f64); + $fortysecondF4 = $context->builder->fmul($fortiethF4, $sqF4); + $fortyfourthF4 = $context->builder->fmul($fortysecondF4, $sqF4); + $ninetyfourthF4Sq = $context->builder->fmul($fortyfourthF4, $sqF4); + $ninetyfourthF4Eighth = $context->builder->fmul($ninetyfourthF4Sq, $sqF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4Eighth, $sqF4); + $nF4 = $context->builder->siToFp($n, $f64); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $ninetyfourthF4 = $context->builder->fmul($ninetyfourthF4, $nF4); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF4 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok4Block); + $twentiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $tenthLong, + $tenthLong + ); + $ov5 = JitLongArithOverflow::loadOverflowFlagI1($context, $twentiethVar->longArithOverflowFlag); + if (null === $ov5 || null === $twentiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (twentieth)'); + } + $twentiethLong = JITVariable::KIND_VARIABLE === $twentiethVar->kind + ? $context->builder->load($twentiethVar->value) + : $twentiethVar->value; + $ov5Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_twentieth_ov'); + $ok5Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_twentieth_ok'); + $context->builder->branchIf($ov5, $ov5Block, $ok5Block); + + $context->builder->positionAtEnd($ov5Block); + $twentiethF5 = $context->builder->load($twentiethVar->longArithOverflowDoubleSlot); + $fortiethF5 = $context->builder->fmul($twentiethF5, $twentiethF5); + $sqF5 = $context->builder->siToFp($sqLong, $f64); + $fortysecondF5 = $context->builder->fmul($fortiethF5, $sqF5); + $fortyfourthF5 = $context->builder->fmul($fortysecondF5, $sqF5); + $ninetyfourthF5Sq = $context->builder->fmul($fortyfourthF5, $sqF5); + $ninetyfourthF5Eighth = $context->builder->fmul($ninetyfourthF5Sq, $sqF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5Eighth, $sqF5); + $nF5 = $context->builder->siToFp($n, $f64); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $ninetyfourthF5 = $context->builder->fmul($ninetyfourthF5, $nF5); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF5 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok5Block); + $fortiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $twentiethLong, + $twentiethLong + ); + $ov6 = JitLongArithOverflow::loadOverflowFlagI1($context, $fortiethVar->longArithOverflowFlag); + if (null === $ov6 || null === $fortiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fortieth)'); + } + $fortiethLong = JITVariable::KIND_VARIABLE === $fortiethVar->kind + ? $context->builder->load($fortiethVar->value) + : $fortiethVar->value; + $ov6Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortieth_ov'); + $ok6Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortieth_ok'); + $context->builder->branchIf($ov6, $ov6Block, $ok6Block); + + $context->builder->positionAtEnd($ov6Block); + $fortiethF6 = $context->builder->load($fortiethVar->longArithOverflowDoubleSlot); + $sqF6 = $context->builder->siToFp($sqLong, $f64); + $fortysecondF6 = $context->builder->fmul($fortiethF6, $sqF6); + $fortyfourthF6 = $context->builder->fmul($fortysecondF6, $sqF6); + $ninetyfourthF6Sq = $context->builder->fmul($fortyfourthF6, $sqF6); + $ninetyfourthF6Eighth = $context->builder->fmul($ninetyfourthF6Sq, $sqF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6Eighth, $sqF6); + $nF6 = $context->builder->siToFp($n, $f64); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $ninetyfourthF6 = $context->builder->fmul($ninetyfourthF6, $nF6); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF6 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok6Block); + $fortysecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fortiethLong, + $sqLong + ); + $ov7 = JitLongArithOverflow::loadOverflowFlagI1($context, $fortysecondVar->longArithOverflowFlag); + if (null === $ov7 || null === $fortysecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fortysecond)'); + } + $fortysecondLong = JITVariable::KIND_VARIABLE === $fortysecondVar->kind + ? $context->builder->load($fortysecondVar->value) + : $fortysecondVar->value; + $ov7Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortysecond_ov'); + $ok7Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortysecond_ok'); + $context->builder->branchIf($ov7, $ov7Block, $ok7Block); + + $context->builder->positionAtEnd($ov7Block); + $fortysecondF7 = $context->builder->load($fortysecondVar->longArithOverflowDoubleSlot); + $sqF7 = $context->builder->siToFp($sqLong, $f64); + $fortyfourthF7 = $context->builder->fmul($fortysecondF7, $sqF7); + $ninetyfourthF7Sq = $context->builder->fmul($fortyfourthF7, $sqF7); + $ninetyfourthF7Eighth = $context->builder->fmul($ninetyfourthF7Sq, $sqF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7Eighth, $sqF7); + $nF7 = $context->builder->siToFp($n, $f64); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $ninetyfourthF7 = $context->builder->fmul($ninetyfourthF7, $nF7); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF7 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok7Block); + $fortyfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fortysecondLong, + $sqLong + ); + $ov8 = JitLongArithOverflow::loadOverflowFlagI1($context, $fortyfourthVar->longArithOverflowFlag); + if (null === $ov8 || null === $fortyfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fortyfourth)'); + } + $fortyfourthLong = JITVariable::KIND_VARIABLE === $fortyfourthVar->kind + ? $context->builder->load($fortyfourthVar->value) + : $fortyfourthVar->value; + $ov8Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortyfourth_ov'); + $ok8Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortyfourth_ok'); + $context->builder->branchIf($ov8, $ov8Block, $ok8Block); + + $context->builder->positionAtEnd($ov8Block); + $fortyfourthF8 = $context->builder->load($fortyfourthVar->longArithOverflowDoubleSlot); + $sqF8 = $context->builder->siToFp($sqLong, $f64); + $ninetyfourthF8Sq = $context->builder->fmul($fortyfourthF8, $sqF8); + $ninetyfourthF8Eighth = $context->builder->fmul($ninetyfourthF8Sq, $sqF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8Eighth, $sqF8); + $nF8 = $context->builder->siToFp($n, $f64); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $ninetyfourthF8 = $context->builder->fmul($ninetyfourthF8, $nF8); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF8 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok8Block); + $fortysixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fortyfourthLong, + $sqLong + ); + $ov9 = JitLongArithOverflow::loadOverflowFlagI1($context, $fortysixthVar->longArithOverflowFlag); + if (null === $ov9 || null === $fortysixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fortysixth)'); + } + $fortysixthLong = JITVariable::KIND_VARIABLE === $fortysixthVar->kind + ? $context->builder->load($fortysixthVar->value) + : $fortysixthVar->value; + $ov9Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortysixth_ov'); + $ok9Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortysixth_ok'); + $context->builder->branchIf($ov9, $ov9Block, $ok9Block); + + $context->builder->positionAtEnd($ov9Block); + $fortysixthF9 = $context->builder->load($fortysixthVar->longArithOverflowDoubleSlot); + $sqF9 = $context->builder->siToFp($sqLong, $f64); + $fortyeighthF9 = $context->builder->fmul($fortysixthF9, $sqF9); + $ninetyfourthF9 = $context->builder->fmul($fortyeighthF9, $sqF9); + $nF9 = $context->builder->siToFp($n, $f64); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $ninetyfourthF9 = $context->builder->fmul($ninetyfourthF9, $nF9); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF9 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok9Block); + $fortyeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fortysixthLong, + $sqLong + ); + $ov10 = JitLongArithOverflow::loadOverflowFlagI1($context, $fortyeighthVar->longArithOverflowFlag); + if (null === $ov10 || null === $fortyeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fortyeighth)'); + } + $fortyeighthLong = JITVariable::KIND_VARIABLE === $fortyeighthVar->kind + ? $context->builder->load($fortyeighthVar->value) + : $fortyeighthVar->value; + $ov10Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortyeighth_ov'); + $ok10Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fortyeighth_ok'); + $context->builder->branchIf($ov10, $ov10Block, $ok10Block); + + $context->builder->positionAtEnd($ov10Block); + $fortyeighthF10 = $context->builder->load($fortyeighthVar->longArithOverflowDoubleSlot); + $sqF10 = $context->builder->siToFp($sqLong, $f64); + $ninetyfourthF10 = $context->builder->fmul($fortyeighthF10, $sqF10); + $nF10 = $context->builder->siToFp($n, $f64); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $ninetyfourthF10 = $context->builder->fmul($ninetyfourthF10, $nF10); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF10 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok10Block); + $fiftiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fortyeighthLong, + $sqLong + ); + $ov11 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftiethVar->longArithOverflowFlag); + if (null === $ov11 || null === $fiftiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftieth)'); + } + $fiftiethLong = JITVariable::KIND_VARIABLE === $fiftiethVar->kind + ? $context->builder->load($fiftiethVar->value) + : $fiftiethVar->value; + $ov11Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftieth_ov'); + $ok11Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftieth_ok'); + $context->builder->branchIf($ov11, $ov11Block, $ok11Block); + + $context->builder->positionAtEnd($ov11Block); + $fiftiethF11 = $context->builder->load($fiftiethVar->longArithOverflowDoubleSlot); + $nF11 = $context->builder->siToFp($n, $f64); + $ninetyfourthF11 = $context->builder->fmul($fiftiethF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $ninetyfourthF11 = $context->builder->fmul($ninetyfourthF11, $nF11); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF11 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok11Block); + $fiftyfirstVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftiethLong, + $n + ); + $ov12 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftyfirstVar->longArithOverflowFlag); + if (null === $ov12 || null === $fiftyfirstVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftyfirst)'); + } + $fiftyfirstLong = JITVariable::KIND_VARIABLE === $fiftyfirstVar->kind + ? $context->builder->load($fiftyfirstVar->value) + : $fiftyfirstVar->value; + $ov12Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyfirst_ov'); + $ok12Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyfirst_ok'); + $context->builder->branchIf($ov12, $ov12Block, $ok12Block); + + $context->builder->positionAtEnd($ov12Block); + $fiftyfirstF12 = $context->builder->load($fiftyfirstVar->longArithOverflowDoubleSlot); + $nF12 = $context->builder->siToFp($n, $f64); + $ninetyfourthF12 = $context->builder->fmul($fiftyfirstF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $ninetyfourthF12 = $context->builder->fmul($ninetyfourthF12, $nF12); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF12 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok12Block); + $fiftysecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftyfirstLong, + $n + ); + $ov13 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftysecondVar->longArithOverflowFlag); + if (null === $ov13 || null === $fiftysecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftysecond)'); + } + $fiftysecondLong = JITVariable::KIND_VARIABLE === $fiftysecondVar->kind + ? $context->builder->load($fiftysecondVar->value) + : $fiftysecondVar->value; + $ov13Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftysecond_ov'); + $ok13Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftysecond_ok'); + $context->builder->branchIf($ov13, $ov13Block, $ok13Block); + + $context->builder->positionAtEnd($ov13Block); + $fiftysecondF13 = $context->builder->load($fiftysecondVar->longArithOverflowDoubleSlot); + $nF13 = $context->builder->siToFp($n, $f64); + $ninetyfourthF13 = $context->builder->fmul($fiftysecondF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $ninetyfourthF13 = $context->builder->fmul($ninetyfourthF13, $nF13); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF13 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok13Block); + $fiftythirdVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftysecondLong, + $n + ); + $ov14 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftythirdVar->longArithOverflowFlag); + if (null === $ov14 || null === $fiftythirdVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftythird)'); + } + $fiftythirdLong = JITVariable::KIND_VARIABLE === $fiftythirdVar->kind + ? $context->builder->load($fiftythirdVar->value) + : $fiftythirdVar->value; + $ov14Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftythird_ov'); + $ok14Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftythird_ok'); + $context->builder->branchIf($ov14, $ov14Block, $ok14Block); + + $context->builder->positionAtEnd($ov14Block); + $fiftythirdF14 = $context->builder->load($fiftythirdVar->longArithOverflowDoubleSlot); + $nF14 = $context->builder->siToFp($n, $f64); + $ninetyfourthF14 = $context->builder->fmul($fiftythirdF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $ninetyfourthF14 = $context->builder->fmul($ninetyfourthF14, $nF14); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF14 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok14Block); + $fiftyfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftythirdLong, + $n + ); + $ov15 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftyfourthVar->longArithOverflowFlag); + if (null === $ov15 || null === $fiftyfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftyfourth)'); + } + $fiftyfourthLong = JITVariable::KIND_VARIABLE === $fiftyfourthVar->kind + ? $context->builder->load($fiftyfourthVar->value) + : $fiftyfourthVar->value; + $ov15Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyfourth_ov'); + $ok15Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyfourth_ok'); + $context->builder->branchIf($ov15, $ov15Block, $ok15Block); + + $context->builder->positionAtEnd($ov15Block); + $fiftyfourthF15 = $context->builder->load($fiftyfourthVar->longArithOverflowDoubleSlot); + $nF15 = $context->builder->siToFp($n, $f64); + $ninetyfourthF15 = $context->builder->fmul($fiftyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $ninetyfourthF15 = $context->builder->fmul($ninetyfourthF15, $nF15); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF15 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok15Block); + $fiftyfifthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftyfourthLong, + $n + ); + $ov16 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftyfifthVar->longArithOverflowFlag); + if (null === $ov16 || null === $fiftyfifthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftyfifth)'); + } + $fiftyfifthLong = JITVariable::KIND_VARIABLE === $fiftyfifthVar->kind + ? $context->builder->load($fiftyfifthVar->value) + : $fiftyfifthVar->value; + $ov16Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyfifth_ov'); + $ok16Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyfifth_ok'); + $context->builder->branchIf($ov16, $ov16Block, $ok16Block); + + $context->builder->positionAtEnd($ov16Block); + $fiftyfifthF16 = $context->builder->load($fiftyfifthVar->longArithOverflowDoubleSlot); + $nF16 = $context->builder->siToFp($n, $f64); + $ninetyfourthF16 = $context->builder->fmul($fiftyfifthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $ninetyfourthF16 = $context->builder->fmul($ninetyfourthF16, $nF16); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF16 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok16Block); + $fiftysixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftyfifthLong, + $n + ); + $ov17 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftysixthVar->longArithOverflowFlag); + if (null === $ov17 || null === $fiftysixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftysixth)'); + } + $fiftysixthLong = JITVariable::KIND_VARIABLE === $fiftysixthVar->kind + ? $context->builder->load($fiftysixthVar->value) + : $fiftysixthVar->value; + $ov17Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftysixth_ov'); + $ok17Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftysixth_ok'); + $context->builder->branchIf($ov17, $ov17Block, $ok17Block); + + $context->builder->positionAtEnd($ov17Block); + $fiftysixthF17 = $context->builder->load($fiftysixthVar->longArithOverflowDoubleSlot); + $nF17 = $context->builder->siToFp($n, $f64); + $ninetyfourthF17 = $context->builder->fmul($fiftysixthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $ninetyfourthF17 = $context->builder->fmul($ninetyfourthF17, $nF17); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF17 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok17Block); + $fiftyseventhVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftysixthLong, + $n + ); + $ov18 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftyseventhVar->longArithOverflowFlag); + if (null === $ov18 || null === $fiftyseventhVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftyseventh)'); + } + $fiftyseventhLong = JITVariable::KIND_VARIABLE === $fiftyseventhVar->kind + ? $context->builder->load($fiftyseventhVar->value) + : $fiftyseventhVar->value; + $ov18Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyseventh_ov'); + $ok18Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyseventh_ok'); + $context->builder->branchIf($ov18, $ov18Block, $ok18Block); + + $context->builder->positionAtEnd($ov18Block); + $fiftyseventhF18 = $context->builder->load($fiftyseventhVar->longArithOverflowDoubleSlot); + $nF18 = $context->builder->siToFp($n, $f64); + $ninetyfourthF18 = $context->builder->fmul($fiftyseventhF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $ninetyfourthF18 = $context->builder->fmul($ninetyfourthF18, $nF18); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF18 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok18Block); + $fiftyeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftyseventhLong, + $n + ); + $ov19 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftyeighthVar->longArithOverflowFlag); + if (null === $ov19 || null === $fiftyeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftyeighth)'); + } + $fiftyeighthLong = JITVariable::KIND_VARIABLE === $fiftyeighthVar->kind + ? $context->builder->load($fiftyeighthVar->value) + : $fiftyeighthVar->value; + $ov19Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyeighth_ov'); + $ok19Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyeighth_ok'); + $context->builder->branchIf($ov19, $ov19Block, $ok19Block); + + $context->builder->positionAtEnd($ov19Block); + $fiftyeighthF19 = $context->builder->load($fiftyeighthVar->longArithOverflowDoubleSlot); + $nF19 = $context->builder->siToFp($n, $f64); + $ninetyfourthF19 = $context->builder->fmul($fiftyeighthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $ninetyfourthF19 = $context->builder->fmul($ninetyfourthF19, $nF19); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF19 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok19Block); + $fiftyninthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftyeighthLong, + $n + ); + $ov20 = JitLongArithOverflow::loadOverflowFlagI1($context, $fiftyninthVar->longArithOverflowFlag); + if (null === $ov20 || null === $fiftyninthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (fiftyninth)'); + } + $fiftyninthLong = JITVariable::KIND_VARIABLE === $fiftyninthVar->kind + ? $context->builder->load($fiftyninthVar->value) + : $fiftyninthVar->value; + $ov20Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyninth_ov'); + $ok20Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_fiftyninth_ok'); + $context->builder->branchIf($ov20, $ov20Block, $ok20Block); + + $context->builder->positionAtEnd($ov20Block); + $fiftyninthF20 = $context->builder->load($fiftyninthVar->longArithOverflowDoubleSlot); + $nF20 = $context->builder->siToFp($n, $f64); + $ninetyfourthF20 = $context->builder->fmul($fiftyninthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $ninetyfourthF20 = $context->builder->fmul($ninetyfourthF20, $nF20); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF20 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok20Block); + $sixtiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $fiftyninthLong, + $n + ); + $ov21 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtiethVar->longArithOverflowFlag); + if (null === $ov21 || null === $sixtiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtieth)'); + } + $sixtiethLong = JITVariable::KIND_VARIABLE === $sixtiethVar->kind + ? $context->builder->load($sixtiethVar->value) + : $sixtiethVar->value; + $ov21Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtieth_ov'); + $ok21Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtieth_ok'); + $context->builder->branchIf($ov21, $ov21Block, $ok21Block); + + $context->builder->positionAtEnd($ov21Block); + $sixtiethF21 = $context->builder->load($sixtiethVar->longArithOverflowDoubleSlot); + $nF21 = $context->builder->siToFp($n, $f64); + $ninetyfourthF21 = $context->builder->fmul($sixtiethF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $ninetyfourthF21 = $context->builder->fmul($ninetyfourthF21, $nF21); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF21 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok21Block); + $sixtyfirstVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtiethLong, + $n + ); + $ov22 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtyfirstVar->longArithOverflowFlag); + if (null === $ov22 || null === $sixtyfirstVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtyfirst)'); + } + $sixtyfirstLong = JITVariable::KIND_VARIABLE === $sixtyfirstVar->kind + ? $context->builder->load($sixtyfirstVar->value) + : $sixtyfirstVar->value; + $ov22Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyfirst_ov'); + $ok22Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyfirst_ok'); + $context->builder->branchIf($ov22, $ov22Block, $ok22Block); + + $context->builder->positionAtEnd($ov22Block); + $sixtyfirstF22 = $context->builder->load($sixtyfirstVar->longArithOverflowDoubleSlot); + $nF22 = $context->builder->siToFp($n, $f64); + $ninetyfourthF22 = $context->builder->fmul($sixtyfirstF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $ninetyfourthF22 = $context->builder->fmul($ninetyfourthF22, $nF22); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF22 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok22Block); + $sixtysecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtyfirstLong, + $n + ); + $ov23 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtysecondVar->longArithOverflowFlag); + if (null === $ov23 || null === $sixtysecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtysecond)'); + } + $sixtysecondLong = JITVariable::KIND_VARIABLE === $sixtysecondVar->kind + ? $context->builder->load($sixtysecondVar->value) + : $sixtysecondVar->value; + $ov23Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtysecond_ov'); + $ok23Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtysecond_ok'); + $context->builder->branchIf($ov23, $ov23Block, $ok23Block); + + $context->builder->positionAtEnd($ov23Block); + $sixtysecondF23 = $context->builder->load($sixtysecondVar->longArithOverflowDoubleSlot); + $nF23 = $context->builder->siToFp($n, $f64); + $ninetyfourthF23 = $context->builder->fmul($sixtysecondF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $ninetyfourthF23 = $context->builder->fmul($ninetyfourthF23, $nF23); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF23 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok23Block); + $sixtythirdVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtysecondLong, + $n + ); + $ov24 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtythirdVar->longArithOverflowFlag); + if (null === $ov24 || null === $sixtythirdVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtythird)'); + } + $sixtythirdLong = JITVariable::KIND_VARIABLE === $sixtythirdVar->kind + ? $context->builder->load($sixtythirdVar->value) + : $sixtythirdVar->value; + $ov24Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtythird_ov'); + $ok24Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtythird_ok'); + $context->builder->branchIf($ov24, $ov24Block, $ok24Block); + + $context->builder->positionAtEnd($ov24Block); + $sixtythirdF24 = $context->builder->load($sixtythirdVar->longArithOverflowDoubleSlot); + $nF24 = $context->builder->siToFp($n, $f64); + $ninetyfourthF24 = $context->builder->fmul($sixtythirdF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $ninetyfourthF24 = $context->builder->fmul($ninetyfourthF24, $nF24); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF24 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok24Block); + $sixtyfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtythirdLong, + $n + ); + $ov25 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtyfourthVar->longArithOverflowFlag); + if (null === $ov25 || null === $sixtyfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtyfourth)'); + } + $sixtyfourthLong = JITVariable::KIND_VARIABLE === $sixtyfourthVar->kind + ? $context->builder->load($sixtyfourthVar->value) + : $sixtyfourthVar->value; + $ov25Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyfourth_ov'); + $ok25Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyfourth_ok'); + $context->builder->branchIf($ov25, $ov25Block, $ok25Block); + + $context->builder->positionAtEnd($ov25Block); + $sixtyfourthF25 = $context->builder->load($sixtyfourthVar->longArithOverflowDoubleSlot); + $nF25 = $context->builder->siToFp($n, $f64); + $ninetyfourthF25 = $context->builder->fmul($sixtyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $ninetyfourthF25 = $context->builder->fmul($ninetyfourthF25, $nF25); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF25 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok25Block); + $sixtyfifthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtyfourthLong, + $n + ); + $ov26 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtyfifthVar->longArithOverflowFlag); + if (null === $ov26 || null === $sixtyfifthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtyfifth)'); + } + $sixtyfifthLong = JITVariable::KIND_VARIABLE === $sixtyfifthVar->kind + ? $context->builder->load($sixtyfifthVar->value) + : $sixtyfifthVar->value; + $ov26Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyfifth_ov'); + $ok26Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyfifth_ok'); + $context->builder->branchIf($ov26, $ov26Block, $ok26Block); + + $context->builder->positionAtEnd($ov26Block); + $sixtyfifthF26 = $context->builder->load($sixtyfifthVar->longArithOverflowDoubleSlot); + $nF26 = $context->builder->siToFp($n, $f64); + $ninetyfourthF26 = $context->builder->fmul($sixtyfifthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $ninetyfourthF26 = $context->builder->fmul($ninetyfourthF26, $nF26); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF26 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok26Block); + $sixtysixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtyfifthLong, + $n + ); + $ov27 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtysixthVar->longArithOverflowFlag); + if (null === $ov27 || null === $sixtysixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtysixth)'); + } + $sixtysixthLong = JITVariable::KIND_VARIABLE === $sixtysixthVar->kind + ? $context->builder->load($sixtysixthVar->value) + : $sixtysixthVar->value; + $ov27Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtysixth_ov'); + $ok27Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtysixth_ok'); + $context->builder->branchIf($ov27, $ov27Block, $ok27Block); + + $context->builder->positionAtEnd($ov27Block); + $sixtysixthF27 = $context->builder->load($sixtysixthVar->longArithOverflowDoubleSlot); + $nF27 = $context->builder->siToFp($n, $f64); + $ninetyfourthF27 = $context->builder->fmul($sixtysixthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $ninetyfourthF27 = $context->builder->fmul($ninetyfourthF27, $nF27); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF27 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok27Block); + $sixtyseventhVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtysixthLong, + $n + ); + $ov28 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtyseventhVar->longArithOverflowFlag); + if (null === $ov28 || null === $sixtyseventhVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtyseventh)'); + } + $sixtyseventhLong = JITVariable::KIND_VARIABLE === $sixtyseventhVar->kind + ? $context->builder->load($sixtyseventhVar->value) + : $sixtyseventhVar->value; + $ov28Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyseventh_ov'); + $ok28Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyseventh_ok'); + $context->builder->branchIf($ov28, $ov28Block, $ok28Block); + + $context->builder->positionAtEnd($ov28Block); + $sixtyseventhF28 = $context->builder->load($sixtyseventhVar->longArithOverflowDoubleSlot); + $nF28 = $context->builder->siToFp($n, $f64); + $ninetyfourthF28 = $context->builder->fmul($sixtyseventhF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $ninetyfourthF28 = $context->builder->fmul($ninetyfourthF28, $nF28); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF28 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok28Block); + $sixtyeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtyseventhLong, + $n + ); + $ov29 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtyeighthVar->longArithOverflowFlag); + if (null === $ov29 || null === $sixtyeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtyeighth)'); + } + $sixtyeighthLong = JITVariable::KIND_VARIABLE === $sixtyeighthVar->kind + ? $context->builder->load($sixtyeighthVar->value) + : $sixtyeighthVar->value; + $ov29Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyeighth_ov'); + $ok29Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyeighth_ok'); + $context->builder->branchIf($ov29, $ov29Block, $ok29Block); + + $context->builder->positionAtEnd($ov29Block); + $sixtyeighthF29 = $context->builder->load($sixtyeighthVar->longArithOverflowDoubleSlot); + $nF29 = $context->builder->siToFp($n, $f64); + $ninetyfourthF29 = $context->builder->fmul($sixtyeighthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $ninetyfourthF29 = $context->builder->fmul($ninetyfourthF29, $nF29); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF29 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok29Block); + $sixtyninthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtyeighthLong, + $n + ); + $ov30 = JitLongArithOverflow::loadOverflowFlagI1($context, $sixtyninthVar->longArithOverflowFlag); + if (null === $ov30 || null === $sixtyninthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (sixtyninth)'); + } + $sixtyninthLong = JITVariable::KIND_VARIABLE === $sixtyninthVar->kind + ? $context->builder->load($sixtyninthVar->value) + : $sixtyninthVar->value; + $ov30Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyninth_ov'); + $ok30Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_sixtyninth_ok'); + $context->builder->branchIf($ov30, $ov30Block, $ok30Block); + + $context->builder->positionAtEnd($ov30Block); + $sixtyninthF30 = $context->builder->load($sixtyninthVar->longArithOverflowDoubleSlot); + $nF30 = $context->builder->siToFp($n, $f64); + $ninetyfourthF30 = $context->builder->fmul($sixtyninthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $ninetyfourthF30 = $context->builder->fmul($ninetyfourthF30, $nF30); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF30 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok30Block); + $seventiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $sixtyninthLong, + $n + ); + $ov31 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventiethVar->longArithOverflowFlag); + if (null === $ov31 || null === $seventiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventieth)'); + } + $seventiethLong = JITVariable::KIND_VARIABLE === $seventiethVar->kind + ? $context->builder->load($seventiethVar->value) + : $seventiethVar->value; + $ov31Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventieth_ov'); + $ok31Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventieth_ok'); + $context->builder->branchIf($ov31, $ov31Block, $ok31Block); + + $context->builder->positionAtEnd($ov31Block); + $seventiethF31 = $context->builder->load($seventiethVar->longArithOverflowDoubleSlot); + $nF31 = $context->builder->siToFp($n, $f64); + $ninetyfourthF31 = $context->builder->fmul($seventiethF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $ninetyfourthF31 = $context->builder->fmul($ninetyfourthF31, $nF31); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF31 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok31Block); + $seventyfirstVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventiethLong, + $n + ); + $ov32 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventyfirstVar->longArithOverflowFlag); + if (null === $ov32 || null === $seventyfirstVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventyfirst)'); + } + $seventyfirstLong = JITVariable::KIND_VARIABLE === $seventyfirstVar->kind + ? $context->builder->load($seventyfirstVar->value) + : $seventyfirstVar->value; + $ov32Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyfirst_ov'); + $ok32Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyfirst_ok'); + $context->builder->branchIf($ov32, $ov32Block, $ok32Block); + + $context->builder->positionAtEnd($ov32Block); + $seventyfirstF32 = $context->builder->load($seventyfirstVar->longArithOverflowDoubleSlot); + $nF32 = $context->builder->siToFp($n, $f64); + $ninetyfourthF32 = $context->builder->fmul($seventyfirstF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $ninetyfourthF32 = $context->builder->fmul($ninetyfourthF32, $nF32); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF32 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok32Block); + $seventysecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventyfirstLong, + $n + ); + $ov33 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventysecondVar->longArithOverflowFlag); + if (null === $ov33 || null === $seventysecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventysecond)'); + } + $seventysecondLong = JITVariable::KIND_VARIABLE === $seventysecondVar->kind + ? $context->builder->load($seventysecondVar->value) + : $seventysecondVar->value; + $ov33Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventysecond_ov'); + $ok33Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventysecond_ok'); + $context->builder->branchIf($ov33, $ov33Block, $ok33Block); + + $context->builder->positionAtEnd($ov33Block); + $seventysecondF33 = $context->builder->load($seventysecondVar->longArithOverflowDoubleSlot); + $nF33 = $context->builder->siToFp($n, $f64); + $ninetyfourthF33 = $context->builder->fmul($seventysecondF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($seventysecondF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $ninetyfourthF33 = $context->builder->fmul($ninetyfourthF33, $nF33); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF33 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok33Block); + $seventythirdVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventysecondLong, + $n + ); + $ov34 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventythirdVar->longArithOverflowFlag); + if (null === $ov34 || null === $seventythirdVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventythird)'); + } + $seventythirdLong = JITVariable::KIND_VARIABLE === $seventythirdVar->kind + ? $context->builder->load($seventythirdVar->value) + : $seventythirdVar->value; + $ov34Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventythird_ov'); + $ok34Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventythird_ok'); + $context->builder->branchIf($ov34, $ov34Block, $ok34Block); + + $context->builder->positionAtEnd($ov34Block); + $seventythirdF34 = $context->builder->load($seventythirdVar->longArithOverflowDoubleSlot); + $nF34 = $context->builder->siToFp($n, $f64); + $ninetyfourthF34 = $context->builder->fmul($seventythirdF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $ninetyfourthF34 = $context->builder->fmul($ninetyfourthF34, $nF34); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF34 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok34Block); + $seventyfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventythirdLong, + $n + ); + $ov35 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventyfourthVar->longArithOverflowFlag); + if (null === $ov35 || null === $seventyfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventyfourth)'); + } + $seventyfourthLong = JITVariable::KIND_VARIABLE === $seventyfourthVar->kind + ? $context->builder->load($seventyfourthVar->value) + : $seventyfourthVar->value; + $ov35Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyfourth_ov'); + $ok35Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyfourth_ok'); + $context->builder->branchIf($ov35, $ov35Block, $ok35Block); + + $context->builder->positionAtEnd($ov35Block); + $seventyfourthF35 = $context->builder->load($seventyfourthVar->longArithOverflowDoubleSlot); + $nF35 = $context->builder->siToFp($n, $f64); + $ninetyfourthF35 = $context->builder->fmul($seventyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($seventyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $ninetyfourthF35 = $context->builder->fmul($ninetyfourthF35, $nF35); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF35 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok35Block); + $seventyfifthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventyfourthLong, + $n + ); + $ov36 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventyfifthVar->longArithOverflowFlag); + if (null === $ov36 || null === $seventyfifthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventyfifth)'); + } + $seventyfifthLong = JITVariable::KIND_VARIABLE === $seventyfifthVar->kind + ? $context->builder->load($seventyfifthVar->value) + : $seventyfifthVar->value; + $ov36Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyfifth_ov'); + $ok36Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyfifth_ok'); + $context->builder->branchIf($ov36, $ov36Block, $ok36Block); + + $context->builder->positionAtEnd($ov36Block); + $seventyfifthF36 = $context->builder->load($seventyfifthVar->longArithOverflowDoubleSlot); + $nF36 = $context->builder->siToFp($n, $f64); + $ninetyfourthF36 = $context->builder->fmul($seventyfifthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $ninetyfourthF36 = $context->builder->fmul($ninetyfourthF36, $nF36); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF36 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok36Block); + $seventysixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventyfifthLong, + $n + ); + $ov37 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventysixthVar->longArithOverflowFlag); + if (null === $ov37 || null === $seventysixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventysixth)'); + } + $seventysixthLong = JITVariable::KIND_VARIABLE === $seventysixthVar->kind + ? $context->builder->load($seventysixthVar->value) + : $seventysixthVar->value; + $ov37Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventysixth_ov'); + $ok37Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventysixth_ok'); + $context->builder->branchIf($ov37, $ov37Block, $ok37Block); + + $context->builder->positionAtEnd($ov37Block); + $seventysixthF37 = $context->builder->load($seventysixthVar->longArithOverflowDoubleSlot); + $nF37 = $context->builder->siToFp($n, $f64); + $ninetyfourthF37 = $context->builder->fmul($seventysixthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $ninetyfourthF37 = $context->builder->fmul($ninetyfourthF37, $nF37); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF37 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok37Block); + $seventyseventhVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventysixthLong, + $n + ); + $ov38 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventyseventhVar->longArithOverflowFlag); + if (null === $ov38 || null === $seventyseventhVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventyseventh)'); + } + $seventyseventhLong = JITVariable::KIND_VARIABLE === $seventyseventhVar->kind + ? $context->builder->load($seventyseventhVar->value) + : $seventyseventhVar->value; + $ov38Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyseventh_ov'); + $ok38Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyseventh_ok'); + $context->builder->branchIf($ov38, $ov38Block, $ok38Block); + + $context->builder->positionAtEnd($ov38Block); + $seventyseventhF38 = $context->builder->load($seventyseventhVar->longArithOverflowDoubleSlot); + $nF38 = $context->builder->siToFp($n, $f64); + $ninetyfourthF38 = $context->builder->fmul($seventyseventhF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($seventyseventhF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $ninetyfourthF38 = $context->builder->fmul($ninetyfourthF38, $nF38); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF38 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok38Block); + $seventyeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventyseventhLong, + $n + ); + $ov39 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventyeighthVar->longArithOverflowFlag); + if (null === $ov39 || null === $seventyeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventyeighth)'); + } + $seventyeighthLong = JITVariable::KIND_VARIABLE === $seventyeighthVar->kind + ? $context->builder->load($seventyeighthVar->value) + : $seventyeighthVar->value; + $ov39Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyeighth_ov'); + $ok39Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyeighth_ok'); + $context->builder->branchIf($ov39, $ov39Block, $ok39Block); + + $context->builder->positionAtEnd($ov39Block); + $seventyeighthF39 = $context->builder->load($seventyeighthVar->longArithOverflowDoubleSlot); + $nF39 = $context->builder->siToFp($n, $f64); + $ninetyfourthF39 = $context->builder->fmul($seventyeighthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $ninetyfourthF39 = $context->builder->fmul($ninetyfourthF39, $nF39); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF39 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok39Block); + $seventyninthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventyeighthLong, + $n + ); + $ov40 = JitLongArithOverflow::loadOverflowFlagI1($context, $seventyninthVar->longArithOverflowFlag); + if (null === $ov40 || null === $seventyninthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (seventyninth)'); + } + $seventyninthLong = JITVariable::KIND_VARIABLE === $seventyninthVar->kind + ? $context->builder->load($seventyninthVar->value) + : $seventyninthVar->value; + $ov40Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyninth_ov'); + $ok40Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_seventyninth_ok'); + $context->builder->branchIf($ov40, $ov40Block, $ok40Block); + + $context->builder->positionAtEnd($ov40Block); + $seventyninthF40 = $context->builder->load($seventyninthVar->longArithOverflowDoubleSlot); + $nF40 = $context->builder->siToFp($n, $f64); + $ninetyfourthF40 = $context->builder->fmul($seventyninthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $ninetyfourthF40 = $context->builder->fmul($ninetyfourthF40, $nF40); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF40 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok40Block); + $eightiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $seventyninthLong, + $n + ); + $ov41 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightiethVar->longArithOverflowFlag); + if (null === $ov41 || null === $eightiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightieth)'); + } + $eightiethLong = JITVariable::KIND_VARIABLE === $eightiethVar->kind + ? $context->builder->load($eightiethVar->value) + : $eightiethVar->value; + $ov41Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightieth_ov'); + $ok41Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightieth_ok'); + $context->builder->branchIf($ov41, $ov41Block, $ok41Block); + + $context->builder->positionAtEnd($ov41Block); + $eightiethF41 = $context->builder->load($eightiethVar->longArithOverflowDoubleSlot); + $nF41 = $context->builder->siToFp($n, $f64); + $ninetyfourthF41 = $context->builder->fmul($eightiethF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $ninetyfourthF41 = $context->builder->fmul($ninetyfourthF41, $nF41); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF41 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok41Block); + $eightyfirstVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightiethLong, + $n + ); + $ov42 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightyfirstVar->longArithOverflowFlag); + if (null === $ov42 || null === $eightyfirstVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightyfirst)'); + } + $eightyfirstLong = JITVariable::KIND_VARIABLE === $eightyfirstVar->kind + ? $context->builder->load($eightyfirstVar->value) + : $eightyfirstVar->value; + $ov42Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyfirst_ov'); + $ok42Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyfirst_ok'); + $context->builder->branchIf($ov42, $ov42Block, $ok42Block); + + $context->builder->positionAtEnd($ov42Block); + $eightyfirstF42 = $context->builder->load($eightyfirstVar->longArithOverflowDoubleSlot); + $nF42 = $context->builder->siToFp($n, $f64); + $ninetyfourthF42 = $context->builder->fmul($eightyfirstF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $ninetyfourthF42 = $context->builder->fmul($ninetyfourthF42, $nF42); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF42 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok42Block); + $eightysecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightyfirstLong, + $n + ); + $ov43 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightysecondVar->longArithOverflowFlag); + if (null === $ov43 || null === $eightysecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightysecond)'); + } + $eightysecondLong = JITVariable::KIND_VARIABLE === $eightysecondVar->kind + ? $context->builder->load($eightysecondVar->value) + : $eightysecondVar->value; + $ov43Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightysecond_ov'); + $ok43Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightysecond_ok'); + $context->builder->branchIf($ov43, $ov43Block, $ok43Block); + + $context->builder->positionAtEnd($ov43Block); + $eightysecondF43 = $context->builder->load($eightysecondVar->longArithOverflowDoubleSlot); + $nF43 = $context->builder->siToFp($n, $f64); + $ninetyfourthF43 = $context->builder->fmul($eightysecondF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($eightysecondF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($eightysecondF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($eightysecondF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($eightysecondF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $ninetyfourthF43 = $context->builder->fmul($ninetyfourthF43, $nF43); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF43 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok43Block); + $eightythirdVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightysecondLong, + $n + ); + $ov44 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightythirdVar->longArithOverflowFlag); + if (null === $ov44 || null === $eightythirdVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightythird)'); + } + $eightythirdLong = JITVariable::KIND_VARIABLE === $eightythirdVar->kind + ? $context->builder->load($eightythirdVar->value) + : $eightythirdVar->value; + $ov44Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightythird_ov'); + $ok44Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightythird_ok'); + $context->builder->branchIf($ov44, $ov44Block, $ok44Block); + + $context->builder->positionAtEnd($ov44Block); + $eightythirdF44 = $context->builder->load($eightythirdVar->longArithOverflowDoubleSlot); + $nF44 = $context->builder->siToFp($n, $f64); + $ninetyfourthF44 = $context->builder->fmul($eightythirdF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($eightythirdF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($eightythirdF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($eightythirdF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $ninetyfourthF44 = $context->builder->fmul($ninetyfourthF44, $nF44); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF44 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok44Block); + $eightyfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightythirdLong, + $n + ); + $ov45 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightyfourthVar->longArithOverflowFlag); + if (null === $ov45 || null === $eightyfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightyfourth)'); + } + $eightyfourthLong = JITVariable::KIND_VARIABLE === $eightyfourthVar->kind + ? $context->builder->load($eightyfourthVar->value) + : $eightyfourthVar->value; + $ov45Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyfourth_ov'); + $ok45Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyfourth_ok'); + $context->builder->branchIf($ov45, $ov45Block, $ok45Block); + + $context->builder->positionAtEnd($ov45Block); + $eightyfourthF45 = $context->builder->load($eightyfourthVar->longArithOverflowDoubleSlot); + $nF45 = $context->builder->siToFp($n, $f64); + $ninetyfourthF45 = $context->builder->fmul($eightyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($eightyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($eightyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $ninetyfourthF45 = $context->builder->fmul($ninetyfourthF45, $nF45); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF45 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok45Block); + $eightyfifthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightyfourthLong, + $n + ); + $ov46 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightyfifthVar->longArithOverflowFlag); + if (null === $ov46 || null === $eightyfifthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightyfifth)'); + } + $eightyfifthLong = JITVariable::KIND_VARIABLE === $eightyfifthVar->kind + ? $context->builder->load($eightyfifthVar->value) + : $eightyfifthVar->value; + $ov46Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyfifth_ov'); + $ok46Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyfifth_ok'); + $context->builder->branchIf($ov46, $ov46Block, $ok46Block); + + $context->builder->positionAtEnd($ov46Block); + $eightyfifthF46 = $context->builder->load($eightyfifthVar->longArithOverflowDoubleSlot); + $nF46 = $context->builder->siToFp($n, $f64); + $ninetyfourthF46 = $context->builder->fmul($eightyfifthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($eightyfifthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $ninetyfourthF46 = $context->builder->fmul($ninetyfourthF46, $nF46); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF46 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok46Block); + $eightysixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightyfifthLong, + $n + ); + $ov47 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightysixthVar->longArithOverflowFlag); + if (null === $ov47 || null === $eightysixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightysixth)'); + } + $eightysixthLong = JITVariable::KIND_VARIABLE === $eightysixthVar->kind + ? $context->builder->load($eightysixthVar->value) + : $eightysixthVar->value; + $ov47Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightysixth_ov'); + $ok47Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightysixth_ok'); + $context->builder->branchIf($ov47, $ov47Block, $ok47Block); + + $context->builder->positionAtEnd($ov47Block); + $eightysixthF47 = $context->builder->load($eightysixthVar->longArithOverflowDoubleSlot); + $nF47 = $context->builder->siToFp($n, $f64); + $ninetyfourthF47 = $context->builder->fmul($eightysixthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $ninetyfourthF47 = $context->builder->fmul($ninetyfourthF47, $nF47); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF47 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok47Block); + + $eightyseventhVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightysixthLong, + $n + ); + $ov48 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightyseventhVar->longArithOverflowFlag); + if (null === $ov48 || null === $eightyseventhVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightyseventh)'); + } + $eightyseventhLong = JITVariable::KIND_VARIABLE === $eightyseventhVar->kind + ? $context->builder->load($eightyseventhVar->value) + : $eightyseventhVar->value; + $ov48Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyseventh_ov'); + $ok48Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyseventh_ok'); + $context->builder->branchIf($ov48, $ov48Block, $ok48Block); + + $context->builder->positionAtEnd($ov48Block); + $eightyseventhF48 = $context->builder->load($eightyseventhVar->longArithOverflowDoubleSlot); + $nF48 = $context->builder->siToFp($n, $f64); + $ninetyfourthF48 = $context->builder->fmul($eightyseventhF48, $nF48); + $ninetyfourthF48 = $context->builder->fmul($eightyseventhF48, $nF48); + $ninetyfourthF48 = $context->builder->fmul($ninetyfourthF48, $nF48); + $ninetyfourthF48 = $context->builder->fmul($ninetyfourthF48, $nF48); + $ninetyfourthF48 = $context->builder->fmul($ninetyfourthF48, $nF48); + $ninetyfourthF48 = $context->builder->fmul($ninetyfourthF48, $nF48); + $ninetyfourthF48 = $context->builder->fmul($ninetyfourthF48, $nF48); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF48 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok48Block); + $eightyeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightyseventhLong, + $n + ); + $ov49 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightyeighthVar->longArithOverflowFlag); + if (null === $ov49 || null === $eightyeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightyeighth)'); + } + $eightyeighthLong = JITVariable::KIND_VARIABLE === $eightyeighthVar->kind + ? $context->builder->load($eightyeighthVar->value) + : $eightyeighthVar->value; + $ov49Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyeighth_ov'); + $ok49Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyeighth_ok'); + $context->builder->branchIf($ov49, $ov49Block, $ok49Block); + + $context->builder->positionAtEnd($ov49Block); + $eightyeighthF49 = $context->builder->load($eightyeighthVar->longArithOverflowDoubleSlot); + $nF49 = $context->builder->siToFp($n, $f64); + $ninetyfourthF49 = $context->builder->fmul($eightyeighthF49, $nF49); + $ninetyfourthF49 = $context->builder->fmul($ninetyfourthF49, $nF49); + $ninetyfourthF49 = $context->builder->fmul($ninetyfourthF49, $nF49); + $ninetyfourthF49 = $context->builder->fmul($ninetyfourthF49, $nF49); + $ninetyfourthF49 = $context->builder->fmul($ninetyfourthF49, $nF49); + $ninetyfourthF49 = $context->builder->fmul($ninetyfourthF49, $nF49); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF49 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok49Block); + $eightyninthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightyeighthLong, + $n + ); + $ov50 = JitLongArithOverflow::loadOverflowFlagI1($context, $eightyninthVar->longArithOverflowFlag); + if (null === $ov50 || null === $eightyninthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (eightyninth)'); + } + $eightyninthLong = JITVariable::KIND_VARIABLE === $eightyninthVar->kind + ? $context->builder->load($eightyninthVar->value) + : $eightyninthVar->value; + $ov50Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyninth_ov'); + $ok50Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_eightyninth_ok'); + $context->builder->branchIf($ov50, $ov50Block, $ok50Block); + + $context->builder->positionAtEnd($ov50Block); + $eightyninthF50 = $context->builder->load($eightyninthVar->longArithOverflowDoubleSlot); + $nF50 = $context->builder->siToFp($n, $f64); + $ninetyfourthF50 = $context->builder->fmul($eightyninthF50, $nF50); + $ninetyfourthF50 = $context->builder->fmul($ninetyfourthF50, $nF50); + $ninetyfourthF50 = $context->builder->fmul($ninetyfourthF50, $nF50); + $ninetyfourthF50 = $context->builder->fmul($ninetyfourthF50, $nF50); + $ninetyfourthF50 = $context->builder->fmul($ninetyfourthF50, $nF50); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF50 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok50Block); + $ninetiethVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $eightyninthLong, + $n + ); + $ov51 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetiethVar->longArithOverflowFlag); + if (null === $ov51 || null === $ninetiethVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (ninetieth)'); + } + $ninetiethLong = JITVariable::KIND_VARIABLE === $ninetiethVar->kind + ? $context->builder->load($ninetiethVar->value) + : $ninetiethVar->value; + $ov51Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetieth_ov'); + $ok51Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetieth_ok'); + $context->builder->branchIf($ov51, $ov51Block, $ok51Block); + + $context->builder->positionAtEnd($ov51Block); + $ninetiethF51 = $context->builder->load($ninetiethVar->longArithOverflowDoubleSlot); + $nF51 = $context->builder->siToFp($n, $f64); + $ninetyfourthF51 = $context->builder->fmul($ninetiethF51, $nF51); + $ninetyfourthF51 = $context->builder->fmul($ninetyfourthF51, $nF51); + $ninetyfourthF51 = $context->builder->fmul($ninetyfourthF51, $nF51); + $ninetyfourthF51 = $context->builder->fmul($ninetyfourthF51, $nF51); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF51 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok51Block); + $ninetyfirstVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetiethLong, + $n + ); + $ov52 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetyfirstVar->longArithOverflowFlag); + if (null === $ov52 || null === $ninetyfirstVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (ninetyfirst)'); + } + $ninetyfirstLong = JITVariable::KIND_VARIABLE === $ninetyfirstVar->kind + ? $context->builder->load($ninetyfirstVar->value) + : $ninetyfirstVar->value; + $ov52Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetyfirst_ov'); + $ok52Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetyfirst_ok'); + $context->builder->branchIf($ov52, $ov52Block, $ok52Block); + + $context->builder->positionAtEnd($ov52Block); + $ninetyfirstF52 = $context->builder->load($ninetyfirstVar->longArithOverflowDoubleSlot); + $nF52 = $context->builder->siToFp($n, $f64); + $ninetyfourthF52 = $context->builder->fmul($ninetyfirstF52, $nF52); + $ninetyfourthF52 = $context->builder->fmul($ninetyfourthF52, $nF52); + $ninetyfourthF52 = $context->builder->fmul($ninetyfourthF52, $nF52); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF52 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok52Block); + $ninetysecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetyfirstLong, + $n + ); + $ov53 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetysecondVar->longArithOverflowFlag); + if (null === $ov53 || null === $ninetysecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (ninetysecond)'); + } + $ninetysecondLong = JITVariable::KIND_VARIABLE === $ninetysecondVar->kind + ? $context->builder->load($ninetysecondVar->value) + : $ninetysecondVar->value; + $ov53Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetysecond_ov'); + $ok53Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetysecond_ok'); + $context->builder->branchIf($ov53, $ov53Block, $ok53Block); + + $context->builder->positionAtEnd($ov53Block); + $ninetysecondF53 = $context->builder->load($ninetysecondVar->longArithOverflowDoubleSlot); + $nF53 = $context->builder->siToFp($n, $f64); + $ninetyfourthF53 = $context->builder->fmul($ninetysecondF53, $nF53); + $ninetyfourthF53 = $context->builder->fmul($ninetyfourthF53, $nF53); + $ninetyfourthF53 = $context->builder->fmul($ninetyfourthF53, $nF53); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF53 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok53Block); + $ninetythirdVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetysecondLong, + $n + ); + $ov54 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetythirdVar->longArithOverflowFlag); + if (null === $ov54 || null === $ninetythirdVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **94 expected smul overflow metadata (ninetythird)'); + } + $ninetythirdLong = JITVariable::KIND_VARIABLE === $ninetythirdVar->kind + ? $context->builder->load($ninetythirdVar->value) + : $ninetythirdVar->value; + $ov54Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetythird_ov'); + $ok54Block = BasicBlockHelper::append($context, 'pow_ninetyfourth_ninetythird_ok'); + $context->builder->branchIf($ov54, $ov54Block, $ok54Block); + + $context->builder->positionAtEnd($ov54Block); + $ninetythirdF54 = $context->builder->load($ninetythirdVar->longArithOverflowDoubleSlot); + $nF54 = $context->builder->siToFp($n, $f64); + $ninetyfourthF54 = $context->builder->fmul($ninetythirdF54, $nF54); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $ninetyfourthF54 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok54Block); + JitLongArithOverflow::writeBoxedBinary( + $context, + OpCode::TYPE_MUL, + $ninetythirdLong, + $n, + $slotPtr + ); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($doneBlock); + + return true; + } throw new \LogicException('JitPowIntegerEmitHigh: unhandled expFold '.$expFold); } diff --git a/lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php b/lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php index a44a65fdd6..4f98d1cc09 100644 --- a/lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php +++ b/lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php @@ -186,20 +186,21 @@ trait DiscardedPureCallElisionNativeLongPowFolds * - {@code $n ** 91} / {@code pow($n, 91)} → chained smul overflow→float (ninetieth × n) * - {@code $n ** 92} / {@code pow($n, 92)} → chained smul overflow→float (ninetyfirst × n) * - {@code $n ** 93} / {@code pow($n, 93)} → chained smul overflow→float (ninetysecond × n) + * - {@code $n ** 94} / {@code pow($n, 94)} → chained smul overflow→float (ninetythird × n) * * Omits {@code llvm.pow.f64} and the siToFp/fpToSi round-trip on the * integer fast path ({@see \PHPCompiler\ext\standard\JitPow}). Peer * compile-time {@code * 1} identity ({@see nativeLongArithIsCompileTimeIdentityOrZero}) * and {@code * 2^k} shl ({@see nativeLongMulCompileTimePowerOfTwoShift}). * - * Float exponents ({@code 0.0}/{@code 1.0}/{@code 2.0}/{@code 3.0}/{@code 4.0}/{@code 5.0}/{@code 6.0}/{@code 7.0}/{@code 8.0}/{@code 9.0}/{@code 10.0}/{@code 11.0}/{@code 12.0}/{@code 13.0}/{@code 14.0}/{@code 15.0}/{@code 16.0}/{@code 17.0}/{@code 18.0}/{@code 19.0}/{@code 20.0}/{@code 21.0}/{@code 22.0}/{@code 23.0}/{@code 24.0}/{@code 25.0}/{@code 26.0}/{@code 27.0}/{@code 28.0}/{@code 29.0}/{@code 30.0}/{@code 31.0}/{@code 32.0}/{@code 33.0}/{@code 34.0}/{@code 35.0}/{@code 36.0}/{@code 37.0}/{@code 38.0}/{@code 39.0}/{@code 40.0}/{@code 41.0}/{@code 42.0}/{@code 43.0}/{@code 44.0}/{@code 45.0}/{@code 46.0}/{@code 47.0}/{@code 48.0}/{@code 49.0}/{@code 50.0}/{@code 51.0}/{@code 52.0}/{@code 53.0}/{@code 54.0}/{@code 55.0}/{@code 56.0}/{@code 57.0}/{@code 58.0}/{@code 59.0}/{@code 60.0}/{@code 61.0}/{@code 62.0}/{@code 63.0}/{@code 64.0}/{@code 65.0}/{@code 66.0}/{@code 67.0}/{@code 68.0}/{@code 69.0}/{@code 70.0}/{@code 71.0}/{@code 72.0}/{@code 73.0}/{@code 74.0}/{@code 75.0}/{@code 76.0}/{@code 77.0}/{@code 78.0}/{@code 79.0}/{@code 80.0}/{@code 81.0}/{@code 82.0}/{@code 83.0}/{@code 84.0}/{@code 85.0}/{@code 86.0}/{@code 87.0}/{@code 88.0}/{@code 89.0}/{@code 90.0}/{@code 91.0}/{@code 92.0}) stay + * Float exponents ({@code 0.0}/{@code 1.0}/{@code 2.0}/{@code 3.0}/{@code 4.0}/{@code 5.0}/{@code 6.0}/{@code 7.0}/{@code 8.0}/{@code 9.0}/{@code 10.0}/{@code 11.0}/{@code 12.0}/{@code 13.0}/{@code 14.0}/{@code 15.0}/{@code 16.0}/{@code 17.0}/{@code 18.0}/{@code 19.0}/{@code 20.0}/{@code 21.0}/{@code 22.0}/{@code 23.0}/{@code 24.0}/{@code 25.0}/{@code 26.0}/{@code 27.0}/{@code 28.0}/{@code 29.0}/{@code 30.0}/{@code 31.0}/{@code 32.0}/{@code 33.0}/{@code 34.0}/{@code 35.0}/{@code 36.0}/{@code 37.0}/{@code 38.0}/{@code 39.0}/{@code 40.0}/{@code 41.0}/{@code 42.0}/{@code 43.0}/{@code 44.0}/{@code 45.0}/{@code 46.0}/{@code 47.0}/{@code 48.0}/{@code 49.0}/{@code 50.0}/{@code 51.0}/{@code 52.0}/{@code 53.0}/{@code 54.0}/{@code 55.0}/{@code 56.0}/{@code 57.0}/{@code 58.0}/{@code 59.0}/{@code 60.0}/{@code 61.0}/{@code 62.0}/{@code 63.0}/{@code 64.0}/{@code 65.0}/{@code 66.0}/{@code 67.0}/{@code 68.0}/{@code 69.0}/{@code 70.0}/{@code 71.0}/{@code 72.0}/{@code 73.0}/{@code 74.0}/{@code 75.0}/{@code 76.0}/{@code 77.0}/{@code 78.0}/{@code 79.0}/{@code 80.0}/{@code 81.0}/{@code 82.0}/{@code 83.0}/{@code 84.0}/{@code 85.0}/{@code 86.0}/{@code 87.0}/{@code 88.0}/{@code 89.0}/{@code 90.0}/{@code 91.0}/{@code 92.0}/{@code 93.0}) stay * on the float path — Zend returns {@code float} for those shapes. * * php-src: Zend/zend_operators.c {@code pow_function} / * {@code zend_pow} / {@code mul_function}; ext/standard/math.c * {@code PHP_FUNCTION(pow)}. * - * @return 'one'|'identity'|'square'|'cube'|'fourth'|'fifth'|'sixth'|'seventh'|'eighth'|'ninth'|'tenth'|'eleventh'|'twelfth'|'thirteenth'|'fourteenth'|'fifteenth'|'sixteenth'|'seventeenth'|'eighteenth'|'nineteenth'|'twentieth'|'twentyfirst'|'twentysecond'|'twentythird'|'twentyfourth'|'twentyfifth'|'twentysixth'|'twentyseventh'|'twentyeighth'|'twentyninth'|'thirtieth'|'thirtyfirst'|'thirtysecond'|'thirtythird'|'thirtyfourth'|'thirtyfifth'|'thirtysixth'|'thirtyseventh'|'thirtyeighth'|'thirtyninth'|'fortieth'|'fortyfirst'|'fortysecond'|'fortythird'|'fortyfourth'|'fortyfifth'|'fortysixth'|'fortyseventh'|'fortyeighth'|'fortyninth'|'fiftieth'|'fiftyfirst'|'fiftysecond'|'fiftythird'|'fiftyfourth'|'fiftyfifth'|'fiftysixth'|'fiftyseventh'|'fiftyeighth'|'fiftyninth'|'sixtieth'|'sixtyfirst'|'sixtysecond'|'sixtythird'|'sixtyfourth'|'sixtyfifth'|'sixtysixth'|'sixtyseventh'|'sixtyeighth'|'sixtyninth'|'seventieth'|'seventyfirst'|'seventysecond'|'seventythird'|'seventyfourth'|'seventyfifth'|'seventysixth'|'seventyseventh'|'seventyeighth'|'seventyninth'|'eightieth'|'eightyfirst'|'eightysecond'|'eightythird'|'eightyfourth'|'eightyfifth'|'eightysixth'|'eightyseventh'|'eightyeighth'|'eightyninth'|'ninetieth'|'ninetyfirst'|'ninetysecond'|'ninetythird'|null fold to 1, keep base, mul square/cube/fourth/fifth/sixth/seventh/eighth/ninth/tenth/eleventh/twelfth/thirteenth/fourteenth/fifteenth/sixteenth/seventeenth/eighteenth/nineteenth/twentieth/twentyfirst/twentysecond/twentythird/twentyfourth/twentyfifth/twentysixth/twentyseventh/twentyeighth/twentyninth/thirtieth/thirtyfirst/thirtysecond/thirtythird/thirtyfourth/thirtyfifth/thirtysixth/thirtyseventh/thirtyeighth/thirtyninth/fortieth/fortyfirst/fortysecond/fortythird/fortyfourth/fortyfifth/fortysixth/fortyseventh/fortyeighth/fortyninth/fiftieth/fiftyfirst/fiftysecond/fiftythird/fiftyfourth/fiftyfifth/fiftysixth/fiftyseventh/fiftyeighth/fiftyninth/sixtieth/sixtyfirst/sixtysecond/sixtythird/sixtyfourth, sixtyfifth, sixtysixth, sixtyseventh, sixtyeighth, sixtyninth, seventieth, seventyfirst, seventysecond, seventythird, seventyfourth, seventyfifth, seventysixth, seventyseventh, seventyeighth, seventyninth, eightieth, eightyfirst, eightysecond, eightythird, eightyfourth, eightyfifth, eightysixth, eightyseventh, eightyeighth, eightyninth, ninetieth, ninetyfirst, ninetysecond, ninetythird, or null + * @return 'one'|'identity'|'square'|'cube'|'fourth'|'fifth'|'sixth'|'seventh'|'eighth'|'ninth'|'tenth'|'eleventh'|'twelfth'|'thirteenth'|'fourteenth'|'fifteenth'|'sixteenth'|'seventeenth'|'eighteenth'|'nineteenth'|'twentieth'|'twentyfirst'|'twentysecond'|'twentythird'|'twentyfourth'|'twentyfifth'|'twentysixth'|'twentyseventh'|'twentyeighth'|'twentyninth'|'thirtieth'|'thirtyfirst'|'thirtysecond'|'thirtythird'|'thirtyfourth'|'thirtyfifth'|'thirtysixth'|'thirtyseventh'|'thirtyeighth'|'thirtyninth'|'fortieth'|'fortyfirst'|'fortysecond'|'fortythird'|'fortyfourth'|'fortyfifth'|'fortysixth'|'fortyseventh'|'fortyeighth'|'fortyninth'|'fiftieth'|'fiftyfirst'|'fiftysecond'|'fiftythird'|'fiftyfourth'|'fiftyfifth'|'fiftysixth'|'fiftyseventh'|'fiftyeighth'|'fiftyninth'|'sixtieth'|'sixtyfirst'|'sixtysecond'|'sixtythird'|'sixtyfourth'|'sixtyfifth'|'sixtysixth'|'sixtyseventh'|'sixtyeighth'|'sixtyninth'|'seventieth'|'seventyfirst'|'seventysecond'|'seventythird'|'seventyfourth'|'seventyfifth'|'seventysixth'|'seventyseventh'|'seventyeighth'|'seventyninth'|'eightieth'|'eightyfirst'|'eightysecond'|'eightythird'|'eightyfourth'|'eightyfifth'|'eightysixth'|'eightyseventh'|'eightyeighth'|'eightyninth'|'ninetieth'|'ninetyfirst'|'ninetysecond'|'ninetythird'|'ninetyfourth'|null fold to 1, keep base, mul square/cube/fourth/fifth/sixth/seventh/eighth/ninth/tenth/eleventh/twelfth/thirteenth/fourteenth/fifteenth/sixteenth/seventeenth/eighteenth/nineteenth/twentieth/twentyfirst/twentysecond/twentythird/twentyfourth/twentyfifth/twentysixth/twentyseventh/twentyeighth/twentyninth/thirtieth/thirtyfirst/thirtysecond/thirtythird/thirtyfourth/thirtyfifth/thirtysixth/thirtyseventh/thirtyeighth/thirtyninth/fortieth/fortyfirst/fortysecond/fortythird/fortyfourth/fortyfifth/fortysixth/fortyseventh/fortyeighth/fortyninth/fiftieth/fiftyfirst/fiftysecond/fiftythird/fiftyfourth/fiftyfifth/fiftysixth/fiftyseventh/fiftyeighth/fiftyninth/sixtieth/sixtyfirst/sixtysecond/sixtythird/sixtyfourth, sixtyfifth, sixtysixth, sixtyseventh, sixtyeighth, sixtyninth, seventieth, seventyfirst, seventysecond, seventythird, seventyfourth, seventyfifth, seventysixth, seventyseventh, seventyeighth, seventyninth, eightieth, eightyfirst, eightysecond, eightythird, eightyfourth, eightyfifth, eightysixth, eightyseventh, eightyeighth, eightyninth, ninetieth, ninetyfirst, ninetysecond, ninetythird, ninetyfourth, or null */ public static function nativeLongPowCompileTimeExponentFold( Variable $exponent @@ -490,6 +491,9 @@ public static function nativeLongPowCompileTimeExponentFold( if (93 === $e) { return 'ninetythird'; } + if (94 === $e) { + return 'ninetyfourth'; + } return null; } diff --git a/script/size-budgets.json b/script/size-budgets.json index e783319d80..b68403d70a 100644 --- a/script/size-budgets.json +++ b/script/size-budgets.json @@ -644,9 +644,9 @@ "note": "nativeLongCompare* + nativeLongMul* + nativeLongArithIsCompileTimeIdentityOrZero extracted from NativeLongFolds (#36387); php-src Zend/zend_operators.c compare/mul/add/sub" }, "lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php": { - "budget": 496, + "budget": 500, "target": 600, - "note": "nativeLongPowCompileTimeExponentFold extracted from NativeLongFolds (#36387/#36386); includes ninetythird fold; php-src Zend/zend_operators.c pow_function / zend_pow / mul_function; ext/standard/math.c PHP_FUNCTION(pow)" + "note": "nativeLongPowCompileTimeExponentFold extracted from NativeLongFolds (#36387/#36386); includes ninetythird/ninetyfourth folds; php-src Zend/zend_operators.c pow_function / zend_pow / mul_function; ext/standard/math.c PHP_FUNCTION(pow)" }, "lib/JIT/DiscardedPureCallElisionIntrospectOps.php": { "budget": 407, @@ -724,9 +724,9 @@ "note": "integer pow()/ ** hub: Low/Mid/Exponents50to69/70to79/80to91/High dispatch (#36387/#36386)" }, "ext/standard/JitPowIntegerEmitHigh.php": { - "budget": 6151, - "target": 8000, - "note": "integer pow()/ ** chained-smul emit for ninetysecond..ninetythird; 80..91 in Exponents80to91 (#36387/#36386)" + "budget": 9323, + "target": 12000, + "note": "integer pow()/ ** chained-smul emit for ninetysecond..ninetyfourth; 80..91 in Exponents80to91 (#36387/#36386)" }, "ext/standard/JitPowIntegerEmitLow.php": { "budget": 3985, diff --git a/test/differential/OPCODE-CORPUS.md5 b/test/differential/OPCODE-CORPUS.md5 index f837ac54a6..7793a3b53d 100644 --- a/test/differential/OPCODE-CORPUS.md5 +++ b/test/differential/OPCODE-CORPUS.md5 @@ -288,7 +288,8 @@ test/differential/cases/pow_fourth_smul_36386.php ee5396091f6f9c186dd9a875550146 test/differential/cases/pow_nineteenth_smul_36386.php aafc67b69a6b7843ac706c090ea3e2ca test/differential/cases/pow_ninetieth_smul_36386.php 450a0909426f9f18af085b169f193faa test/differential/cases/pow_ninetyfirst_smul_36386.php 84be93828cace347396c3ace4b6660e7 -test/differential/cases/pow_ninetysecond_smul_36386.php c8153b0dca26103220d33dcbc67cf004 +test/differential/cases/pow_ninetyfourth_smul_36386.php af12381334065b04b0067038af5b30ad +test/differential/cases/pow_ninetysecond_smul_36386.php 30d528ddf53d7e3969484a1907509d48 test/differential/cases/pow_ninetythird_smul_36386.php 0031532bb9d830d07eda5e7e2c531fef test/differential/cases/pow_ninth_smul_36386.php 48acf646cd7ccb6121a01dd0a8ad65fa test/differential/cases/pow_seventeenth_smul_36386.php 1a32a1c8ef94785bf5b5cab539ed2d54 diff --git a/test/differential/cases/pow_ninetyfourth_smul_36386.php b/test/differential/cases/pow_ninetyfourth_smul_36386.php new file mode 100644 index 0000000000..2893f4af66 --- /dev/null +++ b/test/differential/cases/pow_ninetyfourth_smul_36386.php @@ -0,0 +1,25 @@ +assertPowNinetyfourth($src, 'work', ['0', '1', '1']); + } + + public function testBuiltinPowNinetyfourth(): void + { + $src = <<<'PHP' + assertPowNinetyfourth($src, 'work', ['1']); + } + + public function testPowNinetyfourthOverflowPromotesToFloat(): void + { + $src = <<<'PHP' + &1'; + exec($cmd, $out, $rc); + $this->assertSame(0, $rc, implode("\n", $out)); + $body = $this->functionBody((string) file_get_contents('/tmp/phpc-last.ll'), 'work'); + $this->assertStringNotContainsString('llvm.pow.f64', $body); + $this->assertStringContainsString('smul.with.overflow', $body); + exec(escapeshellarg($bin), $runOut, $runRc); + $this->assertSame(0, $runRc); + $this->assertSame(['double', 'double', 'double'], $runOut); + } finally { + putenv('PHP_COMPILER_DUMP_IR'); + putenv('PHP_COMPILER_CACHE'); + @unlink($path); + @unlink($bin); + } + } + + public function testRuntimeExponentKeepsPow(): void + { + $src = <<<'PHP' + &1'; + exec($cmd, $out, $rc); + $this->assertSame(0, $rc, implode("\n", $out)); + $body = $this->functionBody((string) file_get_contents('/tmp/phpc-last.ll'), 'work'); + $this->assertTrue( + false !== strpos($body, 'llvm.pow.f64') + || false !== strpos($body, '@llvm.pow') + || false !== strpos($body, 'phpc_fpow') + || false !== strpos($body, '__phpc_pow_int'), + "expected pow intrinsic/helper in IR:\n".$body + ); + exec(escapeshellarg($bin), $runOut, $runRc); + $this->assertSame(0, $runRc); + $this->assertSame(['1'], $runOut); + } finally { + putenv('PHP_COMPILER_DUMP_IR'); + putenv('PHP_COMPILER_CACHE'); + @unlink($path); + @unlink($bin); + } + } + + /** + * @param list $expectedRun + */ + private function assertPowNinetyfourth(string $src, string $fn, array $expectedRun): void + { + $path = sys_get_temp_dir().'/phpc_pow94_'.getmypid().'.php'; + $bin = sys_get_temp_dir().'/phpc_pow94_'.getmypid().'.bin'; + file_put_contents($path, $src); + try { + putenv('PHP_COMPILER_DUMP_IR=1'); + putenv('PHP_COMPILER_CACHE=0'); + $cmd = escapeshellarg(PHP_BINARY).' ' + .escapeshellarg(__DIR__.'/../../bin/compile.php').' -o ' + .escapeshellarg($bin).' '.escapeshellarg($path).' 2>&1'; + exec($cmd, $out, $rc); + $this->assertSame(0, $rc, implode("\n", $out)); + $body = $this->functionBody((string) file_get_contents('/tmp/phpc-last.ll'), $fn); + $this->assertStringNotContainsString('llvm.pow.f64', $body); + $this->assertStringNotContainsString('@llvm.pow', $body); + $this->assertStringNotContainsString('phpc_fpow', $body); + $this->assertStringContainsString('smul.with.overflow', $body); + exec(escapeshellarg($bin), $runOut, $runRc); + $this->assertSame(0, $runRc); + $this->assertSame($expectedRun, $runOut); + } finally { + putenv('PHP_COMPILER_DUMP_IR'); + putenv('PHP_COMPILER_CACHE'); + @unlink($path); + @unlink($bin); + } + } + + private function functionBody(string $ll, string $fn): string + { + if (!preg_match( + '/define[^\n]*@'.preg_quote($fn, '/').'[^\n]*\{(.*?)\n\}/s', + $ll, + $m + )) { + $this->fail("function @{$fn} not found in IR"); + } + + return $m[1]; + } +}