brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · ad185d8 Raw
108 lines · cpp
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 32// RUN: %clang_cc1 -triple powerpc-linux-gnu -emit-llvm \3// RUN:   -O0 %s -o - | FileCheck %s --check-prefixes=CHECK-BE324// RUN: %clang_cc1 -triple powerpc64-linux-gnu -emit-llvm \5// RUN:   -O0 %s -o - | FileCheck %s --check-prefixes=CHECK-BE646// RUN: %clang_cc1 -triple powerpc64le-linux-gnu -emit-llvm \7// RUN:   -O0 %s -o - | FileCheck %s --check-prefixes=CHECK-LE8 9bool b;10double d = -1.0;11long double ld = -1.0L;12// CHECK-BE32-LABEL: define dso_local void @_Z12test_signbitv(13// CHECK-BE32-SAME: ) #[[ATTR0:[0-9]+]] {14// CHECK-BE32-NEXT:  entry:15// CHECK-BE32-NEXT:    store i8 0, ptr @b, align 116// CHECK-BE32-NEXT:    [[TMP0:%.*]] = load ppc_fp128, ptr @ld, align 1617// CHECK-BE32-NEXT:    [[TMP1:%.*]] = bitcast ppc_fp128 [[TMP0]] to i12818// CHECK-BE32-NEXT:    [[TMP2:%.*]] = lshr i128 [[TMP1]], 6419// CHECK-BE32-NEXT:    [[TMP3:%.*]] = trunc i128 [[TMP2]] to i6420// CHECK-BE32-NEXT:    [[TMP4:%.*]] = icmp slt i64 [[TMP3]], 021// CHECK-BE32-NEXT:    [[FROMBOOL:%.*]] = zext i1 [[TMP4]] to i822// CHECK-BE32-NEXT:    store i8 [[FROMBOOL]], ptr @b, align 123// CHECK-BE32-NEXT:    store i8 0, ptr @b, align 124// CHECK-BE32-NEXT:    [[TMP5:%.*]] = load double, ptr @d, align 825// CHECK-BE32-NEXT:    [[CONV:%.*]] = fptrunc double [[TMP5]] to float26// CHECK-BE32-NEXT:    [[TMP6:%.*]] = bitcast float [[CONV]] to i3227// CHECK-BE32-NEXT:    [[TMP7:%.*]] = icmp slt i32 [[TMP6]], 028// CHECK-BE32-NEXT:    [[FROMBOOL1:%.*]] = zext i1 [[TMP7]] to i829// CHECK-BE32-NEXT:    store i8 [[FROMBOOL1]], ptr @b, align 130// CHECK-BE32-NEXT:    store i8 0, ptr @b, align 131// CHECK-BE32-NEXT:    [[TMP8:%.*]] = load ppc_fp128, ptr @ld, align 1632// CHECK-BE32-NEXT:    [[TMP9:%.*]] = bitcast ppc_fp128 [[TMP8]] to i12833// CHECK-BE32-NEXT:    [[TMP10:%.*]] = lshr i128 [[TMP9]], 6434// CHECK-BE32-NEXT:    [[TMP11:%.*]] = trunc i128 [[TMP10]] to i6435// CHECK-BE32-NEXT:    [[TMP12:%.*]] = icmp slt i64 [[TMP11]], 036// CHECK-BE32-NEXT:    [[FROMBOOL2:%.*]] = zext i1 [[TMP12]] to i837// CHECK-BE32-NEXT:    store i8 [[FROMBOOL2]], ptr @b, align 138// CHECK-BE32-NEXT:    ret void39//40// CHECK-BE64-LABEL: define dso_local void @_Z12test_signbitv(41// CHECK-BE64-SAME: ) #[[ATTR0:[0-9]+]] {42// CHECK-BE64-NEXT:  entry:43// CHECK-BE64-NEXT:    store i8 0, ptr @b, align 144// CHECK-BE64-NEXT:    [[TMP0:%.*]] = load ppc_fp128, ptr @ld, align 1645// CHECK-BE64-NEXT:    [[TMP1:%.*]] = bitcast ppc_fp128 [[TMP0]] to i12846// CHECK-BE64-NEXT:    [[TMP2:%.*]] = lshr i128 [[TMP1]], 6447// CHECK-BE64-NEXT:    [[TMP3:%.*]] = trunc i128 [[TMP2]] to i6448// CHECK-BE64-NEXT:    [[TMP4:%.*]] = icmp slt i64 [[TMP3]], 049// CHECK-BE64-NEXT:    [[FROMBOOL:%.*]] = zext i1 [[TMP4]] to i850// CHECK-BE64-NEXT:    store i8 [[FROMBOOL]], ptr @b, align 151// CHECK-BE64-NEXT:    store i8 0, ptr @b, align 152// CHECK-BE64-NEXT:    [[TMP5:%.*]] = load double, ptr @d, align 853// CHECK-BE64-NEXT:    [[CONV:%.*]] = fptrunc double [[TMP5]] to float54// CHECK-BE64-NEXT:    [[TMP6:%.*]] = bitcast float [[CONV]] to i3255// CHECK-BE64-NEXT:    [[TMP7:%.*]] = icmp slt i32 [[TMP6]], 056// CHECK-BE64-NEXT:    [[FROMBOOL1:%.*]] = zext i1 [[TMP7]] to i857// CHECK-BE64-NEXT:    store i8 [[FROMBOOL1]], ptr @b, align 158// CHECK-BE64-NEXT:    store i8 0, ptr @b, align 159// CHECK-BE64-NEXT:    [[TMP8:%.*]] = load ppc_fp128, ptr @ld, align 1660// CHECK-BE64-NEXT:    [[TMP9:%.*]] = bitcast ppc_fp128 [[TMP8]] to i12861// CHECK-BE64-NEXT:    [[TMP10:%.*]] = lshr i128 [[TMP9]], 6462// CHECK-BE64-NEXT:    [[TMP11:%.*]] = trunc i128 [[TMP10]] to i6463// CHECK-BE64-NEXT:    [[TMP12:%.*]] = icmp slt i64 [[TMP11]], 064// CHECK-BE64-NEXT:    [[FROMBOOL2:%.*]] = zext i1 [[TMP12]] to i865// CHECK-BE64-NEXT:    store i8 [[FROMBOOL2]], ptr @b, align 166// CHECK-BE64-NEXT:    ret void67//68// CHECK-LE-LABEL: define dso_local void @_Z12test_signbitv(69// CHECK-LE-SAME: ) #[[ATTR0:[0-9]+]] {70// CHECK-LE-NEXT:  entry:71// CHECK-LE-NEXT:    store i8 0, ptr @b, align 172// CHECK-LE-NEXT:    [[TMP0:%.*]] = load ppc_fp128, ptr @ld, align 1673// CHECK-LE-NEXT:    [[TMP1:%.*]] = bitcast ppc_fp128 [[TMP0]] to i12874// CHECK-LE-NEXT:    [[TMP2:%.*]] = trunc i128 [[TMP1]] to i6475// CHECK-LE-NEXT:    [[TMP3:%.*]] = icmp slt i64 [[TMP2]], 076// CHECK-LE-NEXT:    [[FROMBOOL:%.*]] = zext i1 [[TMP3]] to i877// CHECK-LE-NEXT:    store i8 [[FROMBOOL]], ptr @b, align 178// CHECK-LE-NEXT:    store i8 0, ptr @b, align 179// CHECK-LE-NEXT:    [[TMP4:%.*]] = load double, ptr @d, align 880// CHECK-LE-NEXT:    [[CONV:%.*]] = fptrunc double [[TMP4]] to float81// CHECK-LE-NEXT:    [[TMP5:%.*]] = bitcast float [[CONV]] to i3282// CHECK-LE-NEXT:    [[TMP6:%.*]] = icmp slt i32 [[TMP5]], 083// CHECK-LE-NEXT:    [[FROMBOOL1:%.*]] = zext i1 [[TMP6]] to i884// CHECK-LE-NEXT:    store i8 [[FROMBOOL1]], ptr @b, align 185// CHECK-LE-NEXT:    store i8 0, ptr @b, align 186// CHECK-LE-NEXT:    [[TMP7:%.*]] = load ppc_fp128, ptr @ld, align 1687// CHECK-LE-NEXT:    [[TMP8:%.*]] = bitcast ppc_fp128 [[TMP7]] to i12888// CHECK-LE-NEXT:    [[TMP9:%.*]] = trunc i128 [[TMP8]] to i6489// CHECK-LE-NEXT:    [[TMP10:%.*]] = icmp slt i64 [[TMP9]], 090// CHECK-LE-NEXT:    [[FROMBOOL2:%.*]] = zext i1 [[TMP10]] to i891// CHECK-LE-NEXT:    store i8 [[FROMBOOL2]], ptr @b, align 192// CHECK-LE-NEXT:    ret void93//94void test_signbit()95{96  b = __builtin_signbit(1.0L);97 98  b = __builtin_signbit(ld);99 100  b = __builtin_signbitf(1.0);101 102  b = __builtin_signbitf(d);103 104  b = __builtin_signbitl(1.0L);105 106  b = __builtin_signbitl(ld);107}108