<div class="gmail_extra">Hi Ankur,</div><div class="gmail_extra"><br></div><div class="gmail_extra">Yes, you need the support of libclc in order to successfully compile OpenCL kernels. It is available at <a href="http://libclc.llvm.org/" target="_blank">http://libclc.llvm.org/</a>. After building libclc, you can use the script "compile-test.sh" to compile OpenCL kernels. For me, the compile-test.sh has a little problem (due to the option -Xclang ptx32--nvidiacl/lib/builtins.bc), so I just removed the option, and the resulting script looks like this:</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">clang -ccc-host-triple ptx32--nvidiacl -Iptx-nvidiacl/include -Igeneric/include -include clc/clc.h -target-feature -Xclang +ptx23 -Xclang -target-feature -Xclang +sm20 -Dcl_clang_storage_class_specifiers -S -emit-llvm "$@"</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">Using the modified script, OpenCL kernels can be successfully compiled into PTX codes. </div><div class="gmail_extra"><br></div><div class="gmail_extra">
Have a look at this post: <a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-December/045983.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-December/045983.html</a>, it maybe helpful as well.</div>

<div class="gmail_extra">
<br></div><div class="gmail_extra">I'm also quite new to Clang/LLVM, hope it will solve your problem.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">Lei Mou</div>


<div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 27, 2012 at 8:37 AM, ankur deshwal <span dir="ltr"><<a href="mailto:a.s.deshwal@gmail.com" target="_blank">a.s.deshwal@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra">Hi Jim,</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Thanks for reply. int4 is a valid data type of Opencl-C language. I read that OpenCL support is available in Clang with "-x cl" option.</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">I also found from some conversation on the llvm mailing group that libclc is also required for supporting builtin functions for openCL specification. Is it necessary for parsing the OpenCL introduced data types like int4 too? </div>




<div class="gmail_extra"> </div>
<div class="gmail_extra">Please help me with the issue.</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Regards,</div>
<div class="gmail_extra">Ankur<br><br></div><div><div>
<div class="gmail_quote">On Fri, Apr 27, 2012 at 2:06 AM, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com" target="_blank">grosbach@apple.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex" class="gmail_quote">
<div style="WORD-WRAP:break-word">Hi Ankur, 
<div><br></div>
<div>"int4" is not a valid C/C++ type on its own. Are you missing a #include that typedefs those types, perhaps?</div>
<div><br></div>
<div>-Jim<br>
<div>
<div>
<div>
<div>On Apr 25, 2012, at 5:48 PM, ankur deshwal <<a href="mailto:a.s.deshwal@gmail.com" target="_blank">a.s.deshwal@gmail.com</a>> wrote:</div><br></div></div>
<blockquote type="cite">
<div>
<div>Hi all, 
<div><br></div>
<div>I am trying to generate an llvm file from opencl kernel. It recognizes address space qualifiers for openCL like __global. However I get following errors for the types ( int4 etc.. for OpenCL)</div>
<div><br></div>
<div>-- My Simple Kernel ---</div>
<div><br></div>
<div>
<div>__kernel void VectorAdd(__global int4 *c, __global int4 *a, __global int4 *b){<br>    unsigned int idx = get_global_id(0);<br>    c[idx] = a[idx] + b[idx];<br>}<br></div><br></div>
<div>-- Compilation and errors</div>
<div><br></div>
<div>
<div> ../build/Debug+Asserts/bin/clang -x cl -emit-llvm -S <a href="http://vectoradd_post.cl/" target="_blank">vectoradd_post.cl</a> -o vectoradd_post.ll<br>vectoradd_post.cl:1:34: error: unknown type name 'int4'; did you mean 'int'?<br>



__kernel void VectorAdd(__global int4 *c, __global int4 *a, __global int4 *b){<br>                                 ^<br>vectoradd_post.cl:1:52: error: unknown type name 'int4'; did you mean 'int'?<br>__kernel void VectorAdd(__global int4 *c, __global int4 *a, __global int4 *b){<br>



                                                   ^<br>vectoradd_post.cl:1:70: error: unknown type name 'int4'; did you mean 'int'?<br>__kernel void VectorAdd(__global int4 *c, __global int4 *a, __global int4 *b){<br>



                                                                     ^<br>vectoradd_post.cl:2:24: warning: implicit declaration of function 'get_global_id' is invalid in C99 [-Wimplicit-function-declaration]<br>    unsigned int idx = get_global_id(0);<br>



                       ^<br>1 warning and 3 errors generated.<br></div>
<div>.</div>
<div><br></div>
<div>Please let me what am I doing wrong. Also is there any document regarding opencl with clang.</div></div>
<div><br></div>
<div>Thanks and Regards,</div>
<div>Ankur</div></div></div>_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>



</blockquote></div><br></div></div></blockquote></div>
<div class="gmail_extra"><br></div>
</div></div><br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>