OLD | NEW |
(Empty) | |
| 1 target triple = "i686-pc-linux-gnu" |
| 2 |
| 3 ; This file is extracted from fp.pnacl.ll in the lit tests, with |
| 4 ; the "internal" attribute removed from the functions. |
| 5 |
| 6 define i32 @fcmpFalseFloat(float %a, float %b) { |
| 7 entry: |
| 8 %cmp = fcmp false float %a, %b |
| 9 %cmp.ret_ext = zext i1 %cmp to i32 |
| 10 ret i32 %cmp.ret_ext |
| 11 } |
| 12 ; CHECK: fcmpFalseFloat: |
| 13 ; CHECK: mov {{.*}}, 0 |
| 14 |
| 15 define i32 @fcmpFalseDouble(double %a, double %b) { |
| 16 entry: |
| 17 %cmp = fcmp false double %a, %b |
| 18 %cmp.ret_ext = zext i1 %cmp to i32 |
| 19 ret i32 %cmp.ret_ext |
| 20 } |
| 21 ; CHECK: fcmpFalseDouble: |
| 22 ; CHECK: mov {{.*}}, 0 |
| 23 |
| 24 define i32 @fcmpOeqFloat(float %a, float %b) { |
| 25 entry: |
| 26 %cmp = fcmp oeq float %a, %b |
| 27 %cmp.ret_ext = zext i1 %cmp to i32 |
| 28 ret i32 %cmp.ret_ext |
| 29 } |
| 30 ; CHECK: fcmpOeqFloat: |
| 31 ; CHECK: ucomiss |
| 32 ; CHECK: jne . |
| 33 ; CHECK: jp . |
| 34 |
| 35 define i32 @fcmpOeqDouble(double %a, double %b) { |
| 36 entry: |
| 37 %cmp = fcmp oeq double %a, %b |
| 38 %cmp.ret_ext = zext i1 %cmp to i32 |
| 39 ret i32 %cmp.ret_ext |
| 40 } |
| 41 ; CHECK: fcmpOeqDouble: |
| 42 ; CHECK: ucomisd |
| 43 ; CHECK: jne . |
| 44 ; CHECK: jp . |
| 45 |
| 46 define i32 @fcmpOgtFloat(float %a, float %b) { |
| 47 entry: |
| 48 %cmp = fcmp ogt float %a, %b |
| 49 %cmp.ret_ext = zext i1 %cmp to i32 |
| 50 ret i32 %cmp.ret_ext |
| 51 } |
| 52 ; CHECK: fcmpOgtFloat: |
| 53 ; CHECK: ucomiss |
| 54 ; CHECK: ja . |
| 55 |
| 56 define i32 @fcmpOgtDouble(double %a, double %b) { |
| 57 entry: |
| 58 %cmp = fcmp ogt double %a, %b |
| 59 %cmp.ret_ext = zext i1 %cmp to i32 |
| 60 ret i32 %cmp.ret_ext |
| 61 } |
| 62 ; CHECK: fcmpOgtDouble: |
| 63 ; CHECK: ucomisd |
| 64 ; CHECK: ja . |
| 65 |
| 66 define i32 @fcmpOgeFloat(float %a, float %b) { |
| 67 entry: |
| 68 %cmp = fcmp oge float %a, %b |
| 69 %cmp.ret_ext = zext i1 %cmp to i32 |
| 70 ret i32 %cmp.ret_ext |
| 71 } |
| 72 ; CHECK: fcmpOgeFloat: |
| 73 ; CHECK: ucomiss |
| 74 ; CHECK: jae . |
| 75 |
| 76 define i32 @fcmpOgeDouble(double %a, double %b) { |
| 77 entry: |
| 78 %cmp = fcmp oge double %a, %b |
| 79 %cmp.ret_ext = zext i1 %cmp to i32 |
| 80 ret i32 %cmp.ret_ext |
| 81 } |
| 82 ; CHECK: fcmpOgeDouble: |
| 83 ; CHECK: ucomisd |
| 84 ; CHECK: jae . |
| 85 |
| 86 define i32 @fcmpOltFloat(float %a, float %b) { |
| 87 entry: |
| 88 %cmp = fcmp olt float %a, %b |
| 89 %cmp.ret_ext = zext i1 %cmp to i32 |
| 90 ret i32 %cmp.ret_ext |
| 91 } |
| 92 ; CHECK: fcmpOltFloat: |
| 93 ; CHECK: ucomiss |
| 94 ; CHECK: ja . |
| 95 |
| 96 define i32 @fcmpOltDouble(double %a, double %b) { |
| 97 entry: |
| 98 %cmp = fcmp olt double %a, %b |
| 99 %cmp.ret_ext = zext i1 %cmp to i32 |
| 100 ret i32 %cmp.ret_ext |
| 101 } |
| 102 ; CHECK: fcmpOltDouble: |
| 103 ; CHECK: ucomisd |
| 104 ; CHECK: ja . |
| 105 |
| 106 define i32 @fcmpOleFloat(float %a, float %b) { |
| 107 entry: |
| 108 %cmp = fcmp ole float %a, %b |
| 109 %cmp.ret_ext = zext i1 %cmp to i32 |
| 110 ret i32 %cmp.ret_ext |
| 111 } |
| 112 ; CHECK: fcmpOleFloat: |
| 113 ; CHECK: ucomiss |
| 114 ; CHECK: jae . |
| 115 |
| 116 define i32 @fcmpOleDouble(double %a, double %b) { |
| 117 entry: |
| 118 %cmp = fcmp ole double %a, %b |
| 119 %cmp.ret_ext = zext i1 %cmp to i32 |
| 120 ret i32 %cmp.ret_ext |
| 121 } |
| 122 ; CHECK: fcmpOleDouble: |
| 123 ; CHECK: ucomisd |
| 124 ; CHECK: jae . |
| 125 |
| 126 define i32 @fcmpOneFloat(float %a, float %b) { |
| 127 entry: |
| 128 %cmp = fcmp one float %a, %b |
| 129 %cmp.ret_ext = zext i1 %cmp to i32 |
| 130 ret i32 %cmp.ret_ext |
| 131 } |
| 132 ; CHECK: fcmpOneFloat: |
| 133 ; CHECK: ucomiss |
| 134 ; CHECK: jne . |
| 135 |
| 136 define i32 @fcmpOneDouble(double %a, double %b) { |
| 137 entry: |
| 138 %cmp = fcmp one double %a, %b |
| 139 %cmp.ret_ext = zext i1 %cmp to i32 |
| 140 ret i32 %cmp.ret_ext |
| 141 } |
| 142 ; CHECK: fcmpOneDouble: |
| 143 ; CHECK: ucomisd |
| 144 ; CHECK: jne . |
| 145 |
| 146 define i32 @fcmpOrdFloat(float %a, float %b) { |
| 147 entry: |
| 148 %cmp = fcmp ord float %a, %b |
| 149 %cmp.ret_ext = zext i1 %cmp to i32 |
| 150 ret i32 %cmp.ret_ext |
| 151 } |
| 152 ; CHECK: fcmpOrdFloat: |
| 153 ; CHECK: ucomiss |
| 154 ; CHECK: jnp . |
| 155 |
| 156 define i32 @fcmpOrdDouble(double %a, double %b) { |
| 157 entry: |
| 158 %cmp = fcmp ord double %a, %b |
| 159 %cmp.ret_ext = zext i1 %cmp to i32 |
| 160 ret i32 %cmp.ret_ext |
| 161 } |
| 162 ; CHECK: fcmpOrdDouble: |
| 163 ; CHECK: ucomisd |
| 164 ; CHECK: jnp . |
| 165 |
| 166 define i32 @fcmpUeqFloat(float %a, float %b) { |
| 167 entry: |
| 168 %cmp = fcmp ueq float %a, %b |
| 169 %cmp.ret_ext = zext i1 %cmp to i32 |
| 170 ret i32 %cmp.ret_ext |
| 171 } |
| 172 ; CHECK: fcmpUeqFloat: |
| 173 ; CHECK: ucomiss |
| 174 ; CHECK: je . |
| 175 |
| 176 define i32 @fcmpUeqDouble(double %a, double %b) { |
| 177 entry: |
| 178 %cmp = fcmp ueq double %a, %b |
| 179 %cmp.ret_ext = zext i1 %cmp to i32 |
| 180 ret i32 %cmp.ret_ext |
| 181 } |
| 182 ; CHECK: fcmpUeqDouble: |
| 183 ; CHECK: ucomisd |
| 184 ; CHECK: je . |
| 185 |
| 186 define i32 @fcmpUgtFloat(float %a, float %b) { |
| 187 entry: |
| 188 %cmp = fcmp ugt float %a, %b |
| 189 %cmp.ret_ext = zext i1 %cmp to i32 |
| 190 ret i32 %cmp.ret_ext |
| 191 } |
| 192 ; CHECK: fcmpUgtFloat: |
| 193 ; CHECK: ucomiss |
| 194 ; CHECK: jb . |
| 195 |
| 196 define i32 @fcmpUgtDouble(double %a, double %b) { |
| 197 entry: |
| 198 %cmp = fcmp ugt double %a, %b |
| 199 %cmp.ret_ext = zext i1 %cmp to i32 |
| 200 ret i32 %cmp.ret_ext |
| 201 } |
| 202 ; CHECK: fcmpUgtDouble: |
| 203 ; CHECK: ucomisd |
| 204 ; CHECK: jb . |
| 205 |
| 206 define i32 @fcmpUgeFloat(float %a, float %b) { |
| 207 entry: |
| 208 %cmp = fcmp uge float %a, %b |
| 209 %cmp.ret_ext = zext i1 %cmp to i32 |
| 210 ret i32 %cmp.ret_ext |
| 211 } |
| 212 ; CHECK: fcmpUgeFloat: |
| 213 ; CHECK: ucomiss |
| 214 ; CHECK: jbe . |
| 215 |
| 216 define i32 @fcmpUgeDouble(double %a, double %b) { |
| 217 entry: |
| 218 %cmp = fcmp uge double %a, %b |
| 219 %cmp.ret_ext = zext i1 %cmp to i32 |
| 220 ret i32 %cmp.ret_ext |
| 221 } |
| 222 ; CHECK: fcmpUgeDouble: |
| 223 ; CHECK: ucomisd |
| 224 ; CHECK: jbe . |
| 225 |
| 226 define i32 @fcmpUltFloat(float %a, float %b) { |
| 227 entry: |
| 228 %cmp = fcmp ult float %a, %b |
| 229 %cmp.ret_ext = zext i1 %cmp to i32 |
| 230 ret i32 %cmp.ret_ext |
| 231 } |
| 232 ; CHECK: fcmpUltFloat: |
| 233 ; CHECK: ucomiss |
| 234 ; CHECK: jb . |
| 235 |
| 236 define i32 @fcmpUltDouble(double %a, double %b) { |
| 237 entry: |
| 238 %cmp = fcmp ult double %a, %b |
| 239 %cmp.ret_ext = zext i1 %cmp to i32 |
| 240 ret i32 %cmp.ret_ext |
| 241 } |
| 242 ; CHECK: fcmpUltDouble: |
| 243 ; CHECK: ucomisd |
| 244 ; CHECK: jb . |
| 245 |
| 246 define i32 @fcmpUleFloat(float %a, float %b) { |
| 247 entry: |
| 248 %cmp = fcmp ule float %a, %b |
| 249 %cmp.ret_ext = zext i1 %cmp to i32 |
| 250 ret i32 %cmp.ret_ext |
| 251 } |
| 252 ; CHECK: fcmpUleFloat: |
| 253 ; CHECK: ucomiss |
| 254 ; CHECK: jbe . |
| 255 |
| 256 define i32 @fcmpUleDouble(double %a, double %b) { |
| 257 entry: |
| 258 %cmp = fcmp ule double %a, %b |
| 259 %cmp.ret_ext = zext i1 %cmp to i32 |
| 260 ret i32 %cmp.ret_ext |
| 261 } |
| 262 ; CHECK: fcmpUleDouble: |
| 263 ; CHECK: ucomisd |
| 264 ; CHECK: jbe . |
| 265 |
| 266 define i32 @fcmpUneFloat(float %a, float %b) { |
| 267 entry: |
| 268 %cmp = fcmp une float %a, %b |
| 269 %cmp.ret_ext = zext i1 %cmp to i32 |
| 270 ret i32 %cmp.ret_ext |
| 271 } |
| 272 ; CHECK: fcmpUneFloat: |
| 273 ; CHECK: ucomiss |
| 274 ; CHECK: je . |
| 275 ; CHECK: jnp . |
| 276 |
| 277 define i32 @fcmpUneDouble(double %a, double %b) { |
| 278 entry: |
| 279 %cmp = fcmp une double %a, %b |
| 280 %cmp.ret_ext = zext i1 %cmp to i32 |
| 281 ret i32 %cmp.ret_ext |
| 282 } |
| 283 ; CHECK: fcmpUneDouble: |
| 284 ; CHECK: ucomisd |
| 285 ; CHECK: je . |
| 286 ; CHECK: jnp . |
| 287 |
| 288 define i32 @fcmpUnoFloat(float %a, float %b) { |
| 289 entry: |
| 290 %cmp = fcmp uno float %a, %b |
| 291 %cmp.ret_ext = zext i1 %cmp to i32 |
| 292 ret i32 %cmp.ret_ext |
| 293 } |
| 294 ; CHECK: fcmpUnoFloat: |
| 295 ; CHECK: ucomiss |
| 296 ; CHECK: jp . |
| 297 |
| 298 define i32 @fcmpUnoDouble(double %a, double %b) { |
| 299 entry: |
| 300 %cmp = fcmp uno double %a, %b |
| 301 %cmp.ret_ext = zext i1 %cmp to i32 |
| 302 ret i32 %cmp.ret_ext |
| 303 } |
| 304 ; CHECK: fcmpUnoDouble: |
| 305 ; CHECK: ucomisd |
| 306 ; CHECK: jp . |
| 307 |
| 308 define i32 @fcmpTrueFloat(float %a, float %b) { |
| 309 entry: |
| 310 %cmp = fcmp true float %a, %b |
| 311 %cmp.ret_ext = zext i1 %cmp to i32 |
| 312 ret i32 %cmp.ret_ext |
| 313 } |
| 314 ; CHECK: fcmpTrueFloat: |
| 315 ; CHECK: mov {{.*}}, 1 |
| 316 |
| 317 define i32 @fcmpTrueDouble(double %a, double %b) { |
| 318 entry: |
| 319 %cmp = fcmp true double %a, %b |
| 320 %cmp.ret_ext = zext i1 %cmp to i32 |
| 321 ret i32 %cmp.ret_ext |
| 322 } |
| 323 ; CHECK: fcmpTrueDouble: |
| 324 ; CHECK: mov {{.*}}, 1 |
OLD | NEW |