| // RUN: %clang_cc1 -emit-llvm -o - -triple i686-pc-darwin %s | FileCheck -check-prefix=X86 %s | 
 | // RUN: %clang_cc1 -emit-llvm -o - -triple amdgcn %s | FileCheck -check-prefix=AMDGCN %s | 
 | struct A { | 
 |   int x[100]; | 
 | }; | 
 |  | 
 | int f(struct A a); | 
 |  | 
 | int g() { | 
 |   struct A a; | 
 |   // X86:    call i32 @f(ptr noundef nonnull byval(%struct.A) align 4 %a) | 
 |   // AMDGCN: call i32 @f(ptr addrspace(5) noundef byref{{.*}}%a) | 
 |   return f(a); | 
 | } | 
 |  | 
 | // X86:   declare i32 @f(ptr noundef byval(%struct.A) align 4) | 
 | // AMDGCN: declare i32 @f(ptr addrspace(5) noundef byref{{.*}}) |