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