Home | History | Annotate | Download | only in ARM
      1 ; REQUIRES: asserts
      2 ; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=pic \
      3 ; RUN:   -mattr=+v6 | grep r9
      4 ; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=pic \
      5 ; RUN:   -mattr=+v6 -arm-reserve-r9 -ifcvt-limit=0 -stats 2>&1 | grep asm-printer
      6 ; | grep 35
      7 
      8 define void @test(i32 %tmp56222, i32 %tmp36224, i32 %tmp46223, i32 %i.0196.0.ph, i32 %tmp8, i32* %tmp1011, i32** %tmp1, i32* %d2.1.out, i32* %d3.1.out, i32* %d0.1.out, i32* %d1.1.out) {
      9 newFuncRoot:
     10 	br label %bb74
     11 
     12 bb78.exitStub:		; preds = %bb74
     13 	store i32 %d2.1, i32* %d2.1.out
     14 	store i32 %d3.1, i32* %d3.1.out
     15 	store i32 %d0.1, i32* %d0.1.out
     16 	store i32 %d1.1, i32* %d1.1.out
     17 	ret void
     18 
     19 bb74:		; preds = %bb26, %newFuncRoot
     20 	%fp.1.rec = phi i32 [ 0, %newFuncRoot ], [ %tmp71.rec, %bb26 ]		; <i32> [#uses=3]
     21 	%fm.1.in = phi i32* [ %tmp71, %bb26 ], [ %tmp1011, %newFuncRoot ]		; <i32*> [#uses=1]
     22 	%d0.1 = phi i32 [ %tmp44, %bb26 ], [ 8192, %newFuncRoot ]		; <i32> [#uses=2]
     23 	%d1.1 = phi i32 [ %tmp54, %bb26 ], [ 8192, %newFuncRoot ]		; <i32> [#uses=2]
     24 	%d2.1 = phi i32 [ %tmp64, %bb26 ], [ 8192, %newFuncRoot ]		; <i32> [#uses=2]
     25 	%d3.1 = phi i32 [ %tmp69, %bb26 ], [ 8192, %newFuncRoot ]		; <i32> [#uses=2]
     26 	%fm.1 = load i32* %fm.1.in		; <i32> [#uses=4]
     27 	icmp eq i32 %fp.1.rec, %tmp8		; <i1>:0 [#uses=1]
     28 	br i1 %0, label %bb78.exitStub, label %bb26
     29 
     30 bb26:		; preds = %bb74
     31 	%tmp28 = getelementptr i32** %tmp1, i32 %fp.1.rec		; <i32**> [#uses=1]
     32 	%tmp30 = load i32** %tmp28		; <i32*> [#uses=4]
     33 	%tmp33 = getelementptr i32* %tmp30, i32 %i.0196.0.ph		; <i32*> [#uses=1]
     34 	%tmp34 = load i32* %tmp33		; <i32> [#uses=1]
     35 	%tmp38 = getelementptr i32* %tmp30, i32 %tmp36224		; <i32*> [#uses=1]
     36 	%tmp39 = load i32* %tmp38		; <i32> [#uses=1]
     37 	%tmp42 = mul i32 %tmp34, %fm.1		; <i32> [#uses=1]
     38 	%tmp44 = add i32 %tmp42, %d0.1		; <i32> [#uses=1]
     39 	%tmp48 = getelementptr i32* %tmp30, i32 %tmp46223		; <i32*> [#uses=1]
     40 	%tmp49 = load i32* %tmp48		; <i32> [#uses=1]
     41 	%tmp52 = mul i32 %tmp39, %fm.1		; <i32> [#uses=1]
     42 	%tmp54 = add i32 %tmp52, %d1.1		; <i32> [#uses=1]
     43 	%tmp58 = getelementptr i32* %tmp30, i32 %tmp56222		; <i32*> [#uses=1]
     44 	%tmp59 = load i32* %tmp58		; <i32> [#uses=1]
     45 	%tmp62 = mul i32 %tmp49, %fm.1		; <i32> [#uses=1]
     46 	%tmp64 = add i32 %tmp62, %d2.1		; <i32> [#uses=1]
     47 	%tmp67 = mul i32 %tmp59, %fm.1		; <i32> [#uses=1]
     48 	%tmp69 = add i32 %tmp67, %d3.1		; <i32> [#uses=1]
     49 	%tmp71.rec = add i32 %fp.1.rec, 1		; <i32> [#uses=2]
     50 	%tmp71 = getelementptr i32* %tmp1011, i32 %tmp71.rec		; <i32*> [#uses=1]
     51 	br label %bb74
     52 }
     53