I expect that every browser implicitly uses SIMD by way of the compiler identifying and inserting the correct instructions (MMX, AVX2...), what exactly is Intel's contribution in this, did they manually vectorized some tight loop?
They list Intel's contribution extensively in the post. I'm not sure why you'd assume they are trying to deceive anyone.
> Intel has been contributing to Chakra, the JavaScript engine for Microsoft Edge
> Some examples of Intel’s direct contributions to Chakra’s JIT compiler include better instruction selection and scheduling.
> [they] also helped us identify opportunities of missed redundant instruction elimination, and inline overhead reduction.
> Intel engineers are collaborating with us closely to implement Single Instruction Multiple Data (SIMD) [1], a future ECMAScript proposal, in Chakra
> Intel recently contributed an optimization to improve navigation (load) time for pages containing several inline elements, optimizations to reduce DOM parse times for text-area elements, and participated in investigations and root cause analysis to improve page load/response times
"Implicit" use that you believe exists isn't actually SIMD. JIT-ers in the browsers can implicitly use SSE instruction set as such, but not in the efficient SIMD way (specifically under the constrains of JIT-ing reasonably fast and not possibly knowing the types). What is here developed is the support for the explicit use of SIMD instructions by the JavaScript programmer:
var a = SIMD.float32x4(1, 2, 3, 4);
var b = SIMD.float32x4(5, 6, 7, 8);
var c = SIMD.float32x4.add(a,b);
The benefit of such instructions is that they are fully typed and can easily map directly to the machine instructions. And of course, you don't have to write such code unless you actually program something that calculates a lot.
It is a Google/Mozilla/Intel collaboration, started 2013:
is already signed by people from Google, Intel and Mozilla and Intel obviously actively works with the browser vendors.
"This paper introduces an explicit SIMD programming model for Dart and JavaScript, we show that it can be compiled to efficient x86/SSE or ARM/Neon code by both Dart and JavaScript virtual machines achieving a 300%-600% speed increase across a variety of benchmarks. The result of this work is that more sophisticated and performant applications can be built to run in web browsers. The ideas introduced in this paper can also be used in other dynamically typed scripting languages to provide a similarly performant interface to SIMD co-processors."
What I don't know is if Intel keeps some patents or some sources. That could explain that Intel must be involved. But maybe they simply like to be involved.
This is for Chakra, IE's JS JIT. Of course the browser's C++ code is likely compiled with SIMD support, but that doesn't help the codegen in the JIT compiler for JS.
I expect that every browser implicitly uses SIMD by way of the compiler identifying and inserting the correct instructions (MMX, AVX2...), what exactly is Intel's contribution in this, did they manually vectorized some tight loop?