|
446 | 446 | (If (FGreaterThan cc) yes no) => (FGT cc yes no)
|
447 | 447 | (If (FGreaterEqual cc) yes no) => (FGE cc yes no)
|
448 | 448 |
|
449 |
| -(If cond yes no) => (NE (CMPWconst [0] cond) yes no) |
| 449 | +(If cond yes no) => (NE (CMPWconst [0] (ANDconst <typ.UInt32> [1] cond)) yes no) |
450 | 450 |
|
451 | 451 | // Absorb boolean tests into block
|
452 |
| -(NE (CMPWconst [0] (Equal cc)) yes no) => (EQ cc yes no) |
453 |
| -(NE (CMPWconst [0] (NotEqual cc)) yes no) => (NE cc yes no) |
454 |
| -(NE (CMPWconst [0] (LessThan cc)) yes no) => (LT cc yes no) |
455 |
| -(NE (CMPWconst [0] (LessEqual cc)) yes no) => (LE cc yes no) |
456 |
| -(NE (CMPWconst [0] (GreaterThan cc)) yes no) => (GT cc yes no) |
457 |
| -(NE (CMPWconst [0] (GreaterEqual cc)) yes no) => (GE cc yes no) |
458 |
| -(NE (CMPWconst [0] (FLessThan cc)) yes no) => (FLT cc yes no) |
459 |
| -(NE (CMPWconst [0] (FLessEqual cc)) yes no) => (FLE cc yes no) |
460 |
| -(NE (CMPWconst [0] (FGreaterThan cc)) yes no) => (FGT cc yes no) |
461 |
| -(NE (CMPWconst [0] (FGreaterEqual cc)) yes no) => (FGE cc yes no) |
| 452 | +(NE (CMPWconst [0] (ANDconst [1] (Equal cc))) yes no) => (EQ cc yes no) |
| 453 | +(NE (CMPWconst [0] (ANDconst [1] (NotEqual cc))) yes no) => (NE cc yes no) |
| 454 | +(NE (CMPWconst [0] (ANDconst [1] (LessThan cc))) yes no) => (LT cc yes no) |
| 455 | +(NE (CMPWconst [0] (ANDconst [1] (LessEqual cc))) yes no) => (LE cc yes no) |
| 456 | +(NE (CMPWconst [0] (ANDconst [1] (GreaterThan cc))) yes no) => (GT cc yes no) |
| 457 | +(NE (CMPWconst [0] (ANDconst [1] (GreaterEqual cc))) yes no) => (GE cc yes no) |
| 458 | +(NE (CMPWconst [0] (ANDconst [1] (FLessThan cc))) yes no) => (FLT cc yes no) |
| 459 | +(NE (CMPWconst [0] (ANDconst [1] (FLessEqual cc))) yes no) => (FLE cc yes no) |
| 460 | +(NE (CMPWconst [0] (ANDconst [1] (FGreaterThan cc))) yes no) => (FGT cc yes no) |
| 461 | +(NE (CMPWconst [0] (ANDconst [1] (FGreaterEqual cc))) yes no) => (FGE cc yes no) |
462 | 462 |
|
463 | 463 | // Elide compares of bit tests // TODO need to make both CC and result of ANDCC available.
|
464 | 464 | (EQ (CMPconst [0] (ANDconst [c] x)) yes no) => (EQ (ANDCCconst [c] x) yes no)
|
|
0 commit comments