mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 23:56:06 +00:00

This method introduces new CMake variable PPC_LINUX_DEFAULT_IEEELONGDOUBLE (false by default) to enable fp128 as default long double format. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D118110
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
// RUN: %clang -target powerpc-linux-gnu -emit-llvm -S -mabi=ibmlongdouble \
|
|
// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-BE
|
|
// RUN: %clang -target powerpc64-linux-gnu -emit-llvm -S -mabi=ibmlongdouble \
|
|
// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-BE
|
|
// RUN: %clang -target powerpc64le-linux-gnu -emit-llvm -S -mabi=ibmlongdouble \
|
|
// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-LE
|
|
|
|
bool b;
|
|
double d = -1.0;
|
|
long double ld = -1.0L;
|
|
void test_signbit()
|
|
{
|
|
b = __builtin_signbit(1.0L);
|
|
// CHECK: i128
|
|
// CHECK-LE-NOT: lshr
|
|
// CHECK-BE: lshr
|
|
// CHECK: bitcast
|
|
// CHECK: ppc_fp128
|
|
|
|
b = __builtin_signbit(ld);
|
|
// CHECK: bitcast
|
|
// CHECK: ppc_fp128
|
|
// CHECK-LE-NOT: lshr
|
|
// CHECK-BE: lshr
|
|
|
|
b = __builtin_signbitf(1.0);
|
|
// CHECK: store i8 0
|
|
|
|
b = __builtin_signbitf(d);
|
|
// CHECK: bitcast
|
|
// CHECK-LE-NOT: lshr
|
|
// CHECK-BE-NOT: lshr
|
|
|
|
b = __builtin_signbitl(1.0L);
|
|
// CHECK: i128
|
|
// CHECK-LE-NOT: lshr
|
|
// CHECK-BE: lshr
|
|
// CHECK: bitcast
|
|
// CHECK: ppc_fp128
|
|
|
|
b = __builtin_signbitl(ld);
|
|
// CHECK: bitcast
|
|
// CHECK: ppc_fp128
|
|
// CHECK-LE-NOT: lshr
|
|
// CHECK-BE: lshr
|
|
}
|