65 lines · plain
1; RUN: llc -O2 -mtriple=hexagon -mcpu=hexagonv5 < %s2; REQUIRES: asserts3; Check for successful compilation.4 5@c = common global i32 0, align 46@e = common global i32 0, align 47@g = common global ptr null, align 48@a = common global i32 0, align 49@b = common global i32 0, align 410@h = common global ptr null, align 411@d = common global i32 0, align 412@f = common global i32 0, align 413 14define i32 @fn1(ptr nocapture readnone %p1) #0 {15entry:16 %0 = load ptr, ptr @h, align 417 %1 = load ptr, ptr @g, align 418 %.pre = load i32, ptr @c, align 419 br label %for.cond20 21for.cond:22 %2 = phi i32 [ %10, %if.end ], [ %.pre, %entry ]23 store i32 %2, ptr @e, align 424 %tobool5 = icmp eq i32 %2, 025 br i1 %tobool5, label %for.end, label %for.body.lr.ph26 27for.body.lr.ph:28 %3 = sub i32 -5, %229 %4 = urem i32 %3, 530 %5 = sub i32 %3, %431 br label %for.body32 33for.body:34 %add6 = phi i32 [ %2, %for.body.lr.ph ], [ %add, %for.body ]35 %6 = load i32, ptr %1, align 436 store i32 %6, ptr @a, align 437 %add = add nsw i32 %add6, 538 %tobool = icmp eq i32 %add, 039 br i1 %tobool, label %for.cond1.for.end_crit_edge, label %for.body40 41for.cond1.for.end_crit_edge:42 %7 = add i32 %2, 543 %8 = add i32 %7, %544 store i32 %8, ptr @e, align 445 br label %for.end46 47for.end:48 %9 = load i32, ptr @b, align 449 %tobool2 = icmp eq i32 %9, 050 br i1 %tobool2, label %if.end, label %if.then51 52if.then:53 store i32 0, ptr %0, align 454 %.pre7 = load i32, ptr @c, align 455 br label %if.end56 57if.end:58 %10 = phi i32 [ %2, %for.end ], [ %.pre7, %if.then ]59 store i32 %10, ptr @d, align 460 %11 = load i32, ptr @f, align 461 %inc = add nsw i32 %11, 162 store i32 %inc, ptr @f, align 463 br label %for.cond64}65