1*f892ddb3SJoseph Huber // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --function-signature --include-generated-funcs
2*f892ddb3SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -emit-llvm %s -o - | FileCheck %s
3*f892ddb3SJoseph Huber // expected-no-diagnostics
4*f892ddb3SJoseph Huber 
5*f892ddb3SJoseph Huber #ifndef HEADER
6*f892ddb3SJoseph Huber #define HEADER
7*f892ddb3SJoseph Huber 
foo()8*f892ddb3SJoseph Huber void foo() { }
9*f892ddb3SJoseph Huber 
10*f892ddb3SJoseph Huber #pragma omp begin declare variant match( \
11*f892ddb3SJoseph Huber     device = {arch(ppc64le, ppc64)},     \
12*f892ddb3SJoseph Huber     implementation = {extension(match_any, bind_to_declaration)})
13*f892ddb3SJoseph Huber 
14*f892ddb3SJoseph Huber void foo();
15*f892ddb3SJoseph Huber 
16*f892ddb3SJoseph Huber #pragma omp end declare variant
17*f892ddb3SJoseph Huber 
main()18*f892ddb3SJoseph Huber int main() {
19*f892ddb3SJoseph Huber   foo();
20*f892ddb3SJoseph Huber }
21*f892ddb3SJoseph Huber 
22*f892ddb3SJoseph Huber #endif
23*f892ddb3SJoseph Huber // CHECK-LABEL: define {{[^@]+}}@_Z3foov
24*f892ddb3SJoseph Huber // CHECK-SAME: () #[[ATTR0:[0-9]+]] {
25*f892ddb3SJoseph Huber // CHECK-NEXT:  entry:
26*f892ddb3SJoseph Huber // CHECK-NEXT:    ret void
27*f892ddb3SJoseph Huber //
28*f892ddb3SJoseph Huber //
29*f892ddb3SJoseph Huber // CHECK-LABEL: define {{[^@]+}}@main
30*f892ddb3SJoseph Huber // CHECK-SAME: () #[[ATTR1:[0-9]+]] {
31*f892ddb3SJoseph Huber // CHECK-NEXT:  entry:
32*f892ddb3SJoseph Huber // CHECK-NEXT:    call void @"_Z74foo$ompvariant$S2$s7$Pppc64le$Pppc64$S3$s9$Pmatch_any$Pbind_to_declarationv"()
33*f892ddb3SJoseph Huber // CHECK-NEXT:    ret i32 0
34*f892ddb3SJoseph Huber //
35