Hi everyone,<div><br></div><div>I'm new here and I could not find my answer in this list.</div><div><br></div><div>I'm trying to write source to source compiler for CUDA with CLANG. CLANG works well with CUDA but when I include cuda_runtime.h which is very important file for CUDA benchmarks. I get these errors:</div>

<div><br></div><div><div>In file included from /usr/local/cuda/include/cuda_runtime.h:79:</div><div>In file included from /usr/local/cuda/include/device_functions.h:4588:</div><div>/usr/local/cuda/include/surface_indirect_functions.h:149:64: error: invalid output constraint '=h' in asm</div>

<div>       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp) : "l"(surfObject), "r"(x));</div><div>                                                               ^</div>

<div>/usr/local/cuda/include/surface_indirect_functions.h:152:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:155:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:164:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp.x) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:167:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp.x) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:170:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp.x) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:179:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:182:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:185:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:194:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp.x) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:197:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp.x) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:200:64: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp.x) : "l"(surfObject), "r"(x));</div>

<div>                                                               ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:395:71: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.v2.b16.trap  {%0, %1}, [%2, {%3}];" : "=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));</div>

<div>                                                                      ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:398:71: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.v2.b16.clamp {%0, %1}, [%2, {%3}];" : "=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));</div>

<div>                                                                      ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:401:71: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.v2.b16.zero  {%0, %1}, [%2, {%3}];" : "=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));</div>

<div>                                                                      ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:410:71: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.v2.b16.trap  {%0, %1}, [%2, {%3}];" : "=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));</div>

<div>                                                                      ^</div><div>/usr/local/cuda/include/surface_indirect_functions.h:413:71: error: invalid output constraint '=h' in asm</div><div>       asm volatile ("suld.b.1d.v2.b16.clamp {%0, %1}, [%2, {%3}];" : "=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));</div>

<div>                                                                      ^</div></div><div>I'm not using surface functions but they are included anyway. Is there any way to fix this?</div><div>Am I missing anything?</div>

<div><br></div><div>Best,</div><div>Mehrzad</div>