brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · f9c1de5 Raw
44 lines · c
1// RUN: %clang_cc1 -triple nvptx-unknown-unknown -o - %s -emit-llvm | FileCheck %s2// RUN: %clang_cc1 -triple nvptx64-unknown-unknown -o - %s -emit-llvm | FileCheck %s3 4typedef struct float4_s {5  float x, y, z, w;6} float4_t;7 8float4_t my_function(void) {9// CHECK-LABEL: define{{.*}} %struct.float4_s @my_function10  float4_t t;11  return t;12};13 14float bar(void) {15  float4_t ret;16// CHECK-LABEL: @bar17// CHECK: call %struct.float4_s @my_function18  ret = my_function();19  return ret.x;20}21 22void foo(float4_t x) {23// CHECK-LABEL: @foo24// CHECK: ptr noundef byval(%struct.float4_s) align 4 %x25}26 27void fooN(float4_t x, float4_t y, float4_t z) {28// CHECK-LABEL: @fooN29// CHECK: ptr noundef byval(%struct.float4_s) align 4 %x30// CHECK: ptr noundef byval(%struct.float4_s) align 4 %y31// CHECK: ptr noundef byval(%struct.float4_s) align 4 %z32}33 34typedef struct nested_s {35  unsigned long long x;36  float z[64];37  float4_t t;38} nested_t;39 40void baz(nested_t x) {41// CHECK-LABEL: @baz42// CHECK: ptr noundef byval(%struct.nested_s) align 8 %x)43}44