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
5 bool b;
6 double d = -1.0;
7 long double ld = -1.0L;
test_signbit()8 void 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