brintos

brintos / llvm-project-archived public Read only

0
0
Text · 839 B · 54a6a35 Raw
27 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3define i8 @count_population(i8) unnamed_addr {4entry-block:5  %1 = tail call i8 @llvm.ctpop.i8(i8 %0)6  ret i8 %17}8 9declare i8 @llvm.ctpop.i8(i8)10 11; CHECK-LABEL: count_population:12; CHECK: mov    [[SCRATCH:r[0-9]+]], [[RESULT:r[0-9]+]]13; CHECK: lsr    {{.*}}[[SCRATCH]]14; CHECK: andi   {{.*}}[[SCRATCH]], 8515; CHECK: sub    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]16; CHECK: mov    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]17; CHECK: andi   {{.*}}[[SCRATCH]], 5118; CHECK: lsr    {{.*}}[[RESULT]]19; CHECK: lsr    {{.*}}[[RESULT]]20; CHECK: andi   {{.*}}[[RESULT]], 5121; CHECK: add    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]22; CHECK: mov    {{.*}}[[SCRATCH]], {{.*}}[[RESULT]]23; CHECK: swap   {{.*}}[[SCRATCH]]24; CHECK: add    {{.*}}[[RESULT]], {{.*}}[[SCRATCH]]25; CHECK: andi   {{.*}}[[RESULT]], 1526; CHECK: ret27