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