[PATCH] D152858: OpenMP: Use generated checks and pragma declare target

2023-06-26 Thread Matt Arsenault via Phabricator via cfe-commits
arsenm closed this revision.
arsenm added a comment.

53d28b2a71063b974ec058ced614d1c95d5584fe 



CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D152858/new/

https://reviews.llvm.org/D152858

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D152858: OpenMP: Use generated checks and pragma declare target

2023-06-22 Thread Matt Arsenault via Phabricator via cfe-commits
arsenm added a comment.

ping


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D152858/new/

https://reviews.llvm.org/D152858

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D152858: OpenMP: Use generated checks and pragma declare target

2023-06-13 Thread Matt Arsenault via Phabricator via cfe-commits
arsenm created this revision.
arsenm added reviewers: AMDGPU, JonChesterfield, doru1004, ronlieb, ddpagan, 
jdoerfert.
Herald added subscribers: sunshaoce, guansong, yaxunl, jvesely.
Herald added a project: All.
arsenm requested review of this revision.
Herald added subscribers: jplehr, sstefan1, wdng.

https://reviews.llvm.org/D152858

Files:
  clang/test/Headers/amdgcn_openmp_device_math.c

Index: clang/test/Headers/amdgcn_openmp_device_math.c
===
--- clang/test/Headers/amdgcn_openmp_device_math.c
+++ clang/test/Headers/amdgcn_openmp_device_math.c
@@ -1,7 +1,8 @@
+// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -internal-isystem %S/Inputs/include -x c -fopenmp -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc %s -o %t-host.bc
-// RUN: %clang_cc1 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/../../lib/Headers/openmp_wrappers -internal-isystem %S/Inputs/include -x c -fopenmp -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s --check-prefixes=CHECK-C,CHECK
+// RUN: %clang_cc1 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/../../lib/Headers/openmp_wrappers -internal-isystem %S/Inputs/include -x c -fopenmp -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s --check-prefixes=CHECK,CHECK-C
 // RUN: %clang_cc1 -internal-isystem %S/Inputs/include -x c++ -fopenmp -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc %s -o %t-host.bc
-// RUN: %clang_cc1 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/../../lib/Headers/openmp_wrappers -internal-isystem %S/Inputs/include -x c++ -fopenmp -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s --check-prefixes=CHECK-CPP,CHECK
+// RUN: %clang_cc1 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/../../lib/Headers/openmp_wrappers -internal-isystem %S/Inputs/include -x c++ -fopenmp -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s --check-prefixes=CHECK,CHECK-CPP
 
 #ifdef __cplusplus
 #include 
@@ -9,43 +10,290 @@
 #include 
 #endif
 
+#pragma omp begin declare target
+
+// CHECK-C-LABEL: @test_math_f64(
+// CHECK-C-NEXT:  entry:
+// CHECK-C-NEXT:[[RETVAL_I8:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[__X_ADDR_I9:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[RETVAL_I3:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[__X_ADDR_I4:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[RETVAL_I:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[__X_ADDR_I:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[X_ADDR:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[L1:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[L2:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[L3:%.*]] = alloca double, align 8, addrspace(5)
+// CHECK-C-NEXT:[[X_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[X_ADDR]] to ptr
+// CHECK-C-NEXT:[[L1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[L1]] to ptr
+// CHECK-C-NEXT:[[L2_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[L2]] to ptr
+// CHECK-C-NEXT:[[L3_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[L3]] to ptr
+// CHECK-C-NEXT:store double [[X:%.*]], ptr [[X_ADDR_ASCAST]], align 8
+// CHECK-C-NEXT:[[TMP0:%.*]] = load double, ptr [[X_ADDR_ASCAST]], align 8
+// CHECK-C-NEXT:[[RETVAL_ASCAST_I:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL_I]] to ptr
+// CHECK-C-NEXT:[[__X_ADDR_ASCAST_I:%.*]] = addrspacecast ptr addrspace(5) [[__X_ADDR_I]] to ptr
+// CHECK-C-NEXT:store double [[TMP0]], ptr [[__X_ADDR_ASCAST_I]], align 8
+// CHECK-C-NEXT:[[TMP1:%.*]] = load double, ptr [[__X_ADDR_ASCAST_I]], align 8
+// CHECK-C-NEXT:[[CALL_I:%.*]] = call double @__ocml_sin_f64(double noundef [[TMP1]]) #[[ATTR3:[0-9]+]]
+// CHECK-C-NEXT:store double [[CALL_I]], ptr [[L1_ASCAST]], align 8
+// CHECK-C-NEXT:[[TMP2:%.*]] = load double, ptr [[X_ADDR_ASCAST]], align 8
+// CHECK-C-NEXT:[[RETVAL_ASCAST_I5:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL_I3]] to ptr
+//