blob: 6a5ac278234dc2c25478e65fe06f3693e1530a79 [file] [log] [blame]
Test for select generation for conditional returns.
For example rewrites a simpled diamond pattern e.g.:
If [ Condition ]
/ \
false branch true branch
\ /
Return Phi[FalseValue, TrueValue]
to:
true branch
false branch
return Select [FalseValue, TrueValue, Condition]
It tests:
* Simple diamond pattern with:
* Same value on each branch
* Different value
* Double diamond pattern (i.e. nested simple diamonds) with:
* Same value
* All different values
* Same value in some cases but not all
For all cases it tests:
* Branches merging with a Phi.
* Branches returning instead of having a Phi.