brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · a4ea81e Raw
76 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3; CHECK: count_leading_0:4; CHECK: cl0(r0)5define i32 @count_leading_0(i32 %p) #0 {6  %1 = call i32 @llvm.ctlz.i32(i32 %p, i1 false)7  ret i32 %18}9 10; CHECK: count_leading_0p:11; CHECK: cl0(r1:0)12define i32 @count_leading_0p(i64 %p) #0 {13  %1 = call i64 @llvm.ctlz.i64(i64 %p, i1 false)14  %2 = trunc i64 %1 to i3215  ret i32 %216}17 18; CHECK: count_leading_1:19; CHECK: cl1(r0)20define i32 @count_leading_1(i32 %p) #0 {21  %1 = xor i32 %p, -122  %2 = call i32 @llvm.ctlz.i32(i32 %1, i1 false)23  ret i32 %224}25 26; CHECK: count_leading_1p:27; CHECK: cl1(r1:0)28define i32 @count_leading_1p(i64 %p) #0 {29  %1 = xor i64 %p, -130  %2 = call i64 @llvm.ctlz.i64(i64 %1, i1 false)31  %3 = trunc i64 %2 to i3232  ret i32 %333}34 35 36 37; CHECK: count_trailing_0:38; CHECK: ct0(r0)39define i32 @count_trailing_0(i32 %p) #0 {40  %1 = call i32 @llvm.cttz.i32(i32 %p, i1 false)41  ret i32 %142}43 44; CHECK: count_trailing_0p:45; CHECK: ct0(r1:0)46define i32 @count_trailing_0p(i64 %p) #0 {47  %1 = call i64 @llvm.cttz.i64(i64 %p, i1 false)48  %2 = trunc i64 %1 to i3249  ret i32 %250}51 52; CHECK: count_trailing_1:53; CHECK: ct1(r0)54define i32 @count_trailing_1(i32 %p) #0 {55  %1 = xor i32 %p, -156  %2 = call i32 @llvm.cttz.i32(i32 %1, i1 false)57  ret i32 %258}59 60; CHECK: count_trailing_1p:61; CHECK: ct1(r1:0)62define i32 @count_trailing_1p(i64 %p) #0 {63  %1 = xor i64 %p, -164  %2 = call i64 @llvm.cttz.i64(i64 %1, i1 false)65  %3 = trunc i64 %2 to i3266  ret i32 %367}68 69declare i32 @llvm.ctlz.i32(i32, i1)70declare i64 @llvm.ctlz.i64(i64, i1)71declare i32 @llvm.cttz.i32(i32, i1)72declare i64 @llvm.cttz.i64(i64, i1)73 74attributes #0 = { nounwind "target-cpu"="hexagonv55" }75 76