DPC++ daily 2021-10-11
Pre-release
Pre-release
bb-sycl
released this
11 Oct 17:48
·
131373 commits
to sycl
since this release
[ESIMD] Refactor esimd intrinsic mapping to BE intrinsics. (#4720) * [ESIMD] Refactor esimd intrinsic mapping to BE intrinsics. This patch - makes names and parameter lists of __esimd* intrinsics match their @llvm.genx counterparts. The benefits are: * this removes the extra logical translation layer between __esimd* and @llvm.genx thus simplifying overall user-level esimd intrinsic translation * allows to reuse lots of functionality between SLM and surface memory accesses - moves some of the translations and argument setting (like accessor field to surface index, setting scale) from LowerESIMD.cpp to the ESIMD headers, which simplifies code base. - for all memory intrinsics moves host and device implementations to the same intrinsic function prototype separating them via __SYCL_DEVICE_ONLY__ macro thus avoiding duplication of the prototypes - removes certain redundant __esimd* intrinsics, such as SLM memory accesses (which are normal surface accesses with special surface index 254), and __esimd_reduced_fmax,... which have the same functionality as usual fmax,... This is also a preparatory step for fixing SLM memory accesses (revising vector lengths, element types restirictions) Signed-off-by: Konstantin S Bobrovsky <[email protected]>