1 ; RUN: llc -mtriple powerpc64le-unknown-linux-gnu -fast-isel -O0 < %s | FileCheck %s 2 3 define i1 @TestULT(double %t0) { 4 ; CHECK-LABEL: TestULT: 5 ; CHECK: xscmpudp 6 ; CHECK: blr 7 entry: 8 %t1 = fcmp ult double %t0, 0.000000e+00 9 br i1 %t1, label %good, label %bad 10 11 bad: 12 ret i1 false 13 14 good: 15 ret i1 true 16 } 17 18 define i1 @TestULE(double %t0) { 19 ; CHECK-LABEL: TestULE: 20 ; CHECK: fcmpu 21 ; CHECK-NEXT: ble 22 ; CHECK: blr 23 entry: 24 %t1 = fcmp ule double %t0, 0.000000e+00 25 br i1 %t1, label %good, label %bad 26 27 bad: 28 ret i1 false 29 30 good: 31 ret i1 true 32 } 33 34 define i1 @TestUNE(double %t0) { 35 ; CHECK-LABEL: TestUNE: 36 ; CHECK: fcmpu 37 ; CHECK-NEXT: bne 38 ; CHECK: blr 39 entry: 40 %t1 = fcmp une double %t0, 0.000000e+00 41 br i1 %t1, label %good, label %bad 42 43 bad: 44 ret i1 false 45 46 good: 47 ret i1 true 48 } 49 50 define i1 @TestUEQ(double %t0) { 51 ; CHECK-LABEL: TestUEQ: 52 ; CHECK: xscmpudp 53 ; CHECK: blr 54 entry: 55 %t1 = fcmp ueq double %t0, 0.000000e+00 56 br i1 %t1, label %good, label %bad 57 58 bad: 59 ret i1 false 60 61 good: 62 ret i1 true 63 } 64 65 define i1 @TestUGT(double %t0) { 66 ; CHECK-LABEL: TestUGT: 67 ; CHECK: xscmpudp 68 ; CHECK: blr 69 entry: 70 %t1 = fcmp ugt double %t0, 0.000000e+00 71 br i1 %t1, label %good, label %bad 72 73 bad: 74 ret i1 false 75 76 good: 77 ret i1 true 78 } 79 80 define i1 @TestUGE(double %t0) { 81 ; CHECK-LABEL: TestUGE: 82 ; CHECK: fcmpu 83 ; CHECK-NEXT: bge 84 ; CHECK: blr 85 entry: 86 %t1 = fcmp uge double %t0, 0.000000e+00 87 br i1 %t1, label %good, label %bad 88 89 bad: 90 ret i1 false 91 92 good: 93 ret i1 true 94 } 95 96 define i1 @TestOLT(double %t0) { 97 ; CHECK-LABEL: TestOLT: 98 ; CHECK: fcmpu 99 ; CHECK-NEXT: blt 100 ; CHECK: blr 101 entry: 102 %t1 = fcmp olt double %t0, 0.000000e+00 103 br i1 %t1, label %good, label %bad 104 105 bad: 106 ret i1 false 107 108 good: 109 ret i1 true 110 } 111 112 define i1 @TestOLE(double %t0) { 113 ; CHECK-LABEL: TestOLE: 114 ; CHECK: xscmpudp 115 ; CHECK: blr 116 entry: 117 %t1 = fcmp ole double %t0, 0.000000e+00 118 br i1 %t1, label %good, label %bad 119 120 bad: 121 ret i1 false 122 123 good: 124 ret i1 true 125 } 126 127 define i1 @TestONE(double %t0) { 128 ; CHECK-LABEL: TestONE: 129 ; CHECK: xscmpudp 130 ; CHECK: blr 131 entry: 132 %t1 = fcmp one double %t0, 0.000000e+00 133 br i1 %t1, label %good, label %bad 134 135 bad: 136 ret i1 false 137 138 good: 139 ret i1 true 140 } 141 142 define i1 @TestOEQ(double %t0) { 143 ; CHECK-LABEL: TestOEQ: 144 ; CHECK: fcmpu 145 ; CHECK-NEXT: beq 146 ; CHECK: blr 147 entry: 148 %t1 = fcmp oeq double %t0, 0.000000e+00 149 br i1 %t1, label %good, label %bad 150 151 bad: 152 ret i1 false 153 154 good: 155 ret i1 true 156 } 157 158 define i1 @TestOGT(double %t0) { 159 ; CHECK-LABEL: TestOGT: 160 ; CHECK: fcmpu 161 ; CHECK-NEXT: bgt 162 ; CHECK: blr 163 entry: 164 %t1 = fcmp ogt double %t0, 0.000000e+00 165 br i1 %t1, label %good, label %bad 166 167 bad: 168 ret i1 false 169 170 good: 171 ret i1 true 172 } 173 174 define i1 @TestOGE(double %t0) { 175 ; CHECK-LABEL: TestOGE: 176 ; CHECK: xscmpudp 177 ; CHECK: blr 178 entry: 179 %t1 = fcmp oge double %t0, 0.000000e+00 180 br i1 %t1, label %good, label %bad 181 182 bad: 183 ret i1 false 184 185 good: 186 ret i1 true 187 } 188