Ignore:
Timestamp:
Oct 18, 2014, 4:05:41 PM (5 years ago)
Author:
cameron
Message:

All -> Zeroes, Ones

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/pe_and.cpp

    r4244 r4247  
    1111
    1212PabloAST * OptimizeAnd::operator ()(PabloAST * expr1, PabloAST * expr2) {
    13     if (All * all = dyn_cast<All>(expr1)) {
    14         if (all->getValue()) {
    15             return expr2;
    16         }
    17         else {
    18             return cg.createAll(0);
    19         }
     13    if (isa<Ones>(expr1)) {
     14        return expr2;
    2015    }
    21     else if (All* all = dyn_cast<All>(expr2)) {
    22         if (all->getValue()) {
    23             return expr1;
    24         }
    25         else {
    26             return cg.createAll(0);
    27         }
     16    else if (isa<Zeroes>(expr1)){
     17        return expr1;       
     18    }
     19    else if (isa<Ones>(expr2)) {
     20        return expr1;
     21    }
     22    else if (isa<Zeroes>(expr2)){
     23        return expr2;
    2824    }
    2925    else if (equals(expr1, expr2)) {
     
    3531        }
    3632        else if (equals(pe_not_e1->getExpr(), expr2)) {
    37             return cg.createAll(0);
     33            return cg.createZeroes();
    3834        }
    3935    }
    4036    else if (Not * pe_not_e2 = dyn_cast<Not>(expr2)) {
    4137        if (equals(expr1, pe_not_e2->getExpr())) {
    42             return cg.createAll(0);
     38            return cg.createZeroes();
    4339        }
    4440    }
Note: See TracChangeset for help on using the changeset viewer.