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; |
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 | |