33 lines · plain
1; RUN: llc -mtriple=arc < %s | FileCheck %s2 3target triple = "arc"4 5declare i32 @llvm.ctlz.i32(i32, i1)6declare i32 @llvm.cttz.i32(i32, i1)7declare i64 @llvm.readcyclecounter()8 9; CHECK-LABEL: test_ctlz_i32:10; CHECK: fls.f %r0, %r011; CHECK-NEXT: mov.eq %r0, 3212; CHECK-NEXT: rsub.ne %r0, %r0, 3113define i32 @test_ctlz_i32(i32 %x) {14 %a = call i32 @llvm.ctlz.i32(i32 %x, i1 false)15 ret i32 %a16}17 18; CHECK-LABEL: test_cttz_i32:19; CHECK: ffs.f %r0, %r020; CHECK-NEXT: mov.eq %r0, 3221define i32 @test_cttz_i32(i32 %x) {22 %a = call i32 @llvm.cttz.i32(i32 %x, i1 false)23 ret i32 %a24}25 26; CHECK-LABEL: test_readcyclecounter:27; CHECK: lr %r0, [33]28; CHECK-NEXT: mov %r1, 029define i64 @test_readcyclecounter() nounwind {30 %a = call i64 @llvm.readcyclecounter()31 ret i64 %a32}33