alan-baker

Results 62 issues of alan-baker

While transitioning LongVectorLowering to handle opaque pointers, I encountered an issue with the way these passes handle constexpr pointers. For example: ``` target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" target triple = "spir-unknown-unknown"...

bug

LLVM is moving towards using opaque pointers generally. The information that used to be in the pointer element type is available on GEPs and load/store instructions. Clspv needs to switch...

infrastructure

When updating LLVM (see #847), three-element vector lowering started get applied to some rotate tests. It seems to be due to the lifetime intrinsics bitcasts on the output argument. Should...

The latest changes to vector combining introduced some issues related to pointer bitcasts. Vector combining has been disabled temporarily, but it leads to an inefficiency in `test/vector_insert_element.cl` where instead of...

bug

Originally from https://github.com/KhronosGroup/SPIRV-Cross/issues/1511. ``` #define THREADS 256 #define THREADS_HALF (THREADS/2) __kernel void main_kernel(__global float* data, __global float* output, int count) { __local float list[THREADS]; const int point1Index = get_global_id(1); const...

Currently to support literal samplers, clspv requires a sampler map to be specified. Since the intervention of the descriptor map this is no longer necessary. Support for the sampler map...

enhancement

clspv currently replaces OpenCL atomic builtins with SPIR-V builtins. Instead we should use llvm atomic instructions throughout the flow and translate them in SPIRVProducerPass. Currently some of the builtins are...

bug

Half support is available in OpenCL-C with the extension cl_khr_fp16. Support appears to be in place to generate the Float16 capability and handle the half type generally. Add some targeted...

enhancement

Similar to #277 for 8-bit integers. Only output the minimal capabilities required.

enhancement

Generate 16-bit storage capabilities when possible. Similar to variable pointers, Clspv should add the minimal capabilities required to support the kernel. If arithmetic is not needed only generate the storage...

enhancement