tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

bug1953381.js (1187B)


      1 // |jit-test| skip-if: !wasmSimdEnabled()
      2 
      3 for (let [mask, exp] of [
      4    [0xFF000000, 0x12bcdef0], // optimized to PBLENDVB on x86
      5    [0x00FFFFFF, 0x9a345678], // optimized to PBLENDVB on x86
      6    [0xFFFF0000, 0x1234def0], // optimized to PBLENDW on x86
      7    [0x0000FFFF, 0x9abc5678], // optimized to PBLENDW on x86
      8    [0x10000000, 0x9abcdef0], // non-optimizable mask
      9    [0x9FFFFFFF, 0x12345678], // non-optimizable mask
     10    [0x00000000, 0x9abcdef0],
     11    [0xFFFFFFFF, 0x12345678],
     12 ]) {
     13    const ins = wasmEvalText(`(module
     14        (memory (export "memory") 1 1)
     15        (func (export "test")
     16          i32.const 48
     17          i32.const 0
     18          v128.load
     19          i32.const 16
     20          v128.load
     21          v128.const i32x4 ${mask} ${mask} ${mask} ${mask}
     22          v128.bitselect
     23          v128.store
     24        )
     25        (data (i32.const 0)  "\\78\\56\\34\\12\\78\\56\\34\\12\\78\\56\\34\\12\\78\\56\\34\\12")
     26        (data (i32.const 16) "\\f0\\de\\bc\\9a\\f0\\de\\bc\\9a\\f0\\de\\bc\\9a\\f0\\de\\bc\\9a")
     27    )`);
     28    ins.exports.test();
     29    var result = new DataView(ins.exports.memory.buffer).getUint32(48, true);
     30    var expected = exp >>> 0;
     31    assertEq(result, expected);
     32 }