From 4b5d9d16d3420c499f5b383b753474180b1375f0 Mon Sep 17 00:00:00 2001 From: Valery Pykhtin Date: Fri, 19 Aug 2016 12:54:31 +0000 Subject: [PATCH] [AMDGPU] add s_incperflevel/s_decperflevel builtins Differential revision: https://reviews.llvm.org/D23668 llvm-svn: 279235 --- clang/include/clang/Basic/BuiltinsAMDGPU.def | 2 ++ clang/test/CodeGenOpenCL/builtins-amdgcn-error.cl | 10 ++++++++++ clang/test/CodeGenOpenCL/builtins-amdgcn.cl | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/clang/include/clang/Basic/BuiltinsAMDGPU.def b/clang/include/clang/Basic/BuiltinsAMDGPU.def index 0e54128..9e80ae7 100644 --- a/clang/include/clang/Basic/BuiltinsAMDGPU.def +++ b/clang/include/clang/Basic/BuiltinsAMDGPU.def @@ -70,6 +70,8 @@ BUILTIN(__builtin_amdgcn_cubetc, "ffff", "nc") BUILTIN(__builtin_amdgcn_cubema, "ffff", "nc") BUILTIN(__builtin_amdgcn_s_memtime, "LUi", "n") BUILTIN(__builtin_amdgcn_s_sleep, "vIi", "n") +BUILTIN(__builtin_amdgcn_s_incperflevel, "vIi", "n") +BUILTIN(__builtin_amdgcn_s_decperflevel, "vIi", "n") BUILTIN(__builtin_amdgcn_uicmp, "LUiUiUiIi", "nc") BUILTIN(__builtin_amdgcn_uicmpl, "LUiLUiLUiIi", "nc") BUILTIN(__builtin_amdgcn_sicmp, "LUiiiIi", "nc") diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn-error.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn-error.cl index 5513c5a..97b834f 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn-error.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn-error.cl @@ -18,6 +18,16 @@ 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_incperflevel(int x) +{ + __builtin_amdgcn_s_incperflevel(x); // expected-error {{argument to '__builtin_amdgcn_s_incperflevel' must be a constant integer}} +} + +void test_s_decperflevel(int x) +{ + __builtin_amdgcn_s_decperflevel(x); // expected-error {{argument to '__builtin_amdgcn_s_decperflevel' must be a constant integer}} +} + void test_sicmp_i32(global ulong* out, int a, int b, uint c) { *out = __builtin_amdgcn_sicmp(a, b, c); // expected-error {{argument to '__builtin_amdgcn_sicmp' must be a constant integer}} diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn.cl index 3280f19..a715d98 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn.cl @@ -286,6 +286,24 @@ void test_s_sleep() __builtin_amdgcn_s_sleep(15); } +// CHECK-LABEL: @test_s_incperflevel +// CHECK: call void @llvm.amdgcn.s.incperflevel(i32 1) +// CHECK: call void @llvm.amdgcn.s.incperflevel(i32 15) +void test_s_incperflevel() +{ + __builtin_amdgcn_s_incperflevel(1); + __builtin_amdgcn_s_incperflevel(15); +} + +// CHECK-LABEL: @test_s_decperflevel +// CHECK: call void @llvm.amdgcn.s.decperflevel(i32 1) +// CHECK: call void @llvm.amdgcn.s.decperflevel(i32 15) +void test_s_decperflevel() +{ + __builtin_amdgcn_s_decperflevel(1); + __builtin_amdgcn_s_decperflevel(15); +} + // CHECK-LABEL: @test_cubeid( // CHECK: call float @llvm.amdgcn.cubeid(float %a, float %b, float %c) void test_cubeid(global float* out, float a, float b, float c) { -- 2.7.4