// |jit-test| test-also=--setpref=wasm_unroll_loops=true
// Loop unrolling test: 0 exiting values, 1 exit target => can be unrolled.
let t = `
(module
(memory (export "mem" ) 1 )
(func (export "my_memset" )
(param $start i32) (param $byte i32) (param $count i32)
(local $limit i32)
(local.set $limit (i32.add (local.get $start) (local.get $count)))
(if (i32.lt_u (local.get $start) (local.get $limit))
(then
(loop $cont
(i32.store8 (local.get $start) (local.get $byte ))
(local.set $start (i32.add (local.get $start) (i32.const 1 )))
(br_if $cont (i32.lt_u (local.get $start) (local.get $limit)))
)
)
)
)
)`;
let i = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(t)));
i.exports.my_memset(1 , 22 , 1 );
i.exports.my_memset(3 , 33 , 2 );
i.exports.my_memset(6 , 44 , 3 );
i.exports.my_memset(10 , 55 , 4 );
i.exports.my_memset(15 , 66 , 5 );
i.exports.my_memset(21 , 77 , 6 );
i.exports.my_memset(28 , 88 , 7 );
i.exports.my_memset(36 , 99 , 8 );
let buf = new Uint8Array(i.exports.mem.buffer);
let s = "" ;
for (let i = 0 ; i < 45 ; i++) {
s = s + (buf[i] + " " );
}
let expected =
"0 22 0 33 33 0 44 44 44 0 55 55 55 55 0 66 66 66 66 66 0 77 77 77 " +
"77 77 77 0 88 88 88 88 88 88 88 0 99 99 99 99 99 99 99 99 0 " ;
assertEq(s, expected);
Messung V0.5 in Prozent C=92 H=97 G=94
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-08-26)
¤
*© Formatika GbR, Deutschland