diff --git a/ext/standard/JitPowIntegerEmitHigh.php b/ext/standard/JitPowIntegerEmitHigh.php index c640729c87..717a5a7ad6 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 (hundredfifth…hundredtenth) (#36387 / #36386). + * emit (hundredfifth…hundredeleventh) (#36387 / #36386). * * hundredth…hundredfourth live in {@see JitPowIntegerEmitExponents100to104}. * This TU holds further **N appends without growing the 100–104 file. @@ -24,6 +24,7 @@ * hundredeighth = hundredseventh×n omit llvm.pow.f64. * hundredninth = hundredeighth×n omit llvm.pow.f64. * hundredtenth = hundredninth×n omit llvm.pow.f64. + * hundredeleventh = hundredtenth×n omit llvm.pow.f64. * * No new C ABI. php-src: Zend/zend_operators.c {@code pow_function} / * {@code zend_pow} / {@code mul_function}; ext/standard/math.c @@ -51,6 +52,7 @@ public static function tryEmitIntegerPowViaMathFpow( 'hundredeighth' => true, 'hundredninth' => true, 'hundredtenth' => true, + 'hundredeleventh' => true, ]; if (!isset($high[$expFold])) { return false; @@ -24860,6 +24862,4488 @@ public static function tryEmitIntegerPowViaMathFpow( return true; } + + if ('hundredeleventh' === $expFold) { + // n^111 = hundredtenth*n; overflow arms +1 ×nF vs **110. + // 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 **111. + $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() **111 expected smul overflow metadata (sq)'); + } + $sqLong = JITVariable::KIND_VARIABLE === $sqVar->kind + ? $context->builder->load($sqVar->value) + : $sqVar->value; + $ov1Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sq_ov'); + $ok1Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sq_ok'); + $doneBlock = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhFSq = $context->builder->fmul($fortyfourthF, $sqF); + $hundredeleventhFEighth = $context->builder->fmul($hundredeleventhFSq, $sqF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhFEighth, $sqF); + $nF = $context->builder->siToFp($n, $f64); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $hundredeleventhF = $context->builder->fmul($hundredeleventhF, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF + ); + 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() **111 expected smul overflow metadata (cu)'); + } + $cuLong = JITVariable::KIND_VARIABLE === $cuVar->kind + ? $context->builder->load($cuVar->value) + : $cuVar->value; + $ov2Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_cu_ov'); + $ok2Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF2Sq = $context->builder->fmul($fortyfourthF2, $sqF2); + $hundredeleventhF2Eighth = $context->builder->fmul($hundredeleventhF2Sq, $sqF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2Eighth, $sqF2); + $nF2 = $context->builder->siToFp($n, $f64); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF2); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $hundredeleventhF2 = $context->builder->fmul($hundredeleventhF2, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF2 + ); + 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() **111 expected smul overflow metadata (fifth)'); + } + $fifthLong = JITVariable::KIND_VARIABLE === $fifthVar->kind + ? $context->builder->load($fifthVar->value) + : $fifthVar->value; + $ov3Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fifth_ov'); + $ok3Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF3Sq = $context->builder->fmul($fortyfourthF3, $sqF3); + $hundredeleventhF3Eighth = $context->builder->fmul($hundredeleventhF3Sq, $sqF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3Eighth, $sqF3); + $nF3 = $context->builder->siToFp($n, $f64); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF3); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $hundredeleventhF3 = $context->builder->fmul($hundredeleventhF3, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF3 + ); + 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() **111 expected smul overflow metadata (tenth)'); + } + $tenthLong = JITVariable::KIND_VARIABLE === $tenthVar->kind + ? $context->builder->load($tenthVar->value) + : $tenthVar->value; + $ov4Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_tenth_ov'); + $ok4Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF4Sq = $context->builder->fmul($fortyfourthF4, $sqF4); + $hundredeleventhF4Eighth = $context->builder->fmul($hundredeleventhF4Sq, $sqF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4Eighth, $sqF4); + $nF4 = $context->builder->siToFp($n, $f64); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF4); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $hundredeleventhF4 = $context->builder->fmul($hundredeleventhF4, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF4 + ); + 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() **111 expected smul overflow metadata (twentieth)'); + } + $twentiethLong = JITVariable::KIND_VARIABLE === $twentiethVar->kind + ? $context->builder->load($twentiethVar->value) + : $twentiethVar->value; + $ov5Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_twentieth_ov'); + $ok5Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF5Sq = $context->builder->fmul($fortyfourthF5, $sqF5); + $hundredeleventhF5Eighth = $context->builder->fmul($hundredeleventhF5Sq, $sqF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5Eighth, $sqF5); + $nF5 = $context->builder->siToFp($n, $f64); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF5); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $hundredeleventhF5 = $context->builder->fmul($hundredeleventhF5, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF5 + ); + 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() **111 expected smul overflow metadata (fortieth)'); + } + $fortiethLong = JITVariable::KIND_VARIABLE === $fortiethVar->kind + ? $context->builder->load($fortiethVar->value) + : $fortiethVar->value; + $ov6Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortieth_ov'); + $ok6Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF6Sq = $context->builder->fmul($fortyfourthF6, $sqF6); + $hundredeleventhF6Eighth = $context->builder->fmul($hundredeleventhF6Sq, $sqF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6Eighth, $sqF6); + $nF6 = $context->builder->siToFp($n, $f64); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF6); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $hundredeleventhF6 = $context->builder->fmul($hundredeleventhF6, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF6 + ); + 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() **111 expected smul overflow metadata (fortysecond)'); + } + $fortysecondLong = JITVariable::KIND_VARIABLE === $fortysecondVar->kind + ? $context->builder->load($fortysecondVar->value) + : $fortysecondVar->value; + $ov7Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortysecond_ov'); + $ok7Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF7Sq = $context->builder->fmul($fortyfourthF7, $sqF7); + $hundredeleventhF7Eighth = $context->builder->fmul($hundredeleventhF7Sq, $sqF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7Eighth, $sqF7); + $nF7 = $context->builder->siToFp($n, $f64); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF7); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $hundredeleventhF7 = $context->builder->fmul($hundredeleventhF7, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF7 + ); + 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() **111 expected smul overflow metadata (fortyfourth)'); + } + $fortyfourthLong = JITVariable::KIND_VARIABLE === $fortyfourthVar->kind + ? $context->builder->load($fortyfourthVar->value) + : $fortyfourthVar->value; + $ov8Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortyfourth_ov'); + $ok8Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortyfourth_ok'); + $context->builder->branchIf($ov8, $ov8Block, $ok8Block); + + $context->builder->positionAtEnd($ov8Block); + $fortyfourthF8 = $context->builder->load($fortyfourthVar->longArithOverflowDoubleSlot); + $sqF8 = $context->builder->siToFp($sqLong, $f64); + $hundredeleventhF8Sq = $context->builder->fmul($fortyfourthF8, $sqF8); + $hundredeleventhF8Eighth = $context->builder->fmul($hundredeleventhF8Sq, $sqF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8Eighth, $sqF8); + $nF8 = $context->builder->siToFp($n, $f64); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF8); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $hundredeleventhF8 = $context->builder->fmul($hundredeleventhF8, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF8 + ); + 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() **111 expected smul overflow metadata (fortysixth)'); + } + $fortysixthLong = JITVariable::KIND_VARIABLE === $fortysixthVar->kind + ? $context->builder->load($fortysixthVar->value) + : $fortysixthVar->value; + $ov9Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortysixth_ov'); + $ok9Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_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); + $hundredeleventhF9 = $context->builder->fmul($fortyeighthF9, $sqF9); + $nF9 = $context->builder->siToFp($n, $f64); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF9); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $hundredeleventhF9 = $context->builder->fmul($hundredeleventhF9, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF9 + ); + 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() **111 expected smul overflow metadata (fortyeighth)'); + } + $fortyeighthLong = JITVariable::KIND_VARIABLE === $fortyeighthVar->kind + ? $context->builder->load($fortyeighthVar->value) + : $fortyeighthVar->value; + $ov10Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortyeighth_ov'); + $ok10Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fortyeighth_ok'); + $context->builder->branchIf($ov10, $ov10Block, $ok10Block); + + $context->builder->positionAtEnd($ov10Block); + $fortyeighthF10 = $context->builder->load($fortyeighthVar->longArithOverflowDoubleSlot); + $sqF10 = $context->builder->siToFp($sqLong, $f64); + $hundredeleventhF10 = $context->builder->fmul($fortyeighthF10, $sqF10); + $nF10 = $context->builder->siToFp($n, $f64); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF10); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $hundredeleventhF10 = $context->builder->fmul($hundredeleventhF10, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF10 + ); + 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() **111 expected smul overflow metadata (fiftieth)'); + } + $fiftiethLong = JITVariable::KIND_VARIABLE === $fiftiethVar->kind + ? $context->builder->load($fiftiethVar->value) + : $fiftiethVar->value; + $ov11Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftieth_ov'); + $ok11Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftieth_ok'); + $context->builder->branchIf($ov11, $ov11Block, $ok11Block); + + $context->builder->positionAtEnd($ov11Block); + $fiftiethF11 = $context->builder->load($fiftiethVar->longArithOverflowDoubleSlot); + $nF11 = $context->builder->siToFp($n, $f64); + $hundredeleventhF11 = $context->builder->fmul($fiftiethF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF11); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $hundredeleventhF11 = $context->builder->fmul($hundredeleventhF11, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF11 + ); + 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() **111 expected smul overflow metadata (fiftyfirst)'); + } + $fiftyfirstLong = JITVariable::KIND_VARIABLE === $fiftyfirstVar->kind + ? $context->builder->load($fiftyfirstVar->value) + : $fiftyfirstVar->value; + $ov12Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyfirst_ov'); + $ok12Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyfirst_ok'); + $context->builder->branchIf($ov12, $ov12Block, $ok12Block); + + $context->builder->positionAtEnd($ov12Block); + $fiftyfirstF12 = $context->builder->load($fiftyfirstVar->longArithOverflowDoubleSlot); + $nF12 = $context->builder->siToFp($n, $f64); + $hundredeleventhF12 = $context->builder->fmul($fiftyfirstF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF12); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $hundredeleventhF12 = $context->builder->fmul($hundredeleventhF12, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF12 + ); + 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() **111 expected smul overflow metadata (fiftysecond)'); + } + $fiftysecondLong = JITVariable::KIND_VARIABLE === $fiftysecondVar->kind + ? $context->builder->load($fiftysecondVar->value) + : $fiftysecondVar->value; + $ov13Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftysecond_ov'); + $ok13Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftysecond_ok'); + $context->builder->branchIf($ov13, $ov13Block, $ok13Block); + + $context->builder->positionAtEnd($ov13Block); + $fiftysecondF13 = $context->builder->load($fiftysecondVar->longArithOverflowDoubleSlot); + $nF13 = $context->builder->siToFp($n, $f64); + $hundredeleventhF13 = $context->builder->fmul($fiftysecondF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF13); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $hundredeleventhF13 = $context->builder->fmul($hundredeleventhF13, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF13 + ); + 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() **111 expected smul overflow metadata (fiftythird)'); + } + $fiftythirdLong = JITVariable::KIND_VARIABLE === $fiftythirdVar->kind + ? $context->builder->load($fiftythirdVar->value) + : $fiftythirdVar->value; + $ov14Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftythird_ov'); + $ok14Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftythird_ok'); + $context->builder->branchIf($ov14, $ov14Block, $ok14Block); + + $context->builder->positionAtEnd($ov14Block); + $fiftythirdF14 = $context->builder->load($fiftythirdVar->longArithOverflowDoubleSlot); + $nF14 = $context->builder->siToFp($n, $f64); + $hundredeleventhF14 = $context->builder->fmul($fiftythirdF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF14); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $hundredeleventhF14 = $context->builder->fmul($hundredeleventhF14, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF14 + ); + 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() **111 expected smul overflow metadata (fiftyfourth)'); + } + $fiftyfourthLong = JITVariable::KIND_VARIABLE === $fiftyfourthVar->kind + ? $context->builder->load($fiftyfourthVar->value) + : $fiftyfourthVar->value; + $ov15Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyfourth_ov'); + $ok15Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyfourth_ok'); + $context->builder->branchIf($ov15, $ov15Block, $ok15Block); + + $context->builder->positionAtEnd($ov15Block); + $fiftyfourthF15 = $context->builder->load($fiftyfourthVar->longArithOverflowDoubleSlot); + $nF15 = $context->builder->siToFp($n, $f64); + $hundredeleventhF15 = $context->builder->fmul($fiftyfourthF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF15); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $hundredeleventhF15 = $context->builder->fmul($hundredeleventhF15, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF15 + ); + 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() **111 expected smul overflow metadata (fiftyfifth)'); + } + $fiftyfifthLong = JITVariable::KIND_VARIABLE === $fiftyfifthVar->kind + ? $context->builder->load($fiftyfifthVar->value) + : $fiftyfifthVar->value; + $ov16Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyfifth_ov'); + $ok16Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyfifth_ok'); + $context->builder->branchIf($ov16, $ov16Block, $ok16Block); + + $context->builder->positionAtEnd($ov16Block); + $fiftyfifthF16 = $context->builder->load($fiftyfifthVar->longArithOverflowDoubleSlot); + $nF16 = $context->builder->siToFp($n, $f64); + $hundredeleventhF16 = $context->builder->fmul($fiftyfifthF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF16); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $hundredeleventhF16 = $context->builder->fmul($hundredeleventhF16, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF16 + ); + 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() **111 expected smul overflow metadata (fiftysixth)'); + } + $fiftysixthLong = JITVariable::KIND_VARIABLE === $fiftysixthVar->kind + ? $context->builder->load($fiftysixthVar->value) + : $fiftysixthVar->value; + $ov17Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftysixth_ov'); + $ok17Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftysixth_ok'); + $context->builder->branchIf($ov17, $ov17Block, $ok17Block); + + $context->builder->positionAtEnd($ov17Block); + $fiftysixthF17 = $context->builder->load($fiftysixthVar->longArithOverflowDoubleSlot); + $nF17 = $context->builder->siToFp($n, $f64); + $hundredeleventhF17 = $context->builder->fmul($fiftysixthF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF17); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $hundredeleventhF17 = $context->builder->fmul($hundredeleventhF17, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF17 + ); + 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() **111 expected smul overflow metadata (fiftyseventh)'); + } + $fiftyseventhLong = JITVariable::KIND_VARIABLE === $fiftyseventhVar->kind + ? $context->builder->load($fiftyseventhVar->value) + : $fiftyseventhVar->value; + $ov18Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyseventh_ov'); + $ok18Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyseventh_ok'); + $context->builder->branchIf($ov18, $ov18Block, $ok18Block); + + $context->builder->positionAtEnd($ov18Block); + $fiftyseventhF18 = $context->builder->load($fiftyseventhVar->longArithOverflowDoubleSlot); + $nF18 = $context->builder->siToFp($n, $f64); + $hundredeleventhF18 = $context->builder->fmul($fiftyseventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF18); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $hundredeleventhF18 = $context->builder->fmul($hundredeleventhF18, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF18 + ); + 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() **111 expected smul overflow metadata (fiftyeighth)'); + } + $fiftyeighthLong = JITVariable::KIND_VARIABLE === $fiftyeighthVar->kind + ? $context->builder->load($fiftyeighthVar->value) + : $fiftyeighthVar->value; + $ov19Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyeighth_ov'); + $ok19Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyeighth_ok'); + $context->builder->branchIf($ov19, $ov19Block, $ok19Block); + + $context->builder->positionAtEnd($ov19Block); + $fiftyeighthF19 = $context->builder->load($fiftyeighthVar->longArithOverflowDoubleSlot); + $nF19 = $context->builder->siToFp($n, $f64); + $hundredeleventhF19 = $context->builder->fmul($fiftyeighthF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF19); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $hundredeleventhF19 = $context->builder->fmul($hundredeleventhF19, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF19 + ); + 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() **111 expected smul overflow metadata (fiftyninth)'); + } + $fiftyninthLong = JITVariable::KIND_VARIABLE === $fiftyninthVar->kind + ? $context->builder->load($fiftyninthVar->value) + : $fiftyninthVar->value; + $ov20Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyninth_ov'); + $ok20Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_fiftyninth_ok'); + $context->builder->branchIf($ov20, $ov20Block, $ok20Block); + + $context->builder->positionAtEnd($ov20Block); + $fiftyninthF20 = $context->builder->load($fiftyninthVar->longArithOverflowDoubleSlot); + $nF20 = $context->builder->siToFp($n, $f64); + $hundredeleventhF20 = $context->builder->fmul($fiftyninthF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF20); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $hundredeleventhF20 = $context->builder->fmul($hundredeleventhF20, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF20 + ); + 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() **111 expected smul overflow metadata (sixtieth)'); + } + $sixtiethLong = JITVariable::KIND_VARIABLE === $sixtiethVar->kind + ? $context->builder->load($sixtiethVar->value) + : $sixtiethVar->value; + $ov21Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtieth_ov'); + $ok21Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtieth_ok'); + $context->builder->branchIf($ov21, $ov21Block, $ok21Block); + + $context->builder->positionAtEnd($ov21Block); + $sixtiethF21 = $context->builder->load($sixtiethVar->longArithOverflowDoubleSlot); + $nF21 = $context->builder->siToFp($n, $f64); + $hundredeleventhF21 = $context->builder->fmul($sixtiethF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF21); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $hundredeleventhF21 = $context->builder->fmul($hundredeleventhF21, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF21 + ); + 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() **111 expected smul overflow metadata (sixtyfirst)'); + } + $sixtyfirstLong = JITVariable::KIND_VARIABLE === $sixtyfirstVar->kind + ? $context->builder->load($sixtyfirstVar->value) + : $sixtyfirstVar->value; + $ov22Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyfirst_ov'); + $ok22Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyfirst_ok'); + $context->builder->branchIf($ov22, $ov22Block, $ok22Block); + + $context->builder->positionAtEnd($ov22Block); + $sixtyfirstF22 = $context->builder->load($sixtyfirstVar->longArithOverflowDoubleSlot); + $nF22 = $context->builder->siToFp($n, $f64); + $hundredeleventhF22 = $context->builder->fmul($sixtyfirstF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF22); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $hundredeleventhF22 = $context->builder->fmul($hundredeleventhF22, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF22 + ); + 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() **111 expected smul overflow metadata (sixtysecond)'); + } + $sixtysecondLong = JITVariable::KIND_VARIABLE === $sixtysecondVar->kind + ? $context->builder->load($sixtysecondVar->value) + : $sixtysecondVar->value; + $ov23Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtysecond_ov'); + $ok23Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtysecond_ok'); + $context->builder->branchIf($ov23, $ov23Block, $ok23Block); + + $context->builder->positionAtEnd($ov23Block); + $sixtysecondF23 = $context->builder->load($sixtysecondVar->longArithOverflowDoubleSlot); + $nF23 = $context->builder->siToFp($n, $f64); + $hundredeleventhF23 = $context->builder->fmul($sixtysecondF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF23); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $hundredeleventhF23 = $context->builder->fmul($hundredeleventhF23, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF23 + ); + 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() **111 expected smul overflow metadata (sixtythird)'); + } + $sixtythirdLong = JITVariable::KIND_VARIABLE === $sixtythirdVar->kind + ? $context->builder->load($sixtythirdVar->value) + : $sixtythirdVar->value; + $ov24Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtythird_ov'); + $ok24Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtythird_ok'); + $context->builder->branchIf($ov24, $ov24Block, $ok24Block); + + $context->builder->positionAtEnd($ov24Block); + $sixtythirdF24 = $context->builder->load($sixtythirdVar->longArithOverflowDoubleSlot); + $nF24 = $context->builder->siToFp($n, $f64); + $hundredeleventhF24 = $context->builder->fmul($sixtythirdF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF24); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $hundredeleventhF24 = $context->builder->fmul($hundredeleventhF24, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF24 + ); + 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() **111 expected smul overflow metadata (sixtyfourth)'); + } + $sixtyfourthLong = JITVariable::KIND_VARIABLE === $sixtyfourthVar->kind + ? $context->builder->load($sixtyfourthVar->value) + : $sixtyfourthVar->value; + $ov25Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyfourth_ov'); + $ok25Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyfourth_ok'); + $context->builder->branchIf($ov25, $ov25Block, $ok25Block); + + $context->builder->positionAtEnd($ov25Block); + $sixtyfourthF25 = $context->builder->load($sixtyfourthVar->longArithOverflowDoubleSlot); + $nF25 = $context->builder->siToFp($n, $f64); + $hundredeleventhF25 = $context->builder->fmul($sixtyfourthF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF25); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $hundredeleventhF25 = $context->builder->fmul($hundredeleventhF25, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF25 + ); + 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() **111 expected smul overflow metadata (sixtyfifth)'); + } + $sixtyfifthLong = JITVariable::KIND_VARIABLE === $sixtyfifthVar->kind + ? $context->builder->load($sixtyfifthVar->value) + : $sixtyfifthVar->value; + $ov26Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyfifth_ov'); + $ok26Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyfifth_ok'); + $context->builder->branchIf($ov26, $ov26Block, $ok26Block); + + $context->builder->positionAtEnd($ov26Block); + $sixtyfifthF26 = $context->builder->load($sixtyfifthVar->longArithOverflowDoubleSlot); + $nF26 = $context->builder->siToFp($n, $f64); + $hundredeleventhF26 = $context->builder->fmul($sixtyfifthF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF26); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $hundredeleventhF26 = $context->builder->fmul($hundredeleventhF26, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF26 + ); + 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() **111 expected smul overflow metadata (sixtysixth)'); + } + $sixtysixthLong = JITVariable::KIND_VARIABLE === $sixtysixthVar->kind + ? $context->builder->load($sixtysixthVar->value) + : $sixtysixthVar->value; + $ov27Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtysixth_ov'); + $ok27Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtysixth_ok'); + $context->builder->branchIf($ov27, $ov27Block, $ok27Block); + + $context->builder->positionAtEnd($ov27Block); + $sixtysixthF27 = $context->builder->load($sixtysixthVar->longArithOverflowDoubleSlot); + $nF27 = $context->builder->siToFp($n, $f64); + $hundredeleventhF27 = $context->builder->fmul($sixtysixthF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF27); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $hundredeleventhF27 = $context->builder->fmul($hundredeleventhF27, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF27 + ); + 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() **111 expected smul overflow metadata (sixtyseventh)'); + } + $sixtyseventhLong = JITVariable::KIND_VARIABLE === $sixtyseventhVar->kind + ? $context->builder->load($sixtyseventhVar->value) + : $sixtyseventhVar->value; + $ov28Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyseventh_ov'); + $ok28Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyseventh_ok'); + $context->builder->branchIf($ov28, $ov28Block, $ok28Block); + + $context->builder->positionAtEnd($ov28Block); + $sixtyseventhF28 = $context->builder->load($sixtyseventhVar->longArithOverflowDoubleSlot); + $nF28 = $context->builder->siToFp($n, $f64); + $hundredeleventhF28 = $context->builder->fmul($sixtyseventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF28); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $hundredeleventhF28 = $context->builder->fmul($hundredeleventhF28, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF28 + ); + 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() **111 expected smul overflow metadata (sixtyeighth)'); + } + $sixtyeighthLong = JITVariable::KIND_VARIABLE === $sixtyeighthVar->kind + ? $context->builder->load($sixtyeighthVar->value) + : $sixtyeighthVar->value; + $ov29Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyeighth_ov'); + $ok29Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyeighth_ok'); + $context->builder->branchIf($ov29, $ov29Block, $ok29Block); + + $context->builder->positionAtEnd($ov29Block); + $sixtyeighthF29 = $context->builder->load($sixtyeighthVar->longArithOverflowDoubleSlot); + $nF29 = $context->builder->siToFp($n, $f64); + $hundredeleventhF29 = $context->builder->fmul($sixtyeighthF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF29); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $hundredeleventhF29 = $context->builder->fmul($hundredeleventhF29, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF29 + ); + 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() **111 expected smul overflow metadata (sixtyninth)'); + } + $sixtyninthLong = JITVariable::KIND_VARIABLE === $sixtyninthVar->kind + ? $context->builder->load($sixtyninthVar->value) + : $sixtyninthVar->value; + $ov30Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyninth_ov'); + $ok30Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_sixtyninth_ok'); + $context->builder->branchIf($ov30, $ov30Block, $ok30Block); + + $context->builder->positionAtEnd($ov30Block); + $sixtyninthF30 = $context->builder->load($sixtyninthVar->longArithOverflowDoubleSlot); + $nF30 = $context->builder->siToFp($n, $f64); + $hundredeleventhF30 = $context->builder->fmul($sixtyninthF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF30); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $hundredeleventhF30 = $context->builder->fmul($hundredeleventhF30, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF30 + ); + 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() **111 expected smul overflow metadata (seventieth)'); + } + $seventiethLong = JITVariable::KIND_VARIABLE === $seventiethVar->kind + ? $context->builder->load($seventiethVar->value) + : $seventiethVar->value; + $ov31Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventieth_ov'); + $ok31Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventieth_ok'); + $context->builder->branchIf($ov31, $ov31Block, $ok31Block); + + $context->builder->positionAtEnd($ov31Block); + $seventiethF31 = $context->builder->load($seventiethVar->longArithOverflowDoubleSlot); + $nF31 = $context->builder->siToFp($n, $f64); + $hundredeleventhF31 = $context->builder->fmul($seventiethF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF31); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $hundredeleventhF31 = $context->builder->fmul($hundredeleventhF31, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF31 + ); + 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() **111 expected smul overflow metadata (seventyfirst)'); + } + $seventyfirstLong = JITVariable::KIND_VARIABLE === $seventyfirstVar->kind + ? $context->builder->load($seventyfirstVar->value) + : $seventyfirstVar->value; + $ov32Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyfirst_ov'); + $ok32Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyfirst_ok'); + $context->builder->branchIf($ov32, $ov32Block, $ok32Block); + + $context->builder->positionAtEnd($ov32Block); + $seventyfirstF32 = $context->builder->load($seventyfirstVar->longArithOverflowDoubleSlot); + $nF32 = $context->builder->siToFp($n, $f64); + $hundredeleventhF32 = $context->builder->fmul($seventyfirstF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF32); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $hundredeleventhF32 = $context->builder->fmul($hundredeleventhF32, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF32 + ); + 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() **111 expected smul overflow metadata (seventysecond)'); + } + $seventysecondLong = JITVariable::KIND_VARIABLE === $seventysecondVar->kind + ? $context->builder->load($seventysecondVar->value) + : $seventysecondVar->value; + $ov33Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventysecond_ov'); + $ok33Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventysecond_ok'); + $context->builder->branchIf($ov33, $ov33Block, $ok33Block); + + $context->builder->positionAtEnd($ov33Block); + $seventysecondF33 = $context->builder->load($seventysecondVar->longArithOverflowDoubleSlot); + $nF33 = $context->builder->siToFp($n, $f64); + $hundredeleventhF33 = $context->builder->fmul($seventysecondF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($seventysecondF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF33); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $hundredeleventhF33 = $context->builder->fmul($hundredeleventhF33, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF33 + ); + 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() **111 expected smul overflow metadata (seventythird)'); + } + $seventythirdLong = JITVariable::KIND_VARIABLE === $seventythirdVar->kind + ? $context->builder->load($seventythirdVar->value) + : $seventythirdVar->value; + $ov34Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventythird_ov'); + $ok34Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventythird_ok'); + $context->builder->branchIf($ov34, $ov34Block, $ok34Block); + + $context->builder->positionAtEnd($ov34Block); + $seventythirdF34 = $context->builder->load($seventythirdVar->longArithOverflowDoubleSlot); + $nF34 = $context->builder->siToFp($n, $f64); + $hundredeleventhF34 = $context->builder->fmul($seventythirdF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF34); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $hundredeleventhF34 = $context->builder->fmul($hundredeleventhF34, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF34 + ); + 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() **111 expected smul overflow metadata (seventyfourth)'); + } + $seventyfourthLong = JITVariable::KIND_VARIABLE === $seventyfourthVar->kind + ? $context->builder->load($seventyfourthVar->value) + : $seventyfourthVar->value; + $ov35Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyfourth_ov'); + $ok35Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyfourth_ok'); + $context->builder->branchIf($ov35, $ov35Block, $ok35Block); + + $context->builder->positionAtEnd($ov35Block); + $seventyfourthF35 = $context->builder->load($seventyfourthVar->longArithOverflowDoubleSlot); + $nF35 = $context->builder->siToFp($n, $f64); + $hundredeleventhF35 = $context->builder->fmul($seventyfourthF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($seventyfourthF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF35); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $hundredeleventhF35 = $context->builder->fmul($hundredeleventhF35, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF35 + ); + 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() **111 expected smul overflow metadata (seventyfifth)'); + } + $seventyfifthLong = JITVariable::KIND_VARIABLE === $seventyfifthVar->kind + ? $context->builder->load($seventyfifthVar->value) + : $seventyfifthVar->value; + $ov36Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyfifth_ov'); + $ok36Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyfifth_ok'); + $context->builder->branchIf($ov36, $ov36Block, $ok36Block); + + $context->builder->positionAtEnd($ov36Block); + $seventyfifthF36 = $context->builder->load($seventyfifthVar->longArithOverflowDoubleSlot); + $nF36 = $context->builder->siToFp($n, $f64); + $hundredeleventhF36 = $context->builder->fmul($seventyfifthF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF36); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $hundredeleventhF36 = $context->builder->fmul($hundredeleventhF36, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF36 + ); + 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() **111 expected smul overflow metadata (seventysixth)'); + } + $seventysixthLong = JITVariable::KIND_VARIABLE === $seventysixthVar->kind + ? $context->builder->load($seventysixthVar->value) + : $seventysixthVar->value; + $ov37Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventysixth_ov'); + $ok37Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventysixth_ok'); + $context->builder->branchIf($ov37, $ov37Block, $ok37Block); + + $context->builder->positionAtEnd($ov37Block); + $seventysixthF37 = $context->builder->load($seventysixthVar->longArithOverflowDoubleSlot); + $nF37 = $context->builder->siToFp($n, $f64); + $hundredeleventhF37 = $context->builder->fmul($seventysixthF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF37); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $hundredeleventhF37 = $context->builder->fmul($hundredeleventhF37, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF37 + ); + 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() **111 expected smul overflow metadata (seventyseventh)'); + } + $seventyseventhLong = JITVariable::KIND_VARIABLE === $seventyseventhVar->kind + ? $context->builder->load($seventyseventhVar->value) + : $seventyseventhVar->value; + $ov38Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyseventh_ov'); + $ok38Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyseventh_ok'); + $context->builder->branchIf($ov38, $ov38Block, $ok38Block); + + $context->builder->positionAtEnd($ov38Block); + $seventyseventhF38 = $context->builder->load($seventyseventhVar->longArithOverflowDoubleSlot); + $nF38 = $context->builder->siToFp($n, $f64); + $hundredeleventhF38 = $context->builder->fmul($seventyseventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($seventyseventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF38); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $hundredeleventhF38 = $context->builder->fmul($hundredeleventhF38, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF38 + ); + 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() **111 expected smul overflow metadata (seventyeighth)'); + } + $seventyeighthLong = JITVariable::KIND_VARIABLE === $seventyeighthVar->kind + ? $context->builder->load($seventyeighthVar->value) + : $seventyeighthVar->value; + $ov39Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyeighth_ov'); + $ok39Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyeighth_ok'); + $context->builder->branchIf($ov39, $ov39Block, $ok39Block); + + $context->builder->positionAtEnd($ov39Block); + $seventyeighthF39 = $context->builder->load($seventyeighthVar->longArithOverflowDoubleSlot); + $nF39 = $context->builder->siToFp($n, $f64); + $hundredeleventhF39 = $context->builder->fmul($seventyeighthF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF39); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF); + $hundredeleventhF39 = $context->builder->fmul($hundredeleventhF39, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF39 + ); + 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() **111 expected smul overflow metadata (seventyninth)'); + } + $seventyninthLong = JITVariable::KIND_VARIABLE === $seventyninthVar->kind + ? $context->builder->load($seventyninthVar->value) + : $seventyninthVar->value; + $ov40Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyninth_ov'); + $ok40Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_seventyninth_ok'); + $context->builder->branchIf($ov40, $ov40Block, $ok40Block); + + $context->builder->positionAtEnd($ov40Block); + $seventyninthF40 = $context->builder->load($seventyninthVar->longArithOverflowDoubleSlot); + $nF40 = $context->builder->siToFp($n, $f64); + $hundredeleventhF40 = $context->builder->fmul($seventyninthF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF40); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF); + $hundredeleventhF40 = $context->builder->fmul($hundredeleventhF40, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF40 + ); + 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() **111 expected smul overflow metadata (eightieth)'); + } + $eightiethLong = JITVariable::KIND_VARIABLE === $eightiethVar->kind + ? $context->builder->load($eightiethVar->value) + : $eightiethVar->value; + $ov41Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightieth_ov'); + $ok41Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightieth_ok'); + $context->builder->branchIf($ov41, $ov41Block, $ok41Block); + + $context->builder->positionAtEnd($ov41Block); + $eightiethF41 = $context->builder->load($eightiethVar->longArithOverflowDoubleSlot); + $nF41 = $context->builder->siToFp($n, $f64); + $hundredeleventhF41 = $context->builder->fmul($eightiethF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF41); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF); + $hundredeleventhF41 = $context->builder->fmul($hundredeleventhF41, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF41 + ); + 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() **111 expected smul overflow metadata (eightyfirst)'); + } + $eightyfirstLong = JITVariable::KIND_VARIABLE === $eightyfirstVar->kind + ? $context->builder->load($eightyfirstVar->value) + : $eightyfirstVar->value; + $ov42Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyfirst_ov'); + $ok42Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyfirst_ok'); + $context->builder->branchIf($ov42, $ov42Block, $ok42Block); + + $context->builder->positionAtEnd($ov42Block); + $eightyfirstF42 = $context->builder->load($eightyfirstVar->longArithOverflowDoubleSlot); + $nF42 = $context->builder->siToFp($n, $f64); + $hundredeleventhF42 = $context->builder->fmul($eightyfirstF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF42); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF); + $hundredeleventhF42 = $context->builder->fmul($hundredeleventhF42, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF42 + ); + 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() **111 expected smul overflow metadata (eightysecond)'); + } + $eightysecondLong = JITVariable::KIND_VARIABLE === $eightysecondVar->kind + ? $context->builder->load($eightysecondVar->value) + : $eightysecondVar->value; + $ov43Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightysecond_ov'); + $ok43Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightysecond_ok'); + $context->builder->branchIf($ov43, $ov43Block, $ok43Block); + + $context->builder->positionAtEnd($ov43Block); + $eightysecondF43 = $context->builder->load($eightysecondVar->longArithOverflowDoubleSlot); + $nF43 = $context->builder->siToFp($n, $f64); + $hundredeleventhF43 = $context->builder->fmul($eightysecondF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($eightysecondF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($eightysecondF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($eightysecondF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($eightysecondF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF43); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF); + $hundredeleventhF43 = $context->builder->fmul($hundredeleventhF43, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF43 + ); + 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() **111 expected smul overflow metadata (eightythird)'); + } + $eightythirdLong = JITVariable::KIND_VARIABLE === $eightythirdVar->kind + ? $context->builder->load($eightythirdVar->value) + : $eightythirdVar->value; + $ov44Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightythird_ov'); + $ok44Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightythird_ok'); + $context->builder->branchIf($ov44, $ov44Block, $ok44Block); + + $context->builder->positionAtEnd($ov44Block); + $eightythirdF44 = $context->builder->load($eightythirdVar->longArithOverflowDoubleSlot); + $nF44 = $context->builder->siToFp($n, $f64); + $hundredeleventhF44 = $context->builder->fmul($eightythirdF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($eightythirdF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($eightythirdF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($eightythirdF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF44); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF); + $hundredeleventhF44 = $context->builder->fmul($hundredeleventhF44, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF44 + ); + 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() **111 expected smul overflow metadata (eightyfourth)'); + } + $eightyfourthLong = JITVariable::KIND_VARIABLE === $eightyfourthVar->kind + ? $context->builder->load($eightyfourthVar->value) + : $eightyfourthVar->value; + $ov45Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyfourth_ov'); + $ok45Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyfourth_ok'); + $context->builder->branchIf($ov45, $ov45Block, $ok45Block); + + $context->builder->positionAtEnd($ov45Block); + $eightyfourthF45 = $context->builder->load($eightyfourthVar->longArithOverflowDoubleSlot); + $nF45 = $context->builder->siToFp($n, $f64); + $hundredeleventhF45 = $context->builder->fmul($eightyfourthF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($eightyfourthF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($eightyfourthF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF45); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF); + $hundredeleventhF45 = $context->builder->fmul($hundredeleventhF45, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF45 + ); + 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() **111 expected smul overflow metadata (eightyfifth)'); + } + $eightyfifthLong = JITVariable::KIND_VARIABLE === $eightyfifthVar->kind + ? $context->builder->load($eightyfifthVar->value) + : $eightyfifthVar->value; + $ov46Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyfifth_ov'); + $ok46Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyfifth_ok'); + $context->builder->branchIf($ov46, $ov46Block, $ok46Block); + + $context->builder->positionAtEnd($ov46Block); + $eightyfifthF46 = $context->builder->load($eightyfifthVar->longArithOverflowDoubleSlot); + $nF46 = $context->builder->siToFp($n, $f64); + $hundredeleventhF46 = $context->builder->fmul($eightyfifthF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($eightyfifthF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF46); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF); + $hundredeleventhF46 = $context->builder->fmul($hundredeleventhF46, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF46 + ); + 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() **111 expected smul overflow metadata (eightysixth)'); + } + $eightysixthLong = JITVariable::KIND_VARIABLE === $eightysixthVar->kind + ? $context->builder->load($eightysixthVar->value) + : $eightysixthVar->value; + $ov47Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightysixth_ov'); + $ok47Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightysixth_ok'); + $context->builder->branchIf($ov47, $ov47Block, $ok47Block); + + $context->builder->positionAtEnd($ov47Block); + $eightysixthF47 = $context->builder->load($eightysixthVar->longArithOverflowDoubleSlot); + $nF47 = $context->builder->siToFp($n, $f64); + $hundredeleventhF47 = $context->builder->fmul($eightysixthF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF47); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF); + $hundredeleventhF47 = $context->builder->fmul($hundredeleventhF47, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF47 + ); + 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() **111 expected smul overflow metadata (eightyseventh)'); + } + $eightyseventhLong = JITVariable::KIND_VARIABLE === $eightyseventhVar->kind + ? $context->builder->load($eightyseventhVar->value) + : $eightyseventhVar->value; + $ov48Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyseventh_ov'); + $ok48Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyseventh_ok'); + $context->builder->branchIf($ov48, $ov48Block, $ok48Block); + + $context->builder->positionAtEnd($ov48Block); + $eightyseventhF48 = $context->builder->load($eightyseventhVar->longArithOverflowDoubleSlot); + $nF48 = $context->builder->siToFp($n, $f64); + $hundredeleventhF48 = $context->builder->fmul($eightyseventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($eightyseventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF48); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF); + $hundredeleventhF48 = $context->builder->fmul($hundredeleventhF48, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF48 + ); + 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() **111 expected smul overflow metadata (eightyeighth)'); + } + $eightyeighthLong = JITVariable::KIND_VARIABLE === $eightyeighthVar->kind + ? $context->builder->load($eightyeighthVar->value) + : $eightyeighthVar->value; + $ov49Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyeighth_ov'); + $ok49Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyeighth_ok'); + $context->builder->branchIf($ov49, $ov49Block, $ok49Block); + + $context->builder->positionAtEnd($ov49Block); + $eightyeighthF49 = $context->builder->load($eightyeighthVar->longArithOverflowDoubleSlot); + $nF49 = $context->builder->siToFp($n, $f64); + $hundredeleventhF49 = $context->builder->fmul($eightyeighthF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF49); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF); + $hundredeleventhF49 = $context->builder->fmul($hundredeleventhF49, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF49 + ); + 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() **111 expected smul overflow metadata (eightyninth)'); + } + $eightyninthLong = JITVariable::KIND_VARIABLE === $eightyninthVar->kind + ? $context->builder->load($eightyninthVar->value) + : $eightyninthVar->value; + $ov50Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyninth_ov'); + $ok50Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_eightyninth_ok'); + $context->builder->branchIf($ov50, $ov50Block, $ok50Block); + + $context->builder->positionAtEnd($ov50Block); + $eightyninthF50 = $context->builder->load($eightyninthVar->longArithOverflowDoubleSlot); + $nF50 = $context->builder->siToFp($n, $f64); + $hundredeleventhF50 = $context->builder->fmul($eightyninthF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF50); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF); + $hundredeleventhF50 = $context->builder->fmul($hundredeleventhF50, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF50 + ); + 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() **111 expected smul overflow metadata (ninetieth)'); + } + $ninetiethLong = JITVariable::KIND_VARIABLE === $ninetiethVar->kind + ? $context->builder->load($ninetiethVar->value) + : $ninetiethVar->value; + $ov51Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetieth_ov'); + $ok51Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetieth_ok'); + $context->builder->branchIf($ov51, $ov51Block, $ok51Block); + + $context->builder->positionAtEnd($ov51Block); + $ninetiethF51 = $context->builder->load($ninetiethVar->longArithOverflowDoubleSlot); + $nF51 = $context->builder->siToFp($n, $f64); + $hundredeleventhF51 = $context->builder->fmul($ninetiethF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF51); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF); + $hundredeleventhF51 = $context->builder->fmul($hundredeleventhF51, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF51 + ); + 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() **111 expected smul overflow metadata (ninetyfirst)'); + } + $ninetyfirstLong = JITVariable::KIND_VARIABLE === $ninetyfirstVar->kind + ? $context->builder->load($ninetyfirstVar->value) + : $ninetyfirstVar->value; + $ov52Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyfirst_ov'); + $ok52Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyfirst_ok'); + $context->builder->branchIf($ov52, $ov52Block, $ok52Block); + + $context->builder->positionAtEnd($ov52Block); + $ninetyfirstF52 = $context->builder->load($ninetyfirstVar->longArithOverflowDoubleSlot); + $nF52 = $context->builder->siToFp($n, $f64); + $hundredeleventhF52 = $context->builder->fmul($ninetyfirstF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF52); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF); + $hundredeleventhF52 = $context->builder->fmul($hundredeleventhF52, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF52 + ); + 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() **111 expected smul overflow metadata (ninetysecond)'); + } + $ninetysecondLong = JITVariable::KIND_VARIABLE === $ninetysecondVar->kind + ? $context->builder->load($ninetysecondVar->value) + : $ninetysecondVar->value; + $ov53Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetysecond_ov'); + $ok53Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetysecond_ok'); + $context->builder->branchIf($ov53, $ov53Block, $ok53Block); + + $context->builder->positionAtEnd($ov53Block); + $ninetysecondF53 = $context->builder->load($ninetysecondVar->longArithOverflowDoubleSlot); + $nF53 = $context->builder->siToFp($n, $f64); + $hundredeleventhF53 = $context->builder->fmul($ninetysecondF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF53); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF); + $hundredeleventhF53 = $context->builder->fmul($hundredeleventhF53, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF53 + ); + 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() **111 expected smul overflow metadata (ninetythird)'); + } + $ninetythirdLong = JITVariable::KIND_VARIABLE === $ninetythirdVar->kind + ? $context->builder->load($ninetythirdVar->value) + : $ninetythirdVar->value; + $ov54Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetythird_ov'); + $ok54Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetythird_ok'); + $context->builder->branchIf($ov54, $ov54Block, $ok54Block); + + $context->builder->positionAtEnd($ov54Block); + $ninetythirdF54 = $context->builder->load($ninetythirdVar->longArithOverflowDoubleSlot); + $nF54 = $context->builder->siToFp($n, $f64); + $hundredeleventhF54 = $context->builder->fmul($ninetythirdF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF54); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF); + $hundredeleventhF54 = $context->builder->fmul($hundredeleventhF54, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF54 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok54Block); + $ninetyfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetythirdLong, + $n + ); + $ov55 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetyfourthVar->longArithOverflowFlag); + if (null === $ov55 || null === $ninetyfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (ninetyfourth)'); + } + $ninetyfourthLong = JITVariable::KIND_VARIABLE === $ninetyfourthVar->kind + ? $context->builder->load($ninetyfourthVar->value) + : $ninetyfourthVar->value; + $ov55Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyfourth_ov'); + $ok55Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyfourth_ok'); + $context->builder->branchIf($ov55, $ov55Block, $ok55Block); + + $context->builder->positionAtEnd($ov55Block); + $ninetyfourthF55 = $context->builder->load($ninetyfourthVar->longArithOverflowDoubleSlot); + $nF55 = $context->builder->siToFp($n, $f64); + $hundredeleventhF55 = $context->builder->fmul($ninetyfourthF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF55); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF); + $hundredeleventhF55 = $context->builder->fmul($hundredeleventhF55, $nF); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF55 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok55Block); + + $ninetyfifthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetyfourthLong, + $n + ); + $ov56 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetyfifthVar->longArithOverflowFlag); + if (null === $ov56 || null === $ninetyfifthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (ninetyfifth)'); + } + $ninetyfifthLong = JITVariable::KIND_VARIABLE === $ninetyfifthVar->kind + ? $context->builder->load($ninetyfifthVar->value) + : $ninetyfifthVar->value; + $ov56Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyfifth_ov'); + $ok56Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyfifth_ok'); + $context->builder->branchIf($ov56, $ov56Block, $ok56Block); + + $context->builder->positionAtEnd($ov56Block); + $ninetyfifthF56 = $context->builder->load($ninetyfifthVar->longArithOverflowDoubleSlot); + $nF56 = $context->builder->siToFp($n, $f64); + $hundredeleventhF56 = $context->builder->fmul($ninetyfifthF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $hundredeleventhF56 = $context->builder->fmul($hundredeleventhF56, $nF56); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF56 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok56Block); + $ninetysixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetyfifthLong, + $n + ); + $ov57 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetysixthVar->longArithOverflowFlag); + if (null === $ov57 || null === $ninetysixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (ninetysixth)'); + } + $ninetysixthLong = JITVariable::KIND_VARIABLE === $ninetysixthVar->kind + ? $context->builder->load($ninetysixthVar->value) + : $ninetysixthVar->value; + $ov57Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetysixth_ov'); + $ok57Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetysixth_ok'); + $context->builder->branchIf($ov57, $ov57Block, $ok57Block); + + $context->builder->positionAtEnd($ov57Block); + $ninetysixthF57 = $context->builder->load($ninetysixthVar->longArithOverflowDoubleSlot); + $nF57 = $context->builder->siToFp($n, $f64); + $hundredeleventhF57 = $context->builder->fmul($ninetysixthF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $hundredeleventhF57 = $context->builder->fmul($hundredeleventhF57, $nF57); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF57 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok57Block); + $ninetyseventhVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetysixthLong, + $n + ); + $ov58 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetyseventhVar->longArithOverflowFlag); + if (null === $ov58 || null === $ninetyseventhVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (ninetyseventh)'); + } + $ninetyseventhLong = JITVariable::KIND_VARIABLE === $ninetyseventhVar->kind + ? $context->builder->load($ninetyseventhVar->value) + : $ninetyseventhVar->value; + $ov58Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyseventh_ov'); + $ok58Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyseventh_ok'); + $context->builder->branchIf($ov58, $ov58Block, $ok58Block); + + $context->builder->positionAtEnd($ov58Block); + $ninetyseventhF58 = $context->builder->load($ninetyseventhVar->longArithOverflowDoubleSlot); + $nF58 = $context->builder->siToFp($n, $f64); + $hundredeleventhF58 = $context->builder->fmul($ninetyseventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $hundredeleventhF58 = $context->builder->fmul($hundredeleventhF58, $nF58); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF58 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok58Block); + $ninetyeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetyseventhLong, + $n + ); + $ov59 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetyeighthVar->longArithOverflowFlag); + if (null === $ov59 || null === $ninetyeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (ninetyeighth)'); + } + $ninetyeighthLong = JITVariable::KIND_VARIABLE === $ninetyeighthVar->kind + ? $context->builder->load($ninetyeighthVar->value) + : $ninetyeighthVar->value; + $ov59Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyeighth_ov'); + $ok59Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyeighth_ok'); + $context->builder->branchIf($ov59, $ov59Block, $ok59Block); + + $context->builder->positionAtEnd($ov59Block); + $ninetyeighthF59 = $context->builder->load($ninetyeighthVar->longArithOverflowDoubleSlot); + $nF59 = $context->builder->siToFp($n, $f64); + $hundredeleventhF59 = $context->builder->fmul($ninetyeighthF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $hundredeleventhF59 = $context->builder->fmul($hundredeleventhF59, $nF59); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF59 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok59Block); + $ninetyninthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetyeighthLong, + $n + ); + $ov60 = JitLongArithOverflow::loadOverflowFlagI1($context, $ninetyninthVar->longArithOverflowFlag); + if (null === $ov60 || null === $ninetyninthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (ninetyninth)'); + } + $ninetyninthLong = JITVariable::KIND_VARIABLE === $ninetyninthVar->kind + ? $context->builder->load($ninetyninthVar->value) + : $ninetyninthVar->value; + $ov60Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyninth_ov'); + $ok60Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_ninetyninth_ok'); + $context->builder->branchIf($ov60, $ov60Block, $ok60Block); + + $context->builder->positionAtEnd($ov60Block); + $ninetyninthF60 = $context->builder->load($ninetyninthVar->longArithOverflowDoubleSlot); + $nF60 = $context->builder->siToFp($n, $f64); + $hundredeleventhF60 = $context->builder->fmul($ninetyninthF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $hundredeleventhF60 = $context->builder->fmul($hundredeleventhF60, $nF60); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF60 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok60Block); + $hundredthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $ninetyninthLong, + $n + ); + $ov61 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredthVar->longArithOverflowFlag); + if (null === $ov61 || null === $hundredthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredth)'); + } + $hundredthLong = JITVariable::KIND_VARIABLE === $hundredthVar->kind + ? $context->builder->load($hundredthVar->value) + : $hundredthVar->value; + $ov61Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredth_ov'); + $ok61Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredth_ok'); + $context->builder->branchIf($ov61, $ov61Block, $ok61Block); + + $context->builder->positionAtEnd($ov61Block); + $hundredthF61 = $context->builder->load($hundredthVar->longArithOverflowDoubleSlot); + $nF61 = $context->builder->siToFp($n, $f64); + $hundredeleventhF61 = $context->builder->fmul($hundredthF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $hundredeleventhF61 = $context->builder->fmul($hundredeleventhF61, $nF61); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF61 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok61Block); + $hundredfirstVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredthLong, + $n + ); + $ov62 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredfirstVar->longArithOverflowFlag); + if (null === $ov62 || null === $hundredfirstVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredfirst)'); + } + $hundredfirstLong = JITVariable::KIND_VARIABLE === $hundredfirstVar->kind + ? $context->builder->load($hundredfirstVar->value) + : $hundredfirstVar->value; + $ov62Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredfirst_ov'); + $ok62Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredfirst_ok'); + $context->builder->branchIf($ov62, $ov62Block, $ok62Block); + + $context->builder->positionAtEnd($ov62Block); + $hundredfirstF62 = $context->builder->load($hundredfirstVar->longArithOverflowDoubleSlot); + $nF62 = $context->builder->siToFp($n, $f64); + $hundredeleventhF62 = $context->builder->fmul($hundredfirstF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $hundredeleventhF62 = $context->builder->fmul($hundredeleventhF62, $nF62); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF62 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok62Block); + $hundredsecondVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredfirstLong, + $n + ); + $ov63 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredsecondVar->longArithOverflowFlag); + if (null === $ov63 || null === $hundredsecondVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredsecond)'); + } + $hundredsecondLong = JITVariable::KIND_VARIABLE === $hundredsecondVar->kind + ? $context->builder->load($hundredsecondVar->value) + : $hundredsecondVar->value; + $ov63Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredsecond_ov'); + $ok63Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredsecond_ok'); + $context->builder->branchIf($ov63, $ov63Block, $ok63Block); + + $context->builder->positionAtEnd($ov63Block); + $hundredsecondF63 = $context->builder->load($hundredsecondVar->longArithOverflowDoubleSlot); + $nF63 = $context->builder->siToFp($n, $f64); + $hundredeleventhF63 = $context->builder->fmul($hundredsecondF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $hundredeleventhF63 = $context->builder->fmul($hundredeleventhF63, $nF63); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF63 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok63Block); + $hundredthirdVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredsecondLong, + $n + ); + $ov64 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredthirdVar->longArithOverflowFlag); + if (null === $ov64 || null === $hundredthirdVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredthird)'); + } + $hundredthirdLong = JITVariable::KIND_VARIABLE === $hundredthirdVar->kind + ? $context->builder->load($hundredthirdVar->value) + : $hundredthirdVar->value; + $ov64Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredthird_ov'); + $ok64Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredthird_ok'); + $context->builder->branchIf($ov64, $ov64Block, $ok64Block); + + $context->builder->positionAtEnd($ov64Block); + $hundredthirdF64 = $context->builder->load($hundredthirdVar->longArithOverflowDoubleSlot); + $nF64 = $context->builder->siToFp($n, $f64); + $hundredeleventhF64 = $context->builder->fmul($hundredthirdF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $hundredeleventhF64 = $context->builder->fmul($hundredeleventhF64, $nF64); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF64 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok64Block); + $hundredfourthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredthirdLong, + $n + ); + $ov65 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredfourthVar->longArithOverflowFlag); + if (null === $ov65 || null === $hundredfourthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredfourth)'); + } + $hundredfourthLong = JITVariable::KIND_VARIABLE === $hundredfourthVar->kind + ? $context->builder->load($hundredfourthVar->value) + : $hundredfourthVar->value; + $ov65Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredfourth_ov'); + $ok65Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredfourth_ok'); + $context->builder->branchIf($ov65, $ov65Block, $ok65Block); + + $context->builder->positionAtEnd($ov65Block); + $hundredfourthF65 = $context->builder->load($hundredfourthVar->longArithOverflowDoubleSlot); + $nF65 = $context->builder->siToFp($n, $f64); + $hundredeleventhF65 = $context->builder->fmul($hundredfourthF65, $nF65); + $hundredeleventhF65 = $context->builder->fmul($hundredeleventhF65, $nF65); + $hundredeleventhF65 = $context->builder->fmul($hundredeleventhF65, $nF65); + $hundredeleventhF65 = $context->builder->fmul($hundredeleventhF65, $nF65); + $hundredeleventhF65 = $context->builder->fmul($hundredeleventhF65, $nF65); + $hundredeleventhF65 = $context->builder->fmul($hundredeleventhF65, $nF65); + $hundredeleventhF65 = $context->builder->fmul($hundredeleventhF65, $nF65); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF65 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok65Block); + $hundredfifthVar = JitLongArithOverflow::binaryNativeLong( + + $context, + + OpCode::TYPE_MUL, + + $hundredfourthLong, + + $n + + ); + + $ov66 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredfifthVar->longArithOverflowFlag); + + if (null === $ov66 || null === $hundredfifthVar->longArithOverflowDoubleSlot) { + + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredfifth)'); + + } + + $hundredfifthLong = JITVariable::KIND_VARIABLE === $hundredfifthVar->kind + + ? $context->builder->load($hundredfifthVar->value) + + : $hundredfifthVar->value; + + $ov66Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredfifth_ov'); + + $ok66Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredfifth_ok'); + + $context->builder->branchIf($ov66, $ov66Block, $ok66Block); + + + $context->builder->positionAtEnd($ov66Block); + + $hundredfifthF66 = $context->builder->load($hundredfifthVar->longArithOverflowDoubleSlot); + + $nF66 = $context->builder->siToFp($n, $f64); + + $hundredeleventhF66 = $context->builder->fmul($hundredfifthF66, $nF66); + $hundredeleventhF66 = $context->builder->fmul($hundredeleventhF66, $nF66); + $hundredeleventhF66 = $context->builder->fmul($hundredeleventhF66, $nF66); + + $hundredeleventhF66 = $context->builder->fmul($hundredeleventhF66, $nF66); + $context->builder->call( + + $context->lookupFunction('__value__writeDouble'), + + $slotPtr, + + $hundredeleventhF66 + + ); + + JitValueBox::publishAfterWrite($context, $slotPtr); + + $context->builder->branch($doneBlock); + + + $context->builder->positionAtEnd($ok66Block); + $hundredsixthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredfifthLong, + $n + ); + $ov67 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredsixthVar->longArithOverflowFlag); + if (null === $ov67 || null === $hundredsixthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredsixth)'); + } + $hundredsixthLong = JITVariable::KIND_VARIABLE === $hundredsixthVar->kind + ? $context->builder->load($hundredsixthVar->value) + : $hundredsixthVar->value; + $ov67Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredsixth_ov'); + $ok67Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredsixth_ok'); + $context->builder->branchIf($ov67, $ov67Block, $ok67Block); + + $context->builder->positionAtEnd($ov67Block); + $hundredsixthF67 = $context->builder->load($hundredsixthVar->longArithOverflowDoubleSlot); + $nF67 = $context->builder->siToFp($n, $f64); + $hundredeleventhF67 = $context->builder->fmul($hundredsixthF67, $nF67); + $hundredeleventhF67 = $context->builder->fmul($hundredeleventhF67, $nF67); + $hundredeleventhF67 = $context->builder->fmul($hundredeleventhF67, $nF67); + $hundredeleventhF67 = $context->builder->fmul($hundredeleventhF67, $nF67); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF67 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok67Block); + $hundredseventhVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredsixthLong, + $n + ); + $ov68 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredseventhVar->longArithOverflowFlag); + if (null === $ov68 || null === $hundredseventhVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredseventh)'); + } + $hundredseventhLong = JITVariable::KIND_VARIABLE === $hundredseventhVar->kind + ? $context->builder->load($hundredseventhVar->value) + : $hundredseventhVar->value; + $ov68Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredseventh_ov'); + $ok68Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredseventh_ok'); + $context->builder->branchIf($ov68, $ov68Block, $ok68Block); + + $context->builder->positionAtEnd($ov68Block); + $hundredseventhF68 = $context->builder->load($hundredseventhVar->longArithOverflowDoubleSlot); + $nF68 = $context->builder->siToFp($n, $f64); + $hundredeleventhF68 = $context->builder->fmul($hundredseventhF68, $nF68); + $hundredeleventhF68 = $context->builder->fmul($hundredeleventhF68, $nF68); + $hundredeleventhF68 = $context->builder->fmul($hundredeleventhF68, $nF68); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF68 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok68Block); + $hundredeighthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredseventhLong, + $n + ); + $ov69 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredeighthVar->longArithOverflowFlag); + if (null === $ov69 || null === $hundredeighthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredeighth)'); + } + $hundredeighthLong = JITVariable::KIND_VARIABLE === $hundredeighthVar->kind + ? $context->builder->load($hundredeighthVar->value) + : $hundredeighthVar->value; + $ov69Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredeighth_ov'); + $ok69Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredeighth_ok'); + $context->builder->branchIf($ov69, $ov69Block, $ok69Block); + + $context->builder->positionAtEnd($ov69Block); + $hundredeighthF69 = $context->builder->load($hundredeighthVar->longArithOverflowDoubleSlot); + $nF69 = $context->builder->siToFp($n, $f64); + $hundredeleventhF69 = $context->builder->fmul($hundredeighthF69, $nF69); + $hundredeleventhF69 = $context->builder->fmul($hundredeleventhF69, $nF69); + $hundredeleventhF69 = $context->builder->fmul($hundredeleventhF69, $nF69); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF69 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok69Block); + $hundredninthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredeighthLong, + $n + ); + $ov70 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredninthVar->longArithOverflowFlag); + if (null === $ov70 || null === $hundredninthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredninth)'); + } + $hundredninthLong = JITVariable::KIND_VARIABLE === $hundredninthVar->kind + ? $context->builder->load($hundredninthVar->value) + : $hundredninthVar->value; + $ov70Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredninth_ov'); + $ok70Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredninth_ok'); + $context->builder->branchIf($ov70, $ov70Block, $ok70Block); + + $context->builder->positionAtEnd($ov70Block); + $hundredninthF70 = $context->builder->load($hundredninthVar->longArithOverflowDoubleSlot); + $nF70 = $context->builder->siToFp($n, $f64); + $hundredeleventhF70 = $context->builder->fmul($hundredninthF70, $nF70); + $hundredeleventhF70 = $context->builder->fmul($hundredeleventhF70, $nF70); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF70 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok70Block); + + + $hundredtenthVar = JitLongArithOverflow::binaryNativeLong( + $context, + OpCode::TYPE_MUL, + $hundredninthLong, + $n + ); + $ov71 = JitLongArithOverflow::loadOverflowFlagI1($context, $hundredtenthVar->longArithOverflowFlag); + if (null === $ov71 || null === $hundredtenthVar->longArithOverflowDoubleSlot) { + throw new \LogicException('pow() **111 expected smul overflow metadata (hundredtenth)'); + } + $hundredtenthLong = JITVariable::KIND_VARIABLE === $hundredtenthVar->kind + ? $context->builder->load($hundredtenthVar->value) + : $hundredtenthVar->value; + $ov71Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredtenth_ov'); + $ok71Block = BasicBlockHelper::append($context, 'pow_hundredeleventh_hundredtenth_ok'); + $context->builder->branchIf($ov71, $ov71Block, $ok71Block); + + $context->builder->positionAtEnd($ov71Block); + $hundredtenthF71 = $context->builder->load($hundredtenthVar->longArithOverflowDoubleSlot); + $nF71 = $context->builder->siToFp($n, $f64); + $hundredeleventhF71 = $context->builder->fmul($hundredtenthF71, $nF71); + $context->builder->call( + $context->lookupFunction('__value__writeDouble'), + $slotPtr, + $hundredeleventhF71 + ); + JitValueBox::publishAfterWrite($context, $slotPtr); + $context->builder->branch($doneBlock); + + $context->builder->positionAtEnd($ok71Block); + + + JitLongArithOverflow::writeBoxedBinary( + $context, + OpCode::TYPE_MUL, + $hundredtenthLong, + $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 b99a048971..29971f9b2a 100644 --- a/lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php +++ b/lib/JIT/DiscardedPureCallElisionNativeLongPowFolds.php @@ -204,7 +204,7 @@ trait DiscardedPureCallElisionNativeLongPowFolds * {@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'|'ninetyfourth'|'ninetyfifth'|'ninetysixth'|'ninetyseventh'|'ninetyeighth'|'ninetyninth'|'hundredth'|'hundredfirst'|'hundredsecond'|'hundredthird'|'hundredfourth'|'hundredfifth'|'hundredsixth'|'hundredseventh'|'hundredeighth'|'hundredninth'|'hundredtenth'|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, ninetyfifth, ninetysixth, ninetyseventh, ninetyeighth, ninetyninth, hundredth, hundredfirst, hundredsecond, hundredthird, hundredfourth, hundredfifth, hundredsixth, hundredseventh, hundredeighth, hundredninth, hundredtenth, 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'|'ninetyfifth'|'ninetysixth'|'ninetyseventh'|'ninetyeighth'|'ninetyninth'|'hundredth'|'hundredfirst'|'hundredsecond'|'hundredthird'|'hundredfourth'|'hundredfifth'|'hundredsixth'|'hundredseventh'|'hundredeighth'|'hundredninth'|'hundredtenth'|'hundredeleventh'|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, ninetyfifth, ninetysixth, ninetyseventh, ninetyeighth, ninetyninth, hundredth, hundredfirst, hundredsecond, hundredthird, hundredfourth, hundredfifth, hundredsixth, hundredseventh, hundredeighth, hundredninth, hundredtenth, hundredeleventh, or null */ public static function nativeLongPowCompileTimeExponentFold( Variable $exponent @@ -546,6 +546,9 @@ public static function nativeLongPowCompileTimeExponentFold( if (110 === $e) { return 'hundredtenth'; } + if (111 === $e) { + return 'hundredeleventh'; + } return null; } diff --git a/script/size-budgets.json b/script/size-budgets.json index ea88f009f6..25af644ed4 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": 552, + "budget": 555, "target": 600, - "note": "nativeLongPowCompileTimeExponentFold extracted from NativeLongFolds (#36387/#36386); includes ninetyninth/hundredth/hundredfirst/hundredsecond/hundredthird/hundredfourth/hundredfifth/hundredsixth/hundredseventh/hundredeighth/hundredninth/hundredtenth 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 ninetyninth/hundredth/hundredfirst/hundredsecond/hundredthird/hundredfourth/hundredfifth/hundredsixth/hundredseventh/hundredeighth/hundredninth/hundredtenth/hundredeleventh fold; 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/80to85/86to88/80to91/92to95/96to99/100to104/High dispatch (#36387/#36386)" }, "ext/standard/JitPowIntegerEmitHigh.php": { - "budget": 24865, - "target": 30000, - "note": "integer pow()/ ** chained-smul emit for hundredfifth..hundredtenth; 100..104 in Exponents100to104 (#36387/#36386)" + "budget": 29349, + "target": 34349, + "note": "integer pow()/ ** chained-smul emit for hundredfifth..hundredeleventh; 100..104 in Exponents100to104 (#36387/#36386)" }, "ext/standard/JitPowIntegerEmitLow.php": { "budget": 3985, diff --git a/test/differential/OPCODE-CORPUS.md5 b/test/differential/OPCODE-CORPUS.md5 index 8543a3b802..61fc06b6a6 100644 --- a/test/differential/OPCODE-CORPUS.md5 +++ b/test/differential/OPCODE-CORPUS.md5 @@ -286,6 +286,7 @@ test/differential/cases/pow_fortythird_smul_36386.php bbcb71930aa9d623408734a0ef test/differential/cases/pow_fourteenth_smul_36386.php b90de9e0839b7185521ce15c3db89099 test/differential/cases/pow_fourth_smul_36386.php ee5396091f6f9c186dd9a87555014642 test/differential/cases/pow_hundredeighth_smul_36386.php 296f3bd0a6c8760c4039df7657af7b39 +test/differential/cases/pow_hundredeleventh_smul_36386.php 5dfbe6a2e279d26c42a764455deab031 test/differential/cases/pow_hundredfifth_smul_36386.php 2709a90617a47111702929bd2b9f2589 test/differential/cases/pow_hundredfirst_smul_36386.php 28eb08f97c159ece7564e39ec64f11c5 test/differential/cases/pow_hundredfourth_smul_36386.php 60dbc68597d338b8c321c72458c12ee5 diff --git a/test/differential/cases/pow_hundredeleventh_smul_36386.php b/test/differential/cases/pow_hundredeleventh_smul_36386.php new file mode 100644 index 0000000000..3dc182e9cf --- /dev/null +++ b/test/differential/cases/pow_hundredeleventh_smul_36386.php @@ -0,0 +1,18 @@ +assertPowHundredeleventh($src, 'work', ['0', '1', '-1']); + } + + public function testBuiltinPowHundredeleventh(): void + { + $src = <<<'PHP' + assertPowHundredeleventh($src, 'work', ['-1']); + } + + public function testPowHundredeleventhOverflowPromotesToFloat(): 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 assertPowHundredeleventh(string $src, string $fn, array $expectedRun): void + { + $path = sys_get_temp_dir().'/phpc_pow111_'.getmypid().'.php'; + $bin = sys_get_temp_dir().'/phpc_pow111_'.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]; + } +}