brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · a9d5c17 Raw
104 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals all --version 62// REQUIRES: amdgpu-registered-target3 4// RUN: %clang_cc1 -fopenmp -x c -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc %s -o %t-ppc-host.bc5// RUN: %clang_cc1 -fopenmp -x c -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -o - | FileCheck %s --check-prefix=HOST6// RUN: %clang_cc1 -fopenmp -x c -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-target-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=DEVICE7 8//.9// HOST: @__One_var = global i32 1, align 410// HOST: @__Two_var = global i32 2, align 411// HOST: @__Three_var = global i32 3, align 412// HOST: @.offloading.entry_name = internal unnamed_addr constant [10 x i8] c"__Two_var\00", section ".llvm.rodata.offloading", align 113// HOST: @.offloading.entry.__Two_var = weak constant %struct.__tgt_offload_entry { i64 0, i16 1, i16 1, i32 0, ptr @__Two_var, ptr @.offloading.entry_name, i64 4, i64 0, ptr null }, section "llvm_offload_entries", align 814// HOST: @.offloading.entry_name.1 = internal unnamed_addr constant [12 x i8] c"__Three_var\00", section ".llvm.rodata.offloading", align 115// HOST: @.offloading.entry.__Three_var = weak constant %struct.__tgt_offload_entry { i64 0, i16 1, i16 1, i32 0, ptr @__Three_var, ptr @.offloading.entry_name.1, i64 4, i64 0, ptr null }, section "llvm_offload_entries", align 816// HOST: @One = weak alias i32 (), ptr @__One17// HOST: @One_ = alias i32 (), ptr @__One18// HOST: @One_var = weak alias i32, ptr @__One_var19// HOST: @One_var_ = alias i32, ptr @__One_var20// HOST: @Two = weak alias i32 (), ptr @__Two21// HOST: @Two_ = alias i32 (), ptr @__Two22// HOST: @Two_var = weak alias i32, ptr @__Two_var23// HOST: @Two_var_ = alias i32, ptr @__Two_var24// HOST: @Three = weak alias i32 (), ptr @__Three25// HOST: @Three_ = alias i32 (), ptr @__Three26// HOST: @Three_var = weak alias i32, ptr @__Three_var27// HOST: @Three_var_ = alias i32, ptr @__Three_var28//.29// DEVICE: @__Two_var = addrspace(1) global i32 2, align 430// DEVICE: @__Three_var = addrspace(1) global i32 3, align 431// DEVICE: @Two = weak hidden alias i32 (), ptr @__Two32// DEVICE: @Two_ = hidden alias i32 (), ptr @__Two33// DEVICE: @Two_var = weak alias i32, addrspacecast (ptr addrspace(1) @__Two_var to ptr)34// DEVICE: @Two_var_ = alias i32, addrspacecast (ptr addrspace(1) @__Two_var to ptr)35// DEVICE: @Three = weak hidden alias i32 (), ptr @__Three36// DEVICE: @Three.1 = weak hidden alias i32 (), ptr @__Three37// DEVICE: @Three_ = hidden alias i32 (), ptr @__Three38// DEVICE: @Three_.2 = hidden alias i32 (), ptr @__Three39// DEVICE: @Three_var = weak alias i32, addrspacecast (ptr addrspace(1) @__Three_var to ptr)40// DEVICE: @Three_var_ = alias i32, addrspacecast (ptr addrspace(1) @__Three_var to ptr)41//.42// HOST-LABEL: define dso_local i32 @__One(43// HOST-SAME: ) #[[ATTR0:[0-9]+]] {44// HOST-NEXT:  [[ENTRY:.*:]]45// HOST-NEXT:    ret i32 146//47int __One(void) { return 1; }48int One(void) __attribute__ ((weak, alias("__One")));49int One_(void) __attribute__ ((alias("__One")));50 51int __One_var = 1;52extern int __attribute__((weak, alias("__One_var"))) One_var;53extern int __attribute__((alias("__One_var"))) One_var_;54 55#pragma omp declare target56// HOST-LABEL: define dso_local i32 @__Two(57// HOST-SAME: ) #[[ATTR0]] {58// HOST-NEXT:  [[ENTRY:.*:]]59// HOST-NEXT:    ret i32 260//61// DEVICE-LABEL: define hidden i32 @__Two(62// DEVICE-SAME: ) #[[ATTR0:[0-9]+]] {63// DEVICE-NEXT:  [[ENTRY:.*:]]64// DEVICE-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4, addrspace(5)65// DEVICE-NEXT:    [[RETVAL_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL]] to ptr66// DEVICE-NEXT:    ret i32 267//68int __Two(void) { return 2; }69int Two(void) __attribute__ ((weak, alias("__Two")));70int Two_(void) __attribute__ ((alias("__Two")));71 72int __Two_var = 2;73extern int __attribute__((weak, alias("__Two_var"))) Two_var;74extern int __attribute__((alias("__Two_var"))) Two_var_;75#pragma omp end declare target76 77#pragma omp declare target78// HOST-LABEL: define dso_local i32 @__Three(79// HOST-SAME: ) #[[ATTR0]] {80// HOST-NEXT:  [[ENTRY:.*:]]81// HOST-NEXT:    ret i32 382//83// DEVICE-LABEL: define hidden i32 @__Three(84// DEVICE-SAME: ) #[[ATTR0]] {85// DEVICE-NEXT:  [[ENTRY:.*:]]86// DEVICE-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4, addrspace(5)87// DEVICE-NEXT:    [[RETVAL_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[RETVAL]] to ptr88// DEVICE-NEXT:    ret i32 389//90int __Three(void) { return 3; }91int __Three_var = 3;92#pragma omp end declare target93int Three(void) __attribute__ ((weak, alias("__Three")));94int Three_(void) __attribute__ ((alias("__Three")));95extern int __attribute__((weak, alias("__Three_var"))) Three_var;96extern int __attribute__((alias("__Three_var"))) Three_var_;97//.98// HOST: [[META0:![0-9]+]] = !{i32 1, !"__Two_var", i32 0, i32 0}99// HOST: [[META1:![0-9]+]] = !{i32 1, !"__Three_var", i32 0, i32 1}100//.101// DEVICE: [[META0:![0-9]+]] = !{i32 1, !"__Two_var", i32 0, i32 0}102// DEVICE: [[META1:![0-9]+]] = !{i32 1, !"__Three_var", i32 0, i32 1}103//.104