brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 866881c Raw
83 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2; Check that there are no packets with two or more instructions, except3; for the endloop packet.4 5; This is the expected code:6;7;  p0 = cmp.gt(r3,#0)8;  if (!p0) jump:nt .LBB0_39;  loop0(.LBB0_2,r3)10;  r3 = memw(r1++#4)11;  r4 = memw(r2++#4)12;  r3 = add(r4,r3)13;  memw(r0++#4) = r314;  { nop; nop }:endloop015;  jumpr r3116 17; CHECK-LABEL: fred:18; CHECK:      {19; CHECK-NEXT:   cmp20; CHECK-NEXT: }21; CHECK:      {22; CHECK-NEXT:   jump23; CHECK-NEXT: }24; CHECK:      {25; CHECK-NEXT:   loop026; CHECK-NEXT: }27; CHECK:      {28; CHECK-NEXT:   memw29; CHECK-NEXT: }30; CHECK:      {31; CHECK-NEXT:   memw32; CHECK-NEXT: }33; CHECK:      {34; CHECK-NEXT:   add35; CHECK-NEXT: }36; CHECK:      {37; CHECK-NEXT:   memw38; CHECK-NEXT: }39; CHECK:      {40; CHECK-NEXT:   nop41; CHECK-NEXT:   nop42; CHECK-NEXT: }{{[ \t]*}}:endloop043; CHECK:      {44; CHECK-NEXT:   jumpr r3145; CHECK-NEXT: }46 47target triple = "hexagon"48 49 50define void @fred(ptr nocapture %a0, ptr nocapture readonly %a1, ptr nocapture readonly %a2, i32 %a3) local_unnamed_addr #0 {51b4:52  %v5 = icmp sgt i32 %a3, 053  br i1 %v5, label %b6, label %b2154 55b6:                                               ; preds = %b456  br label %b757 58b7:                                               ; preds = %b7, %b659  %v8 = phi i32 [ %v18, %b7 ], [ 0, %b6 ]60  %v9 = phi ptr [ %v17, %b7 ], [ %a0, %b6 ]61  %v10 = phi ptr [ %v14, %b7 ], [ %a2, %b6 ]62  %v11 = phi ptr [ %v12, %b7 ], [ %a1, %b6 ]63  %v12 = getelementptr inbounds i32, ptr %v11, i32 164  %v13 = load i32, ptr %v11, align 465  %v14 = getelementptr inbounds i32, ptr %v10, i32 166  %v15 = load i32, ptr %v10, align 467  %v16 = add nsw i32 %v15, %v1368  %v17 = getelementptr inbounds i32, ptr %v9, i32 169  store i32 %v16, ptr %v9, align 470  %v18 = add nuw nsw i32 %v8, 171  %v19 = icmp eq i32 %v18, %a372  br i1 %v19, label %b20, label %b773 74b20:                                              ; preds = %b775  br label %b2176 77b21:                                              ; preds = %b20, %b478  ret void79}80 81attributes #0 = { norecurse nounwind "target-cpu"="hexagonv60" "target-features"="-packets" }82 83