loop-1.ll 2.06 KB
Newer Older
刘睿博's avatar
刘睿博 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
; ModuleID = 'cminus'
source_filename = "/home/haiqwa/2020fall-compiler_cminus/tests/lab5/./testcases/LoopInvHoist/testcase-5.cminus"

declare i32 @input()

declare void @output(i32)

declare void @outputFloat(float)

declare void @neg_idx_except()

define void @main() {
label_entry:
  br label %label3
label3:                                                ; preds = %label_entry, %label58
  %op61 = phi i32 [ %op64, %label58 ], [ undef, %label_entry ]
  %op62 = phi i32 [ 1, %label_entry ], [ %op60, %label58 ]
  %op63 = phi i32 [ %op65, %label58 ], [ undef, %label_entry ]
  %op5 = icmp slt i32 %op62, 10000
  %op6 = zext i1 %op5 to i32
  %op7 = icmp ne i32 %op6, 0
  br i1 %op7, label %label8, label %label9
label8:                                                ; preds = %label3
  %op19 = mul i32 %op62, %op62
  %op21 = mul i32 %op19, %op62
  %op23 = mul i32 %op21, %op62
  %op25 = mul i32 %op23, %op62
  %op27 = mul i32 %op25, %op62
  %op29 = mul i32 %op27, %op62
  %op31 = mul i32 %op29, %op62
  %op33 = mul i32 %op31, %op62
  %op35 = mul i32 %op33, %op62
  %op37 = sdiv i32 %op35, %op62
  %op39 = sdiv i32 %op37, %op62
  %op41 = sdiv i32 %op39, %op62
  %op43 = sdiv i32 %op41, %op62
  %op45 = sdiv i32 %op43, %op62
  %op47 = sdiv i32 %op45, %op62
  %op49 = sdiv i32 %op47, %op62
  %op51 = sdiv i32 %op49, %op62
  %op53 = sdiv i32 %op51, %op62
  %op55 = sdiv i32 %op53, %op62
  br label %label11
label9:                                                ; preds = %label3
  call void @output(i32 %op61)
  ret void
label11:                                                ; preds = %label8, %label16
  %op64 = phi i32 [ %op61, %label8 ], [ %op55, %label16 ]
  %op65 = phi i32 [ 0, %label8 ], [ %op57, %label16 ]
  %op13 = icmp slt i32 %op65, 10000
  %op14 = zext i1 %op13 to i32
  %op15 = icmp ne i32 %op14, 0
  br i1 %op15, label %label16, label %label58
label16:                                                ; preds = %label11
  %op57 = add i32 %op65, 1
  br label %label11
label58:                                                ; preds = %label11
  %op60 = add i32 %op62, 1
  br label %label3
}