1b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil/* 2b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * Copyright (C) 2016 The Android Open Source Project 3b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * 4b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * Licensed under the Apache License, Version 2.0 (the "License"); 5b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * you may not use this file except in compliance with the License. 6b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * You may obtain a copy of the License at 7b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * 8b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * http://www.apache.org/licenses/LICENSE-2.0 9b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * 10b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * Unless required by applicable law or agreed to in writing, software 11b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * distributed under the License is distributed on an "AS IS" BASIS, 12b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * See the License for the specific language governing permissions and 14b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil * limitations under the License. 15b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil */ 16b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil 17b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdilpublic class Main { 18b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil 192f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-START-X86: int Main.p(float) liveness (after) 202f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK: <<Arg:f\d+>> ParameterValue uses:[<<UseInput:\d+>>] 212f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-DAG: <<Five:f\d+>> FloatConstant 5 uses:[<<UseInput>>] 222f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 232f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-DAG: <<MinusOne:i\d+>> IntConstant -1 uses:[<<UseInput>>] 242f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK: <<Base:i\d+>> X86ComputeBaseMethodAddress uses:[<<UseInput>>] 252f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-NEXT: <<Load:f\d+>> X86LoadFromConstantTable [<<Base>>,<<Five>>] 262f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-NEXT: <<Cond:z\d+>> LessThanOrEqual [<<Arg>>,<<Load>>] 272f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-NEXT: Select [<<Zero>>,<<MinusOne>>,<<Cond>>] liveness:<<LivSel:\d+>> 282f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell /// CHECK-EVAL: <<UseInput>> == <<LivSel>> + 1 292f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell 302f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell public static int p(float arg) { 3140e4ba2d2d433088f9c09a4a39c3b6d81dc3352bDavid Brazdil return (arg > 5.0f) ? 0 : -1; 322f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell } 332f10a5fb8c236a6786928f0323bd312c3ee9a4ccMark P Mendell 34b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil /// CHECK-START: void Main.main(java.lang.String[]) liveness (after) 35b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil /// CHECK: <<X:i\d+>> ArrayLength uses:[<<UseInput:\d+>>] 36b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil /// CHECK: <<Y:i\d+>> StaticFieldGet uses:[<<UseInput>>] 37b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil /// CHECK: <<Cond:z\d+>> LessThanOrEqual [<<X>>,<<Y>>] 38b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil /// CHECK-NEXT: If [<<Cond>>] liveness:<<LivIf:\d+>> 39b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil /// CHECK-EVAL: <<UseInput>> == <<LivIf>> + 1 40b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil 41b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil public static void main(String[] args) { 42b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil int x = args.length; 43b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil int y = field; 44b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil if (x > y) { 45b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil System.nanoTime(); 46b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil } 47b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil } 48b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil 49b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil public static int field = 42; 50b3e773eea39a156b3eacf915ba84e3af1a5c14faDavid Brazdil} 51