// RUN: %clang_cc1 -no-opaque-pointers -triple nvptx-unknown-unknown -S -o - %s -emit-llvm | FileCheck %s
// RUN: %clang_cc1 -no-opaque-pointers -triple nvptx64-unknown-unknown -S -o - %s -emit-llvm | FileCheck %s

typedef struct float4_s {
  float x, y, z, w;
} float4_t;

float4_t my_function(void) {
// CHECK-LABEL: define{{.*}} %struct.float4_s @my_function
  float4_t t;
  return t;
};

float bar(void) {
  float4_t ret;
// CHECK-LABEL: @bar
// CHECK: call %struct.float4_s @my_function
  ret = my_function();
  return ret.x;
}

void foo(float4_t x) {
// CHECK-LABEL: @foo
// CHECK: %struct.float4_s* noundef byval(%struct.float4_s) align 4 %x
}

void fooN(float4_t x, float4_t y, float4_t z) {
// CHECK-LABEL: @fooN
// CHECK: %struct.float4_s* noundef byval(%struct.float4_s) align 4 %x
// CHECK: %struct.float4_s* noundef byval(%struct.float4_s) align 4 %y
// CHECK: %struct.float4_s* noundef byval(%struct.float4_s) align 4 %z
}

typedef struct nested_s {
  unsigned long long x;
  float z[64];
  float4_t t;
} nested_t;

void baz(nested_t x) {
// CHECK-LABEL: @baz
// CHECK: %struct.nested_s* noundef byval(%struct.nested_s) align 8 %x)
}
