brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · a5f7788 Raw
71 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3; Test that we generate a hardware loop for long long counters.4; Tests signed/unsigned GT, EQ, and NEQ cases.5 6; signed GT case7; CHECK-LABEL: f0:8; CHECK: loop09define i32 @f0(ptr nocapture %a0) #0 {10b0:11  br label %b112b1:                                               ; preds = %b1, %b013  %v0 = phi i32 [ 0, %b0 ], [ %v5, %b1 ]14  %v1 = phi i64 [ 0, %b0 ], [ %v6, %b1 ]15  %v2 = trunc i64 %v1 to i3216  %v3 = getelementptr inbounds i32, ptr %a0, i32 %v217  %v4 = load i32, ptr %v3, align 418  %v5 = add nsw i32 %v4, %v019  %v6 = add nsw i64 %v1, 120  %v7 = icmp slt i64 %v6, 821  br i1 %v7, label %b1, label %b222 23b2:                                               ; preds = %b124  ret i32 %v525}26 27; unsigned signed GT case28; CHECK-LABEL: f1:29; CHECK: loop030define i32 @f1(ptr nocapture %a0) #0 {31b0:32  br label %b133b1:                                               ; preds = %b1, %b034  %v0 = phi i32 [ 0, %b0 ], [ %v5, %b1 ]35  %v1 = phi i64 [ 0, %b0 ], [ %v6, %b1 ]36  %v2 = trunc i64 %v1 to i3237  %v3 = getelementptr inbounds i32, ptr %a0, i32 %v238  %v4 = load i32, ptr %v3, align 439  %v5 = add nsw i32 %v4, %v040  %v6 = add i64 %v1, 141  %v7 = icmp ult i64 %v6, 842  br i1 %v7, label %b1, label %b243 44b2:                                               ; preds = %b145  ret i32 %v546}47 48; EQ case49; CHECK-LABEL: f2:50; CHECK: loop051define i32 @f2(ptr nocapture %a0) #0 {52b0:53  br label %b154 55b1:                                               ; preds = %b1, %b056  %v0 = phi i32 [ 0, %b0 ], [ %v5, %b1 ]57  %v1 = phi i64 [ 0, %b0 ], [ %v6, %b1 ]58  %v2 = trunc i64 %v1 to i3259  %v3 = getelementptr inbounds i32, ptr %a0, i32 %v260  %v4 = load i32, ptr %v3, align 461  %v5 = add nsw i32 %v4, %v062  %v6 = add nsw i64 %v1, 163  %v7 = icmp eq i64 %v6, 864  br i1 %v7, label %b2, label %b165 66b2:                                               ; preds = %b167  ret i32 %v568}69 70attributes #0 = { nounwind readonly "target-cpu"="hexagonv55" }71