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