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