Results 33 issues of aneshlya

Fix for #2283 . Usage of `&shufVec[shufSize]` when `shufVec` is `std::vector` seems invalid, so I changed it with to a standard array. It is the same approach as we use...

Support xehpc x16/x32 targets

Features
GPU

Make ISPC interoperable with oneAPI DPC++ on kernel level. Design docs: https://github.com/ispc/ispc/blob/main/docs/invoke_sycl.rst https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/proposed/SYCL_EXT_ONEAPI_INVOKE_SIMD.asciidoc

Features
GPU

Generating address spaces in LLVM IR according to OpenCL spec is needed for correct work of Xe targets.

Features
GPU

ISPC Runtime uses ambiguous names for external and internal interfaces so it is easy to mess up for end-user. The following improvements should be done: 1. improve naming in ISPC...

GPU

Need to design/implement matrix type in ISPC language.

Features

The last piece of changes related to opaque pointers. 1. Eliminated remaining usages of getPointerElementType 2. Fixed signature of `llvm.memcpy` intrinsic in opaque mode 3. Fixed lit tests

``` export void test(uniform float out[]) { uniform bool a = {1,0,1}; uniform bool b = a.zxy; out[programIndex] = b.x; } ``` https://godbolt.org/z/fETfseW84

Bugs

Introduce bfloat16 type in ISPC language. Support hardware instructions operating on bf16 when the platform has native bf16 support and implement emulation for the platforms without native bf16 support.

Features

New pass manager is the default in LLVM starting 13.0. https://llvm.org/docs/NewPassManager.html. We need to support the new pass manager in order to use up-to-date LLVM passes.