|  | ; RUN: llc -mtriple=armv8-eabi %s -o - | FileCheck %s | 
|  |  | 
|  | ; CHECK-LABEL: rbit | 
|  | ; CHECK: rbit r0, r0 | 
|  | define i32 @rbit(i32 %t) { | 
|  | entry: | 
|  | %rbit = call i32 @llvm.arm.rbit(i32 %t) | 
|  | ret i32 %rbit | 
|  | } | 
|  |  | 
|  | ; CHECK-LABEL: rbit_constant | 
|  | ; CHECK: mov r0, #0 | 
|  | ; CHECK-NOT: rbit | 
|  | ; CHECK: bx lr | 
|  | define i32 @rbit_constant() { | 
|  | entry: | 
|  | %rbit.i = call i32 @llvm.arm.rbit(i32 0) | 
|  | ret i32 %rbit.i | 
|  | } | 
|  |  | 
|  | declare i32 @llvm.arm.rbit(i32) | 
|  |  | 
|  | declare i32 @llvm.bitreverse.i32(i32) readnone | 
|  |  | 
|  | ; CHECK-LABEL: rbit_generic | 
|  | ; CHECK: rbit r0, r0 | 
|  | define i32 @rbit_generic(i32 %t) { | 
|  | entry: | 
|  | %rbit = call i32 @llvm.bitreverse.i32(i32 %t) | 
|  | ret i32 %rbit | 
|  | } | 
|  |  |