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 }