Lines Matching refs:skvm

16 static void test_jit_and_interpreter(const skvm::Builder& b, Fn&& test) {
17 skvm::Program p = b.done();
25 skvm::Builder b;
27 skvm::Ptr arg = b.varying<int>();
28 skvm::I32 l = b.load32(arg);
29 skvm::I32 a = b.add(l, l);
33 std::vector<skvm::Instruction> program = b.program();
36 program = skvm::eliminate_dead_code(program);
43 skvm::Builder b;
49 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
55 for (const skvm::OptimizedInstruction& inst : b.optimize()) {
61 skvm::Builder b;
64 test_jit_and_interpreter(b, [&](const skvm::Program& p) {
77 skvm::Builder b;
84 test_jit_and_interpreter(b, [&](const skvm::Program& p) {
98 skvm::Builder b;
114 skvm::Builder b;
115 skvm::Ptr arg = b.varying<int>();
120 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
139 skvm::Builder b;
141 skvm::UPtr uniforms = b.uniform();
142 skvm::Ptr buf = b.varying<int>();
143 skvm::I32 x = b.load32(buf);
147 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
187 skvm::Builder b;
189 skvm::UPtr uniforms = b.uniform();
190 skvm::Ptr buf32 = b.varying<int>(),
194 skvm::I32 x = b.load32(buf32);
201 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
245 skvm::Builder b;
247 skvm::UPtr uniforms = b.uniform();
248 skvm::Ptr buf32 = b.varying<int>(),
252 skvm::I32 x = b.load32(buf32);
259 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
294 skvm::Builder b;
296 skvm::Ptr ptr = b.varying<int>();
298 skvm::I32 x = b.load32(ptr);
312 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
320 skvm::Builder b;
322 skvm::Ptr src = b.varying<float>(),
325 skvm::F32 x = b.loadF(src);
331 std::vector<skvm::OptimizedInstruction> program = b.optimize();
333 REPORTER_ASSERT(r, program[0].op == skvm::Op::load32);
334 REPORTER_ASSERT(r, program[1].op == skvm::Op::neq_f32);
335 REPORTER_ASSERT(r, program[2].op == skvm::Op::bit_clear);
336 REPORTER_ASSERT(r, program[3].op == skvm::Op::store32);
338 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
352 skvm::Builder b;
354 skvm::Ptr arg = b.varying<float>();
356 skvm::F32 x = b.loadF(arg),
363 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
373 skvm::Builder b;
375 skvm::I32 x = b.load32(b.varying<int>());
377 auto to_bit = [&](int shift, skvm::I32 mask) {
381 skvm::I32 m = b.splat(0);
391 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
409 skvm::Builder b;
411 skvm::F32 x = b.loadF(b.varying<float>());
413 auto to_bit = [&](int shift, skvm::I32 mask) {
417 skvm::I32 m = b.splat(0);
428 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
446 skvm::Builder b;
449 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
462 skvm::Builder b;
464 skvm::Ptr arg = b.varying<int>();
466 skvm::F32 x = b.to_F32(b.load32(arg)),
474 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
488 skvm::Builder b;
490 skvm::Ptr arg = b.varying<int>();
492 skvm::F32 x = b.to_F32(b.load32(arg)),
498 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
510 skvm::Builder b;
512 skvm::Ptr arg = b.varying<int>();
514 skvm::F32 x = b.to_F32(b.load32(arg)),
520 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
531 skvm::Builder b;
533 skvm::Ptr arg = b.varying<float>();
535 skvm::F32 x = b.loadF(arg),
542 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
553 skvm::Builder b;
555 skvm::Ptr arg = b.varying<float>();
559 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
570 skvm::Builder b;
572 skvm::Ptr src = b.varying<float>();
573 skvm::Ptr dst = b.varying<int>();
579 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
592 skvm::Builder b;
594 skvm::Ptr src1 = b.varying<float>();
595 skvm::Ptr src2 = b.varying<float>();
596 skvm::Ptr dst = b.varying<float>();
601 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
614 skvm::Builder b;
616 skvm::Ptr src1 = b.varying<float>();
617 skvm::Ptr src2 = b.varying<float>();
618 skvm::Ptr dst = b.varying<float>();
623 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
638 skvm::Builder b;
640 skvm::Ptr arg = b.varying<int>();
641 skvm::I32 x = b.load32(arg);
648 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
658 skvm::Builder b;
660 skvm::Ptr buf = b.varying<int>();
662 skvm::I32 x = b.load32(buf);
669 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
679 skvm::Builder b;
692 skvm::Ptr X = b.varying<int>(),
695 skvm::I32 x = b.load32(X),
702 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
715 skvm::Builder b;
717 skvm::Ptr buf = b.varying<int16_t>();
718 skvm::UPtr uniforms = b.uniform();
720 skvm::I32 x = b.load16(buf);
728 skvm::I32 limit = b.uniform32(uniforms, kPtr+12);
737 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
776 skvm::Builder b;
777 skvm::Uniforms uniforms(b.uniform(), 0);
781 skvm::Uniform array = uniforms.pushArray(i);
783 skvm::Uniform arrayF = uniforms.pushArrayF(f);
785 skvm::Ptr buf0 = b.varying<int32_t>(),
789 skvm::I32 j = b.array32(array, 0);
791 skvm::I32 k = b.array32(array, 1);
794 skvm::F32 x = b.arrayF(arrayF, 0);
795 skvm::F32 y = b.arrayF(arrayF, 1);
799 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
834 skvm::Builder b;
838 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
858 skvm::Builder b;
861 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
873 skvm::Builder b;
877 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
884 skvm::Builder b;
887 test_jit_and_interpreter(b, [&](const skvm::Program& program) {
896 skvm::Builder p;
900 skvm::F32 r = p.loadF(rptr),
913 skvm::Builder p;
916 skvm::F32 r = p.loadF(rptr),
930 skvm::Builder p;
934 skvm::F32 r = p.loadF(rptr),
947 skvm::Builder p;
950 skvm::F32 r = p.loadF(rptr),
966 skvm::Assembler a{buf};
989 using A = skvm::Assembler;
1987 skvm::Builder b;
1988 skvm::Ptr inout = b.varying<float>();
2005 eval(N, values, [](skvm::Builder* b, skvm::F32 v) {
2016 eval(N, values, [](skvm::Builder* b, skvm::F32 v) {
2027 eval(N, bases, [](skvm::Builder* b, skvm::F32 base) {
2037 eval(N, exps, [](skvm::Builder* b, skvm::F32 exp) {
2045 skvm::Builder b;
2046 skvm::Ptr inout = b.varying<float>();
2061 skvm::Builder b;
2062 skvm::Ptr in0 = b.varying<float>();
2063 skvm::Ptr in1 = b.varying<float>();
2064 skvm::Ptr out = b.varying<float>();
2083 test(rad, sk_float_sin(rad), tol, [](skvm::F32 x) {
2086 test(rad, sk_float_cos(rad), tol, [](skvm::F32 x) {
2096 err += test(rad, sk_float_tan(rad), tol, [](skvm::F32 x) {
2100 test(rad, sk_float_tan(rad), tol, [=](skvm::F32 x) {
2103 test(rad, sk_float_tan(rad), tol, [=](skvm::F32 x) {
2115 err += test(x, asin(x), tol, [](skvm::F32 x) {
2118 test(x, acos(x), tol, [](skvm::F32 x) {
2126 err += test(x, atan(x), tol, [](skvm::F32 x) {
2134 err += test2(y, x, atan2(y,x), tol, [](skvm::F32 y, skvm::F32 x) {
2169 skvm::Builder b;
2171 skvm::Ptr src = b.varying<float>(),
2175 skvm::F32 x = b.loadF(src),
2182 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2198 skvm::Builder b;
2200 skvm::Ptr src = b.varying<float>(),
2204 skvm::F32 x = b.loadF(src),
2211 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2223 skvm::Builder b;
2225 skvm::Ptr src = b.varying<float>(),
2229 skvm::F32 x = b.splat(f[i]),
2236 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2253 skvm::Builder b;
2254 skvm::Ptr src = b.varying<uint16_t>(),
2258 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2267 skvm::Builder b;
2268 skvm::Ptr src = b.varying<float>(),
2272 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2294 skvm::Builder b;
2296 skvm::Ptr widePtr = b.varying<uint64_t>(),
2302 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2313 skvm::Builder b;
2315 skvm::Ptr widePtr = b.varying<uint64_t>(),
2320 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2338 skvm::PixelFormat rgba_ffff = skvm::SkColorType_to_PixelFormat(kRGBA_F32_SkColorType),
2339 rgba_8888 = skvm::SkColorType_to_PixelFormat(kRGBA_8888_SkColorType);
2342 skvm::Builder b;
2344 skvm::Ptr dst = b.varying(4),
2347 skvm::Color c = b.load(rgba_ffff, src);
2350 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2361 skvm::Builder b;
2363 skvm::Ptr dst = b.varying(16),
2366 skvm::Color c = b.load(rgba_8888, src);
2369 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2381 skvm::Builder b;
2383 skvm::Ptr src = b.varying<float>(),
2389 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2406 skvm::Builder b;
2408 skvm::Ptr dst = b.varying<float>(),
2421 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2436 skvm::Builder p;
2438 skvm::UPtr uniforms = p.uniform();
2439 skvm::Ptr dst = p.varying<uint16_t>();
2441 skvm::I32 r = round(p.uniformF(uniforms, 8) * 15),
2444 skvm::I32 _4444 = p.splat(0);
2450 test_jit_and_interpreter(p, [&](const skvm::Program& program){
2463 auto build_program = [](skvm::Builder* b) {
2464 skvm::F32 x = b->loadF(b->varying<float>());
2469 skvm::Features features;
2471 skvm::Builder b(features);
2477 skvm::Features features;
2479 skvm::Builder b(features);
2485 skvm::Builder b;
2496 skvm::Builder b;
2497 skvm::UPtr uniforms = b.uniform();
2498 skvm::Ptr buf = b.varying<int>();
2499 skvm::I32 ix = b.load32(buf);
2502 skvm::Program p = b.done();
2516 skvm::Builder b;
2517 skvm::UPtr uniforms = b.uniform();
2518 skvm::Ptr buf = b.varying<int>();
2519 skvm::I32 ix = b.uniform32(uniforms,8);
2522 skvm::Program p = b.done();
2542 skvm::Builder b;
2544 skvm::Ptr buf = b.varying<int>();
2550 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2563 skvm::Builder b;
2565 skvm::Ptr buf = b.varying<int>();
2571 test_jit_and_interpreter(b, [&](const skvm::Program& program){
2581 skvm::Builder b;
2583 skvm::Ptr src = b.varying<float>(),
2586 skvm::F32 x = b.loadF(src);
2590 test_jit_and_interpreter(b, [&](const skvm::Program& program){