Advertisement
Guest User

Untitled

a guest
Mar 17th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 1.47 KB | None | 0 0
  1. ; ModuleID = 'module'
  2.  
  3. define i32 @main(i32, i32) {
  4. entry:
  5.   %a = alloca i32
  6.   store i32 %0, i32* %a
  7.   %pow = alloca i32
  8.   store i32 %1, i32* %pow
  9.   %result = alloca i32
  10.   store i32 1, i32* %result
  11.   br label %while_cond
  12.  
  13. while_cond:                                       ; preds = %if_merge, %entry
  14.   %pow1 = load i32, i32* %pow
  15.   %not_equal = icmp ne i32 %pow1, 0
  16.   br i1 %not_equal, label %while_body, label %while_next
  17.  
  18. while_body:                                       ; preds = %while_cond
  19.   %pow2 = load i32, i32* %pow
  20.   %mod = srem i32 %pow2, 2
  21.   %equal = icmp eq i32 %mod, 0
  22.   br i1 %equal, label %if_true, label %if_false
  23.  
  24. while_next:                                       ; preds = %while_cond
  25.   %result10 = load i32, i32* %result
  26.   ret i32 %result10
  27.  
  28. if_true:                                          ; preds = %while_body
  29.   %a3 = load i32, i32* %a
  30.   %a4 = load i32, i32* %a
  31.   %mul = mul i32 %a3, %a4
  32.   store i32 %mul, i32* %a
  33.   %pow5 = load i32, i32* %pow
  34.   %div = sdiv i32 %pow5, 2
  35.   store i32 %div, i32* %pow
  36.   br label %if_merge
  37.  
  38. if_false:                                         ; preds = %while_body
  39.   %result6 = load i32, i32* %result
  40.   %a7 = load i32, i32* %a
  41.   %mul8 = mul i32 %result6, %a7
  42.   store i32 %mul8, i32* %result
  43.   %pow9 = load i32, i32* %pow
  44.   %sub = sub i32 %pow9, 1
  45.   store i32 %sub, i32* %pow
  46.   br label %if_merge
  47.  
  48. if_merge:                                         ; preds = %if_false, %if_true
  49.   br label %while_cond
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement