From ba49127756192a246ed2607e8eb5ab3060af369f Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Wed, 29 Jun 2016 12:30:26 +0000 Subject: [PATCH] [OpenCL] Add attribute 'pure' to read_image built-in functions to enable optimizations. Reviewers: Anastasia, yaxunl Subscribers: pekka.jaaskelainen, pxli168, cfe-commits Differential Revision: http://reviews.llvm.org/D21795 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274122 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Headers/opencl-c.h | 430 ++++++++++++++++++++--------------------- 1 file changed, 215 insertions(+), 215 deletions(-) diff --git a/lib/Headers/opencl-c.h b/lib/Headers/opencl-c.h index 6f961e4215..10d895bfcb 100644 --- a/lib/Headers/opencl-c.h +++ b/lib/Headers/opencl-c.h @@ -19,7 +19,7 @@ #define __ovld __attribute__((overloadable)) // Optimizations - +#define __purefn __attribute__((pure)) #define __cnfn __attribute__((const)) // built-in scalar data types: @@ -15685,142 +15685,142 @@ int printf(__constant const char* st, ...); * in the description above are undefined. */ -float4 __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord); -float4 __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord); +float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord); +float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord); -int4 __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord); -int4 __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord); -uint4 __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord); -uint4 __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord); +int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord); +int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord); +uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord); +uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord); -float4 __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord); -float4 __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord); +float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord); +float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord); -int4 __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord); -int4 __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord); -uint4 __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord); -uint4 __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord); +int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord); +int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord); +uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord); +uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord); -float4 __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -float4 __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); +float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -int4 __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -int4 __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -uint4 __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -uint4 __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); +int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); +uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -float4 __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord); -float4 __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord); +float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord); +float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord); -int4 __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord); -int4 __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord); -uint4 __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord); -uint4 __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord); +int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord); +int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord); +uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord); +uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord); -float4 __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -float4 __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); +float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); -int4 __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -int4 __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); -uint4 __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -uint4 __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); +int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); +uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); #ifdef cl_khr_depth_images -float __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord); -float __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord); +float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord); +float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord); -float __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord); -float __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord); +float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord); +float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -float4 __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample); -int4 __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample); -uint4 __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample); +float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample); +int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample); +uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample); -float __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample); +float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample); -float4 __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample); -int4 __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample); -uint4 __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample); +float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample); +int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample); +uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample); -float __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample); +float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample); #endif //cl_khr_gl_msaa_sharing // OpenCL Extension v2.0 s9.18 - Mipmaps #ifdef cl_khr_mipmap_image -float4 __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); -int4 __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); +float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); +int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); -float4 __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -float __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -float __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); -float4 __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -float4 __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -float4 __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -float4 __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -float __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -float4 __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -float __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -float4 __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -float4 __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); -int4 __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); +float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); +int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); -float4 __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -float __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -float __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); -float4 __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); #endif //cl_khr_mipmap_image @@ -15828,181 +15828,181 @@ uint4 __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 c * Sampler-less Image Access */ -float4 __ovld read_imagef(read_only image1d_t image, int coord); -int4 __ovld read_imagei(read_only image1d_t image, int coord); -uint4 __ovld read_imageui(read_only image1d_t image, int coord); +float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord); +int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord); +uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord); -float4 __ovld read_imagef(read_only image1d_buffer_t image, int coord); -int4 __ovld read_imagei(read_only image1d_buffer_t image, int coord); -uint4 __ovld read_imageui(read_only image1d_buffer_t image, int coord); +float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord); +int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord); +uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord); -float4 __ovld read_imagef(read_only image1d_array_t image, int2 coord); -int4 __ovld read_imagei(read_only image1d_array_t image, int2 coord); -uint4 __ovld read_imageui(read_only image1d_array_t image, int2 coord); +float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord); +int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord); +uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord); -float4 __ovld read_imagef(read_only image2d_t image, int2 coord); -int4 __ovld read_imagei(read_only image2d_t image, int2 coord); -uint4 __ovld read_imageui(read_only image2d_t image, int2 coord); +float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord); +int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord); +uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord); -float4 __ovld read_imagef(read_only image2d_array_t image, int4 coord); -int4 __ovld read_imagei(read_only image2d_array_t image, int4 coord); -uint4 __ovld read_imageui(read_only image2d_array_t image, int4 coord); +float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord); +int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord); +uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord); #ifdef cl_khr_depth_images -float __ovld read_imagef(read_only image2d_depth_t image, int2 coord); -float __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord); +float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord); +float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord); #endif //cl_khr_depth_images -float4 __ovld read_imagef(read_only image3d_t image, int4 coord); -int4 __ovld read_imagei(read_only image3d_t image, int4 coord); -uint4 __ovld read_imageui(read_only image3d_t image, int4 coord); +float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord); +int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord); +uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord); // Image read functions returning half4 type #ifdef cl_khr_fp16 -half4 __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord); -half4 __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord); -half4 __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord); -half4 __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord); -half4 __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord); -half4 __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord); -half4 __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord); -half4 __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord); -half4 __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord); -half4 __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord); -half4 __ovld read_imageh(read_only image1d_t image, int coord); -half4 __ovld read_imageh(read_only image2d_t image, int2 coord); -half4 __ovld read_imageh(read_only image3d_t image, int4 coord); -half4 __ovld read_imageh(read_only image1d_array_t image, int2 coord); -half4 __ovld read_imageh(read_only image2d_array_t image, int4 coord); -half4 __ovld read_imageh(read_only image1d_buffer_t image, int coord); +half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord); +half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord); +half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord); +half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord); +half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord); +half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord); +half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord); +half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord); +half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord); +half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord); +half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord); +half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord); +half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord); +half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord); +half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord); +half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord); #endif //cl_khr_fp16 // Image read functions for read_write images #if __OPENCL_C_VERSION__ >= CL_VERSION_2_0 -float4 __ovld read_imagef(read_write image1d_t image, int coord); -int4 __ovld read_imagei(read_write image1d_t image, int coord); -uint4 __ovld read_imageui(read_write image1d_t image, int coord); +float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord); +int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord); +uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord); -float4 __ovld read_imagef(read_write image1d_buffer_t image, int coord); -int4 __ovld read_imagei(read_write image1d_buffer_t image, int coord); -uint4 __ovld read_imageui(read_write image1d_buffer_t image, int coord); +float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord); +int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord); +uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord); -float4 __ovld read_imagef(read_write image1d_array_t image, int2 coord); -int4 __ovld read_imagei(read_write image1d_array_t image, int2 coord); -uint4 __ovld read_imageui(read_write image1d_array_t image, int2 coord); +float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord); +int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord); +uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord); -float4 __ovld read_imagef(read_write image2d_t image, int2 coord); -int4 __ovld read_imagei(read_write image2d_t image, int2 coord); -uint4 __ovld read_imageui(read_write image2d_t image, int2 coord); +float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord); +int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord); +uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord); -float4 __ovld read_imagef(read_write image2d_array_t image, int4 coord); -int4 __ovld read_imagei(read_write image2d_array_t image, int4 coord); -uint4 __ovld read_imageui(read_write image2d_array_t image, int4 coord); +float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord); +int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord); +uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord); -float4 __ovld read_imagef(read_write image3d_t image, int4 coord); -int4 __ovld read_imagei(read_write image3d_t image, int4 coord); -uint4 __ovld read_imageui(read_write image3d_t image, int4 coord); +float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord); +int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord); +uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord); #ifdef cl_khr_depth_images -float __ovld read_imagef(read_write image2d_depth_t image, int2 coord); -float __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord); +float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord); +float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord); #endif //cl_khr_depth_images #if cl_khr_gl_msaa_sharing -float4 __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample); -int4 __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample); -uint4 __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample); +float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample); +int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample); +uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample); -float4 __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample); -int4 __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample); -uint4 __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample); +float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample); +int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample); +uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample); -float __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample); -float __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample); +float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample); +float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample); #endif //cl_khr_gl_msaa_sharing #ifdef cl_khr_mipmap_image -float4 __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); -int4 __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); +float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); +int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); -float4 __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -float __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -float __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); -float4 __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -float4 __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -float4 __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -float4 __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -float __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -float4 __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -float __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -float4 __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -float4 __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); -int4 __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); +float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); +int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); -float4 __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -float __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); -float4 __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -float __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); -float4 __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); #endif //cl_khr_mipmap_image // Image read functions returning half4 type #ifdef cl_khr_fp16 -half4 __ovld read_imageh(read_write image1d_t image, int coord); -half4 __ovld read_imageh(read_write image2d_t image, int2 coord); -half4 __ovld read_imageh(read_write image3d_t image, int4 coord); -half4 __ovld read_imageh(read_write image1d_array_t image, int2 coord); -half4 __ovld read_imageh(read_write image2d_array_t image, int4 coord); -half4 __ovld read_imageh(read_write image1d_buffer_t image, int coord); +half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord); +half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord); +half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord); +half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord); +half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord); +half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord); #endif //cl_khr_fp16 #endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0 -- 2.40.0