Files
codeql/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected
2019-05-02 11:18:09 -07:00

767 lines
38 KiB
Plaintext

test.cpp:
# 1| int test00(int, int)
# 1| Block 0
# 1| v0_0(void) = EnterFunction :
# 1| m0_1(unknown) = AliasedDefinition :
# 1| valnum = unique
# 1| mu0_2(unknown) = UnmodeledDefinition :
# 1| valnum = unique
# 1| r0_3(glval<int>) = VariableAddress[p0] :
# 1| valnum = r0_3
# 1| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 1| valnum = m0_4
# 1| r0_5(glval<int>) = VariableAddress[p1] :
# 1| valnum = r0_5
# 1| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 1| valnum = m0_6
# 2| r0_7(glval<int>) = VariableAddress[x] :
# 2| valnum = r0_7
# 2| m0_8(int) = Uninitialized[x] : &:r0_7
# 2| valnum = unique
# 2| r0_9(glval<int>) = VariableAddress[y] :
# 2| valnum = r0_9
# 2| m0_10(int) = Uninitialized[y] : &:r0_9
# 2| valnum = unique
# 3| r0_11(glval<unsigned char>) = VariableAddress[b] :
# 3| valnum = unique
# 3| m0_12(unsigned char) = Uninitialized[b] : &:r0_11
# 3| valnum = unique
# 5| r0_13(glval<int>) = VariableAddress[p0] :
# 5| valnum = r0_3
# 5| r0_14(int) = Load : &:r0_13, m0_4
# 5| valnum = m0_4
# 5| r0_15(glval<int>) = VariableAddress[p1] :
# 5| valnum = r0_5
# 5| r0_16(int) = Load : &:r0_15, m0_6
# 5| valnum = m0_6
# 5| r0_17(int) = Add : r0_14, r0_16
# 5| valnum = r0_17
# 5| r0_18(glval<int>) = VariableAddress[x] :
# 5| valnum = r0_7
# 5| m0_19(int) = Store : &:r0_18, r0_17
# 5| valnum = r0_17
# 6| r0_20(glval<int>) = VariableAddress[p0] :
# 6| valnum = r0_3
# 6| r0_21(int) = Load : &:r0_20, m0_4
# 6| valnum = m0_4
# 6| r0_22(glval<int>) = VariableAddress[p1] :
# 6| valnum = r0_5
# 6| r0_23(int) = Load : &:r0_22, m0_6
# 6| valnum = m0_6
# 6| r0_24(int) = Add : r0_21, r0_23
# 6| valnum = r0_17
# 6| r0_25(glval<int>) = VariableAddress[x] :
# 6| valnum = r0_7
# 6| m0_26(int) = Store : &:r0_25, r0_24
# 6| valnum = r0_17
# 7| r0_27(glval<int>) = VariableAddress[x] :
# 7| valnum = r0_7
# 7| r0_28(int) = Load : &:r0_27, m0_26
# 7| valnum = r0_17
# 7| r0_29(glval<int>) = VariableAddress[y] :
# 7| valnum = r0_9
# 7| m0_30(int) = Store : &:r0_29, r0_28
# 7| valnum = r0_17
# 8| v0_31(void) = NoOp :
# 1| r0_32(glval<int>) = VariableAddress[#return] :
# 1| valnum = unique
# 1| v0_33(void) = ReturnValue : &:r0_32
# 1| v0_34(void) = UnmodeledUse : mu*
# 1| v0_35(void) = ExitFunction :
# 12| int test01(int, int)
# 12| Block 0
# 12| v0_0(void) = EnterFunction :
# 12| m0_1(unknown) = AliasedDefinition :
# 12| valnum = unique
# 12| mu0_2(unknown) = UnmodeledDefinition :
# 12| valnum = unique
# 12| r0_3(glval<int>) = VariableAddress[p0] :
# 12| valnum = r0_3
# 12| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 12| valnum = m0_4
# 12| r0_5(glval<int>) = VariableAddress[p1] :
# 12| valnum = r0_5
# 12| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 12| valnum = m0_6
# 13| r0_7(glval<int>) = VariableAddress[x] :
# 13| valnum = r0_7
# 13| m0_8(int) = Uninitialized[x] : &:r0_7
# 13| valnum = unique
# 13| r0_9(glval<int>) = VariableAddress[y] :
# 13| valnum = r0_9
# 13| m0_10(int) = Uninitialized[y] : &:r0_9
# 13| valnum = unique
# 14| r0_11(glval<unsigned char>) = VariableAddress[b] :
# 14| valnum = unique
# 14| m0_12(unsigned char) = Uninitialized[b] : &:r0_11
# 14| valnum = unique
# 16| r0_13(glval<int>) = VariableAddress[p0] :
# 16| valnum = r0_3
# 16| r0_14(int) = Load : &:r0_13, m0_4
# 16| valnum = m0_4
# 16| r0_15(glval<int>) = VariableAddress[p1] :
# 16| valnum = r0_5
# 16| r0_16(int) = Load : &:r0_15, m0_6
# 16| valnum = m0_6
# 16| r0_17(int) = Add : r0_14, r0_16
# 16| valnum = r0_17
# 16| r0_18(glval<int>) = VariableAddress[global01] :
# 16| valnum = r0_18
# 16| r0_19(int) = Load : &:r0_18, ~m0_1
# 16| valnum = unique
# 16| r0_20(int) = Add : r0_17, r0_19
# 16| valnum = r0_20
# 16| r0_21(glval<int>) = VariableAddress[x] :
# 16| valnum = r0_7
# 16| m0_22(int) = Store : &:r0_21, r0_20
# 16| valnum = r0_20
# 17| r0_23(glval<int>) = VariableAddress[p0] :
# 17| valnum = r0_3
# 17| r0_24(int) = Load : &:r0_23, m0_4
# 17| valnum = m0_4
# 17| r0_25(glval<int>) = VariableAddress[p1] :
# 17| valnum = r0_5
# 17| r0_26(int) = Load : &:r0_25, m0_6
# 17| valnum = m0_6
# 17| r0_27(int) = Add : r0_24, r0_26
# 17| valnum = r0_17
# 17| r0_28(glval<int>) = VariableAddress[global01] :
# 17| valnum = r0_18
# 17| r0_29(int) = Load : &:r0_28, ~m0_1
# 17| valnum = unique
# 17| r0_30(int) = Add : r0_27, r0_29
# 17| valnum = r0_30
# 17| r0_31(glval<int>) = VariableAddress[x] :
# 17| valnum = r0_7
# 17| m0_32(int) = Store : &:r0_31, r0_30
# 17| valnum = r0_30
# 18| r0_33(glval<int>) = VariableAddress[x] :
# 18| valnum = r0_7
# 18| r0_34(int) = Load : &:r0_33, m0_32
# 18| valnum = r0_30
# 18| r0_35(glval<int>) = VariableAddress[y] :
# 18| valnum = r0_9
# 18| m0_36(int) = Store : &:r0_35, r0_34
# 18| valnum = r0_30
# 19| v0_37(void) = NoOp :
# 12| r0_38(glval<int>) = VariableAddress[#return] :
# 12| valnum = unique
# 12| v0_39(void) = ReturnValue : &:r0_38
# 12| v0_40(void) = UnmodeledUse : mu*
# 12| v0_41(void) = ExitFunction :
# 25| int test02(int, int)
# 25| Block 0
# 25| v0_0(void) = EnterFunction :
# 25| m0_1(unknown) = AliasedDefinition :
# 25| valnum = unique
# 25| mu0_2(unknown) = UnmodeledDefinition :
# 25| valnum = unique
# 25| r0_3(glval<int>) = VariableAddress[p0] :
# 25| valnum = r0_3
# 25| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 25| valnum = m0_4
# 25| r0_5(glval<int>) = VariableAddress[p1] :
# 25| valnum = r0_5
# 25| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 25| valnum = m0_6
# 26| r0_7(glval<int>) = VariableAddress[x] :
# 26| valnum = r0_7
# 26| m0_8(int) = Uninitialized[x] : &:r0_7
# 26| valnum = unique
# 26| r0_9(glval<int>) = VariableAddress[y] :
# 26| valnum = r0_9
# 26| m0_10(int) = Uninitialized[y] : &:r0_9
# 26| valnum = unique
# 27| r0_11(glval<unsigned char>) = VariableAddress[b] :
# 27| valnum = unique
# 27| m0_12(unsigned char) = Uninitialized[b] : &:r0_11
# 27| valnum = unique
# 29| r0_13(glval<int>) = VariableAddress[p0] :
# 29| valnum = r0_3
# 29| r0_14(int) = Load : &:r0_13, m0_4
# 29| valnum = m0_4
# 29| r0_15(glval<int>) = VariableAddress[p1] :
# 29| valnum = r0_5
# 29| r0_16(int) = Load : &:r0_15, m0_6
# 29| valnum = m0_6
# 29| r0_17(int) = Add : r0_14, r0_16
# 29| valnum = r0_17
# 29| r0_18(glval<int>) = VariableAddress[global02] :
# 29| valnum = r0_18
# 29| r0_19(int) = Load : &:r0_18, ~m0_1
# 29| valnum = unique
# 29| r0_20(int) = Add : r0_17, r0_19
# 29| valnum = r0_20
# 29| r0_21(glval<int>) = VariableAddress[x] :
# 29| valnum = r0_7
# 29| m0_22(int) = Store : &:r0_21, r0_20
# 29| valnum = r0_20
# 30| r0_23(glval<unknown>) = FunctionAddress[change_global02] :
# 30| valnum = unique
# 30| v0_24(void) = Call : func:r0_23
# 30| m0_25(unknown) = ^CallSideEffect : ~m0_1
# 30| valnum = unique
# 30| m0_26(unknown) = Chi : total:m0_1, partial:m0_25
# 30| valnum = unique
# 31| r0_27(glval<int>) = VariableAddress[p0] :
# 31| valnum = r0_3
# 31| r0_28(int) = Load : &:r0_27, m0_4
# 31| valnum = m0_4
# 31| r0_29(glval<int>) = VariableAddress[p1] :
# 31| valnum = r0_5
# 31| r0_30(int) = Load : &:r0_29, m0_6
# 31| valnum = m0_6
# 31| r0_31(int) = Add : r0_28, r0_30
# 31| valnum = r0_17
# 31| r0_32(glval<int>) = VariableAddress[global02] :
# 31| valnum = r0_18
# 31| r0_33(int) = Load : &:r0_32, ~m0_26
# 31| valnum = unique
# 31| r0_34(int) = Add : r0_31, r0_33
# 31| valnum = r0_34
# 31| r0_35(glval<int>) = VariableAddress[x] :
# 31| valnum = r0_7
# 31| m0_36(int) = Store : &:r0_35, r0_34
# 31| valnum = r0_34
# 32| r0_37(glval<int>) = VariableAddress[x] :
# 32| valnum = r0_7
# 32| r0_38(int) = Load : &:r0_37, m0_36
# 32| valnum = r0_34
# 32| r0_39(glval<int>) = VariableAddress[y] :
# 32| valnum = r0_9
# 32| m0_40(int) = Store : &:r0_39, r0_38
# 32| valnum = r0_34
# 33| v0_41(void) = NoOp :
# 25| r0_42(glval<int>) = VariableAddress[#return] :
# 25| valnum = unique
# 25| v0_43(void) = ReturnValue : &:r0_42
# 25| v0_44(void) = UnmodeledUse : mu*
# 25| v0_45(void) = ExitFunction :
# 39| int test03(int, int, int*)
# 39| Block 0
# 39| v0_0(void) = EnterFunction :
# 39| m0_1(unknown) = AliasedDefinition :
# 39| valnum = unique
# 39| mu0_2(unknown) = UnmodeledDefinition :
# 39| valnum = unique
# 39| r0_3(glval<int>) = VariableAddress[p0] :
# 39| valnum = r0_3
# 39| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 39| valnum = m0_4
# 39| r0_5(glval<int>) = VariableAddress[p1] :
# 39| valnum = r0_5
# 39| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 39| valnum = m0_6
# 39| r0_7(glval<int *>) = VariableAddress[p2] :
# 39| valnum = r0_7
# 39| m0_8(int *) = InitializeParameter[p2] : &:r0_7
# 39| valnum = m0_8
# 40| r0_9(glval<int>) = VariableAddress[x] :
# 40| valnum = r0_9
# 40| m0_10(int) = Uninitialized[x] : &:r0_9
# 40| valnum = unique
# 40| r0_11(glval<int>) = VariableAddress[y] :
# 40| valnum = r0_11
# 40| m0_12(int) = Uninitialized[y] : &:r0_11
# 40| valnum = unique
# 41| r0_13(glval<unsigned char>) = VariableAddress[b] :
# 41| valnum = unique
# 41| m0_14(unsigned char) = Uninitialized[b] : &:r0_13
# 41| valnum = unique
# 43| r0_15(glval<int>) = VariableAddress[p0] :
# 43| valnum = r0_3
# 43| r0_16(int) = Load : &:r0_15, m0_4
# 43| valnum = m0_4
# 43| r0_17(glval<int>) = VariableAddress[p1] :
# 43| valnum = r0_5
# 43| r0_18(int) = Load : &:r0_17, m0_6
# 43| valnum = m0_6
# 43| r0_19(int) = Add : r0_16, r0_18
# 43| valnum = r0_19
# 43| r0_20(glval<int>) = VariableAddress[global03] :
# 43| valnum = r0_20
# 43| r0_21(int) = Load : &:r0_20, ~m0_1
# 43| valnum = unique
# 43| r0_22(int) = Add : r0_19, r0_21
# 43| valnum = r0_22
# 43| r0_23(glval<int>) = VariableAddress[x] :
# 43| valnum = r0_9
# 43| m0_24(int) = Store : &:r0_23, r0_22
# 43| valnum = r0_22
# 44| r0_25(int) = Constant[0] :
# 44| valnum = r0_25
# 44| r0_26(glval<int *>) = VariableAddress[p2] :
# 44| valnum = r0_7
# 44| r0_27(int *) = Load : &:r0_26, m0_8
# 44| valnum = m0_8
# 44| m0_28(int) = Store : &:r0_27, r0_25
# 44| valnum = r0_25
# 44| m0_29(unknown) = Chi : total:m0_1, partial:m0_28
# 44| valnum = unique
# 45| r0_30(glval<int>) = VariableAddress[p0] :
# 45| valnum = r0_3
# 45| r0_31(int) = Load : &:r0_30, m0_4
# 45| valnum = m0_4
# 45| r0_32(glval<int>) = VariableAddress[p1] :
# 45| valnum = r0_5
# 45| r0_33(int) = Load : &:r0_32, m0_6
# 45| valnum = m0_6
# 45| r0_34(int) = Add : r0_31, r0_33
# 45| valnum = r0_19
# 45| r0_35(glval<int>) = VariableAddress[global03] :
# 45| valnum = r0_20
# 45| r0_36(int) = Load : &:r0_35, ~m0_29
# 45| valnum = unique
# 45| r0_37(int) = Add : r0_34, r0_36
# 45| valnum = r0_37
# 45| r0_38(glval<int>) = VariableAddress[x] :
# 45| valnum = r0_9
# 45| m0_39(int) = Store : &:r0_38, r0_37
# 45| valnum = r0_37
# 46| r0_40(glval<int>) = VariableAddress[x] :
# 46| valnum = r0_9
# 46| r0_41(int) = Load : &:r0_40, m0_39
# 46| valnum = r0_37
# 46| r0_42(glval<int>) = VariableAddress[y] :
# 46| valnum = r0_11
# 46| m0_43(int) = Store : &:r0_42, r0_41
# 46| valnum = r0_37
# 47| v0_44(void) = NoOp :
# 39| r0_45(glval<int>) = VariableAddress[#return] :
# 39| valnum = unique
# 39| v0_46(void) = ReturnValue : &:r0_45
# 39| v0_47(void) = UnmodeledUse : mu*
# 39| v0_48(void) = ExitFunction :
# 49| unsigned int my_strspn(char const*, char const*)
# 49| Block 0
# 49| v0_0(void) = EnterFunction :
# 49| m0_1(unknown) = AliasedDefinition :
# 49| valnum = unique
# 49| mu0_2(unknown) = UnmodeledDefinition :
# 49| valnum = unique
# 49| r0_3(glval<char *>) = VariableAddress[str] :
# 49| valnum = r0_3
# 49| m0_4(char *) = InitializeParameter[str] : &:r0_3
# 49| valnum = m0_4
# 49| r0_5(glval<char *>) = VariableAddress[chars] :
# 49| valnum = r0_5
# 49| m0_6(char *) = InitializeParameter[chars] : &:r0_5
# 49| valnum = m0_6
# 50| r0_7(glval<char *>) = VariableAddress[ptr] :
# 50| valnum = r0_7
# 50| m0_8(char *) = Uninitialized[ptr] : &:r0_7
# 50| valnum = unique
# 51| r0_9(glval<unsigned int>) = VariableAddress[result] :
# 51| valnum = r0_9
# 51| r0_10(unsigned int) = Constant[0] :
# 51| valnum = r0_10
# 51| m0_11(unsigned int) = Store : &:r0_9, r0_10
# 51| valnum = r0_10
#-----| Goto -> Block 1
# 53| Block 1
# 53| m1_0(unsigned int) = Phi : from 0:m0_11, from 8:m8_4
# 53| valnum = m1_0
# 53| r1_1(glval<char *>) = VariableAddress[str] :
# 53| valnum = r0_3
# 53| r1_2(char *) = Load : &:r1_1, m0_4
# 53| valnum = m0_4
# 53| r1_3(char) = Load : &:r1_2, ~m0_1
# 53| valnum = unique
# 53| r1_4(int) = Convert : r1_3
# 53| valnum = unique
# 53| r1_5(int) = Constant[0] :
# 53| valnum = r1_5
# 53| r1_6(bool) = CompareNE : r1_4, r1_5
# 53| valnum = unique
# 53| v1_7(void) = ConditionalBranch : r1_6
#-----| False -> Block 9
#-----| True -> Block 2
# 55| Block 2
# 55| r2_0(glval<char *>) = VariableAddress[chars] :
# 55| valnum = r0_5
# 55| r2_1(char *) = Load : &:r2_0, m0_6
# 55| valnum = m0_6
# 55| r2_2(glval<char *>) = VariableAddress[ptr] :
# 55| valnum = r0_7
# 55| m2_3(char *) = Store : &:r2_2, r2_1
# 55| valnum = m0_6
#-----| Goto -> Block 3
# 56| Block 3
# 56| m3_0(char *) = Phi : from 2:m2_3, from 5:m5_4
# 56| valnum = m3_0
# 56| r3_1(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| r3_2(char *) = Load : &:r3_1, m3_0
# 56| valnum = m3_0
# 56| r3_3(char) = Load : &:r3_2, ~m0_1
# 56| valnum = unique
# 56| r3_4(int) = Convert : r3_3
# 56| valnum = unique
# 56| r3_5(glval<char *>) = VariableAddress[str] :
# 56| valnum = r0_3
# 56| r3_6(char *) = Load : &:r3_5, m0_4
# 56| valnum = m0_4
# 56| r3_7(char) = Load : &:r3_6, ~m0_1
# 56| valnum = unique
# 56| r3_8(int) = Convert : r3_7
# 56| valnum = unique
# 56| r3_9(bool) = CompareNE : r3_4, r3_8
# 56| valnum = unique
# 56| v3_10(void) = ConditionalBranch : r3_9
#-----| False -> Block 6
#-----| True -> Block 4
# 56| Block 4
# 56| r4_0(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| r4_1(char *) = Load : &:r4_0, m3_0
# 56| valnum = m3_0
# 56| r4_2(char) = Load : &:r4_1, ~m0_1
# 56| valnum = unique
# 56| r4_3(int) = Convert : r4_2
# 56| valnum = unique
# 56| r4_4(int) = Constant[0] :
# 56| valnum = r1_5
# 56| r4_5(bool) = CompareNE : r4_3, r4_4
# 56| valnum = unique
# 56| v4_6(void) = ConditionalBranch : r4_5
#-----| False -> Block 6
#-----| True -> Block 5
# 56| Block 5
# 56| r5_0(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| r5_1(char *) = Load : &:r5_0, m3_0
# 56| valnum = m3_0
# 56| r5_2(int) = Constant[1] :
# 56| valnum = unique
# 56| r5_3(char *) = PointerAdd[1] : r5_1, r5_2
# 56| valnum = r5_3
# 56| m5_4(char *) = Store : &:r5_0, r5_3
# 56| valnum = r5_3
#-----| Goto (back edge) -> Block 3
# 59| Block 6
# 59| r6_0(glval<char *>) = VariableAddress[ptr] :
# 59| valnum = r0_7
# 59| r6_1(char *) = Load : &:r6_0, m3_0
# 59| valnum = m3_0
# 59| r6_2(char) = Load : &:r6_1, ~m0_1
# 59| valnum = unique
# 59| r6_3(int) = Convert : r6_2
# 59| valnum = unique
# 59| r6_4(int) = Constant[0] :
# 59| valnum = r1_5
# 59| r6_5(bool) = CompareEQ : r6_3, r6_4
# 59| valnum = unique
# 59| v6_6(void) = ConditionalBranch : r6_5
#-----| False -> Block 8
#-----| True -> Block 7
# 60| Block 7
# 60| v7_0(void) = NoOp :
#-----| Goto -> Block 9
# 62| Block 8
# 62| r8_0(glval<unsigned int>) = VariableAddress[result] :
# 62| valnum = r0_9
# 62| r8_1(unsigned int) = Load : &:r8_0, m1_0
# 62| valnum = m1_0
# 62| r8_2(unsigned int) = Constant[1] :
# 62| valnum = unique
# 62| r8_3(unsigned int) = Add : r8_1, r8_2
# 62| valnum = r8_3
# 62| m8_4(unsigned int) = Store : &:r8_0, r8_3
# 62| valnum = r8_3
#-----| Goto (back edge) -> Block 1
# 63| Block 9
# 63| v9_0(void) = NoOp :
# 65| r9_1(glval<unsigned int>) = VariableAddress[#return] :
# 65| valnum = r9_1
# 65| r9_2(glval<unsigned int>) = VariableAddress[result] :
# 65| valnum = r0_9
# 65| r9_3(unsigned int) = Load : &:r9_2, m1_0
# 65| valnum = m1_0
# 65| m9_4(unsigned int) = Store : &:r9_1, r9_3
# 65| valnum = m1_0
# 49| r9_5(glval<unsigned int>) = VariableAddress[#return] :
# 49| valnum = r9_1
# 49| v9_6(void) = ReturnValue : &:r9_5, m9_4
# 49| v9_7(void) = UnmodeledUse : mu*
# 49| v9_8(void) = ExitFunction :
# 75| void test04(two_values*)
# 75| Block 0
# 75| v0_0(void) = EnterFunction :
# 75| m0_1(unknown) = AliasedDefinition :
# 75| valnum = unique
# 75| mu0_2(unknown) = UnmodeledDefinition :
# 75| valnum = unique
# 75| r0_3(glval<two_values *>) = VariableAddress[vals] :
# 75| valnum = r0_3
# 75| m0_4(two_values *) = InitializeParameter[vals] : &:r0_3
# 75| valnum = m0_4
# 77| r0_5(glval<signed short>) = VariableAddress[v] :
# 77| valnum = r0_5
# 77| r0_6(glval<unknown>) = FunctionAddress[getAValue] :
# 77| valnum = unique
# 77| r0_7(int) = Call : func:r0_6
# 77| valnum = unique
# 77| m0_8(unknown) = ^CallSideEffect : ~m0_1
# 77| valnum = unique
# 77| m0_9(unknown) = Chi : total:m0_1, partial:m0_8
# 77| valnum = unique
# 77| r0_10(signed short) = Convert : r0_7
# 77| valnum = r0_10
# 77| m0_11(signed short) = Store : &:r0_5, r0_10
# 77| valnum = r0_10
# 79| r0_12(glval<signed short>) = VariableAddress[v] :
# 79| valnum = r0_5
# 79| r0_13(signed short) = Load : &:r0_12, m0_11
# 79| valnum = r0_10
# 79| r0_14(int) = Convert : r0_13
# 79| valnum = unique
# 79| r0_15(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r0_3
# 79| r0_16(two_values *) = Load : &:r0_15, m0_4
# 79| valnum = m0_4
# 79| r0_17(glval<signed short>) = FieldAddress[val1] : r0_16
# 79| valnum = unique
# 79| r0_18(signed short) = Load : &:r0_17, ~m0_9
# 79| valnum = unique
# 79| r0_19(int) = Convert : r0_18
# 79| valnum = unique
# 79| r0_20(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r0_3
# 79| r0_21(two_values *) = Load : &:r0_20, m0_4
# 79| valnum = m0_4
# 79| r0_22(glval<signed short>) = FieldAddress[val2] : r0_21
# 79| valnum = unique
# 79| r0_23(signed short) = Load : &:r0_22, ~m0_9
# 79| valnum = unique
# 79| r0_24(int) = Convert : r0_23
# 79| valnum = unique
# 79| r0_25(int) = Add : r0_19, r0_24
# 79| valnum = unique
# 79| r0_26(bool) = CompareLT : r0_14, r0_25
# 79| valnum = unique
# 79| v0_27(void) = ConditionalBranch : r0_26
#-----| False -> Block 2
#-----| True -> Block 1
# 80| Block 1
# 80| r1_0(glval<unknown>) = FunctionAddress[getAValue] :
# 80| valnum = unique
# 80| r1_1(int) = Call : func:r1_0
# 80| valnum = unique
# 80| m1_2(unknown) = ^CallSideEffect : ~m0_9
# 80| valnum = unique
# 80| m1_3(unknown) = Chi : total:m0_9, partial:m1_2
# 80| valnum = unique
# 80| r1_4(signed short) = Convert : r1_1
# 80| valnum = r1_4
# 80| r1_5(glval<signed short>) = VariableAddress[v] :
# 80| valnum = r0_5
# 80| m1_6(signed short) = Store : &:r1_5, r1_4
# 80| valnum = r1_4
#-----| Goto -> Block 2
# 82| Block 2
# 82| v2_0(void) = NoOp :
# 75| v2_1(void) = ReturnVoid :
# 75| v2_2(void) = UnmodeledUse : mu*
# 75| v2_3(void) = ExitFunction :
# 84| void test05(int, int, void*)
# 84| Block 0
# 84| v0_0(void) = EnterFunction :
# 84| m0_1(unknown) = AliasedDefinition :
# 84| valnum = unique
# 84| mu0_2(unknown) = UnmodeledDefinition :
# 84| valnum = unique
# 84| r0_3(glval<int>) = VariableAddress[x] :
# 84| valnum = r0_3
# 84| m0_4(int) = InitializeParameter[x] : &:r0_3
# 84| valnum = m0_4
# 84| r0_5(glval<int>) = VariableAddress[y] :
# 84| valnum = r0_5
# 84| m0_6(int) = InitializeParameter[y] : &:r0_5
# 84| valnum = m0_6
# 84| r0_7(glval<void *>) = VariableAddress[p] :
# 84| valnum = r0_7
# 84| m0_8(void *) = InitializeParameter[p] : &:r0_7
# 84| valnum = m0_8
# 86| r0_9(glval<int>) = VariableAddress[v] :
# 86| valnum = r0_9
# 86| m0_10(int) = Uninitialized[v] : &:r0_9
# 86| valnum = unique
# 88| r0_11(glval<void *>) = VariableAddress[p] :
# 88| valnum = r0_7
# 88| r0_12(void *) = Load : &:r0_11, m0_8
# 88| valnum = m0_8
# 88| r0_13(void *) = Constant[0] :
# 88| valnum = unique
# 88| r0_14(bool) = CompareNE : r0_12, r0_13
# 88| valnum = unique
# 88| v0_15(void) = ConditionalBranch : r0_14
#-----| False -> Block 2
#-----| True -> Block 1
# 88| Block 1
# 88| r1_0(glval<int>) = VariableAddress[x] :
# 88| valnum = r0_3
# 88| r1_1(int) = Load : &:r1_0, m0_4
# 88| valnum = m0_4
# 88| r1_2(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r1_2
# 88| m1_3(int) = Store : &:r1_2, r1_1
# 88| valnum = m0_4
#-----| Goto -> Block 3
# 88| Block 2
# 88| r2_0(glval<int>) = VariableAddress[y] :
# 88| valnum = r0_5
# 88| r2_1(int) = Load : &:r2_0, m0_6
# 88| valnum = m0_6
# 88| r2_2(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r1_2
# 88| m2_3(int) = Store : &:r2_2, r2_1
# 88| valnum = m0_6
#-----| Goto -> Block 3
# 88| Block 3
# 88| m3_0(int) = Phi : from 1:m1_3, from 2:m2_3
# 88| valnum = m3_0
# 88| r3_1(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r1_2
# 88| r3_2(int) = Load : &:r3_1, m3_0
# 88| valnum = m3_0
# 88| r3_3(glval<int>) = VariableAddress[v] :
# 88| valnum = r0_9
# 88| m3_4(int) = Store : &:r3_3, r3_2
# 88| valnum = m3_0
# 89| v3_5(void) = NoOp :
# 84| v3_6(void) = ReturnVoid :
# 84| v3_7(void) = UnmodeledUse : mu*
# 84| v3_8(void) = ExitFunction :
# 91| int regression_test00()
# 91| Block 0
# 91| v0_0(void) = EnterFunction :
# 91| m0_1(unknown) = AliasedDefinition :
# 91| valnum = unique
# 91| mu0_2(unknown) = UnmodeledDefinition :
# 91| valnum = unique
# 92| r0_3(glval<int>) = VariableAddress[x] :
# 92| valnum = r0_3
# 92| r0_4(int) = Constant[10] :
# 92| valnum = r0_4
# 92| r0_5(glval<int>) = VariableAddress[x] :
# 92| valnum = r0_3
# 92| m0_6(int) = Store : &:r0_5, r0_4
# 92| valnum = r0_4
# 92| m0_7(int) = Store : &:r0_3, r0_4
# 92| valnum = r0_4
# 93| r0_8(glval<int>) = VariableAddress[#return] :
# 93| valnum = r0_8
# 93| r0_9(glval<int>) = VariableAddress[x] :
# 93| valnum = r0_3
# 93| r0_10(int) = Load : &:r0_9, m0_7
# 93| valnum = r0_4
# 93| m0_11(int) = Store : &:r0_8, r0_10
# 93| valnum = r0_4
# 91| r0_12(glval<int>) = VariableAddress[#return] :
# 91| valnum = r0_8
# 91| v0_13(void) = ReturnValue : &:r0_12, m0_11
# 91| v0_14(void) = UnmodeledUse : mu*
# 91| v0_15(void) = ExitFunction :
# 104| int inheritanceConversions(Derived*)
# 104| Block 0
# 104| v0_0(void) = EnterFunction :
# 104| m0_1(unknown) = AliasedDefinition :
# 104| valnum = unique
# 104| mu0_2(unknown) = UnmodeledDefinition :
# 104| valnum = unique
# 104| r0_3(glval<Derived *>) = VariableAddress[pd] :
# 104| valnum = r0_3
# 104| m0_4(Derived *) = InitializeParameter[pd] : &:r0_3
# 104| valnum = m0_4
# 105| r0_5(glval<int>) = VariableAddress[x] :
# 105| valnum = unique
# 105| r0_6(glval<Derived *>) = VariableAddress[pd] :
# 105| valnum = r0_3
# 105| r0_7(Derived *) = Load : &:r0_6, m0_4
# 105| valnum = m0_4
# 105| r0_8(Base *) = ConvertToBase[Derived : Base] : r0_7
# 105| valnum = r0_8
# 105| r0_9(glval<int>) = FieldAddress[b] : r0_8
# 105| valnum = r0_9
# 105| r0_10(int) = Load : &:r0_9, ~m0_1
# 105| valnum = r0_10
# 105| m0_11(int) = Store : &:r0_5, r0_10
# 105| valnum = r0_10
# 106| r0_12(glval<Base *>) = VariableAddress[pb] :
# 106| valnum = r0_12
# 106| r0_13(glval<Derived *>) = VariableAddress[pd] :
# 106| valnum = r0_3
# 106| r0_14(Derived *) = Load : &:r0_13, m0_4
# 106| valnum = m0_4
# 106| r0_15(Base *) = ConvertToBase[Derived : Base] : r0_14
# 106| valnum = r0_8
# 106| m0_16(Base *) = Store : &:r0_12, r0_15
# 106| valnum = r0_8
# 107| r0_17(glval<int>) = VariableAddress[y] :
# 107| valnum = r0_17
# 107| r0_18(glval<Base *>) = VariableAddress[pb] :
# 107| valnum = r0_12
# 107| r0_19(Base *) = Load : &:r0_18, m0_16
# 107| valnum = r0_8
# 107| r0_20(glval<int>) = FieldAddress[b] : r0_19
# 107| valnum = r0_9
# 107| r0_21(int) = Load : &:r0_20, ~m0_1
# 107| valnum = r0_21
# 107| m0_22(int) = Store : &:r0_17, r0_21
# 107| valnum = r0_21
# 109| r0_23(glval<int>) = VariableAddress[#return] :
# 109| valnum = r0_23
# 109| r0_24(glval<int>) = VariableAddress[y] :
# 109| valnum = r0_17
# 109| r0_25(int) = Load : &:r0_24, m0_22
# 109| valnum = r0_21
# 109| m0_26(int) = Store : &:r0_23, r0_25
# 109| valnum = r0_21
# 104| r0_27(glval<int>) = VariableAddress[#return] :
# 104| valnum = r0_23
# 104| v0_28(void) = ReturnValue : &:r0_27, m0_26
# 104| v0_29(void) = UnmodeledUse : mu*
# 104| v0_30(void) = ExitFunction :
# 112| void test06()
# 112| Block 0
# 112| v0_0(void) = EnterFunction :
# 112| m0_1(unknown) = AliasedDefinition :
# 112| valnum = unique
# 112| mu0_2(unknown) = UnmodeledDefinition :
# 112| valnum = unique
# 113| r0_3(glval<char[2]>) = StringConstant["a"] :
# 113| valnum = r0_3
# 114| r0_4(glval<char[2]>) = StringConstant["b"] :
# 114| valnum = unique
# 115| r0_5(glval<char[2]>) = StringConstant["a"] :
# 115| valnum = r0_3
# 116| r0_6(glval<char[2]>) = StringConstant["c"] :
# 116| valnum = unique
# 117| v0_7(void) = NoOp :
# 112| v0_8(void) = ReturnVoid :
# 112| v0_9(void) = UnmodeledUse : mu*
# 112| v0_10(void) = ExitFunction :