56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=xcore | FileCheck %s3 4declare i8 @llvm.bitreverse.i8(i8)5declare i16 @llvm.bitreverse.i16(i16)6declare i32 @llvm.bitreverse.i32(i32)7declare i64 @llvm.bitreverse.i64(i64)8 9define i8 @bitrev8(i8 %x) nounwind {10; CHECK-LABEL: bitrev8:11; CHECK: # %bb.0: # %entry12; CHECK-NEXT: bitrev r0, r013; CHECK-NEXT: shr r0, r0, 2414; CHECK-NEXT: retsp 015; CHECK-NEXT: .cc_bottom bitrev8.function16entry:17 %0 = call i8 @llvm.bitreverse.i8(i8 %x)18 ret i8 %019}20 21define i16 @bitrev16(i16 %x) nounwind {22; CHECK-LABEL: bitrev16:23; CHECK: # %bb.0: # %entry24; CHECK-NEXT: bitrev r0, r025; CHECK-NEXT: shr r0, r0, 1626; CHECK-NEXT: retsp 027; CHECK-NEXT: .cc_bottom bitrev16.function28entry:29 %0 = call i16 @llvm.bitreverse.i16(i16 %x)30 ret i16 %031}32 33define i32 @bitrev32(i32 %x) nounwind {34; CHECK-LABEL: bitrev32:35; CHECK: # %bb.0: # %entry36; CHECK-NEXT: bitrev r0, r037; CHECK-NEXT: retsp 038; CHECK-NEXT: .cc_bottom bitrev32.function39entry:40 %0 = call i32 @llvm.bitreverse.i32(i32 %x)41 ret i32 %042}43 44define i64 @bitrev64(i64 %x) nounwind {45; CHECK-LABEL: bitrev64:46; CHECK: # %bb.0: # %entry47; CHECK-NEXT: bitrev r2, r148; CHECK-NEXT: bitrev r1, r049; CHECK-NEXT: mov r0, r250; CHECK-NEXT: retsp 051; CHECK-NEXT: .cc_bottom bitrev64.function52entry:53 %0 = call i64 @llvm.bitreverse.i64(i64 %x)54 ret i64 %055}56