1 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s 2 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-mingw32 | FileCheck %s 3 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-win32 | FileCheck %s --check-prefix=X64 4 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-mingw32 | FileCheck %s --check-prefix=X64 5 6 void __stdcall f1(void) {} 7 // CHECK: define x86_stdcallcc void @"\01_f1@0" 8 // X64: define void @f1( 9 10 void __fastcall f2(void) {} 11 // CHECK: define x86_fastcallcc void @"\01@f2@0" 12 // X64: define void @f2( 13 14 void __stdcall f3() {} 15 // CHECK: define x86_stdcallcc void @"\01_f3@0" 16 // X64: define void @f3( 17 18 void __fastcall f4(char a) {} 19 // CHECK: define x86_fastcallcc void @"\01@f4@4" 20 // X64: define void @f4( 21 22 void __fastcall f5(short a) {} 23 // CHECK: define x86_fastcallcc void @"\01@f5@4" 24 // X64: define void @f5( 25 26 void __fastcall f6(int a) {} 27 // CHECK: define x86_fastcallcc void @"\01@f6@4" 28 // X64: define void @f6( 29 30 void __fastcall f7(long a) {} 31 // CHECK: define x86_fastcallcc void @"\01@f7@4" 32 // X64: define void @f7( 33 34 void __fastcall f8(long long a) {} 35 // CHECK: define x86_fastcallcc void @"\01@f8@8" 36 // X64: define void @f8( 37 38 void __fastcall f9(long long a, char b, char c, short d) {} 39 // CHECK: define x86_fastcallcc void @"\01@f9@20"(i64 %a, i8 signext %b, i8 signext %c, i16 signext %d) 40 // X64: define void @f9( 41 42 void f12(void) {} 43 // CHECK: define void @f12( 44 // X64: define void @f12( 45 46 void __vectorcall v1(void) {} 47 // CHECK: define x86_vectorcallcc void @"\01v1@@0"( 48 // X64: define x86_vectorcallcc void @"\01v1@@0"( 49 50 void __vectorcall v2(char a) {} 51 // CHECK: define x86_vectorcallcc void @"\01v2@@4"( 52 // X64: define x86_vectorcallcc void @"\01v2@@8"( 53 54 void __vectorcall v3(short a) {} 55 // CHECK: define x86_vectorcallcc void @"\01v3@@4"( 56 // X64: define x86_vectorcallcc void @"\01v3@@8"( 57 58 void __vectorcall v4(int a) {} 59 // CHECK: define x86_vectorcallcc void @"\01v4@@4"( 60 // X64: define x86_vectorcallcc void @"\01v4@@8"( 61 62 void __vectorcall v5(long long a) {} 63 // CHECK: define x86_vectorcallcc void @"\01v5@@8"( 64 // X64: define x86_vectorcallcc void @"\01v5@@8"( 65 66 void __vectorcall v6(char a, char b) {} 67 // CHECK: define x86_vectorcallcc void @"\01v6@@8"( 68 // X64: define x86_vectorcallcc void @"\01v6@@16"( 69