br il <condition>, label %branch1, label %branch2

A branch statement that changes execution point depending on condition.

define i64 @safe_div(i64 %n, i64 %d) {
  %1 = icmp eq i64 %d, 0
  br i1 %1, label %iszero, label %nonzero
 
iszero:
  ret i64 -1
 
nonzero:
  %2 = udiv i64 %n, %d
  ret i64 %2
}

br with one branch is equivalent to an unconditional goto

br il %1, label %gohere
 
gohere:
	ret i64 0