]> granicus.if.org Git - clang/commitdiff
AMDGPU: export s_waitcnt builtin
authorJan Vesely <jan.vesely@rutgers.edu>
Sat, 25 Feb 2017 04:20:20 +0000 (04:20 +0000)
committerJan Vesely <jan.vesely@rutgers.edu>
Sat, 25 Feb 2017 04:20:20 +0000 (04:20 +0000)
Differential Revision: https://reviews.llvm.org/D30359

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@296239 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/BuiltinsAMDGPU.def
test/CodeGenOpenCL/builtins-amdgcn.cl
test/SemaOpenCL/builtins-amdgcn-error.cl

index 48080d71aaa02d4aa47fe09053e8002732b210dc..f39a24157a641ec45562eec11b67929b9df56502 100644 (file)
@@ -36,6 +36,7 @@ BUILTIN(__builtin_amdgcn_workitem_id_z, "Ui", "nc")
 // Instruction builtins.
 //===----------------------------------------------------------------------===//
 BUILTIN(__builtin_amdgcn_s_getreg, "UiIi", "n")
+BUILTIN(__builtin_amdgcn_s_waitcnt, "vIi", "n")
 BUILTIN(__builtin_amdgcn_s_barrier, "v", "n")
 BUILTIN(__builtin_amdgcn_wave_barrier, "v", "n")
 BUILTIN(__builtin_amdgcn_div_scale, "dddbb*", "n")
index 0f6eaef50b17ccf63784141bfdee099b51df3701..e9e765b521bb7bcccc2e8d4e1957f9964f3c2cc9 100644 (file)
@@ -263,6 +263,13 @@ void test_class_f64(global double* out, double a, int b)
   *out = __builtin_amdgcn_class(a, b);
 }
 
+// CHECK-LABEL: @test_s_waitcnt
+// CHECK: call void @llvm.amdgcn.s.waitcnt(
+void test_s_waitcnt()
+{
+  __builtin_amdgcn_s_waitcnt(0);
+}
+
 // CHECK-LABEL: @test_s_barrier
 // CHECK: call void @llvm.amdgcn.s.barrier(
 void test_s_barrier()
index d8576e2bb53d4512a234d31ac0e558b29c989b7b..5e45f7e76c27eb9af73c0f60c574b9ee4b800b9a 100644 (file)
@@ -18,6 +18,11 @@ void test_s_sleep(int x)
   __builtin_amdgcn_s_sleep(x); // expected-error {{argument to '__builtin_amdgcn_s_sleep' must be a constant integer}}
 }
 
+void test_s_waitcnt(int x)
+{
+  __builtin_amdgcn_s_waitcnt(x); // expected-error {{argument to '__builtin_amdgcn_s_waitcnt' must be a constant integer}}
+}
+
 void test_s_incperflevel(int x)
 {
   __builtin_amdgcn_s_incperflevel(x); // expected-error {{argument to '__builtin_amdgcn_s_incperflevel' must be a constant integer}}