How to generate constant memory for ptx code by NVPTX?


I work on compiling OpenCL kernel to PTX code by clang and NVPTX with
I have a kernel that contains constant variable declared in file scope like

   constant one_f = 1.0f;
__kernel void test( ...){ ... }

Then it is compiled to llvm-ir:

@one_f = addrspace(4) const float 1.000000e+00, align 4
define void test(...){ ... }

Finally ptx:

.visible .global .align 4 .f32 one_f = 0f3F800000;
.entry test( ...) { ... }

one_f is placed in global memory and load it by
But I want one_f to be placed in constant memory and load it by
ld.const.f32. Is it any way to achieve this ??

Thanks in advance.
Antony Yu

Address space 4 globals should be going into .const. Please open a bug report and provide a repro .ll file.

Thanks for reply.
I filed this bug in

Antony Yu