diff --git a/builtins/target-avx-common.ll b/builtins/target-avx-common.ll index 2343f263..58758ce7 100644 --- a/builtins/target-avx-common.ll +++ b/builtins/target-avx-common.ll @@ -282,15 +282,5 @@ define double @__max_uniform_double(double, double) nounwind readnone alwaysinli ;; int8/int16 builtins define_avgs() - -;;;;;;; nvptx64 - -declare i32 @__tid_x() nounwind readnone alwaysinline -declare i32 @__warpsize() nounwind readnone alwaysinline -declare i32 @__ctaid_x() nounwind readnone alwaysinline -declare i32 @__ctaid_y() nounwind readnone alwaysinline -declare i32 @__ctaid_z() nounwind readnone alwaysinline -declare i32 @__nctaid_x() nounwind readnone alwaysinline -declare i32 @__nctaid_y() nounwind readnone alwaysinline -declare i32 @__nctaid_z() nounwind readnone alwaysinline +declare_nvptx64() diff --git a/builtins/target-generic-common.ll b/builtins/target-generic-common.ll index 4a4517f3..e57b9036 100644 --- a/builtins/target-generic-common.ll +++ b/builtins/target-generic-common.ll @@ -385,15 +385,4 @@ declare void @__prefetch_read_uniform_nt(i8 * nocapture) nounwind ;; int8/int16 builtins define_avgs() - -;;;;;;; nvptx64 - -declare i32 @__tid_x() nounwind readnone alwaysinline -declare i32 @__warpsize() nounwind readnone alwaysinline -declare i32 @__ctaid_x() nounwind readnone alwaysinline -declare i32 @__ctaid_y() nounwind readnone alwaysinline -declare i32 @__ctaid_z() nounwind readnone alwaysinline -declare i32 @__nctaid_x() nounwind readnone alwaysinline -declare i32 @__nctaid_y() nounwind readnone alwaysinline -declare i32 @__nctaid_z() nounwind readnone alwaysinline - +declare_nvptx64() diff --git a/builtins/target-neon-common.ll b/builtins/target-neon-common.ll index 1c0b421f..db71a8ae 100644 --- a/builtins/target-neon-common.ll +++ b/builtins/target-neon-common.ll @@ -344,3 +344,4 @@ packed_load_and_store(4) ;; prefetch define_prefetches() +declare_nvptx64() diff --git a/builtins/target-sse2-common.ll b/builtins/target-sse2-common.ll index ad1d88bc..80bf3989 100644 --- a/builtins/target-sse2-common.ll +++ b/builtins/target-sse2-common.ll @@ -274,3 +274,4 @@ define i64 @__popcnt_int64(i64) nounwind readnone alwaysinline { define_avgs() +declare_nvptx64() diff --git a/builtins/target-sse4-common.ll b/builtins/target-sse4-common.ll index 4b8751b5..a2a4ce6c 100644 --- a/builtins/target-sse4-common.ll +++ b/builtins/target-sse4-common.ll @@ -275,3 +275,5 @@ define i64 @__popcnt_int64(i64) nounwind readonly alwaysinline { %call = call i64 @llvm.ctpop.i64(i64 %0) ret i64 %call } + +declare_nvptx64() diff --git a/builtins/util.m4 b/builtins/util.m4 index 77d18719..57697410 100644 --- a/builtins/util.m4 +++ b/builtins/util.m4 @@ -4486,3 +4486,16 @@ define(`define_avgs', ` define_up_avgs() define_down_avgs() ') + +define(`declare_nvptx64', +` +declare i32 @__tid_x() nounwind readnone alwaysinline +declare i32 @__warpsize() nounwind readnone alwaysinline +declare i32 @__ctaid_x() nounwind readnone alwaysinline +declare i32 @__ctaid_y() nounwind readnone alwaysinline +declare i32 @__ctaid_z() nounwind readnone alwaysinline +declare i32 @__nctaid_x() nounwind readnone alwaysinline +declare i32 @__nctaid_y() nounwind readnone alwaysinline +declare i32 @__nctaid_z() nounwind readnone alwaysinline +') + diff --git a/module.cpp b/module.cpp index 9a71442f..14ecd5c5 100644 --- a/module.cpp +++ b/module.cpp @@ -2331,7 +2331,10 @@ Module::CompileAndOutput(const char *srcFile, const char *hostStubFileName, const char *devStubFileName) { - if (target != NULL && strcmp(target,"nvptx64") >= 0) // NVPTX64 + char ptxname[] = "nvptx64"; + for (int k = 0; k < 7; k++) + ptxname[k] = target[k]; + if (target != NULL && strcmp(ptxname,"nvptx64") == 0) // NVPTX64 { std::vector targets = lExtractTargets(target); Assert(targets.size() > 1);