Home | History | Annotate | Download | only in InstCombine
      1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
      2 ; RUN: opt < %s -instcombine -S | FileCheck %s
      3 
      4 define i1 @auto_gen_0(double %a, double %b) {
      5 ; CHECK-LABEL: @auto_gen_0(
      6 ; CHECK-NEXT:    ret i1 false
      7 ;
      8   %cmp = fcmp false double %a, %b
      9   %cmp1 = fcmp false double %a, %b
     10   %retval = or i1 %cmp, %cmp1
     11   ret i1 %retval
     12 }
     13 
     14 define i1 @auto_gen_1(double %a, double %b) {
     15 ; CHECK-LABEL: @auto_gen_1(
     16 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq double %a, %b
     17 ; CHECK-NEXT:    ret i1 [[CMP]]
     18 ;
     19   %cmp = fcmp oeq double %a, %b
     20   %cmp1 = fcmp false double %a, %b
     21   %retval = or i1 %cmp, %cmp1
     22   ret i1 %retval
     23 }
     24 
     25 define i1 @auto_gen_2(double %a, double %b) {
     26 ; CHECK-LABEL: @auto_gen_2(
     27 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
     28 ; CHECK-NEXT:    ret i1 [[TMP1]]
     29 ;
     30   %cmp = fcmp oeq double %a, %b
     31   %cmp1 = fcmp oeq double %a, %b
     32   %retval = or i1 %cmp, %cmp1
     33   ret i1 %retval
     34 }
     35 
     36 define i1 @auto_gen_3(double %a, double %b) {
     37 ; CHECK-LABEL: @auto_gen_3(
     38 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ogt double %a, %b
     39 ; CHECK-NEXT:    ret i1 [[CMP]]
     40 ;
     41   %cmp = fcmp ogt double %a, %b
     42   %cmp1 = fcmp false double %a, %b
     43   %retval = or i1 %cmp, %cmp1
     44   ret i1 %retval
     45 }
     46 
     47 define i1 @auto_gen_4(double %a, double %b) {
     48 ; CHECK-LABEL: @auto_gen_4(
     49 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
     50 ; CHECK-NEXT:    ret i1 [[TMP1]]
     51 ;
     52   %cmp = fcmp ogt double %a, %b
     53   %cmp1 = fcmp oeq double %a, %b
     54   %retval = or i1 %cmp, %cmp1
     55   ret i1 %retval
     56 }
     57 
     58 define i1 @auto_gen_5(double %a, double %b) {
     59 ; CHECK-LABEL: @auto_gen_5(
     60 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
     61 ; CHECK-NEXT:    ret i1 [[TMP1]]
     62 ;
     63   %cmp = fcmp ogt double %a, %b
     64   %cmp1 = fcmp ogt double %a, %b
     65   %retval = or i1 %cmp, %cmp1
     66   ret i1 %retval
     67 }
     68 
     69 define i1 @auto_gen_6(double %a, double %b) {
     70 ; CHECK-LABEL: @auto_gen_6(
     71 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double %a, %b
     72 ; CHECK-NEXT:    ret i1 [[CMP]]
     73 ;
     74   %cmp = fcmp oge double %a, %b
     75   %cmp1 = fcmp false double %a, %b
     76   %retval = or i1 %cmp, %cmp1
     77   ret i1 %retval
     78 }
     79 
     80 define i1 @auto_gen_7(double %a, double %b) {
     81 ; CHECK-LABEL: @auto_gen_7(
     82 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
     83 ; CHECK-NEXT:    ret i1 [[TMP1]]
     84 ;
     85   %cmp = fcmp oge double %a, %b
     86   %cmp1 = fcmp oeq double %a, %b
     87   %retval = or i1 %cmp, %cmp1
     88   ret i1 %retval
     89 }
     90 
     91 define i1 @auto_gen_8(double %a, double %b) {
     92 ; CHECK-LABEL: @auto_gen_8(
     93 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
     94 ; CHECK-NEXT:    ret i1 [[TMP1]]
     95 ;
     96   %cmp = fcmp oge double %a, %b
     97   %cmp1 = fcmp ogt double %a, %b
     98   %retval = or i1 %cmp, %cmp1
     99   ret i1 %retval
    100 }
    101 
    102 define i1 @auto_gen_9(double %a, double %b) {
    103 ; CHECK-LABEL: @auto_gen_9(
    104 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
    105 ; CHECK-NEXT:    ret i1 [[TMP1]]
    106 ;
    107   %cmp = fcmp oge double %a, %b
    108   %cmp1 = fcmp oge double %a, %b
    109   %retval = or i1 %cmp, %cmp1
    110   ret i1 %retval
    111 }
    112 
    113 define i1 @auto_gen_10(double %a, double %b) {
    114 ; CHECK-LABEL: @auto_gen_10(
    115 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt double %a, %b
    116 ; CHECK-NEXT:    ret i1 [[CMP]]
    117 ;
    118   %cmp = fcmp olt double %a, %b
    119   %cmp1 = fcmp false double %a, %b
    120   %retval = or i1 %cmp, %cmp1
    121   ret i1 %retval
    122 }
    123 
    124 define i1 @auto_gen_11(double %a, double %b) {
    125 ; CHECK-LABEL: @auto_gen_11(
    126 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
    127 ; CHECK-NEXT:    ret i1 [[TMP1]]
    128 ;
    129   %cmp = fcmp olt double %a, %b
    130   %cmp1 = fcmp oeq double %a, %b
    131   %retval = or i1 %cmp, %cmp1
    132   ret i1 %retval
    133 }
    134 
    135 define i1 @auto_gen_12(double %a, double %b) {
    136 ; CHECK-LABEL: @auto_gen_12(
    137 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
    138 ; CHECK-NEXT:    ret i1 [[TMP1]]
    139 ;
    140   %cmp = fcmp olt double %a, %b
    141   %cmp1 = fcmp ogt double %a, %b
    142   %retval = or i1 %cmp, %cmp1
    143   ret i1 %retval
    144 }
    145 
    146 define i1 @auto_gen_13(double %a, double %b) {
    147 ; CHECK-LABEL: @auto_gen_13(
    148 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    149 ; CHECK-NEXT:    ret i1 [[TMP1]]
    150 ;
    151   %cmp = fcmp olt double %a, %b
    152   %cmp1 = fcmp oge double %a, %b
    153   %retval = or i1 %cmp, %cmp1
    154   ret i1 %retval
    155 }
    156 
    157 define i1 @auto_gen_14(double %a, double %b) {
    158 ; CHECK-LABEL: @auto_gen_14(
    159 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
    160 ; CHECK-NEXT:    ret i1 [[TMP1]]
    161 ;
    162   %cmp = fcmp olt double %a, %b
    163   %cmp1 = fcmp olt double %a, %b
    164   %retval = or i1 %cmp, %cmp1
    165   ret i1 %retval
    166 }
    167 
    168 define i1 @auto_gen_15(double %a, double %b) {
    169 ; CHECK-LABEL: @auto_gen_15(
    170 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ole double %a, %b
    171 ; CHECK-NEXT:    ret i1 [[CMP]]
    172 ;
    173   %cmp = fcmp ole double %a, %b
    174   %cmp1 = fcmp false double %a, %b
    175   %retval = or i1 %cmp, %cmp1
    176   ret i1 %retval
    177 }
    178 
    179 define i1 @auto_gen_16(double %a, double %b) {
    180 ; CHECK-LABEL: @auto_gen_16(
    181 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
    182 ; CHECK-NEXT:    ret i1 [[TMP1]]
    183 ;
    184   %cmp = fcmp ole double %a, %b
    185   %cmp1 = fcmp oeq double %a, %b
    186   %retval = or i1 %cmp, %cmp1
    187   ret i1 %retval
    188 }
    189 
    190 define i1 @auto_gen_17(double %a, double %b) {
    191 ; CHECK-LABEL: @auto_gen_17(
    192 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    193 ; CHECK-NEXT:    ret i1 [[TMP1]]
    194 ;
    195   %cmp = fcmp ole double %a, %b
    196   %cmp1 = fcmp ogt double %a, %b
    197   %retval = or i1 %cmp, %cmp1
    198   ret i1 %retval
    199 }
    200 
    201 define i1 @auto_gen_18(double %a, double %b) {
    202 ; CHECK-LABEL: @auto_gen_18(
    203 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    204 ; CHECK-NEXT:    ret i1 [[TMP1]]
    205 ;
    206   %cmp = fcmp ole double %a, %b
    207   %cmp1 = fcmp oge double %a, %b
    208   %retval = or i1 %cmp, %cmp1
    209   ret i1 %retval
    210 }
    211 
    212 define i1 @auto_gen_19(double %a, double %b) {
    213 ; CHECK-LABEL: @auto_gen_19(
    214 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
    215 ; CHECK-NEXT:    ret i1 [[TMP1]]
    216 ;
    217   %cmp = fcmp ole double %a, %b
    218   %cmp1 = fcmp olt double %a, %b
    219   %retval = or i1 %cmp, %cmp1
    220   ret i1 %retval
    221 }
    222 
    223 define i1 @auto_gen_20(double %a, double %b) {
    224 ; CHECK-LABEL: @auto_gen_20(
    225 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
    226 ; CHECK-NEXT:    ret i1 [[TMP1]]
    227 ;
    228   %cmp = fcmp ole double %a, %b
    229   %cmp1 = fcmp ole double %a, %b
    230   %retval = or i1 %cmp, %cmp1
    231   ret i1 %retval
    232 }
    233 
    234 define i1 @auto_gen_21(double %a, double %b) {
    235 ; CHECK-LABEL: @auto_gen_21(
    236 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp one double %a, %b
    237 ; CHECK-NEXT:    ret i1 [[CMP]]
    238 ;
    239   %cmp = fcmp one double %a, %b
    240   %cmp1 = fcmp false double %a, %b
    241   %retval = or i1 %cmp, %cmp1
    242   ret i1 %retval
    243 }
    244 
    245 define i1 @auto_gen_22(double %a, double %b) {
    246 ; CHECK-LABEL: @auto_gen_22(
    247 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    248 ; CHECK-NEXT:    ret i1 [[TMP1]]
    249 ;
    250   %cmp = fcmp one double %a, %b
    251   %cmp1 = fcmp oeq double %a, %b
    252   %retval = or i1 %cmp, %cmp1
    253   ret i1 %retval
    254 }
    255 
    256 define i1 @auto_gen_23(double %a, double %b) {
    257 ; CHECK-LABEL: @auto_gen_23(
    258 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
    259 ; CHECK-NEXT:    ret i1 [[TMP1]]
    260 ;
    261   %cmp = fcmp one double %a, %b
    262   %cmp1 = fcmp ogt double %a, %b
    263   %retval = or i1 %cmp, %cmp1
    264   ret i1 %retval
    265 }
    266 
    267 define i1 @auto_gen_24(double %a, double %b) {
    268 ; CHECK-LABEL: @auto_gen_24(
    269 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    270 ; CHECK-NEXT:    ret i1 [[TMP1]]
    271 ;
    272   %cmp = fcmp one double %a, %b
    273   %cmp1 = fcmp oge double %a, %b
    274   %retval = or i1 %cmp, %cmp1
    275   ret i1 %retval
    276 }
    277 
    278 define i1 @auto_gen_25(double %a, double %b) {
    279 ; CHECK-LABEL: @auto_gen_25(
    280 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
    281 ; CHECK-NEXT:    ret i1 [[TMP1]]
    282 ;
    283   %cmp = fcmp one double %a, %b
    284   %cmp1 = fcmp olt double %a, %b
    285   %retval = or i1 %cmp, %cmp1
    286   ret i1 %retval
    287 }
    288 
    289 define i1 @auto_gen_26(double %a, double %b) {
    290 ; CHECK-LABEL: @auto_gen_26(
    291 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    292 ; CHECK-NEXT:    ret i1 [[TMP1]]
    293 ;
    294   %cmp = fcmp one double %a, %b
    295   %cmp1 = fcmp ole double %a, %b
    296   %retval = or i1 %cmp, %cmp1
    297   ret i1 %retval
    298 }
    299 
    300 define i1 @auto_gen_27(double %a, double %b) {
    301 ; CHECK-LABEL: @auto_gen_27(
    302 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
    303 ; CHECK-NEXT:    ret i1 [[TMP1]]
    304 ;
    305   %cmp = fcmp one double %a, %b
    306   %cmp1 = fcmp one double %a, %b
    307   %retval = or i1 %cmp, %cmp1
    308   ret i1 %retval
    309 }
    310 
    311 define i1 @auto_gen_28(double %a, double %b) {
    312 ; CHECK-LABEL: @auto_gen_28(
    313 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord double %a, %b
    314 ; CHECK-NEXT:    ret i1 [[CMP]]
    315 ;
    316   %cmp = fcmp ord double %a, %b
    317   %cmp1 = fcmp false double %a, %b
    318   %retval = or i1 %cmp, %cmp1
    319   ret i1 %retval
    320 }
    321 
    322 define i1 @auto_gen_29(double %a, double %b) {
    323 ; CHECK-LABEL: @auto_gen_29(
    324 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    325 ; CHECK-NEXT:    ret i1 [[TMP1]]
    326 ;
    327   %cmp = fcmp ord double %a, %b
    328   %cmp1 = fcmp oeq double %a, %b
    329   %retval = or i1 %cmp, %cmp1
    330   ret i1 %retval
    331 }
    332 
    333 define i1 @auto_gen_30(double %a, double %b) {
    334 ; CHECK-LABEL: @auto_gen_30(
    335 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    336 ; CHECK-NEXT:    ret i1 [[TMP1]]
    337 ;
    338   %cmp = fcmp ord double %a, %b
    339   %cmp1 = fcmp ogt double %a, %b
    340   %retval = or i1 %cmp, %cmp1
    341   ret i1 %retval
    342 }
    343 
    344 define i1 @auto_gen_31(double %a, double %b) {
    345 ; CHECK-LABEL: @auto_gen_31(
    346 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    347 ; CHECK-NEXT:    ret i1 [[TMP1]]
    348 ;
    349   %cmp = fcmp ord double %a, %b
    350   %cmp1 = fcmp oge double %a, %b
    351   %retval = or i1 %cmp, %cmp1
    352   ret i1 %retval
    353 }
    354 
    355 define i1 @auto_gen_32(double %a, double %b) {
    356 ; CHECK-LABEL: @auto_gen_32(
    357 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    358 ; CHECK-NEXT:    ret i1 [[TMP1]]
    359 ;
    360   %cmp = fcmp ord double %a, %b
    361   %cmp1 = fcmp olt double %a, %b
    362   %retval = or i1 %cmp, %cmp1
    363   ret i1 %retval
    364 }
    365 
    366 define i1 @auto_gen_33(double %a, double %b) {
    367 ; CHECK-LABEL: @auto_gen_33(
    368 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    369 ; CHECK-NEXT:    ret i1 [[TMP1]]
    370 ;
    371   %cmp = fcmp ord double %a, %b
    372   %cmp1 = fcmp ole double %a, %b
    373   %retval = or i1 %cmp, %cmp1
    374   ret i1 %retval
    375 }
    376 
    377 define i1 @auto_gen_34(double %a, double %b) {
    378 ; CHECK-LABEL: @auto_gen_34(
    379 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    380 ; CHECK-NEXT:    ret i1 [[TMP1]]
    381 ;
    382   %cmp = fcmp ord double %a, %b
    383   %cmp1 = fcmp one double %a, %b
    384   %retval = or i1 %cmp, %cmp1
    385   ret i1 %retval
    386 }
    387 
    388 define i1 @auto_gen_35(double %a, double %b) {
    389 ; CHECK-LABEL: @auto_gen_35(
    390 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
    391 ; CHECK-NEXT:    ret i1 [[TMP1]]
    392 ;
    393   %cmp = fcmp ord double %a, %b
    394   %cmp1 = fcmp ord double %a, %b
    395   %retval = or i1 %cmp, %cmp1
    396   ret i1 %retval
    397 }
    398 
    399 define i1 @auto_gen_36(double %a, double %b) {
    400 ; CHECK-LABEL: @auto_gen_36(
    401 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ueq double %a, %b
    402 ; CHECK-NEXT:    ret i1 [[CMP]]
    403 ;
    404   %cmp = fcmp ueq double %a, %b
    405   %cmp1 = fcmp false double %a, %b
    406   %retval = or i1 %cmp, %cmp1
    407   ret i1 %retval
    408 }
    409 
    410 define i1 @auto_gen_37(double %a, double %b) {
    411 ; CHECK-LABEL: @auto_gen_37(
    412 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
    413 ; CHECK-NEXT:    ret i1 [[TMP1]]
    414 ;
    415   %cmp = fcmp ueq double %a, %b
    416   %cmp1 = fcmp oeq double %a, %b
    417   %retval = or i1 %cmp, %cmp1
    418   ret i1 %retval
    419 }
    420 
    421 define i1 @auto_gen_38(double %a, double %b) {
    422 ; CHECK-LABEL: @auto_gen_38(
    423 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    424 ; CHECK-NEXT:    ret i1 [[TMP1]]
    425 ;
    426   %cmp = fcmp ueq double %a, %b
    427   %cmp1 = fcmp ogt double %a, %b
    428   %retval = or i1 %cmp, %cmp1
    429   ret i1 %retval
    430 }
    431 
    432 define i1 @auto_gen_39(double %a, double %b) {
    433 ; CHECK-LABEL: @auto_gen_39(
    434 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    435 ; CHECK-NEXT:    ret i1 [[TMP1]]
    436 ;
    437   %cmp = fcmp ueq double %a, %b
    438   %cmp1 = fcmp oge double %a, %b
    439   %retval = or i1 %cmp, %cmp1
    440   ret i1 %retval
    441 }
    442 
    443 define i1 @auto_gen_40(double %a, double %b) {
    444 ; CHECK-LABEL: @auto_gen_40(
    445 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    446 ; CHECK-NEXT:    ret i1 [[TMP1]]
    447 ;
    448   %cmp = fcmp ueq double %a, %b
    449   %cmp1 = fcmp olt double %a, %b
    450   %retval = or i1 %cmp, %cmp1
    451   ret i1 %retval
    452 }
    453 
    454 define i1 @auto_gen_41(double %a, double %b) {
    455 ; CHECK-LABEL: @auto_gen_41(
    456 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    457 ; CHECK-NEXT:    ret i1 [[TMP1]]
    458 ;
    459   %cmp = fcmp ueq double %a, %b
    460   %cmp1 = fcmp ole double %a, %b
    461   %retval = or i1 %cmp, %cmp1
    462   ret i1 %retval
    463 }
    464 
    465 define i1 @auto_gen_42(double %a, double %b) {
    466 ; CHECK-LABEL: @auto_gen_42(
    467 ; CHECK-NEXT:    ret i1 true
    468 ;
    469   %cmp = fcmp ueq double %a, %b
    470   %cmp1 = fcmp one double %a, %b
    471   %retval = or i1 %cmp, %cmp1
    472   ret i1 %retval
    473 }
    474 
    475 define i1 @auto_gen_43(double %a, double %b) {
    476 ; CHECK-LABEL: @auto_gen_43(
    477 ; CHECK-NEXT:    ret i1 true
    478 ;
    479   %cmp = fcmp ueq double %a, %b
    480   %cmp1 = fcmp ord double %a, %b
    481   %retval = or i1 %cmp, %cmp1
    482   ret i1 %retval
    483 }
    484 
    485 define i1 @auto_gen_44(double %a, double %b) {
    486 ; CHECK-LABEL: @auto_gen_44(
    487 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
    488 ; CHECK-NEXT:    ret i1 [[TMP1]]
    489 ;
    490   %cmp = fcmp ueq double %a, %b
    491   %cmp1 = fcmp ueq double %a, %b
    492   %retval = or i1 %cmp, %cmp1
    493   ret i1 %retval
    494 }
    495 
    496 define i1 @auto_gen_45(double %a, double %b) {
    497 ; CHECK-LABEL: @auto_gen_45(
    498 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ugt double %a, %b
    499 ; CHECK-NEXT:    ret i1 [[CMP]]
    500 ;
    501   %cmp = fcmp ugt double %a, %b
    502   %cmp1 = fcmp false double %a, %b
    503   %retval = or i1 %cmp, %cmp1
    504   ret i1 %retval
    505 }
    506 
    507 define i1 @auto_gen_46(double %a, double %b) {
    508 ; CHECK-LABEL: @auto_gen_46(
    509 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    510 ; CHECK-NEXT:    ret i1 [[TMP1]]
    511 ;
    512   %cmp = fcmp ugt double %a, %b
    513   %cmp1 = fcmp oeq double %a, %b
    514   %retval = or i1 %cmp, %cmp1
    515   ret i1 %retval
    516 }
    517 
    518 define i1 @auto_gen_47(double %a, double %b) {
    519 ; CHECK-LABEL: @auto_gen_47(
    520 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
    521 ; CHECK-NEXT:    ret i1 [[TMP1]]
    522 ;
    523   %cmp = fcmp ugt double %a, %b
    524   %cmp1 = fcmp ogt double %a, %b
    525   %retval = or i1 %cmp, %cmp1
    526   ret i1 %retval
    527 }
    528 
    529 define i1 @auto_gen_48(double %a, double %b) {
    530 ; CHECK-LABEL: @auto_gen_48(
    531 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    532 ; CHECK-NEXT:    ret i1 [[TMP1]]
    533 ;
    534   %cmp = fcmp ugt double %a, %b
    535   %cmp1 = fcmp oge double %a, %b
    536   %retval = or i1 %cmp, %cmp1
    537   ret i1 %retval
    538 }
    539 
    540 define i1 @auto_gen_49(double %a, double %b) {
    541 ; CHECK-LABEL: @auto_gen_49(
    542 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
    543 ; CHECK-NEXT:    ret i1 [[TMP1]]
    544 ;
    545   %cmp = fcmp ugt double %a, %b
    546   %cmp1 = fcmp olt double %a, %b
    547   %retval = or i1 %cmp, %cmp1
    548   ret i1 %retval
    549 }
    550 
    551 define i1 @auto_gen_50(double %a, double %b) {
    552 ; CHECK-LABEL: @auto_gen_50(
    553 ; CHECK-NEXT:    ret i1 true
    554 ;
    555   %cmp = fcmp ugt double %a, %b
    556   %cmp1 = fcmp ole double %a, %b
    557   %retval = or i1 %cmp, %cmp1
    558   ret i1 %retval
    559 }
    560 
    561 define i1 @auto_gen_51(double %a, double %b) {
    562 ; CHECK-LABEL: @auto_gen_51(
    563 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
    564 ; CHECK-NEXT:    ret i1 [[TMP1]]
    565 ;
    566   %cmp = fcmp ugt double %a, %b
    567   %cmp1 = fcmp one double %a, %b
    568   %retval = or i1 %cmp, %cmp1
    569   ret i1 %retval
    570 }
    571 
    572 define i1 @auto_gen_52(double %a, double %b) {
    573 ; CHECK-LABEL: @auto_gen_52(
    574 ; CHECK-NEXT:    ret i1 true
    575 ;
    576   %cmp = fcmp ugt double %a, %b
    577   %cmp1 = fcmp ord double %a, %b
    578   %retval = or i1 %cmp, %cmp1
    579   ret i1 %retval
    580 }
    581 
    582 define i1 @auto_gen_53(double %a, double %b) {
    583 ; CHECK-LABEL: @auto_gen_53(
    584 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    585 ; CHECK-NEXT:    ret i1 [[TMP1]]
    586 ;
    587   %cmp = fcmp ugt double %a, %b
    588   %cmp1 = fcmp ueq double %a, %b
    589   %retval = or i1 %cmp, %cmp1
    590   ret i1 %retval
    591 }
    592 
    593 define i1 @auto_gen_54(double %a, double %b) {
    594 ; CHECK-LABEL: @auto_gen_54(
    595 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
    596 ; CHECK-NEXT:    ret i1 [[TMP1]]
    597 ;
    598   %cmp = fcmp ugt double %a, %b
    599   %cmp1 = fcmp ugt double %a, %b
    600   %retval = or i1 %cmp, %cmp1
    601   ret i1 %retval
    602 }
    603 
    604 define i1 @auto_gen_55(double %a, double %b) {
    605 ; CHECK-LABEL: @auto_gen_55(
    606 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp uge double %a, %b
    607 ; CHECK-NEXT:    ret i1 [[CMP]]
    608 ;
    609   %cmp = fcmp uge double %a, %b
    610   %cmp1 = fcmp false double %a, %b
    611   %retval = or i1 %cmp, %cmp1
    612   ret i1 %retval
    613 }
    614 
    615 define i1 @auto_gen_56(double %a, double %b) {
    616 ; CHECK-LABEL: @auto_gen_56(
    617 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    618 ; CHECK-NEXT:    ret i1 [[TMP1]]
    619 ;
    620   %cmp = fcmp uge double %a, %b
    621   %cmp1 = fcmp oeq double %a, %b
    622   %retval = or i1 %cmp, %cmp1
    623   ret i1 %retval
    624 }
    625 
    626 define i1 @auto_gen_57(double %a, double %b) {
    627 ; CHECK-LABEL: @auto_gen_57(
    628 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    629 ; CHECK-NEXT:    ret i1 [[TMP1]]
    630 ;
    631   %cmp = fcmp uge double %a, %b
    632   %cmp1 = fcmp ogt double %a, %b
    633   %retval = or i1 %cmp, %cmp1
    634   ret i1 %retval
    635 }
    636 
    637 define i1 @auto_gen_58(double %a, double %b) {
    638 ; CHECK-LABEL: @auto_gen_58(
    639 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    640 ; CHECK-NEXT:    ret i1 [[TMP1]]
    641 ;
    642   %cmp = fcmp uge double %a, %b
    643   %cmp1 = fcmp oge double %a, %b
    644   %retval = or i1 %cmp, %cmp1
    645   ret i1 %retval
    646 }
    647 
    648 define i1 @auto_gen_59(double %a, double %b) {
    649 ; CHECK-LABEL: @auto_gen_59(
    650 ; CHECK-NEXT:    ret i1 true
    651 ;
    652   %cmp = fcmp uge double %a, %b
    653   %cmp1 = fcmp olt double %a, %b
    654   %retval = or i1 %cmp, %cmp1
    655   ret i1 %retval
    656 }
    657 
    658 define i1 @auto_gen_60(double %a, double %b) {
    659 ; CHECK-LABEL: @auto_gen_60(
    660 ; CHECK-NEXT:    ret i1 true
    661 ;
    662   %cmp = fcmp uge double %a, %b
    663   %cmp1 = fcmp ole double %a, %b
    664   %retval = or i1 %cmp, %cmp1
    665   ret i1 %retval
    666 }
    667 
    668 define i1 @auto_gen_61(double %a, double %b) {
    669 ; CHECK-LABEL: @auto_gen_61(
    670 ; CHECK-NEXT:    ret i1 true
    671 ;
    672   %cmp = fcmp uge double %a, %b
    673   %cmp1 = fcmp one double %a, %b
    674   %retval = or i1 %cmp, %cmp1
    675   ret i1 %retval
    676 }
    677 
    678 define i1 @auto_gen_62(double %a, double %b) {
    679 ; CHECK-LABEL: @auto_gen_62(
    680 ; CHECK-NEXT:    ret i1 true
    681 ;
    682   %cmp = fcmp uge double %a, %b
    683   %cmp1 = fcmp ord double %a, %b
    684   %retval = or i1 %cmp, %cmp1
    685   ret i1 %retval
    686 }
    687 
    688 define i1 @auto_gen_63(double %a, double %b) {
    689 ; CHECK-LABEL: @auto_gen_63(
    690 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    691 ; CHECK-NEXT:    ret i1 [[TMP1]]
    692 ;
    693   %cmp = fcmp uge double %a, %b
    694   %cmp1 = fcmp ueq double %a, %b
    695   %retval = or i1 %cmp, %cmp1
    696   ret i1 %retval
    697 }
    698 
    699 define i1 @auto_gen_64(double %a, double %b) {
    700 ; CHECK-LABEL: @auto_gen_64(
    701 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    702 ; CHECK-NEXT:    ret i1 [[TMP1]]
    703 ;
    704   %cmp = fcmp uge double %a, %b
    705   %cmp1 = fcmp ugt double %a, %b
    706   %retval = or i1 %cmp, %cmp1
    707   ret i1 %retval
    708 }
    709 
    710 define i1 @auto_gen_65(double %a, double %b) {
    711 ; CHECK-LABEL: @auto_gen_65(
    712 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
    713 ; CHECK-NEXT:    ret i1 [[TMP1]]
    714 ;
    715   %cmp = fcmp uge double %a, %b
    716   %cmp1 = fcmp uge double %a, %b
    717   %retval = or i1 %cmp, %cmp1
    718   ret i1 %retval
    719 }
    720 
    721 define i1 @auto_gen_66(double %a, double %b) {
    722 ; CHECK-LABEL: @auto_gen_66(
    723 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ult double %a, %b
    724 ; CHECK-NEXT:    ret i1 [[CMP]]
    725 ;
    726   %cmp = fcmp ult double %a, %b
    727   %cmp1 = fcmp false double %a, %b
    728   %retval = or i1 %cmp, %cmp1
    729   ret i1 %retval
    730 }
    731 
    732 define i1 @auto_gen_67(double %a, double %b) {
    733 ; CHECK-LABEL: @auto_gen_67(
    734 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    735 ; CHECK-NEXT:    ret i1 [[TMP1]]
    736 ;
    737   %cmp = fcmp ult double %a, %b
    738   %cmp1 = fcmp oeq double %a, %b
    739   %retval = or i1 %cmp, %cmp1
    740   ret i1 %retval
    741 }
    742 
    743 define i1 @auto_gen_68(double %a, double %b) {
    744 ; CHECK-LABEL: @auto_gen_68(
    745 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
    746 ; CHECK-NEXT:    ret i1 [[TMP1]]
    747 ;
    748   %cmp = fcmp ult double %a, %b
    749   %cmp1 = fcmp ogt double %a, %b
    750   %retval = or i1 %cmp, %cmp1
    751   ret i1 %retval
    752 }
    753 
    754 define i1 @auto_gen_69(double %a, double %b) {
    755 ; CHECK-LABEL: @auto_gen_69(
    756 ; CHECK-NEXT:    ret i1 true
    757 ;
    758   %cmp = fcmp ult double %a, %b
    759   %cmp1 = fcmp oge double %a, %b
    760   %retval = or i1 %cmp, %cmp1
    761   ret i1 %retval
    762 }
    763 
    764 define i1 @auto_gen_70(double %a, double %b) {
    765 ; CHECK-LABEL: @auto_gen_70(
    766 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
    767 ; CHECK-NEXT:    ret i1 [[TMP1]]
    768 ;
    769   %cmp = fcmp ult double %a, %b
    770   %cmp1 = fcmp olt double %a, %b
    771   %retval = or i1 %cmp, %cmp1
    772   ret i1 %retval
    773 }
    774 
    775 define i1 @auto_gen_71(double %a, double %b) {
    776 ; CHECK-LABEL: @auto_gen_71(
    777 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    778 ; CHECK-NEXT:    ret i1 [[TMP1]]
    779 ;
    780   %cmp = fcmp ult double %a, %b
    781   %cmp1 = fcmp ole double %a, %b
    782   %retval = or i1 %cmp, %cmp1
    783   ret i1 %retval
    784 }
    785 
    786 define i1 @auto_gen_72(double %a, double %b) {
    787 ; CHECK-LABEL: @auto_gen_72(
    788 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
    789 ; CHECK-NEXT:    ret i1 [[TMP1]]
    790 ;
    791   %cmp = fcmp ult double %a, %b
    792   %cmp1 = fcmp one double %a, %b
    793   %retval = or i1 %cmp, %cmp1
    794   ret i1 %retval
    795 }
    796 
    797 define i1 @auto_gen_73(double %a, double %b) {
    798 ; CHECK-LABEL: @auto_gen_73(
    799 ; CHECK-NEXT:    ret i1 true
    800 ;
    801   %cmp = fcmp ult double %a, %b
    802   %cmp1 = fcmp ord double %a, %b
    803   %retval = or i1 %cmp, %cmp1
    804   ret i1 %retval
    805 }
    806 
    807 define i1 @auto_gen_74(double %a, double %b) {
    808 ; CHECK-LABEL: @auto_gen_74(
    809 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    810 ; CHECK-NEXT:    ret i1 [[TMP1]]
    811 ;
    812   %cmp = fcmp ult double %a, %b
    813   %cmp1 = fcmp ueq double %a, %b
    814   %retval = or i1 %cmp, %cmp1
    815   ret i1 %retval
    816 }
    817 
    818 define i1 @auto_gen_75(double %a, double %b) {
    819 ; CHECK-LABEL: @auto_gen_75(
    820 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
    821 ; CHECK-NEXT:    ret i1 [[TMP1]]
    822 ;
    823   %cmp = fcmp ult double %a, %b
    824   %cmp1 = fcmp ugt double %a, %b
    825   %retval = or i1 %cmp, %cmp1
    826   ret i1 %retval
    827 }
    828 
    829 define i1 @auto_gen_76(double %a, double %b) {
    830 ; CHECK-LABEL: @auto_gen_76(
    831 ; CHECK-NEXT:    ret i1 true
    832 ;
    833   %cmp = fcmp ult double %a, %b
    834   %cmp1 = fcmp uge double %a, %b
    835   %retval = or i1 %cmp, %cmp1
    836   ret i1 %retval
    837 }
    838 
    839 define i1 @auto_gen_77(double %a, double %b) {
    840 ; CHECK-LABEL: @auto_gen_77(
    841 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
    842 ; CHECK-NEXT:    ret i1 [[TMP1]]
    843 ;
    844   %cmp = fcmp ult double %a, %b
    845   %cmp1 = fcmp ult double %a, %b
    846   %retval = or i1 %cmp, %cmp1
    847   ret i1 %retval
    848 }
    849 
    850 define i1 @auto_gen_78(double %a, double %b) {
    851 ; CHECK-LABEL: @auto_gen_78(
    852 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ule double %a, %b
    853 ; CHECK-NEXT:    ret i1 [[CMP]]
    854 ;
    855   %cmp = fcmp ule double %a, %b
    856   %cmp1 = fcmp false double %a, %b
    857   %retval = or i1 %cmp, %cmp1
    858   ret i1 %retval
    859 }
    860 
    861 define i1 @auto_gen_79(double %a, double %b) {
    862 ; CHECK-LABEL: @auto_gen_79(
    863 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    864 ; CHECK-NEXT:    ret i1 [[TMP1]]
    865 ;
    866   %cmp = fcmp ule double %a, %b
    867   %cmp1 = fcmp oeq double %a, %b
    868   %retval = or i1 %cmp, %cmp1
    869   ret i1 %retval
    870 }
    871 
    872 define i1 @auto_gen_80(double %a, double %b) {
    873 ; CHECK-LABEL: @auto_gen_80(
    874 ; CHECK-NEXT:    ret i1 true
    875 ;
    876   %cmp = fcmp ule double %a, %b
    877   %cmp1 = fcmp ogt double %a, %b
    878   %retval = or i1 %cmp, %cmp1
    879   ret i1 %retval
    880 }
    881 
    882 define i1 @auto_gen_81(double %a, double %b) {
    883 ; CHECK-LABEL: @auto_gen_81(
    884 ; CHECK-NEXT:    ret i1 true
    885 ;
    886   %cmp = fcmp ule double %a, %b
    887   %cmp1 = fcmp oge double %a, %b
    888   %retval = or i1 %cmp, %cmp1
    889   ret i1 %retval
    890 }
    891 
    892 define i1 @auto_gen_82(double %a, double %b) {
    893 ; CHECK-LABEL: @auto_gen_82(
    894 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    895 ; CHECK-NEXT:    ret i1 [[TMP1]]
    896 ;
    897   %cmp = fcmp ule double %a, %b
    898   %cmp1 = fcmp olt double %a, %b
    899   %retval = or i1 %cmp, %cmp1
    900   ret i1 %retval
    901 }
    902 
    903 define i1 @auto_gen_83(double %a, double %b) {
    904 ; CHECK-LABEL: @auto_gen_83(
    905 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    906 ; CHECK-NEXT:    ret i1 [[TMP1]]
    907 ;
    908   %cmp = fcmp ule double %a, %b
    909   %cmp1 = fcmp ole double %a, %b
    910   %retval = or i1 %cmp, %cmp1
    911   ret i1 %retval
    912 }
    913 
    914 define i1 @auto_gen_84(double %a, double %b) {
    915 ; CHECK-LABEL: @auto_gen_84(
    916 ; CHECK-NEXT:    ret i1 true
    917 ;
    918   %cmp = fcmp ule double %a, %b
    919   %cmp1 = fcmp one double %a, %b
    920   %retval = or i1 %cmp, %cmp1
    921   ret i1 %retval
    922 }
    923 
    924 define i1 @auto_gen_85(double %a, double %b) {
    925 ; CHECK-LABEL: @auto_gen_85(
    926 ; CHECK-NEXT:    ret i1 true
    927 ;
    928   %cmp = fcmp ule double %a, %b
    929   %cmp1 = fcmp ord double %a, %b
    930   %retval = or i1 %cmp, %cmp1
    931   ret i1 %retval
    932 }
    933 
    934 define i1 @auto_gen_86(double %a, double %b) {
    935 ; CHECK-LABEL: @auto_gen_86(
    936 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    937 ; CHECK-NEXT:    ret i1 [[TMP1]]
    938 ;
    939   %cmp = fcmp ule double %a, %b
    940   %cmp1 = fcmp ueq double %a, %b
    941   %retval = or i1 %cmp, %cmp1
    942   ret i1 %retval
    943 }
    944 
    945 define i1 @auto_gen_87(double %a, double %b) {
    946 ; CHECK-LABEL: @auto_gen_87(
    947 ; CHECK-NEXT:    ret i1 true
    948 ;
    949   %cmp = fcmp ule double %a, %b
    950   %cmp1 = fcmp ugt double %a, %b
    951   %retval = or i1 %cmp, %cmp1
    952   ret i1 %retval
    953 }
    954 
    955 define i1 @auto_gen_88(double %a, double %b) {
    956 ; CHECK-LABEL: @auto_gen_88(
    957 ; CHECK-NEXT:    ret i1 true
    958 ;
    959   %cmp = fcmp ule double %a, %b
    960   %cmp1 = fcmp uge double %a, %b
    961   %retval = or i1 %cmp, %cmp1
    962   ret i1 %retval
    963 }
    964 
    965 define i1 @auto_gen_89(double %a, double %b) {
    966 ; CHECK-LABEL: @auto_gen_89(
    967 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    968 ; CHECK-NEXT:    ret i1 [[TMP1]]
    969 ;
    970   %cmp = fcmp ule double %a, %b
    971   %cmp1 = fcmp ult double %a, %b
    972   %retval = or i1 %cmp, %cmp1
    973   ret i1 %retval
    974 }
    975 
    976 define i1 @auto_gen_90(double %a, double %b) {
    977 ; CHECK-LABEL: @auto_gen_90(
    978 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
    979 ; CHECK-NEXT:    ret i1 [[TMP1]]
    980 ;
    981   %cmp = fcmp ule double %a, %b
    982   %cmp1 = fcmp ule double %a, %b
    983   %retval = or i1 %cmp, %cmp1
    984   ret i1 %retval
    985 }
    986 
    987 define i1 @auto_gen_91(double %a, double %b) {
    988 ; CHECK-LABEL: @auto_gen_91(
    989 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp une double %a, %b
    990 ; CHECK-NEXT:    ret i1 [[CMP]]
    991 ;
    992   %cmp = fcmp une double %a, %b
    993   %cmp1 = fcmp false double %a, %b
    994   %retval = or i1 %cmp, %cmp1
    995   ret i1 %retval
    996 }
    997 
    998 define i1 @auto_gen_92(double %a, double %b) {
    999 ; CHECK-LABEL: @auto_gen_92(
   1000 ; CHECK-NEXT:    ret i1 true
   1001 ;
   1002   %cmp = fcmp une double %a, %b
   1003   %cmp1 = fcmp oeq double %a, %b
   1004   %retval = or i1 %cmp, %cmp1
   1005   ret i1 %retval
   1006 }
   1007 
   1008 define i1 @auto_gen_93(double %a, double %b) {
   1009 ; CHECK-LABEL: @auto_gen_93(
   1010 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1011 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1012 ;
   1013   %cmp = fcmp une double %a, %b
   1014   %cmp1 = fcmp ogt double %a, %b
   1015   %retval = or i1 %cmp, %cmp1
   1016   ret i1 %retval
   1017 }
   1018 
   1019 define i1 @auto_gen_94(double %a, double %b) {
   1020 ; CHECK-LABEL: @auto_gen_94(
   1021 ; CHECK-NEXT:    ret i1 true
   1022 ;
   1023   %cmp = fcmp une double %a, %b
   1024   %cmp1 = fcmp oge double %a, %b
   1025   %retval = or i1 %cmp, %cmp1
   1026   ret i1 %retval
   1027 }
   1028 
   1029 define i1 @auto_gen_95(double %a, double %b) {
   1030 ; CHECK-LABEL: @auto_gen_95(
   1031 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1032 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1033 ;
   1034   %cmp = fcmp une double %a, %b
   1035   %cmp1 = fcmp olt double %a, %b
   1036   %retval = or i1 %cmp, %cmp1
   1037   ret i1 %retval
   1038 }
   1039 
   1040 define i1 @auto_gen_96(double %a, double %b) {
   1041 ; CHECK-LABEL: @auto_gen_96(
   1042 ; CHECK-NEXT:    ret i1 true
   1043 ;
   1044   %cmp = fcmp une double %a, %b
   1045   %cmp1 = fcmp ole double %a, %b
   1046   %retval = or i1 %cmp, %cmp1
   1047   ret i1 %retval
   1048 }
   1049 
   1050 define i1 @auto_gen_97(double %a, double %b) {
   1051 ; CHECK-LABEL: @auto_gen_97(
   1052 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1053 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1054 ;
   1055   %cmp = fcmp une double %a, %b
   1056   %cmp1 = fcmp one double %a, %b
   1057   %retval = or i1 %cmp, %cmp1
   1058   ret i1 %retval
   1059 }
   1060 
   1061 define i1 @auto_gen_98(double %a, double %b) {
   1062 ; CHECK-LABEL: @auto_gen_98(
   1063 ; CHECK-NEXT:    ret i1 true
   1064 ;
   1065   %cmp = fcmp une double %a, %b
   1066   %cmp1 = fcmp ord double %a, %b
   1067   %retval = or i1 %cmp, %cmp1
   1068   ret i1 %retval
   1069 }
   1070 
   1071 define i1 @auto_gen_99(double %a, double %b) {
   1072 ; CHECK-LABEL: @auto_gen_99(
   1073 ; CHECK-NEXT:    ret i1 true
   1074 ;
   1075   %cmp = fcmp une double %a, %b
   1076   %cmp1 = fcmp ueq double %a, %b
   1077   %retval = or i1 %cmp, %cmp1
   1078   ret i1 %retval
   1079 }
   1080 
   1081 define i1 @auto_gen_100(double %a, double %b) {
   1082 ; CHECK-LABEL: @auto_gen_100(
   1083 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1084 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1085 ;
   1086   %cmp = fcmp une double %a, %b
   1087   %cmp1 = fcmp ugt double %a, %b
   1088   %retval = or i1 %cmp, %cmp1
   1089   ret i1 %retval
   1090 }
   1091 
   1092 define i1 @auto_gen_101(double %a, double %b) {
   1093 ; CHECK-LABEL: @auto_gen_101(
   1094 ; CHECK-NEXT:    ret i1 true
   1095 ;
   1096   %cmp = fcmp une double %a, %b
   1097   %cmp1 = fcmp uge double %a, %b
   1098   %retval = or i1 %cmp, %cmp1
   1099   ret i1 %retval
   1100 }
   1101 
   1102 define i1 @auto_gen_102(double %a, double %b) {
   1103 ; CHECK-LABEL: @auto_gen_102(
   1104 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1105 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1106 ;
   1107   %cmp = fcmp une double %a, %b
   1108   %cmp1 = fcmp ult double %a, %b
   1109   %retval = or i1 %cmp, %cmp1
   1110   ret i1 %retval
   1111 }
   1112 
   1113 define i1 @auto_gen_103(double %a, double %b) {
   1114 ; CHECK-LABEL: @auto_gen_103(
   1115 ; CHECK-NEXT:    ret i1 true
   1116 ;
   1117   %cmp = fcmp une double %a, %b
   1118   %cmp1 = fcmp ule double %a, %b
   1119   %retval = or i1 %cmp, %cmp1
   1120   ret i1 %retval
   1121 }
   1122 
   1123 define i1 @auto_gen_104(double %a, double %b) {
   1124 ; CHECK-LABEL: @auto_gen_104(
   1125 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1126 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1127 ;
   1128   %cmp = fcmp une double %a, %b
   1129   %cmp1 = fcmp une double %a, %b
   1130   %retval = or i1 %cmp, %cmp1
   1131   ret i1 %retval
   1132 }
   1133 
   1134 define i1 @auto_gen_105(double %a, double %b) {
   1135 ; CHECK-LABEL: @auto_gen_105(
   1136 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp uno double %a, %b
   1137 ; CHECK-NEXT:    ret i1 [[CMP]]
   1138 ;
   1139   %cmp = fcmp uno double %a, %b
   1140   %cmp1 = fcmp false double %a, %b
   1141   %retval = or i1 %cmp, %cmp1
   1142   ret i1 %retval
   1143 }
   1144 
   1145 define i1 @auto_gen_106(double %a, double %b) {
   1146 ; CHECK-LABEL: @auto_gen_106(
   1147 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
   1148 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1149 ;
   1150   %cmp = fcmp uno double %a, %b
   1151   %cmp1 = fcmp oeq double %a, %b
   1152   %retval = or i1 %cmp, %cmp1
   1153   ret i1 %retval
   1154 }
   1155 
   1156 define i1 @auto_gen_107(double %a, double %b) {
   1157 ; CHECK-LABEL: @auto_gen_107(
   1158 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
   1159 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1160 ;
   1161   %cmp = fcmp uno double %a, %b
   1162   %cmp1 = fcmp ogt double %a, %b
   1163   %retval = or i1 %cmp, %cmp1
   1164   ret i1 %retval
   1165 }
   1166 
   1167 define i1 @auto_gen_108(double %a, double %b) {
   1168 ; CHECK-LABEL: @auto_gen_108(
   1169 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
   1170 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1171 ;
   1172   %cmp = fcmp uno double %a, %b
   1173   %cmp1 = fcmp oge double %a, %b
   1174   %retval = or i1 %cmp, %cmp1
   1175   ret i1 %retval
   1176 }
   1177 
   1178 define i1 @auto_gen_109(double %a, double %b) {
   1179 ; CHECK-LABEL: @auto_gen_109(
   1180 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
   1181 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1182 ;
   1183   %cmp = fcmp uno double %a, %b
   1184   %cmp1 = fcmp olt double %a, %b
   1185   %retval = or i1 %cmp, %cmp1
   1186   ret i1 %retval
   1187 }
   1188 
   1189 define i1 @auto_gen_110(double %a, double %b) {
   1190 ; CHECK-LABEL: @auto_gen_110(
   1191 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
   1192 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1193 ;
   1194   %cmp = fcmp uno double %a, %b
   1195   %cmp1 = fcmp ole double %a, %b
   1196   %retval = or i1 %cmp, %cmp1
   1197   ret i1 %retval
   1198 }
   1199 
   1200 define i1 @auto_gen_111(double %a, double %b) {
   1201 ; CHECK-LABEL: @auto_gen_111(
   1202 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1203 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1204 ;
   1205   %cmp = fcmp uno double %a, %b
   1206   %cmp1 = fcmp one double %a, %b
   1207   %retval = or i1 %cmp, %cmp1
   1208   ret i1 %retval
   1209 }
   1210 
   1211 define i1 @auto_gen_112(double %a, double %b) {
   1212 ; CHECK-LABEL: @auto_gen_112(
   1213 ; CHECK-NEXT:    ret i1 true
   1214 ;
   1215   %cmp = fcmp uno double %a, %b
   1216   %cmp1 = fcmp ord double %a, %b
   1217   %retval = or i1 %cmp, %cmp1
   1218   ret i1 %retval
   1219 }
   1220 
   1221 define i1 @auto_gen_113(double %a, double %b) {
   1222 ; CHECK-LABEL: @auto_gen_113(
   1223 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
   1224 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1225 ;
   1226   %cmp = fcmp uno double %a, %b
   1227   %cmp1 = fcmp ueq double %a, %b
   1228   %retval = or i1 %cmp, %cmp1
   1229   ret i1 %retval
   1230 }
   1231 
   1232 define i1 @auto_gen_114(double %a, double %b) {
   1233 ; CHECK-LABEL: @auto_gen_114(
   1234 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
   1235 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1236 ;
   1237   %cmp = fcmp uno double %a, %b
   1238   %cmp1 = fcmp ugt double %a, %b
   1239   %retval = or i1 %cmp, %cmp1
   1240   ret i1 %retval
   1241 }
   1242 
   1243 define i1 @auto_gen_115(double %a, double %b) {
   1244 ; CHECK-LABEL: @auto_gen_115(
   1245 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
   1246 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1247 ;
   1248   %cmp = fcmp uno double %a, %b
   1249   %cmp1 = fcmp uge double %a, %b
   1250   %retval = or i1 %cmp, %cmp1
   1251   ret i1 %retval
   1252 }
   1253 
   1254 define i1 @auto_gen_116(double %a, double %b) {
   1255 ; CHECK-LABEL: @auto_gen_116(
   1256 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
   1257 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1258 ;
   1259   %cmp = fcmp uno double %a, %b
   1260   %cmp1 = fcmp ult double %a, %b
   1261   %retval = or i1 %cmp, %cmp1
   1262   ret i1 %retval
   1263 }
   1264 
   1265 define i1 @auto_gen_117(double %a, double %b) {
   1266 ; CHECK-LABEL: @auto_gen_117(
   1267 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
   1268 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1269 ;
   1270   %cmp = fcmp uno double %a, %b
   1271   %cmp1 = fcmp ule double %a, %b
   1272   %retval = or i1 %cmp, %cmp1
   1273   ret i1 %retval
   1274 }
   1275 
   1276 define i1 @auto_gen_118(double %a, double %b) {
   1277 ; CHECK-LABEL: @auto_gen_118(
   1278 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
   1279 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1280 ;
   1281   %cmp = fcmp uno double %a, %b
   1282   %cmp1 = fcmp une double %a, %b
   1283   %retval = or i1 %cmp, %cmp1
   1284   ret i1 %retval
   1285 }
   1286 
   1287 define i1 @auto_gen_119(double %a, double %b) {
   1288 ; CHECK-LABEL: @auto_gen_119(
   1289 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
   1290 ; CHECK-NEXT:    ret i1 [[TMP1]]
   1291 ;
   1292   %cmp = fcmp uno double %a, %b
   1293   %cmp1 = fcmp uno double %a, %b
   1294   %retval = or i1 %cmp, %cmp1
   1295   ret i1 %retval
   1296 }
   1297 
   1298 define i1 @auto_gen_120(double %a, double %b) {
   1299 ; CHECK-LABEL: @auto_gen_120(
   1300 ; CHECK-NEXT:    ret i1 true
   1301 ;
   1302   %cmp = fcmp true double %a, %b
   1303   %cmp1 = fcmp false double %a, %b
   1304   %retval = or i1 %cmp, %cmp1
   1305   ret i1 %retval
   1306 }
   1307 
   1308 define i1 @auto_gen_121(double %a, double %b) {
   1309 ; CHECK-LABEL: @auto_gen_121(
   1310 ; CHECK-NEXT:    ret i1 true
   1311 ;
   1312   %cmp = fcmp true double %a, %b
   1313   %cmp1 = fcmp oeq double %a, %b
   1314   %retval = or i1 %cmp, %cmp1
   1315   ret i1 %retval
   1316 }
   1317 
   1318 define i1 @auto_gen_122(double %a, double %b) {
   1319 ; CHECK-LABEL: @auto_gen_122(
   1320 ; CHECK-NEXT:    ret i1 true
   1321 ;
   1322   %cmp = fcmp true double %a, %b
   1323   %cmp1 = fcmp ogt double %a, %b
   1324   %retval = or i1 %cmp, %cmp1
   1325   ret i1 %retval
   1326 }
   1327 
   1328 define i1 @auto_gen_123(double %a, double %b) {
   1329 ; CHECK-LABEL: @auto_gen_123(
   1330 ; CHECK-NEXT:    ret i1 true
   1331 ;
   1332   %cmp = fcmp true double %a, %b
   1333   %cmp1 = fcmp oge double %a, %b
   1334   %retval = or i1 %cmp, %cmp1
   1335   ret i1 %retval
   1336 }
   1337 
   1338 define i1 @auto_gen_124(double %a, double %b) {
   1339 ; CHECK-LABEL: @auto_gen_124(
   1340 ; CHECK-NEXT:    ret i1 true
   1341 ;
   1342   %cmp = fcmp true double %a, %b
   1343   %cmp1 = fcmp olt double %a, %b
   1344   %retval = or i1 %cmp, %cmp1
   1345   ret i1 %retval
   1346 }
   1347 
   1348 define i1 @auto_gen_125(double %a, double %b) {
   1349 ; CHECK-LABEL: @auto_gen_125(
   1350 ; CHECK-NEXT:    ret i1 true
   1351 ;
   1352   %cmp = fcmp true double %a, %b
   1353   %cmp1 = fcmp ole double %a, %b
   1354   %retval = or i1 %cmp, %cmp1
   1355   ret i1 %retval
   1356 }
   1357 
   1358 define i1 @auto_gen_126(double %a, double %b) {
   1359 ; CHECK-LABEL: @auto_gen_126(
   1360 ; CHECK-NEXT:    ret i1 true
   1361 ;
   1362   %cmp = fcmp true double %a, %b
   1363   %cmp1 = fcmp one double %a, %b
   1364   %retval = or i1 %cmp, %cmp1
   1365   ret i1 %retval
   1366 }
   1367 
   1368 define i1 @auto_gen_127(double %a, double %b) {
   1369 ; CHECK-LABEL: @auto_gen_127(
   1370 ; CHECK-NEXT:    ret i1 true
   1371 ;
   1372   %cmp = fcmp true double %a, %b
   1373   %cmp1 = fcmp ord double %a, %b
   1374   %retval = or i1 %cmp, %cmp1
   1375   ret i1 %retval
   1376 }
   1377 
   1378 define i1 @auto_gen_128(double %a, double %b) {
   1379 ; CHECK-LABEL: @auto_gen_128(
   1380 ; CHECK-NEXT:    ret i1 true
   1381 ;
   1382   %cmp = fcmp true double %a, %b
   1383   %cmp1 = fcmp ueq double %a, %b
   1384   %retval = or i1 %cmp, %cmp1
   1385   ret i1 %retval
   1386 }
   1387 
   1388 define i1 @auto_gen_129(double %a, double %b) {
   1389 ; CHECK-LABEL: @auto_gen_129(
   1390 ; CHECK-NEXT:    ret i1 true
   1391 ;
   1392   %cmp = fcmp true double %a, %b
   1393   %cmp1 = fcmp ugt double %a, %b
   1394   %retval = or i1 %cmp, %cmp1
   1395   ret i1 %retval
   1396 }
   1397 
   1398 define i1 @auto_gen_130(double %a, double %b) {
   1399 ; CHECK-LABEL: @auto_gen_130(
   1400 ; CHECK-NEXT:    ret i1 true
   1401 ;
   1402   %cmp = fcmp true double %a, %b
   1403   %cmp1 = fcmp uge double %a, %b
   1404   %retval = or i1 %cmp, %cmp1
   1405   ret i1 %retval
   1406 }
   1407 
   1408 define i1 @auto_gen_131(double %a, double %b) {
   1409 ; CHECK-LABEL: @auto_gen_131(
   1410 ; CHECK-NEXT:    ret i1 true
   1411 ;
   1412   %cmp = fcmp true double %a, %b
   1413   %cmp1 = fcmp ult double %a, %b
   1414   %retval = or i1 %cmp, %cmp1
   1415   ret i1 %retval
   1416 }
   1417 
   1418 define i1 @auto_gen_132(double %a, double %b) {
   1419 ; CHECK-LABEL: @auto_gen_132(
   1420 ; CHECK-NEXT:    ret i1 true
   1421 ;
   1422   %cmp = fcmp true double %a, %b
   1423   %cmp1 = fcmp ule double %a, %b
   1424   %retval = or i1 %cmp, %cmp1
   1425   ret i1 %retval
   1426 }
   1427 
   1428 define i1 @auto_gen_133(double %a, double %b) {
   1429 ; CHECK-LABEL: @auto_gen_133(
   1430 ; CHECK-NEXT:    ret i1 true
   1431 ;
   1432   %cmp = fcmp true double %a, %b
   1433   %cmp1 = fcmp une double %a, %b
   1434   %retval = or i1 %cmp, %cmp1
   1435   ret i1 %retval
   1436 }
   1437 
   1438 define i1 @auto_gen_134(double %a, double %b) {
   1439 ; CHECK-LABEL: @auto_gen_134(
   1440 ; CHECK-NEXT:    ret i1 true
   1441 ;
   1442   %cmp = fcmp true double %a, %b
   1443   %cmp1 = fcmp uno double %a, %b
   1444   %retval = or i1 %cmp, %cmp1
   1445   ret i1 %retval
   1446 }
   1447 
   1448 define i1 @auto_gen_135(double %a, double %b) {
   1449 ; CHECK-LABEL: @auto_gen_135(
   1450 ; CHECK-NEXT:    ret i1 true
   1451 ;
   1452   %cmp = fcmp true double %a, %b
   1453   %cmp1 = fcmp true double %a, %b
   1454   %retval = or i1 %cmp, %cmp1
   1455   ret i1 %retval
   1456 }
   1457