| // RUN: %clang -target powerpc-linux-gnu -emit-llvm -S -O0 %s -o - | FileCheck %s --check-prefix=CHECK-BE --check-prefix=CHECK |
| // RUN: %clang -target powerpc64-linux-gnu -emit-llvm -S -O0 %s -o - | FileCheck %s --check-prefix=CHECK-BE --check-prefix=CHECK |
| // RUN: %clang -target powerpc64le-linux-gnu -emit-llvm -S -O0 %s -o - | FileCheck %s --check-prefix=CHECK-LE --check-prefix=CHECK |
| |
| 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 |
| } |