| // 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 |
| |
| 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) |