// RUN: %clang_cc1 -triple powerpc64-linux-musl -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=FP64 %s // RUN: %clang_cc1 -triple powerpc64-linux-gnu -emit-llvm -o - %s -mlong-double-64 | \ // RUN: FileCheck --check-prefix=FP64 %s // musl defaults to -mlong-double-64, so -mlong-double-128 is needed to make // -mabi=ieeelongdouble effective. // RUN: %clang_cc1 -triple powerpc64-linux-musl -emit-llvm -o - %s -mlong-double-128 \ // RUN: -mabi=ieeelongdouble | FileCheck --check-prefix=FP128 %s // RUN: %clang_cc1 -triple powerpc64-linux-gnu -emit-llvm -o - %s \ // RUN: -mabi=ieeelongdouble | FileCheck --check-prefix=FP128 %s // IBM extended double is the default. // RUN: %clang_cc1 -triple powerpc64-linux-gnu -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=IBM128 %s // RUN: %clang_cc1 -triple powerpc64-linux-musl -emit-llvm -o - -mlong-double-128 %s | \ // RUN: FileCheck --check-prefix=IBM128 %s // Check IBM-quad and IEEE-quad macros are defined. // RUN: %clang -E -dM -ffreestanding -target powerpc64le-linux-gnu %s \ // RUN: -mabi=ibmlongdouble | FileCheck -check-prefix=CHECK-DEF-IBM128 %s // RUN: %clang -E -dM -ffreestanding -target powerpc64le-linux-gnu %s \ // RUN: -mabi=ieeelongdouble | FileCheck -check-prefix=CHECK-DEF-IEEE128 %s // RUN: %clang -E -dM -ffreestanding -target powerpc64le-linux-gnu %s \ // RUN: -mlong-double-64 | FileCheck -check-prefix=CHECK-DEF-F64 %s // CHECK-DEF-IBM128: #define __LONG_DOUBLE_128__ // CHECK-DEF-IBM128: #define __LONG_DOUBLE_IBM128__ // CHECK-DEF-IEEE128: #define __LONG_DOUBLE_128__ // CHECK-DEF-IEEE128: #define __LONG_DOUBLE_IEEE128__ // CHECK-DEF-F64-NOT: #define __LONG_DOUBLE_128__ long double x = 0; int size = sizeof(x); // FP64: @x ={{.*}} global double {{.*}}, align 8 // FP64: @size ={{.*}} global i32 8 // FP128: @x ={{.*}} global fp128 {{.*}}, align 16 // FP128: @size ={{.*}} global i32 16 // IBM128: @x ={{.*}} global ppc_fp128 {{.*}}, align 16 // IBM128: @size ={{.*}} global i32 16 long double foo(long double d) { return d; } // FP64: double @_Z3fooe(double %d) // FP128: fp128 @_Z3foou9__ieee128(fp128 %d) // IBM128: ppc_fp128 @_Z3foog(ppc_fp128 %d)