1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=armv8-eabi %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: rbit 4*9880d681SAndroid Build Coastguard Worker; CHECK: rbit r0, r0 5*9880d681SAndroid Build Coastguard Workerdefine i32 @rbit(i32 %t) { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %rbit = call i32 @llvm.arm.rbit(i32 %t) 8*9880d681SAndroid Build Coastguard Worker ret i32 %rbit 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: rbit_constant 12*9880d681SAndroid Build Coastguard Worker; CHECK: mov r0, #0 13*9880d681SAndroid Build Coastguard Worker; CHECK: rbit r0, r0 14*9880d681SAndroid Build Coastguard Workerdefine i32 @rbit_constant() { 15*9880d681SAndroid Build Coastguard Workerentry: 16*9880d681SAndroid Build Coastguard Worker %rbit.i = call i32 @llvm.arm.rbit(i32 0) 17*9880d681SAndroid Build Coastguard Worker ret i32 %rbit.i 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.arm.rbit(i32) 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.bitreverse.i32(i32) readnone 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: rbit_generic 25*9880d681SAndroid Build Coastguard Worker; CHECK: rbit r0, r0 26*9880d681SAndroid Build Coastguard Workerdefine i32 @rbit_generic(i32 %t) { 27*9880d681SAndroid Build Coastguard Workerentry: 28*9880d681SAndroid Build Coastguard Worker %rbit = call i32 @llvm.bitreverse.i32(i32 %t) 29*9880d681SAndroid Build Coastguard Worker ret i32 %rbit 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32