1 # Copyright (C) 2016 The Android Open Source Project 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 .class public LSmaliTests; 16 .super Ljava/lang/Object; 17 18 ## CHECK-START: int SmaliTests.EqualTrueRhs(boolean) instruction_simplifier (before) 19 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 20 ## CHECK-DAG: <<Const1:i\d+>> IntConstant 1 21 ## CHECK-DAG: <<Cond:z\d+>> Equal [<<Arg>>,<<Const1>>] 22 ## CHECK-DAG: If [<<Cond>>] 23 24 ## CHECK-START: int SmaliTests.EqualTrueRhs(boolean) instruction_simplifier (after) 25 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 26 ## CHECK-DAG: If [<<Arg>>] 27 28 .method public static EqualTrueRhs(Z)I 29 .registers 3 30 31 const v0, 0x1 32 const v1, 0x5 33 if-eq p0, v0, :return 34 const v1, 0x3 35 :return 36 return v1 37 38 .end method 39 40 ## CHECK-START: int SmaliTests.EqualTrueLhs(boolean) instruction_simplifier (before) 41 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 42 ## CHECK-DAG: <<Const1:i\d+>> IntConstant 1 43 ## CHECK-DAG: <<Cond:z\d+>> Equal [<<Const1>>,<<Arg>>] 44 ## CHECK-DAG: If [<<Cond>>] 45 46 ## CHECK-START: int SmaliTests.EqualTrueLhs(boolean) instruction_simplifier (after) 47 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 48 ## CHECK-DAG: If [<<Arg>>] 49 50 .method public static EqualTrueLhs(Z)I 51 .registers 3 52 53 const v0, 0x1 54 const v1, 0x5 55 if-eq v0, p0, :return 56 const v1, 0x3 57 :return 58 return v1 59 60 .end method 61 62 ## CHECK-START: int SmaliTests.EqualFalseRhs(boolean) instruction_simplifier (before) 63 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 64 ## CHECK-DAG: <<Const0:i\d+>> IntConstant 0 65 ## CHECK-DAG: <<Cond:z\d+>> Equal [<<Arg>>,<<Const0>>] 66 ## CHECK-DAG: If [<<Cond>>] 67 68 ## CHECK-START: int SmaliTests.EqualFalseRhs(boolean) instruction_simplifier (after) 69 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 70 ## CHECK-DAG: If [<<Arg>>] 71 72 .method public static EqualFalseRhs(Z)I 73 .registers 3 74 75 const v0, 0x0 76 const v1, 0x3 77 if-eq p0, v0, :return 78 const v1, 0x5 79 :return 80 return v1 81 82 .end method 83 84 ## CHECK-START: int SmaliTests.EqualFalseLhs(boolean) instruction_simplifier (before) 85 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 86 ## CHECK-DAG: <<Const0:i\d+>> IntConstant 0 87 ## CHECK-DAG: <<Cond:z\d+>> Equal [<<Const0>>,<<Arg>>] 88 ## CHECK-DAG: If [<<Cond>>] 89 90 ## CHECK-START: int SmaliTests.EqualFalseLhs(boolean) instruction_simplifier (after) 91 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 92 ## CHECK-DAG: If [<<Arg>>] 93 94 .method public static EqualFalseLhs(Z)I 95 .registers 3 96 97 const v0, 0x0 98 const v1, 0x3 99 if-eq v0, p0, :return 100 const v1, 0x5 101 :return 102 return v1 103 104 .end method 105 106 ## CHECK-START: int SmaliTests.NotEqualTrueRhs(boolean) instruction_simplifier (before) 107 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 108 ## CHECK-DAG: <<Const1:i\d+>> IntConstant 1 109 ## CHECK-DAG: <<Cond:z\d+>> NotEqual [<<Arg>>,<<Const1>>] 110 ## CHECK-DAG: If [<<Cond>>] 111 112 ## CHECK-START: int SmaliTests.NotEqualTrueRhs(boolean) instruction_simplifier (after) 113 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 114 ## CHECK-DAG: If [<<Arg>>] 115 116 .method public static NotEqualTrueRhs(Z)I 117 .registers 3 118 119 const v0, 0x1 120 const v1, 0x3 121 if-ne p0, v0, :return 122 const v1, 0x5 123 :return 124 return v1 125 126 .end method 127 128 ## CHECK-START: int SmaliTests.NotEqualTrueLhs(boolean) instruction_simplifier (before) 129 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 130 ## CHECK-DAG: <<Const1:i\d+>> IntConstant 1 131 ## CHECK-DAG: <<Cond:z\d+>> NotEqual [<<Const1>>,<<Arg>>] 132 ## CHECK-DAG: If [<<Cond>>] 133 134 ## CHECK-START: int SmaliTests.NotEqualTrueLhs(boolean) instruction_simplifier (after) 135 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 136 ## CHECK-DAG: If [<<Arg>>] 137 138 .method public static NotEqualTrueLhs(Z)I 139 .registers 3 140 141 const v0, 0x1 142 const v1, 0x3 143 if-ne v0, p0, :return 144 const v1, 0x5 145 :return 146 return v1 147 148 .end method 149 150 ## CHECK-START: int SmaliTests.NotEqualFalseRhs(boolean) instruction_simplifier (before) 151 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 152 ## CHECK-DAG: <<Const0:i\d+>> IntConstant 0 153 ## CHECK-DAG: <<Cond:z\d+>> NotEqual [<<Arg>>,<<Const0>>] 154 ## CHECK-DAG: If [<<Cond>>] 155 156 ## CHECK-START: int SmaliTests.NotEqualFalseRhs(boolean) instruction_simplifier (after) 157 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 158 ## CHECK-DAG: If [<<Arg>>] 159 160 .method public static NotEqualFalseRhs(Z)I 161 .registers 3 162 163 const v0, 0x0 164 const v1, 0x5 165 if-ne p0, v0, :return 166 const v1, 0x3 167 :return 168 return v1 169 170 .end method 171 172 ## CHECK-START: int SmaliTests.NotEqualFalseLhs(boolean) instruction_simplifier (before) 173 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 174 ## CHECK-DAG: <<Const0:i\d+>> IntConstant 0 175 ## CHECK-DAG: <<Cond:z\d+>> NotEqual [<<Const0>>,<<Arg>>] 176 ## CHECK-DAG: If [<<Cond>>] 177 178 ## CHECK-START: int SmaliTests.NotEqualFalseLhs(boolean) instruction_simplifier (after) 179 ## CHECK-DAG: <<Arg:z\d+>> ParameterValue 180 ## CHECK-DAG: If [<<Arg>>] 181 182 .method public static NotEqualFalseLhs(Z)I 183 .registers 3 184 185 const v0, 0x0 186 const v1, 0x5 187 if-ne v0, p0, :return 188 const v1, 0x3 189 :return 190 return v1 191 192 .end method 193 194