|
532 | 532 | (If (GreaterThanF cc) yes no) => (FGT cc yes no)
|
533 | 533 | (If (GreaterEqualF cc) yes no) => (FGE cc yes no)
|
534 | 534 |
|
535 |
| -(If cond yes no) => (NZ cond yes no) |
| 535 | +(If cond yes no) => (TBNZ [0] cond yes no) |
536 | 536 |
|
537 | 537 | // atomic intrinsics
|
538 | 538 | // Note: these ops do not accept offset.
|
|
593 | 593 | (NZ (GreaterThanF cc) yes no) => (FGT cc yes no)
|
594 | 594 | (NZ (GreaterEqualF cc) yes no) => (FGE cc yes no)
|
595 | 595 |
|
| 596 | +(TBNZ [0] (Equal cc) yes no) => (EQ cc yes no) |
| 597 | +(TBNZ [0] (NotEqual cc) yes no) => (NE cc yes no) |
| 598 | +(TBNZ [0] (LessThan cc) yes no) => (LT cc yes no) |
| 599 | +(TBNZ [0] (LessThanU cc) yes no) => (ULT cc yes no) |
| 600 | +(TBNZ [0] (LessEqual cc) yes no) => (LE cc yes no) |
| 601 | +(TBNZ [0] (LessEqualU cc) yes no) => (ULE cc yes no) |
| 602 | +(TBNZ [0] (GreaterThan cc) yes no) => (GT cc yes no) |
| 603 | +(TBNZ [0] (GreaterThanU cc) yes no) => (UGT cc yes no) |
| 604 | +(TBNZ [0] (GreaterEqual cc) yes no) => (GE cc yes no) |
| 605 | +(TBNZ [0] (GreaterEqualU cc) yes no) => (UGE cc yes no) |
| 606 | +(TBNZ [0] (LessThanF cc) yes no) => (FLT cc yes no) |
| 607 | +(TBNZ [0] (LessEqualF cc) yes no) => (FLE cc yes no) |
| 608 | +(TBNZ [0] (GreaterThanF cc) yes no) => (FGT cc yes no) |
| 609 | +(TBNZ [0] (GreaterEqualF cc) yes no) => (FGE cc yes no) |
| 610 | + |
596 | 611 | (EQ (CMPWconst [0] x:(ANDconst [c] y)) yes no) && x.Uses == 1 => (EQ (TSTWconst [int32(c)] y) yes no)
|
597 | 612 | (NE (CMPWconst [0] x:(ANDconst [c] y)) yes no) && x.Uses == 1 => (NE (TSTWconst [int32(c)] y) yes no)
|
598 | 613 | (LT (CMPWconst [0] x:(ANDconst [c] y)) yes no) && x.Uses == 1 => (LT (TSTWconst [int32(c)] y) yes no)
|
|
0 commit comments