Lines Matching refs:F32

125     skvm::F32 sk_program_transfer_fn(
126 skvm::F32 v, TFKind tf_kind,
127 skvm::F32 G, skvm::F32 A, skvm::F32 B, skvm::F32 C, skvm::F32 D, skvm::F32 E, skvm::F32 F) {
260 write(o, "(F32)");
686 void Builder::trace_var(I32 mask, int slot, F32 val) {
762 F32 Builder::add(F32 x, F32 y) {
778 F32 Builder::sub(F32 x, F32 y) {
792 F32 Builder::mul(F32 x, F32 y) {
799 F32 Builder::fast_mul(F32 x, F32 y) {
804 F32 Builder::div(F32 x, F32 y) {
810 F32 Builder::sqrt(F32 x) {
816 F32 Builder::approx_log2(F32 x) {
818 F32 e = mul(to_F32(pun_to_I32(x)), splat(1.0f / (1<<23)));
821 F32 m = pun_to_F32(bit_or(bit_and(pun_to_I32(x), 0x007fffff),
823 F32 approx = sub(e, 124.225514990f);
830 F32 Builder::approx_pow2(F32 x) {
831 F32 f = fract(x);
832 F32 approx = add(x, 121.274057500f);
839 F32 Builder::approx_powf(F32 x, F32 y) {
856 F32 Builder::approx_sin(F32 radians) {
859 F32 x = fract(radians * (0.5f/Pi)) * (2*Pi);
863 F32 pair = x * (Pi - x);
890 F32 Builder::approx_tan(F32 x) {
913 F32 Builder::approx_asin(F32 x) {
925 static F32 approx_atan_unit(F32 x) {
937 F32 Builder::approx_atan(F32 x) {
952 F32 Builder::approx_atan2(F32 y0, F32 x0) {
955 F32 y = select(flip, x0, y0);
956 F32 x = select(flip, y0, x0);
957 F32 arg = y/x;
962 F32 r = approx_atan_unit(arg);
973 F32 Builder::min(F32 x, F32 y) {
977 F32 Builder::max(F32 x, F32 y) {
1022 I32 Builder:: eq(F32 x, F32 y) {
1026 I32 Builder::neq(F32 x, F32 y) {
1030 I32 Builder::lt(F32 x, F32 y) {
1034 I32 Builder::lte(F32 x, F32 y) {
1038 I32 Builder::gt(F32 x, F32 y) {
1042 I32 Builder::gte(F32 x, F32 y) {
1122 F32 Builder::ceil(F32 x) {
1126 F32 Builder::floor(F32 x) {
1130 F32 Builder::to_F32(I32 x) {
1134 I32 Builder::trunc(F32 x) {
1138 I32 Builder::round(F32 x) {
1143 I32 Builder::to_fp16(F32 x) {
1147 F32 Builder::from_fp16(I32 x) {
1152 F32 Builder::from_unorm(int bits, I32 x) {
1153 F32 limit = splat(1 / ((1<<bits)-1.0f));
1156 I32 Builder::to_unorm(int bits, F32 x) {
1157 F32 limit = splat((1<<bits)-1.0f);
1214 auto from_srgb = [](int bits, I32 channel) -> F32 {
1216 F32 v = from_unorm(bits, channel);
1227 auto unpack_rgb = [=](int bits, int shift) -> F32 {
1236 auto unpack_alpha = [=](int bits, int shift) -> F32 {
1272 // The only 16-byte format we support today is RGBA F32,
1358 auto to_srgb = [](int bits, F32 v) {
1371 auto pack_rgb = [&](F32 channel, int bits, int shift) {
1380 auto pack_alpha = [&](F32 channel, int bits, int shift) {
1428 void Builder::unpremul(F32* r, F32* g, F32* b, F32 a) {
1429 skvm::F32 invA = 1.0f / a,
1439 void Builder::premul(F32* r, F32* g, F32* b, F32 a) {
1455 F32 Builder::lerp(F32 lo, F32 hi, F32 t) {
1461 Color Builder::lerp(Color lo, Color hi, F32 t) {
1471 F32 mx = max(max(c.r,c.g),c.b),
1478 F32 h = (1/6.0f) * select(mx == mn, 0.0f,
1483 F32 sum = mx + mn,
1495 F32 x = s * (1.0f - abs(l + l - 1.0f));
1518 static skvm::F32 saturation(skvm::F32 r, skvm::F32 g, skvm::F32 b) {
1523 static skvm::F32 luminance(skvm::F32 r, skvm::F32 g, skvm::F32 b) {
1527 static void set_sat(skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32 s) {
1528 F32 mn = min(*r, min(*g, *b)),
1533 auto scale = [&](skvm::F32 c) {
1542 static void set_lum(skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32 lu) {
1549 static void clip_color(skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32 a) {
1550 F32 mn = min(*r, min(*g, *b)),
1567 auto mma = [](skvm::F32 x, skvm::F32 y, skvm::F32 z, skvm::F32 w) {
1571 auto two = [](skvm::F32 x) { return x+x; };
1748 skvm::F32 R = src.r * src.a,
1760 skvm::F32 R = dst.r * src.a,
1772 skvm::F32 R = src.r * dst.a,
1783 skvm::F32 R = dst.r * src.a,
2671 *F32 = scalar ? f32 : llvm::VectorType::get(f32, K, false );
2674 auto F = [&](llvm::Value* v) { return b->CreateBitCast(v, F32 ); };
2790 vals[i] = I(b->CreateIntrinsic(llvm::Intrinsic::fma, {F32},
2795 vals[i] = I(b->CreateIntrinsic(llvm::Intrinsic::fma, {F32},
2801 vals[i] = I(b->CreateIntrinsic(llvm::Intrinsic::fma, {F32},
2826 case Op::to_f32: vals[i] = I(b->CreateSIToFP( vals[x] , F32)); break;