1 Reply Latest reply on Apr 14, 2011 3:02 PM by MicahVillmow

    vload vs. cache

    Marix
      vloadn does not compile with const * resrict

      Playing around with the new features in SDK 2.4 I found the following problem when trying to utilize both, vector memory instructions and L1/L2 cache.

      My code utilizes vload to enable SSE-code generation and better VLIW-filling as described in Section 4.15.5 of the APP OpenCL Programming Guide. However when trying to utilize L1/L2 cache by making the pointers to input buffers const * restrict the compiler produces the following error:

      error: bad argument type to opencl vload/vstore:
      expected pointer to scalar with addrSpace
      global/local/private/constant(vload only)
      accumulator += vload4( i, in );

      I want to add, that I can currently work around the problem using -fno-alias. However this is, IMHO, very hacky as it seperates the information from the code and only works in the simply cases that there are no aliasing pointers anywhere in the application.

       

      error: bad argument type to opencl vload/vstore: expected pointer to scalar with addrSpace global/local/private/constant(vload only) accumulator += vload4( i, in );