tor-browser

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

reduce-x64-ion-codegen.js (1207B)


      1 // |jit-test| skip-if: !wasmSimdEnabled() || !hasDisassembler() || wasmCompileMode() != "ion" || !getBuildConfiguration("x64") || getBuildConfiguration("simulator") || isAvxPresent(); include:codegen-x64-test.js
      2 
      3 // Test encoding of the all_true, and any_true operations.
      4 
      5 codegenTestX64_v128_i32(
      6     [['v128.any_true', `
      7 xor %eax, %eax
      8 ptest %xmm0, %xmm0
      9 setnz %al`],
     10     ['i8x16.all_true', `
     11 xor %eax, %eax
     12 pxor %xmm15, %xmm15
     13 pcmpeqb %xmm0, %xmm15
     14 ptest %xmm15, %xmm15
     15 setz %al`],
     16     ['i16x8.all_true', `
     17 xor %eax, %eax
     18 pxor %xmm15, %xmm15
     19 pcmpeqw %xmm0, %xmm15
     20 ptest %xmm15, %xmm15
     21 setz %al`],
     22     ['i32x4.all_true', `
     23 xor %eax, %eax
     24 pxor %xmm15, %xmm15
     25 pcmpeqd %xmm0, %xmm15
     26 ptest %xmm15, %xmm15
     27 setz %al`],
     28     ['i64x2.all_true', `
     29 xor %eax, %eax
     30 pxor %xmm15, %xmm15
     31 pcmpeqq %xmm0, %xmm15
     32 ptest %xmm15, %xmm15
     33 setz %al`]], {}
     34 )
     35 
     36 // Utils.
     37 function codegenTestX64_v128_i32(inputs, options = {}) {
     38     for ( let [op, expected] of inputs ) {
     39         codegenTestX64_adhoc(wrap(options, `
     40     (func (export "f") (param v128) (result i32)
     41       (${op} (local.get 0)))`),
     42                              'f',
     43                              expected,
     44                              options);
     45     }
     46 }