1// RUN: %clang -target powerpc-linux-gnu     -emit-llvm -S -O0 %s -o - | FileCheck %s --check-prefix=CHECK-BE --check-prefix=CHECK
2// RUN: %clang -target powerpc64-linux-gnu   -emit-llvm -S -O0 %s -o - | FileCheck %s --check-prefix=CHECK-BE --check-prefix=CHECK
3// RUN: %clang -target powerpc64le-linux-gnu -emit-llvm -S -O0 %s -o - | FileCheck %s --check-prefix=CHECK-LE --check-prefix=CHECK
4
5bool b;
6double d = -1.0;
7long double ld = -1.0L;
8void test_signbit()
9{
10  b = __builtin_signbit(1.0L);
11  // CHECK: i128
12  // CHECK-LE-NOT: lshr
13  // CHECK-BE: lshr
14  // CHECK: bitcast
15  // CHECK: ppc_fp128
16
17  b = __builtin_signbit(ld);
18  // CHECK: bitcast
19  // CHECK: ppc_fp128
20  // CHECK-LE-NOT: lshr
21  // CHECK-BE: lshr
22
23  b = __builtin_signbitf(1.0);
24  // CHECK: store i8 0
25
26  b = __builtin_signbitf(d);
27  // CHECK: bitcast
28  // CHECK-LE-NOT: lshr
29  // CHECK-BE-NOT: lshr
30
31  b = __builtin_signbitl(1.0L);
32  // CHECK: i128
33  // CHECK-LE-NOT: lshr
34  // CHECK-BE: lshr
35  // CHECK: bitcast
36  // CHECK: ppc_fp128
37
38  b = __builtin_signbitl(ld);
39  // CHECK: bitcast
40  // CHECK: ppc_fp128
41  // CHECK-LE-NOT: lshr
42  // CHECK-BE: lshr
43}
44