diff options
author | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2019-03-06 20:54:48 +0000 |
---|---|---|
committer | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2019-03-06 20:54:48 +0000 |
commit | 3161c89a22f97b14c82db589d593e9da8379395f (patch) | |
tree | 334745702b3d1095f2900c1c8e8dcb5072df09fa | |
parent | a4a167fb759debcd0bdfe4f8d8508372908eedf5 (diff) | |
download | bcm5719-llvm-3161c89a22f97b14c82db589d593e9da8379395f.tar.gz bcm5719-llvm-3161c89a22f97b14c82db589d593e9da8379395f.zip |
AMDGPU: Fix the mapping of sub group sync scope
Map memory_scope_sub_group to "wavefront" sync scope
Differential Revision: https://reviews.llvm.org/D58847
llvm-svn: 355549
-rw-r--r-- | clang/lib/CodeGen/TargetInfo.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGenOpenCL/atomic-ops.cl | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index ee8c8895357..63e991c9370 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -7959,7 +7959,7 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(SyncScope S, Name = ""; break; case SyncScope::OpenCLSubGroup: - Name = "subgroup"; + Name = "wavefront"; } return C.getOrInsertSyncScopeID(Name); } diff --git a/clang/test/CodeGenOpenCL/atomic-ops.cl b/clang/test/CodeGenOpenCL/atomic-ops.cl index 160f7fbd528..4899b734e9c 100644 --- a/clang/test/CodeGenOpenCL/atomic-ops.cl +++ b/clang/test/CodeGenOpenCL/atomic-ops.cl @@ -41,7 +41,7 @@ void fi1(atomic_int *i) { // CHECK: load atomic i32, i32* %{{[.0-9A-Z_a-z]+}} seq_cst x = __opencl_atomic_load(i, memory_order_seq_cst, memory_scope_all_svm_devices); - // CHECK: load atomic i32, i32* %{{[.0-9A-Z_a-z]+}} syncscope("subgroup") seq_cst + // CHECK: load atomic i32, i32* %{{[.0-9A-Z_a-z]+}} syncscope("wavefront") seq_cst x = __opencl_atomic_load(i, memory_order_seq_cst, memory_scope_sub_group); } @@ -109,7 +109,7 @@ void fi5(atomic_int *i, int scope) { // CHECK: load atomic i32, i32* %{{.*}} seq_cst // CHECK: br label %[[continue]] // CHECK: [[opencl_subgroup]]: - // CHECK: load atomic i32, i32* %{{.*}} syncscope("subgroup") seq_cst + // CHECK: load atomic i32, i32* %{{.*}} syncscope("wavefront") seq_cst // CHECK: br label %[[continue]] // CHECK: [[continue]]: int x = __opencl_atomic_load(i, memory_order_seq_cst, scope); @@ -147,7 +147,7 @@ void fi6(atomic_int *i, int order, int scope) { // CHECK: [[MON_ALL]]: // CHECK: load atomic i32, i32* %{{.*}} monotonic // CHECK: [[MON_SUB]]: - // CHECK: load atomic i32, i32* %{{.*}} syncscope("subgroup") monotonic + // CHECK: load atomic i32, i32* %{{.*}} syncscope("wavefront") monotonic // CHECK: [[ACQ_WG]]: // CHECK: load atomic i32, i32* %{{.*}} syncscope("workgroup") acquire // CHECK: [[ACQ_DEV]]: @@ -155,7 +155,7 @@ void fi6(atomic_int *i, int order, int scope) { // CHECK: [[ACQ_ALL]]: // CHECK: load atomic i32, i32* %{{.*}} acquire // CHECK: [[ACQ_SUB]]: - // CHECK: load atomic i32, i32* %{{.*}} syncscope("subgroup") acquire + // CHECK: load atomic i32, i32* %{{.*}} syncscope("wavefront") acquire // CHECK: [[SEQ_WG]]: // CHECK: load atomic i32, i32* %{{.*}} syncscope("workgroup") seq_cst // CHECK: [[SEQ_DEV]]: @@ -163,7 +163,7 @@ void fi6(atomic_int *i, int order, int scope) { // CHECK: [[SEQ_ALL]]: // CHECK: load atomic i32, i32* %{{.*}} seq_cst // CHECK: [[SEQ_SUB]]: - // CHECK: load atomic i32, i32* %{{.*}} syncscope("subgroup") seq_cst + // CHECK: load atomic i32, i32* %{{.*}} syncscope("wavefront") seq_cst int x = __opencl_atomic_load(i, order, scope); } |