26 lines
697 B
Plaintext
26 lines
697 B
Plaintext
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. |