brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 69ceca3 Raw
44 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3define i8 @count_leading_zeros(i8) unnamed_addr {4entry-block:5  %1 = tail call i8 @llvm.ctlz.i8(i8 %0)6  ret i8 %17}8 9declare i8 @llvm.ctlz.i8(i8)10 11; CHECK-LABEL: count_leading_zeros:12; CHECK: cpi    [[RESULT:r[0-9]+]], 013; CHECK: breq   .LBB0_214; CHECK: mov    [[SCRATCH:r[0-9]+]], {{.*}}[[RESULT]]15; CHECK: lsr    {{.*}}[[SCRATCH]]16; CHECK: or     {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]17; CHECK: mov    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]18; CHECK: lsr    {{.*}}[[RESULT]]19; CHECK: lsr    {{.*}}[[RESULT]]20; CHECK: or     {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]21; CHECK: mov    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]22; CHECK: swap   {{.*}}[[SCRATCH]]23; CHECK: andi   {{.*}}[[SCRATCH]], 1524; CHECK: or     {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]25; CHECK: com    {{.*}}[[SCRATCH]]26; CHECK: mov    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]27; CHECK: lsr    {{.*}}[[RESULT]]28; CHECK: andi   {{.*}}[[RESULT]], 8529; CHECK: sub    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]30; CHECK: mov    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]31; CHECK: andi   {{.*}}[[RESULT]], 5132; CHECK: lsr    {{.*}}[[SCRATCH]]33; CHECK: lsr    {{.*}}[[SCRATCH]]34; CHECK: andi   {{.*}}[[SCRATCH]], 5135; CHECK: add    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]36; CHECK: mov    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]37; CHECK: swap   {{.*}}[[RESULT]]38; CHECK: add    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]39; CHECK: andi   {{.*}}[[RESULT]], 1540; CHECK: ret41; CHECK: LBB0_2:42; CHECK: ldi    {{.*}}[[RESULT]], 843; CHECK: ret44