Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / CodeGenOpenCL / builtins-amdgcn-wave64.cl
blob1fc2ac0d3141eb2b6b62ea68247448cf45aad145
1 // RUN: %clang_cc1 -cl-std=CL2.0 -triple amdgcn-unknown-unknown -target-feature +wavefrontsize64 -emit-llvm -o - %s | FileCheck -enable-var-scope %s
2 // RUN: %clang_cc1 -cl-std=CL2.0 -triple amdgcn-unknown-unknown -target-cpu gfx900 -emit-llvm -o - %s | FileCheck -enable-var-scope %s
3 // RUN: %clang_cc1 -cl-std=CL2.0 -triple amdgcn-unknown-unknown -target-cpu gfx900 -target-feature +wavefrontsize64 -emit-llvm -o - %s | FileCheck -enable-var-scope %s
4 // RUN: %clang_cc1 -cl-std=CL2.0 -triple amdgcn-unknown-unknown -target-cpu gfx1010 -target-feature +wavefrontsize64 -emit-llvm -o - %s | FileCheck -enable-var-scope %s
5 // RUN: %clang_cc1 -cl-std=CL2.0 -triple amdgcn-unknown-unknown -target-cpu gfx1100 -target-feature +wavefrontsize64 -emit-llvm -o - %s | FileCheck -enable-var-scope %s
7 typedef unsigned long ulong;
9 // CHECK-LABEL: @test_ballot_wave64(
10 // CHECK: call i64 @llvm.amdgcn.ballot.i64(i1 %{{.+}})
11 void test_ballot_wave64(global ulong* out, int a, int b)
13 *out = __builtin_amdgcn_ballot_w64(a == b);
16 // CHECK: declare i64 @llvm.amdgcn.ballot.i64(i1) #[[$NOUNWIND_READONLY:[0-9]+]]
18 // CHECK-LABEL: @test_ballot_wave64_target_attr(
19 // CHECK: call i64 @llvm.amdgcn.ballot.i64(i1 %{{.+}})
20 __attribute__((target("wavefrontsize64")))
21 void test_ballot_wave64_target_attr(global ulong* out, int a, int b)
23 *out = __builtin_amdgcn_ballot_w64(a == b);
26 // CHECK-LABEL: @test_read_exec(
27 // CHECK: call i64 @llvm.amdgcn.ballot.i64(i1 true)
28 void test_read_exec(global ulong* out) {
29 *out = __builtin_amdgcn_read_exec();
32 // CHECK-LABEL: @test_read_exec_lo(
33 // CHECK: call i32 @llvm.amdgcn.ballot.i32(i1 true)
34 void test_read_exec_lo(global ulong* out) {
35 *out = __builtin_amdgcn_read_exec_lo();
38 // CHECK: declare i32 @llvm.amdgcn.ballot.i32(i1) #[[$NOUNWIND_READONLY:[0-9]+]]
40 // CHECK-LABEL: @test_read_exec_hi(
41 // CHECK: call i64 @llvm.amdgcn.ballot.i64(i1 true)
42 // CHECK: lshr i64 [[A:%.*]], 32
43 void test_read_exec_hi(global ulong* out) {
44 *out = __builtin_amdgcn_read_exec_hi();
47 #if defined(__AMDGCN_WAVEFRONT_SIZE__) && __AMDGCN_WAVEFRONT_SIZE__ != 64
48 #error Wrong wavesize detected
49 #endif