Optimize conditionals where the consequent and alternative are both booleans and not equivalent

This commit is contained in:
Tal Ater
2014-09-13 18:59:19 +03:00
committed by Richard van Velzen
parent 189dbf02b6
commit a1a4c2ada7
2 changed files with 68 additions and 0 deletions

View File

@@ -312,3 +312,57 @@ cond_7_1: {
x = (y, 2);
}
}
cond_8: {
options = {
conditionals: true,
evaluate : true
};
input: {
// compress these
a = condition ? true : false;
a = !condition ? true : false;
a = condition() ? true : false;
if (condition) {
a = true;
} else {
a = false;
}
a = condition ? false : true;
a = !condition ? false : true;
a = condition() ? false : true;
if (condition) {
a = false;
} else {
a = true;
}
// don't compress these
a = condition ? 1 : false;
a = !condition ? true : 0;
a = condition ? 1 : 0;
}
expect: {
a = !!condition;
a = !condition;
a = !!condition();
a = !!condition;
a = !condition;
a = !!condition;
a = !condition();
a = !condition;
a = condition ? 1 : false;
a = condition ? 0 : true;
a = condition ? 1 : 0;
}
}