brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 5e9bf92 Raw
60 lines · plain
1; RUN: llc -mtriple=hexagon < %s2; RUN: llc -mtriple=hexagon -disable-hcp < %s3; REQUIRES: asserts4 5target datalayout = "e-m:e-p:32:32-i1:32-i64:64-a:0-v32:32-n16:32"6target triple = "hexagon-unknown--elf"7 8%struct.item = type { i32, ptr, ptr, i32, i8, i8, i16, i32, i8, i16, i32 }9 10declare ptr @foo(ptr, ptr, i32) #111 12; Function Attrs: nounwind13define i32 @bar(ptr %ptr, ptr %buf, i32 %c, ptr %d, i32 %e) #1 {14entry:15  br i1 undef, label %return, label %if.end16 17if.end:                                           ; preds = %entry18  br i1 undef, label %while.cond13.preheader, label %if.end319 20if.end3:                                          ; preds = %if.end21  br label %while.cond13.preheader22 23while.cond13.preheader:                           ; preds = %if.end3, %if.end24  br i1 undef, label %while.body20, label %return25 26while.body20:                                     ; preds = %if.end38, %while.cond13.preheader27  %addr.0100 = phi i32 [ undef, %if.end38 ], [ %c, %while.cond13.preheader ]28  %cond = select i1 undef, i32 %addr.0100, i32 undef29  br i1 undef, label %while.body20.if.end38_crit_edge, label %if.then3230 31while.body20.if.end38_crit_edge:                  ; preds = %while.body2032  %conv39.pre = and i32 %cond, 6553533  br label %if.end3834 35if.then32:                                        ; preds = %while.body2036  %conv33 = and i32 %cond, 6553537  %.pre = load ptr, ptr %ptr, align 4, !tbaa !138  br label %if.end3839 40if.end38:                                         ; preds = %if.then32, %while.body20.if.end38_crit_edge41  %conv39.pre-phi = phi i32 [ %conv39.pre, %while.body20.if.end38_crit_edge ], [ %conv33, %if.then32 ]42  %0 = phi ptr [ undef, %while.body20.if.end38_crit_edge ], [ %.pre, %if.then32 ]43  %add = add i32 %conv39.pre-phi, 044  %call52 = tail call ptr @foo(ptr %0, ptr %d, i32 %e) #145  br i1 undef, label %while.body20, label %return46 47return:                                           ; preds = %if.end38, %while.cond13.preheader, %entry48  %retval.0 = phi i32 [ 0, %entry ], [ 0, %while.cond13.preheader ], [ %add, %if.end38 ]49  ret i32 %retval.050}51 52 53attributes #0 = { nounwind readonly }54attributes #1 = { nounwind }55 56!1 = !{!2, !2, i64 0}57!2 = !{!"any pointer", !3, i64 0}58!3 = !{!"omnipotent char", !4, i64 0}59!4 = !{!"Simple C/C++ TBAA"}60