xref: /llvm-project/clang/test/CodeGen/X86/long-double-config-size.c (revision 3e19ba36fca9fa0b6aba0de2767f26dfd463cb5a)
1 // RUN: %clang_cc1 -triple x86_64-windows-msvc %s -emit-llvm -mlong-double-64 -o - | FileCheck %s --check-prefix=SIZE64
2 // RUN: %clang_cc1 -triple i386-windows-msvc %s -emit-llvm -mlong-double-80 -o - | FileCheck %s --check-prefix=SIZE80
3 // RUN: %clang_cc1 -triple x86_64-windows-msvc %s -emit-llvm -mlong-double-80 -o - | FileCheck %s --check-prefix=SIZE80
4 // RUN: %clang_cc1 -triple x86_64-windows-msvc %s -emit-llvm -mlong-double-128 -o - | FileCheck %s --check-prefix=SIZE128
5 // RUN: %clang_cc1 -triple x86_64-windows-msvc %s -emit-llvm -o - | FileCheck %s --check-prefix=SIZE64
6 
7 long double global;
8 // SIZE64: @global = dso_local global double 0
9 // SIZE80: @global = dso_local global x86_fp80 0xK{{0+}}, align 16
10 // SIZE128: @global = dso_local global fp128 0
11 
func(long double param)12 long double func(long double param) {
13   // SIZE64: define dso_local double @func(double noundef %param)
14   // SIZE80: define dso_local x86_fp80 @func(x86_fp80 noundef %param)
15   // SIZE128: define dso_local fp128  @func(fp128 noundef %param)
16   long double local = param;
17   // SIZE64: alloca double
18   // SIZE80: alloca x86_fp80, align 16
19   // SIZE128: alloca fp128
20   local = param;
21   return local + param;
22 }
23