xref: /aosp_15_r20/art/test/663-checker-select-generator/info.txt (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard WorkerTest for select generation for conditional returns.
2*795d594fSAndroid Build Coastguard Worker
3*795d594fSAndroid Build Coastguard WorkerFor example rewrites a simpled diamond pattern e.g.:
4*795d594fSAndroid Build Coastguard Worker             If [ Condition ]
5*795d594fSAndroid Build Coastguard Worker               /          \
6*795d594fSAndroid Build Coastguard Worker     false branch        true branch
7*795d594fSAndroid Build Coastguard Worker               \          /
8*795d594fSAndroid Build Coastguard Worker     Return Phi[FalseValue, TrueValue]
9*795d594fSAndroid Build Coastguard Worker
10*795d594fSAndroid Build Coastguard Workerto:
11*795d594fSAndroid Build Coastguard Worker     true branch
12*795d594fSAndroid Build Coastguard Worker     false branch
13*795d594fSAndroid Build Coastguard Worker     return Select [FalseValue, TrueValue, Condition]
14*795d594fSAndroid Build Coastguard Worker
15*795d594fSAndroid Build Coastguard WorkerIt tests:
16*795d594fSAndroid Build Coastguard Worker* Simple diamond pattern with:
17*795d594fSAndroid Build Coastguard Worker  * Same value on each branch
18*795d594fSAndroid Build Coastguard Worker  * Different value
19*795d594fSAndroid Build Coastguard Worker* Double diamond pattern (i.e. nested simple diamonds) with:
20*795d594fSAndroid Build Coastguard Worker  * Same value
21*795d594fSAndroid Build Coastguard Worker  * All different values
22*795d594fSAndroid Build Coastguard Worker  * Same value in some cases but not all
23*795d594fSAndroid Build Coastguard Worker
24*795d594fSAndroid Build Coastguard WorkerFor all cases it tests:
25*795d594fSAndroid Build Coastguard Worker* Branches merging with a Phi.
26*795d594fSAndroid Build Coastguard Worker* Branches returning instead of having a Phi.