aneshlya
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...
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
Generating address spaces in LLVM IR according to OpenCL spec is needed for correct work of Xe targets.
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...
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
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.
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.