/** Performs the sign-agnostic count leading zero bits operation on a 32-bit or 64-bit integer. All zero bits are considered leading if the value is zero. */
/** Performs the sign-agnostic count tailing zero bits operation on a 32-bit or 64-bit integer. All zero bits are considered trailing if the value is zero. */
declarefunctionctz<T>(value: T):T;
/** Performs the sign-agnostic count number of one bits operation on a 32-bit or 64-bit integer. */
declarefunctionpopcnt<T>(value: T):T;
/** Performs the sign-agnostic rotate left operation on a 32-bit or 64-bit integer. */
declarefunctionrotl<T>(value: T,shift: T):T;
/** Performs the sign-agnostic rotate right operation on a 32-bit or 64-bit integer. */
declarefunctionrotr<T>(value: T,shift: T):T;
/** Computes the absolute value of a 32-bit or 64-bit float. */
declarefunctionabs<T>(value: T):T;
/** Performs the ceiling operation on a 32-bit or 64-bit float. */
declarefunctionceil<T>(value: T):T;
/** Composes a 32-bit or 64-bit float from the magnitude of `x` and the sign of `y`. */
declarefunctioncopysign<T>(x: T,y: T):T;
/** Performs the floor operation on a 32-bit or 64-bit float. */
declarefunctionfloor<T>(value: T):T;
/** Determines the maximum of two 32-bit or 64-bit floats. If either operand is `NaN`, returns `NaN`. */
declarefunctionmax<T>(left: T,right: T):T;
/** Determines the minimum of two 32-bit or 64-bit floats. If either operand is `NaN`, returns `NaN`. */
declarefunctionmin<T>(left: T,right: T):T;
/** Rounds to the nearest integer tied to even of a 32-bit or 64-bit float. */
declarefunctionnearest<T>(value: T):T;
/** Reinterprets the bits of a value of type `T1` as type `T2`. Valid reinterpretations are i32 to/from f32 and i64 to/from f64. */
declarefunctionreinterpret<T1,T2>(value: T1):T2;
/** Calculates the square root of a 32-bit or 64-bit float. */
declarefunctionsqrt<T>(value: T):T;
/** Rounds to the nearest integer towards zero of a 32-bit or 64-bit float. */
declarefunctiontrunc<T>(value: T):T;
/** Returns the current memory size in units of pages. One page is 64kb. */
declarefunctioncurrent_memory():i32;
/** Grows linear memory by a given unsigned delta of pages. One page is 64kb. Returns the previous memory size in units of pages or `-1` on failure. */
declarefunctiongrow_memory(value: i32):i32;
/** Emits an unreachable operation that results in a runtime error when executed. */
declarefunctionunreachable():void;
/** Loads a value of the specified type from memory. */
declarefunctionload<T>(offset: usize):T;
/** Stores a value of the specified type to memory. */