blob: 977969bb3e90b37073d5638c970fb2f63f4def0a [file] [log] [blame]
// An if-else statement at the end of a function, with a return as the last statement on all
// paths, are not actually "early" returns. The inliner is able to recognize this pattern.
uniform half4 colorGreen, colorRed;
inline half branchy() {
if (colorGreen.g == 0)
return 0;
else if (colorRed.r == 0)
return 0;
else if (colorGreen == colorRed)
return 0;
else
return 1;
}
inline half branchyAndBlocky() {
if (colorGreen.g == 0) {{{
return 0;
}}} else if (colorRed.r == 0) {{
return 0;
}} else { if (colorGreen == colorRed)
return 0;
else {{
return 1;
}}}
}
half4 main() {
return bool(branchy() * branchyAndBlocky()) ? colorGreen : colorRed;
}