aboutsummaryrefslogtreecommitdiff
path: root/libclc/clspv
AgeCommit message (Collapse)AuthorFilesLines
2024-07-18libclc: increase fp16 support (#98149)Romaric Jodin1-0/+11
Increase fp16 support to allow clspv to continue to be OpenCL compliant following the update of the OpenCL-CTS adding more testing on math functions and conversions with half. Math functions are implemented by upscaling to fp32 and using the fp32 implementation. It garantees the accuracy required for half-precision float-point by the CTS.
2023-05-09libclc: clspv: fix fma, add vstore and fix inlining issuesKévin Petit4-120/+292
https://reviews.llvm.org/D147773 Patch by Romaric Jodin <rjodin@google.com>
2023-02-14libclc: add more generic implementations to clspv SOURCESKévin Petit1-2/+39
https://reviews.llvm.org/D134887 Patch by: Aaron Greig <aaron.greig@codeplay.com>
2023-02-13libclc: remove sqrt/rsqrt from clspv SOURCESKévin Petit1-3/+0
https://reviews.llvm.org/D134040 Patch by: Aaron Greig <aaron.greig@codeplay.com>
2021-03-04libclc: Add clspv target to libclcAlan Baker5-0/+343
Add clspv as a new target for libclc. clspv is an open-source compiler that compiles OpenCL C to Vulkan SPIR-V. Compiles for the spir target. The clspv target differs from the the spirv target in the following ways: * fma is modified to use uint2 instead of ulong for mantissas. This results in lower performance fma, but provides a implementation that can be used on more Vulkan devices where 64-bit integer support is less common. * Use of a software implementation of nextafter because the generic implementation depends on nextafter being a defined builtin function for which clspv has no definition. * Full optimization of the library (-O3) and no conversion to SPIR-V This library is close to what would be produced by running opt -O3 < builtins.opt.spirv-mesa3d-.bc > builtins.opt.clspv--.bc and continuing the build from that point. Reviewer: jvesely Differential Revision: https://reviews.llvm.org/D94013