let b: bool; // integer builtins let i: i32; clz(1); ctz(1); popcnt(1); rotl(1, 1); rotr(1, 1); i = clz(1); i = ctz(1); i = popcnt(1); i = rotl(1, 1); i = rotr(1, 1); let I: i64; clz(1); ctz(1); popcnt(1); rotl(1, 1); rotr(1, 1); I = clz(1); I = ctz(1); I = popcnt(1); I = rotl(1, 1); I = rotr(1, 1); // floating point builtins let f: f32; NaN; Infinity; abs(1.25); ceil(1.25); copysign(1.25, 2.5); floor(1.25); max(1.25, 2.5); min(1.25, 2.5); nearest(1.25); sqrt(1.25); trunc(1.25); isNaN(1.25); isFinite(1.25); f = NaN; f = Infinity; f = abs(1.25); f = ceil(1.25); f = copysign(1.25, 2.5); f = floor(1.25); f = max(1.25, 2.5); f = min(1.25, 2.5); f = nearest(1.25); f = sqrt(1.25); f = trunc(1.25); b = isNaN(1.25); b = isFinite(1.25); let F: f64; NaN; Infinity; NaN; Infinity; abs(1.25); ceil(1.25); copysign(1.25, 2.5); floor(1.25); max(1.25, 2.5); min(1.25, 2.5); nearest(1.25); sqrt(1.25); trunc(1.25); isNaN(1.25); isFinite(1.25); F = NaN; F = Infinity; F = abs(1.25); F = ceil(1.25); F = copysign(1.25, 2.5); F = floor(1.25); F = max(1.25, 2.5); F = min(1.25, 2.5); F = nearest(1.25); F = sqrt(1.25); F = trunc(1.25); b = isNaN(1.25); b = isFinite(1.25); // load and store builtins i = load(8); store(8, i); I = load(8); store(8, I); f = load(8); store(8, f); F = load(8); store(8, F); // reinterpretation builtins reinterpret(1.25); reinterpret(25); reinterpret(1.25); reinterpret(25); i = reinterpret(1.25); f = reinterpret(25); I = reinterpret(1.25); F = reinterpret(25); // host builtins let s: usize; current_memory(); grow_memory(1); s = current_memory(); s = grow_memory(1); // other builtins select(10, 20, true); select(100, 200, false); select(1.25, 2.5, true); select(12.5, 25.0, false); i = select(10, 20, true); I = select(100, 200, false); f = select(1.25, 2.5, true); F = select(12.5, 25.0, false); if (0) unreachable(); // AS specific builtins assert(true); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); sizeof(); if (NaN == NaN) unreachable(); if (!isNaN(NaN)) unreachable(); if (isFinite(NaN)) unreachable(); if (isFinite(Infinity)) unreachable(); if (!isFinite(0)) unreachable();