brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.2 KiB · 1208387 Raw
175 lines · cpp
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 22// RUN: %clang_cc1 -std=c++03 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/Inputs/include -verify -fopenmp -x c++ -triple nvptx64-nvidia-cuda -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm -fopenmp-is-target-device -o - %s | FileCheck -check-prefixes=NVPTX,NVPTX-CXX03 %s3// RUN: %clang_cc1 -std=c++11 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/Inputs/include -verify -fopenmp -x c++ -triple nvptx64-nvidia-cuda -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm -fopenmp-is-target-device -o - %s | FileCheck -check-prefixes=NVPTX,NVPTX-NVPTX-CXX11 %s4 5// RUN: %clang_cc1 -std=c++03 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/Inputs/include -verify -fopenmp -x c++ -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm -fopenmp-is-target-device -o - %s | FileCheck -check-prefixes=AMDGPU,AMDGPU-CXX03 %s6// RUN: %clang_cc1 -std=c++11 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/Inputs/include -verify -fopenmp -x c++ -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm -fopenmp-is-target-device -o - %s | FileCheck -check-prefixes=AMDGPU,AMDGPU-CXX11 %s7 8 9// expected-no-diagnostics10 11#include <new>12 13#pragma omp begin declare target14extern const std::nothrow_t nothrow;15 16// NVPTX-LABEL: define hidden noundef ptr @_Z17new_stuff_nothrowv17// NVPTX-SAME: () #[[ATTR0:[0-9]+]] {18// NVPTX-NEXT:  entry:19// NVPTX-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnwmRKSt9nothrow_t(i64 noundef 4, ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR4:[0-9]+]]20// NVPTX-NEXT:    ret ptr [[CALL]]21//22// AMDGPU-LABEL: define hidden noundef ptr @_Z17new_stuff_nothrowv23// AMDGPU-SAME: () #[[ATTR0:[0-9]+]] {24// AMDGPU-NEXT:  entry:25// AMDGPU-NEXT:    [[RETVAL:%.*]] = alloca ptr, align 8, addrspace(5)26// AMDGPU-NEXT:    [[RETVAL_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL]] to ptr27// AMDGPU-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnwmRKSt9nothrow_t(i64 noundef 4, ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR4:[0-9]+]]28// AMDGPU-NEXT:    ret ptr [[CALL]]29//30int* new_stuff_nothrow() {31  return new (nothrow) int;32}33 34//35// NVPTX-CXX11-LABEL: define hidden noundef ptr @_Z23new_array_stuff_nothrowv36// NVPTX-CXX11-SAME: () #[[ATTR0]] {37// NVPTX-CXX11-NEXT:  entry:38// NVPTX-CXX11-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef 136, ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR7:[0-9]+]]39// NVPTX-CXX11-NEXT:    ret ptr [[CALL]]40// NVPTX-CXX03-LABEL: define hidden noundef ptr @_Z23new_array_stuff_nothrowv41// NVPTX-CXX03-SAME: () #[[ATTR0]] {42// NVPTX-CXX03-NEXT:  entry:43// NVPTX-CXX03-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef 136, ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR4]]44// NVPTX-CXX03-NEXT:    ret ptr [[CALL]]45//46// NVPTX-NVPTX-CXX11-LABEL: define hidden noundef ptr @_Z23new_array_stuff_nothrowv47// NVPTX-NVPTX-CXX11-SAME: () #[[ATTR0]] {48// NVPTX-NVPTX-CXX11-NEXT:  entry:49// NVPTX-NVPTX-CXX11-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef 136, ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR7:[0-9]+]]50// NVPTX-NVPTX-CXX11-NEXT:    ret ptr [[CALL]]51//52// AMDGPU-CXX03-LABEL: define hidden noundef ptr @_Z23new_array_stuff_nothrowv53// AMDGPU-CXX03-SAME: () #[[ATTR0]] {54// AMDGPU-CXX03-NEXT:  entry:55// AMDGPU-CXX03-NEXT:    [[RETVAL:%.*]] = alloca ptr, align 8, addrspace(5)56// AMDGPU-CXX03-NEXT:    [[RETVAL_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL]] to ptr57// AMDGPU-CXX03-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef 136, ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR4]]58// AMDGPU-CXX03-NEXT:    ret ptr [[CALL]]59//60// AMDGPU-CXX11-LABEL: define hidden noundef ptr @_Z23new_array_stuff_nothrowv61// AMDGPU-CXX11-SAME: () #[[ATTR0]] {62// AMDGPU-CXX11-NEXT:  entry:63// AMDGPU-CXX11-NEXT:    [[RETVAL:%.*]] = alloca ptr, align 8, addrspace(5)64// AMDGPU-CXX11-NEXT:    [[RETVAL_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL]] to ptr65// AMDGPU-CXX11-NEXT:    [[CALL:%.*]] = call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef 136, ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR7:[0-9]+]]66// AMDGPU-CXX11-NEXT:    ret ptr [[CALL]]67//68int* new_array_stuff_nothrow() {69  return new (nothrow) int[34];70}71 72//73// NVPTX-CXX11-LABEL: define hidden void @_Z20delete_stuff_nothrowPi74// NVPTX-CXX11-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {75// NVPTX-CXX11-NEXT:  entry:76// NVPTX-CXX11-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 877// NVPTX-CXX11-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR]], align 878// NVPTX-CXX11-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 879// NVPTX-CXX11-NEXT:    call void @_ZdlPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR8:[0-9]+]]80// NVPTX-CXX11-NEXT:    ret void81// NVPTX-CXX03-LABEL: define hidden void @_Z20delete_stuff_nothrowPi82// NVPTX-CXX03-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {83// NVPTX-CXX03-NEXT:  entry:84// NVPTX-CXX03-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 885// NVPTX-CXX03-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR]], align 886// NVPTX-CXX03-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 887// NVPTX-CXX03-NEXT:    call void @_ZdlPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR6:[0-9]+]]88// NVPTX-CXX03-NEXT:    ret void89//90// NVPTX-NVPTX-CXX11-LABEL: define hidden void @_Z20delete_stuff_nothrowPi91// NVPTX-NVPTX-CXX11-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {92// NVPTX-NVPTX-CXX11-NEXT:  entry:93// NVPTX-NVPTX-CXX11-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 894// NVPTX-NVPTX-CXX11-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR]], align 895// NVPTX-NVPTX-CXX11-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 896// NVPTX-NVPTX-CXX11-NEXT:    call void @_ZdlPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR8:[0-9]+]]97// NVPTX-NVPTX-CXX11-NEXT:    ret void98//99// AMDGPU-CXX03-LABEL: define hidden void @_Z20delete_stuff_nothrowPi100// AMDGPU-CXX03-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {101// AMDGPU-CXX03-NEXT:  entry:102// AMDGPU-CXX03-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)103// AMDGPU-CXX03-NEXT:    [[PTR_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PTR_ADDR]] to ptr104// AMDGPU-CXX03-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR_ASCAST]], align 8105// AMDGPU-CXX03-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR_ASCAST]], align 8106// AMDGPU-CXX03-NEXT:    call void @_ZdlPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR6:[0-9]+]]107// AMDGPU-CXX03-NEXT:    ret void108//109// AMDGPU-CXX11-LABEL: define hidden void @_Z20delete_stuff_nothrowPi110// AMDGPU-CXX11-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {111// AMDGPU-CXX11-NEXT:  entry:112// AMDGPU-CXX11-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)113// AMDGPU-CXX11-NEXT:    [[PTR_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PTR_ADDR]] to ptr114// AMDGPU-CXX11-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR_ASCAST]], align 8115// AMDGPU-CXX11-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR_ASCAST]], align 8116// AMDGPU-CXX11-NEXT:    call void @_ZdlPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR8:[0-9]+]]117// AMDGPU-CXX11-NEXT:    ret void118//119void delete_stuff_nothrow(int* ptr) {120  operator delete(ptr, nothrow);121}122 123//124// NVPTX-CXX11-LABEL: define hidden void @_Z26delete_array_stuff_nothrowPi125// NVPTX-CXX11-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {126// NVPTX-CXX11-NEXT:  entry:127// NVPTX-CXX11-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8128// NVPTX-CXX11-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR]], align 8129// NVPTX-CXX11-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 8130// NVPTX-CXX11-NEXT:    call void @_ZdaPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR8]]131// NVPTX-CXX11-NEXT:    ret void132// NVPTX-CXX03-LABEL: define hidden void @_Z26delete_array_stuff_nothrowPi133// NVPTX-CXX03-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {134// NVPTX-CXX03-NEXT:  entry:135// NVPTX-CXX03-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8136// NVPTX-CXX03-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR]], align 8137// NVPTX-CXX03-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 8138// NVPTX-CXX03-NEXT:    call void @_ZdaPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR6]]139// NVPTX-CXX03-NEXT:    ret void140//141// NVPTX-NVPTX-CXX11-LABEL: define hidden void @_Z26delete_array_stuff_nothrowPi142// NVPTX-NVPTX-CXX11-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {143// NVPTX-NVPTX-CXX11-NEXT:  entry:144// NVPTX-NVPTX-CXX11-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8145// NVPTX-NVPTX-CXX11-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR]], align 8146// NVPTX-NVPTX-CXX11-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 8147// NVPTX-NVPTX-CXX11-NEXT:    call void @_ZdaPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) @nothrow) #[[ATTR8]]148// NVPTX-NVPTX-CXX11-NEXT:    ret void149//150// AMDGPU-CXX03-LABEL: define hidden void @_Z26delete_array_stuff_nothrowPi151// AMDGPU-CXX03-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {152// AMDGPU-CXX03-NEXT:  entry:153// AMDGPU-CXX03-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)154// AMDGPU-CXX03-NEXT:    [[PTR_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PTR_ADDR]] to ptr155// AMDGPU-CXX03-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR_ASCAST]], align 8156// AMDGPU-CXX03-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR_ASCAST]], align 8157// AMDGPU-CXX03-NEXT:    call void @_ZdaPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR6]]158// AMDGPU-CXX03-NEXT:    ret void159//160// AMDGPU-CXX11-LABEL: define hidden void @_Z26delete_array_stuff_nothrowPi161// AMDGPU-CXX11-SAME: (ptr noundef [[PTR:%.*]]) #[[ATTR0]] {162// AMDGPU-CXX11-NEXT:  entry:163// AMDGPU-CXX11-NEXT:    [[PTR_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)164// AMDGPU-CXX11-NEXT:    [[PTR_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PTR_ADDR]] to ptr165// AMDGPU-CXX11-NEXT:    store ptr [[PTR]], ptr [[PTR_ADDR_ASCAST]], align 8166// AMDGPU-CXX11-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR_ASCAST]], align 8167// AMDGPU-CXX11-NEXT:    call void @_ZdaPvRKSt9nothrow_t(ptr noundef [[TMP0]], ptr noundef nonnull align 1 dereferenceable(1) addrspacecast (ptr addrspace(1) @nothrow to ptr)) #[[ATTR8]]168// AMDGPU-CXX11-NEXT:    ret void169//170void delete_array_stuff_nothrow(int* ptr) {171  operator delete[](ptr, nothrow);172}173 174#pragma omp end declare target175