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