1*9880d681SAndroid Build Coastguard Worker; RUN: llc -verify-machineinstrs -aarch64-atomic-cfg-tidy=0 < %s -mtriple=aarch64-none-eabihf -fast-isel=false | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine i32 @ule_64_max(i64 %p) { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: ule_64_max: 7*9880d681SAndroid Build Coastguard Worker; CHECK: cmn x0, #1 8*9880d681SAndroid Build Coastguard Worker; CHECK: b.hi [[RET_ZERO:.LBB[0-9]+_[0-9]+]] 9*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule i64 %p, 18446744073709551615 ; 0xffffffffffffffff 10*9880d681SAndroid Build Coastguard Worker br i1 %cmp, label %ret_one, label %ret_zero 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerret_one: 13*9880d681SAndroid Build Coastguard Worker ret i32 1 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerret_zero: 16*9880d681SAndroid Build Coastguard Worker; CHECK: [[RET_ZERO]]: 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: mov w0, wzr 18*9880d681SAndroid Build Coastguard Worker ret i32 0 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine i32 @ugt_64_max(i64 %p) { 22*9880d681SAndroid Build Coastguard Workerentry: 23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: ugt_64_max: 24*9880d681SAndroid Build Coastguard Worker; CHECK: cmn x0, #1 25*9880d681SAndroid Build Coastguard Worker; CHECK: b.ls [[RET_ZERO:.LBB[0-9]+_[0-9]+]] 26*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i64 %p, 18446744073709551615 ; 0xffffffffffffffff 27*9880d681SAndroid Build Coastguard Worker br i1 %cmp, label %ret_one, label %ret_zero 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerret_one: 30*9880d681SAndroid Build Coastguard Worker ret i32 1 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerret_zero: 33*9880d681SAndroid Build Coastguard Worker; CHECK: [[RET_ZERO]]: 34*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: mov w0, wzr 35*9880d681SAndroid Build Coastguard Worker ret i32 0 36*9880d681SAndroid Build Coastguard Worker} 37