Lines Matching refs:Stk
45 static void discard(InterpStack &Stk, PrimType T) { in discard() argument
46 TYPE_SWITCH(T, { Stk.discard<T>(); }); in discard()
49 static APSInt popToAPSInt(InterpStack &Stk, PrimType T) { in popToAPSInt() argument
50 INT_TYPE_SWITCH(T, return Stk.pop<T>().toAPSInt()); in popToAPSInt()
65 S.Stk.push<IntegralAP<true>>(Result); in pushInteger()
72 S.Stk.push<IntegralAP<false>>(Result); in pushInteger()
78 INT_TYPE_SWITCH(*T, { S.Stk.push<T>(T::from(V, BitWidth)); }); in pushInteger()
82 INT_TYPE_SWITCH(*T, { S.Stk.push<T>(T::from(V, BitWidth)); }); in pushInteger()
171 S.Stk.push<Boolean>(Boolean::from(S.inConstantContext())); in interp__builtin_is_constant_evaluated()
180 discard(S.Stk, *S.getContext().classify(Call->getArg(0))); in interp__builtin_assume()
190 Limit = popToAPSInt(S.Stk, *S.getContext().classify(Call->getArg(2))) in interp__builtin_strcmp()
193 const Pointer &B = S.Stk.pop<Pointer>(); in interp__builtin_strcmp()
194 const Pointer &A = S.Stk.pop<Pointer>(); in interp__builtin_strcmp()
269 const Pointer &StrPtr = S.Stk.pop<Pointer>(); in interp__builtin_strlen()
324 const Pointer &Arg = S.Stk.pop<Pointer>(); in interp__builtin_nan()
379 S.Stk.push<Floating>(Result); in interp__builtin_nan()
392 S.Stk.push<Floating>(Result); in interp__builtin_inf()
398 const Floating &Arg2 = S.Stk.pop<Floating>(); in interp__builtin_copysign()
399 const Floating &Arg1 = S.Stk.pop<Floating>(); in interp__builtin_copysign()
405 S.Stk.push<Floating>(Result); in interp__builtin_copysign()
412 const Floating &RHS = S.Stk.pop<Floating>(); in interp__builtin_fmin()
413 const Floating &LHS = S.Stk.pop<Floating>(); in interp__builtin_fmin()
420 S.Stk.push<Floating>(Result); in interp__builtin_fmin()
426 const Floating &RHS = S.Stk.pop<Floating>(); in interp__builtin_fmax()
427 const Floating &LHS = S.Stk.pop<Floating>(); in interp__builtin_fmax()
434 S.Stk.push<Floating>(Result); in interp__builtin_fmax()
444 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_isnan()
453 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_issignaling()
462 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_isinf()
475 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_isfinite()
484 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_isnormal()
493 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_issubnormal()
502 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_iszero()
511 const Floating &Arg = S.Stk.pop<Floating>(); in interp__builtin_signbit()
519 const Floating &RHS = S.Stk.pop<Floating>(); in interp_floating_comparison()
520 const Floating &LHS = S.Stk.pop<Floating>(); in interp_floating_comparison()
556 APSInt FPClassArg = popToAPSInt(S.Stk, FPClassArgT); in interp__builtin_isfpclass()
557 const Floating &F = S.Stk.pop<Floating>(); in interp__builtin_isfpclass()
571 const Floating &Val = S.Stk.pop<Floating>(); in interp__builtin_fpclassify()
576 Values[4 - I] = popToAPSInt(S.Stk, IntT); in interp__builtin_fpclassify()
608 const Floating &Val = S.Stk.pop<Floating>(); in interp__builtin_fabs()
611 S.Stk.push<Floating>(Val); in interp__builtin_fabs()
618 S.Stk.push<Floating>(Result); in interp__builtin_fabs()
626 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_abs()
640 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_popcount()
649 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_parity()
658 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_clrsb()
667 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_bitreverse()
698 S.Stk.discard<Floating>(); in interp__builtin_expect()
699 discard(S.Stk, ArgT); in interp__builtin_expect()
701 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_expect()
713 APSInt Amount = popToAPSInt(S.Stk, AmountT); in interp__builtin_rotate()
714 APSInt Value = popToAPSInt(S.Stk, ValueT); in interp__builtin_rotate()
732 APSInt Value = popToAPSInt(S.Stk, ArgT); in interp__builtin_ffs()
761 APSInt Arg = popToAPSInt(S.Stk, ArgT); in interp__builtin_eh_return_data_regno()
773 const Pointer &ResultPtr = S.Stk.pop<Pointer>(); in interp__builtin_overflowop()
779 APSInt RHS = popToAPSInt(S.Stk, RHST); in interp__builtin_overflowop()
780 APSInt LHS = popToAPSInt(S.Stk, LHST); in interp__builtin_overflowop()
869 S.Stk.push<Boolean>(Overflow); in interp__builtin_overflowop()
877 const Pointer &CarryOutPtr = S.Stk.pop<Pointer>(); in interp__builtin_carryop()
880 APSInt CarryIn = popToAPSInt(S.Stk, LHST); in interp__builtin_carryop()
881 APSInt RHS = popToAPSInt(S.Stk, RHST); in interp__builtin_carryop()
882 APSInt LHS = popToAPSInt(S.Stk, LHST); in interp__builtin_carryop()
934 Fallback = popToAPSInt(S.Stk, FallbackT); in interp__builtin_clz()
937 const APSInt &Val = popToAPSInt(S.Stk, ValT); in interp__builtin_clz()
965 Fallback = popToAPSInt(S.Stk, FallbackT); in interp__builtin_ctz()
968 const APSInt &Val = popToAPSInt(S.Stk, ValT); in interp__builtin_ctz()
987 const APSInt &Val = popToAPSInt(S.Stk, ValT); in interp__builtin_bswap()
991 { S.Stk.push<T>(T::from(Val.byteSwap().getZExtValue())); }); in interp__builtin_bswap()
1002 S.Stk.push<Boolean>(Value); in interp__builtin_atomic_lock_free()
1007 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_atomic_lock_free()
1008 const APSInt &SizeVal = popToAPSInt(S.Stk, ValT); in interp__builtin_atomic_lock_free()
1075 const APSInt &SizeVal = popToAPSInt(S.Stk, ValT); in interp__builtin_c11_atomic_is_lock_free()
1078 S.Stk.push<Boolean>(Value); in interp__builtin_c11_atomic_is_lock_free()
1098 const Floating &Arg2 = S.Stk.pop<Floating>(); in interp__builtin_complex()
1099 const Floating &Arg1 = S.Stk.pop<Floating>(); in interp__builtin_complex()
1100 Pointer &Result = S.Stk.peek<Pointer>(); in interp__builtin_complex()
1121 const APSInt &Alignment = popToAPSInt(S.Stk, AlignmentT); in interp__builtin_is_aligned_up_down()
1140 const APSInt &Src = popToAPSInt(S.Stk, FirstArgT); in interp__builtin_is_aligned_up_down()
1151 S.Stk.push<Boolean>((Src & AlignMinusOne) == 0); in interp__builtin_is_aligned_up_down()
1157 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_is_aligned_up_down()
1168 S.Stk.push<Boolean>(true); in interp__builtin_is_aligned_up_down()
1177 S.Stk.push<Boolean>(false); in interp__builtin_is_aligned_up_down()
1192 S.Stk.push<Pointer>(Ptr); in interp__builtin_is_aligned_up_down()
1210 S.Stk.push<Pointer>(Ptr.atIndex(NewOffset.getQuantity())); in interp__builtin_is_aligned_up_down()
1227 ExtraOffset = popToAPSInt(S.Stk, *S.Ctx.classify(Call->getArg(2))); in interp__builtin_assume_aligned()
1229 APSInt Alignment = popToAPSInt(S.Stk, *S.Ctx.classify(Call->getArg(1))); in interp__builtin_assume_aligned()
1230 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_assume_aligned()
1266 S.Stk.push<Pointer>(Ptr); in interp__builtin_assume_aligned()
1279 APSInt Index = popToAPSInt(S.Stk, IndexT); in interp__builtin_ia32_bextr()
1280 APSInt Val = popToAPSInt(S.Stk, ValT); in interp__builtin_ia32_bextr()
1311 APSInt Idx = popToAPSInt(S.Stk, IndexT); in interp__builtin_ia32_bzhi()
1312 APSInt Val = popToAPSInt(S.Stk, ValT); in interp__builtin_ia32_bzhi()
1332 APSInt Val = popToAPSInt(S.Stk, *S.Ctx.classify(Call->getArg(0))); in interp__builtin_ia32_lzcnt()
1345 APSInt Val = popToAPSInt(S.Stk, *S.Ctx.classify(Call->getArg(0))); in interp__builtin_ia32_tzcnt()
1360 APSInt Mask = popToAPSInt(S.Stk, MaskT); in interp__builtin_ia32_pdep()
1361 APSInt Val = popToAPSInt(S.Stk, ValT); in interp__builtin_ia32_pdep()
1383 APSInt Mask = popToAPSInt(S.Stk, MaskT); in interp__builtin_ia32_pext()
1384 APSInt Val = popToAPSInt(S.Stk, ValT); in interp__builtin_ia32_pext()
1407 const Pointer &CarryOutPtr = S.Stk.pop<Pointer>(); in interp__builtin_ia32_addcarry_subborrow()
1412 APSInt RHS = popToAPSInt(S.Stk, RHST); in interp__builtin_ia32_addcarry_subborrow()
1413 APSInt LHS = popToAPSInt(S.Stk, LHST); in interp__builtin_ia32_addcarry_subborrow()
1414 APSInt CarryIn = popToAPSInt(S.Stk, CarryInT); in interp__builtin_ia32_addcarry_subborrow()
1452 const auto &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_ptrauth_string_discriminator()
1501 discard(S.Stk, *S.getContext().classify(Arg)); in interp__builtin_operator_new()
1504 APSInt Bytes = popToAPSInt(S.Stk, *S.getContext().classify(Call->getArg(0))); in interp__builtin_operator_new()
1541 S.Stk.push<Pointer>(Pointer(B).atIndex(0)); in interp__builtin_operator_new()
1556 S.Stk.push<Pointer>(Pointer(B).atIndex(0)); in interp__builtin_operator_new()
1570 S.Stk.push<Pointer>(Pointer(B).atIndex(0).narrow()); in interp__builtin_operator_new()
1581 S.Stk.discard<Pointer>(); in interp__builtin_operator_delete()
1588 S.Stk.discard<Pointer>(); in interp__builtin_operator_delete()
1593 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_operator_delete()
1632 const Floating &Arg0 = S.Stk.pop<Floating>(); in interp__builtin_arithmetic_fence()
1633 S.Stk.push<Floating>(Arg0); in interp__builtin_arithmetic_fence()
1639 const Pointer &Arg = S.Stk.pop<Pointer>(); in interp__builtin_vector_reduce()
1701 APSInt Val = popToAPSInt(S.Stk, ArgT); in interp__builtin_elementwise_popcount()
1712 const Pointer &Arg = S.Stk.pop<Pointer>(); in interp__builtin_elementwise_popcount()
1714 const Pointer &Dst = S.Stk.peek<Pointer>(); in interp__builtin_elementwise_popcount()
1746 APSInt Size = popToAPSInt(S.Stk, SizeT); in interp__builtin_memcpy()
1747 const Pointer SrcPtr = S.Stk.pop<Pointer>(); in interp__builtin_memcpy()
1748 const Pointer DestPtr = S.Stk.pop<Pointer>(); in interp__builtin_memcpy()
1764 S.Stk.push<Pointer>(DestPtr); in interp__builtin_memcpy()
1888 S.Stk.push<Pointer>(DestPtr); in interp__builtin_memcpy()
1903 const APSInt &Size = popToAPSInt(S.Stk, SizeT); in interp__builtin_memcmp()
1904 const Pointer &PtrB = S.Stk.pop<Pointer>(); in interp__builtin_memcmp()
1905 const Pointer &PtrA = S.Stk.pop<Pointer>(); in interp__builtin_memcmp()
2019 MaxLength = popToAPSInt(S.Stk, MaxT); in interp__builtin_memchr()
2021 APSInt Desired = popToAPSInt(S.Stk, DesiredT); in interp__builtin_memchr()
2022 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_memchr()
2025 S.Stk.push<Pointer>(); in interp__builtin_memchr()
2057 S.Stk.push<Pointer>(); in interp__builtin_memchr()
2092 S.Stk.push<Pointer>(ElemPtr); in interp__builtin_memchr()
2104 S.Stk.push<Pointer>(); in interp__builtin_memchr()
2176 [[maybe_unused]] unsigned Kind = popToAPSInt(S.Stk, KindT).getZExtValue(); in interp__builtin_object_size()
2180 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_object_size()
2205 const Pointer &Ptr = S.Stk.pop<Pointer>(); in interp__builtin_is_within_lifetime()
2265 S.Stk, *S.getContext().classify(Call->getArg(1)->getType())); in interp__builtin_elementwise_sat()
2267 S.Stk, *S.getContext().classify(Call->getArg(0)->getType())); in interp__builtin_elementwise_sat()
2291 const Pointer &RHS = S.Stk.pop<Pointer>(); in interp__builtin_elementwise_sat()
2292 const Pointer &LHS = S.Stk.pop<Pointer>(); in interp__builtin_elementwise_sat()
2293 const Pointer &Dst = S.Stk.peek<Pointer>(); in interp__builtin_elementwise_sat()