Home | History | Annotate | Download | only in JumpThreading
      1 ; RUN: opt -S -jump-threading < %s | FileCheck %s
      2 
      3 
      4 ; CHECK-LABEL: @f(
      5 ; CHECK-LABEL: entry:
      6 ; CHECK-NEXT:  br label %[[loop:.*]]
      7 ; CHECK:       [[loop]]:
      8 ; CHECK-NEXT:  br label %[[loop]]
      9 
     10 define void @f() {
     11 entry:
     12   br label %for.cond1
     13 
     14 if.end16:
     15   %phi1 = phi i32 [ undef, %for.cond1 ]
     16   %g.3 = phi i32 [ %g.1, %for.cond1 ]
     17   %sext = shl i32 %g.3, 16
     18   %conv20 = ashr exact i32 %sext, 16
     19   %tobool21 = icmp eq i32 %phi1, 0
     20   br i1 %tobool21, label %lor.rhs, label %for.cond1
     21 
     22 for.cond1:
     23   %g.1 = phi i32 [ 0, %entry ], [ 0, %lor.rhs ], [ %g.3, %if.end16 ]
     24   br i1 undef, label %lor.rhs, label %if.end16
     25 
     26 lor.rhs:
     27   br label %for.cond1
     28 }
     29