brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 5390a02 Raw
62 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s -target-feature +avx | FileCheck %s2 3namespace test1 {4typedef double __m256d __attribute__((__vector_size__(32)));5 6class PR22753 {7public:8  __m256d data;9};10 11// CHECK: define{{.*}} <4 x double> @_ZN5test14testENS_7PR22753E(<4 x double>12PR22753 test(PR22753 x) {13  return x;14}15}16 17namespace test2 {18typedef double __m128d __attribute__((__vector_size__(16)));19typedef float __m128 __attribute__((__vector_size__(16)));20typedef double __m256d __attribute__((__vector_size__(32)));21typedef float __m256 __attribute__((__vector_size__(32)));22 23union U1 {24  __m128  v1;25  __m128d v2;26};27 28union UU1 {29  union U1;30  __m128d v3;31};32 33// CHECK: define{{.*}} <2 x double> @_ZN5test27PR23082ENS_3UU1E(<2 x double>34UU1 PR23082(UU1 x) {35  return x;36}37 38union U2 {39  __m256  v1;40  __m256d v2;41};42 43union UU2 {44  union U2;45  __m256d v3;46};47 48// CHECK: define{{.*}} <4 x double> @_ZN5test27PR23082ENS_3UU2E(<4 x double>49UU2 PR23082(UU2 x) {50  return x;51}52}53 54namespace test3 {55union U {56  __attribute__((__vector_size__(32))) float f1;57  int f2;58};59// CHECK: define{{.*}} i32 @_ZN5test31fENS_1UE(ptr noundef byval({{.*}}) align 3260int f(U u) { return u.f2; }61}62