brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 9f1680a Raw
37 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3define i8 @count_trailing_zeros(i8) unnamed_addr {4entry-block:5  %1 = tail call i8 @llvm.cttz.i8(i8 %0)6  ret i8 %17}8 9declare i8 @llvm.cttz.i8(i8)10 11; CHECK-LABEL: count_trailing_zeros:12; CHECK: cpi    [[RESULT:r[0-9]+]], 013; CHECK: breq   [[END_BB:.LBB[0-9]+_[0-9]+]]14; CHECK: mov    [[SCRATCH:r[0-9]+]], {{.*}}[[RESULT]]15; CHECK: dec    {{.*}}[[SCRATCH]]16; CHECK: com    {{.*}}[[RESULT]]17; CHECK: and    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]18; CHECK: mov    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]19; CHECK: lsr    {{.*}}[[SCRATCH]]20; CHECK: andi   {{.*}}[[SCRATCH]], 8521; CHECK: sub    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]22; CHECK: mov    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]23; CHECK: andi   {{.*}}[[SCRATCH]], 5124; CHECK: lsr    {{.*}}[[RESULT]]25; CHECK: lsr    {{.*}}[[RESULT]]26; CHECK: andi   {{.*}}[[RESULT]], 5127; CHECK: add    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]28; CHECK: mov    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]29; CHECK: swap   {{.*}}[[SCRATCH]]30; CHECK: add    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]31; CHECK: mov    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]32; CHECK: andi   {{.*}}[[RESULT]], 1533; CHECK: ret34; CHECK: [[END_BB]]:35; CHECK: ldi    {{.*}}[[RESULT]], 836; CHECK: ret37