1Test for select generation for conditional returns. 2 3For example rewrites a simpled diamond pattern e.g.: 4 If [ Condition ] 5 / \ 6 false branch true branch 7 \ / 8 Return Phi[FalseValue, TrueValue] 9 10to: 11 true branch 12 false branch 13 return Select [FalseValue, TrueValue, Condition] 14 15It tests: 16* Simple diamond pattern with: 17 * Same value on each branch 18 * Different value 19* Double diamond pattern (i.e. nested simple diamonds) with: 20 * Same value 21 * All different values 22 * Same value in some cases but not all 23 24For all cases it tests: 25* Branches merging with a Phi. 26* Branches returning instead of having a Phi.