source: icGREP/icgrep-devel/llvm-3.8.0.src/test/CodeGen/ARM/2009-02-27-SpillerBug.ll @ 5027

Last change on this file since 5027 was 5027, checked in by cameron, 3 years ago

Upgrade to llvm 3.8

File size: 12.3 KB
Line 
1; RUN: llc < %s -march=arm -mattr=+v6,+vfp2
2
3target triple = "arm-apple-darwin9"
4@a = external global double             ; <double*> [#uses=1]
5@N = external global double             ; <double*> [#uses=1]
6
7declare double @llvm.exp.f64(double) nounwind readonly
8
9define fastcc void @findratio(double* nocapture %res1, double* nocapture %res2) nounwind {
10bb.thread:
11        br label %bb52
12
13bb32:           ; preds = %bb52
14        %0 = fadd double 0.000000e+00, 0.000000e+00             ; <double> [#uses=1]
15        %1 = add i32 %j.1, 1            ; <i32> [#uses=1]
16        br label %bb52
17
18bb52:           ; preds = %bb53, %bb32, %bb.thread
19        %i.3494 = phi i32 [ 0, %bb.thread ], [ %3, %bb53 ], [ %i.3494, %bb32 ]          ; <i32> [#uses=2]
20        %k.4 = phi double [ %0, %bb32 ], [ 0.000000e+00, %bb53 ], [ 0.000000e+00, %bb.thread ]          ; <double> [#uses=2]
21        %j.1 = phi i32 [ %1, %bb32 ], [ 0, %bb53 ], [ 0, %bb.thread ]           ; <i32> [#uses=2]
22        %2 = icmp sgt i32 %j.1, 99              ; <i1> [#uses=1]
23        br i1 %2, label %bb53, label %bb32
24
25bb53:           ; preds = %bb52
26        %3 = add i32 %i.3494, 1         ; <i32> [#uses=2]
27        %phitmp = icmp sgt i32 %3, 999999               ; <i1> [#uses=1]
28        br i1 %phitmp, label %bb55, label %bb52
29
30bb55:           ; preds = %bb53
31        %4 = load double, double* @a, align 4           ; <double> [#uses=10]
32        %5 = fadd double %4, 0.000000e+00               ; <double> [#uses=16]
33        %6 = fcmp ogt double %k.4, 0.000000e+00         ; <i1> [#uses=1]
34        %.pn404 = fmul double %4, %4            ; <double> [#uses=4]
35        %.pn402 = fmul double %5, %5            ; <double> [#uses=5]
36        %.pn165.in = load double, double* @N            ; <double> [#uses=5]
37        %.pn198 = fmul double 0.000000e+00, %5          ; <double> [#uses=1]
38        %.pn185 = fsub double -0.000000e+00, 0.000000e+00               ; <double> [#uses=1]
39        %.pn147 = fsub double -0.000000e+00, 0.000000e+00               ; <double> [#uses=1]
40        %.pn141 = fdiv double 0.000000e+00, %4          ; <double> [#uses=1]
41        %.pn142 = fdiv double 0.000000e+00, %5          ; <double> [#uses=1]
42        %.pn136 = fdiv double 0.000000e+00, 0.000000e+00                ; <double> [#uses=1]
43        %.pn132 = fdiv double 0.000000e+00, %5          ; <double> [#uses=1]
44        %.pn123 = fdiv double 0.000000e+00, 0.000000e+00                ; <double> [#uses=1]
45        %.pn124 = fdiv double 0.000000e+00, %.pn198             ; <double> [#uses=1]
46        %.pn120 = fdiv double 0.000000e+00, 0.000000e+00                ; <double> [#uses=1]
47        %.pn117 = fdiv double 0.000000e+00, %4          ; <double> [#uses=1]
48        %.pn118 = fdiv double %.pn185, %5               ; <double> [#uses=1]
49        %.pn88 = fdiv double %.pn147, %5                ; <double> [#uses=1]
50        %.pn81 = fsub double %.pn141, %.pn142           ; <double> [#uses=1]
51        %.pn77 = fsub double 0.000000e+00, %.pn136              ; <double> [#uses=1]
52        %.pn75 = fsub double 0.000000e+00, %.pn132              ; <double> [#uses=1]
53        %.pn69 = fsub double %.pn123, %.pn124           ; <double> [#uses=1]
54        %.pn67 = fsub double 0.000000e+00, %.pn120              ; <double> [#uses=1]
55        %.pn56 = fsub double %.pn117, %.pn118           ; <double> [#uses=1]
56        %.pn42 = fsub double 0.000000e+00, %.pn88               ; <double> [#uses=1]
57        %.pn60 = fmul double %.pn81, 0.000000e+00               ; <double> [#uses=1]
58        %.pn57 = fadd double %.pn77, 0.000000e+00               ; <double> [#uses=1]
59        %.pn58 = fmul double %.pn75, %.pn165.in         ; <double> [#uses=1]
60        %.pn32 = fadd double %.pn69, 0.000000e+00               ; <double> [#uses=1]
61        %.pn33 = fmul double %.pn67, %.pn165.in         ; <double> [#uses=1]
62        %.pn17 = fsub double 0.000000e+00, %.pn60               ; <double> [#uses=1]
63        %.pn9 = fadd double %.pn57, %.pn58              ; <double> [#uses=1]
64        %.pn30 = fmul double 0.000000e+00, %.pn56               ; <double> [#uses=1]
65        %.pn24 = fmul double 0.000000e+00, %.pn42               ; <double> [#uses=1]
66        %.pn1 = fadd double %.pn32, %.pn33              ; <double> [#uses=1]
67        %.pn28 = fsub double %.pn30, 0.000000e+00               ; <double> [#uses=1]
68        %.pn26 = fadd double %.pn28, 0.000000e+00               ; <double> [#uses=1]
69        %.pn22 = fsub double %.pn26, 0.000000e+00               ; <double> [#uses=1]
70        %.pn20 = fsub double %.pn24, 0.000000e+00               ; <double> [#uses=1]
71        %.pn18 = fadd double %.pn22, 0.000000e+00               ; <double> [#uses=1]
72        %.pn16 = fadd double %.pn20, 0.000000e+00               ; <double> [#uses=1]
73        %.pn14 = fsub double %.pn18, 0.000000e+00               ; <double> [#uses=1]
74        %.pn12 = fsub double %.pn16, %.pn17             ; <double> [#uses=1]
75        %.pn10 = fadd double %.pn14, 0.000000e+00               ; <double> [#uses=1]
76        %.pn8 = fadd double %.pn12, 0.000000e+00                ; <double> [#uses=1]
77        %.pn6 = fsub double %.pn10, 0.000000e+00                ; <double> [#uses=1]
78        %.pn4 = fsub double %.pn8, %.pn9                ; <double> [#uses=1]
79        %.pn2 = fadd double %.pn6, 0.000000e+00         ; <double> [#uses=1]
80        %.pn = fadd double %.pn4, 0.000000e+00          ; <double> [#uses=1]
81        %N1.0 = fsub double %.pn2, 0.000000e+00         ; <double> [#uses=2]
82        %D1.0 = fsub double %.pn, %.pn1         ; <double> [#uses=2]
83        br i1 %6, label %bb62, label %bb64
84
85bb62:           ; preds = %bb55
86        %7 = fmul double 0.000000e+00, %4               ; <double> [#uses=1]
87        %8 = fsub double -0.000000e+00, %7              ; <double> [#uses=3]
88        %9 = fmul double 0.000000e+00, %5               ; <double> [#uses=1]
89        %10 = fsub double -0.000000e+00, %9             ; <double> [#uses=3]
90        %11 = fmul double %.pn404, %4           ; <double> [#uses=5]
91        %12 = fmul double %.pn402, %5           ; <double> [#uses=5]
92        %13 = fmul double 0.000000e+00, -2.000000e+00           ; <double> [#uses=1]
93        %14 = fdiv double 0.000000e+00, %.pn402         ; <double> [#uses=1]
94        %15 = fsub double 0.000000e+00, %14             ; <double> [#uses=1]
95        %16 = fmul double 0.000000e+00, %15             ; <double> [#uses=1]
96        %17 = fadd double %13, %16              ; <double> [#uses=1]
97        %18 = fmul double %.pn165.in, -2.000000e+00             ; <double> [#uses=5]
98        %19 = fmul double %18, 0.000000e+00             ; <double> [#uses=1]
99        %20 = fadd double %17, %19              ; <double> [#uses=1]
100        %21 = fmul double 0.000000e+00, %20             ; <double> [#uses=1]
101        %22 = fadd double 0.000000e+00, %21             ; <double> [#uses=1]
102        %23 = fdiv double 0.000000e+00, %12             ; <double> [#uses=1]
103        %24 = fsub double 0.000000e+00, %23             ; <double> [#uses=0]
104        %25 = fmul double %18, 0.000000e+00             ; <double> [#uses=1]
105        %26 = fadd double 0.000000e+00, %25             ; <double> [#uses=1]
106        %27 = fmul double 0.000000e+00, %26             ; <double> [#uses=1]
107        %28 = fsub double %22, %27              ; <double> [#uses=1]
108        %29 = fmul double %11, %4               ; <double> [#uses=1]
109        %30 = fmul double %12, %5               ; <double> [#uses=3]
110        %31 = fmul double %.pn165.in, -4.000000e+00             ; <double> [#uses=1]
111        %32 = fmul double %.pn165.in, 0x3FF5555555555555                ; <double> [#uses=1]
112        %33 = fmul double %32, 0.000000e+00             ; <double> [#uses=2]
113        %34 = fadd double %28, 0.000000e+00             ; <double> [#uses=1]
114        %35 = fsub double -0.000000e+00, 0.000000e+00           ; <double> [#uses=1]
115        %36 = fdiv double %35, %11              ; <double> [#uses=1]
116        %37 = fdiv double 0.000000e+00, %12             ; <double> [#uses=1]
117        %38 = fsub double %36, %37              ; <double> [#uses=1]
118        %39 = fmul double 0.000000e+00, %38             ; <double> [#uses=1]
119        %40 = fadd double 0.000000e+00, %39             ; <double> [#uses=1]
120        %41 = fadd double %40, 0.000000e+00             ; <double> [#uses=1]
121        %42 = fadd double %41, 0.000000e+00             ; <double> [#uses=1]
122        %43 = fmul double %42, 0.000000e+00             ; <double> [#uses=1]
123        %44 = fsub double %34, %43              ; <double> [#uses=1]
124        %45 = tail call double @llvm.exp.f64(double %8) nounwind                ; <double> [#uses=1]
125        %46 = fsub double -0.000000e+00, %45            ; <double> [#uses=2]
126        %47 = fdiv double %46, 0.000000e+00             ; <double> [#uses=1]
127        %48 = fmul double %30, %5               ; <double> [#uses=1]
128        %49 = fdiv double 0.000000e+00, %48             ; <double> [#uses=1]
129        %50 = fsub double %47, %49              ; <double> [#uses=1]
130        %51 = fmul double %50, -4.000000e+00            ; <double> [#uses=1]
131        %52 = fadd double %51, 0.000000e+00             ; <double> [#uses=1]
132        %53 = fdiv double %46, %11              ; <double> [#uses=1]
133        %54 = fsub double %53, 0.000000e+00             ; <double> [#uses=1]
134        %55 = fmul double %31, %54              ; <double> [#uses=1]
135        %56 = fadd double %52, %55              ; <double> [#uses=1]
136        %57 = fadd double %56, 0.000000e+00             ; <double> [#uses=1]
137        %58 = fadd double %44, %57              ; <double> [#uses=1]
138        %59 = fsub double %58, 0.000000e+00             ; <double> [#uses=1]
139        %60 = tail call double @llvm.exp.f64(double 0.000000e+00) nounwind              ; <double> [#uses=1]
140        %61 = fsub double -0.000000e+00, %60            ; <double> [#uses=1]
141        %62 = fdiv double 0.000000e+00, -6.000000e+00           ; <double> [#uses=1]
142        %63 = fdiv double %61, %5               ; <double> [#uses=1]
143        %64 = fsub double 0.000000e+00, %63             ; <double> [#uses=1]
144        %65 = fmul double %62, %64              ; <double> [#uses=1]
145        %66 = fsub double 0.000000e+00, %65             ; <double> [#uses=1]
146        %67 = fsub double -0.000000e+00, 0.000000e+00           ; <double> [#uses=2]
147        %68 = tail call double @llvm.exp.f64(double %10) nounwind               ; <double> [#uses=1]
148        %69 = fsub double -0.000000e+00, %68            ; <double> [#uses=2]
149        %70 = fdiv double %67, %.pn404          ; <double> [#uses=1]
150        %71 = fdiv double %69, %.pn402          ; <double> [#uses=1]
151        %72 = fsub double %70, %71              ; <double> [#uses=1]
152        %73 = fmul double %72, -5.000000e-01            ; <double> [#uses=1]
153        %74 = fdiv double %67, %4               ; <double> [#uses=1]
154        %75 = fdiv double %69, %5               ; <double> [#uses=1]
155        %76 = fsub double %74, %75              ; <double> [#uses=1]
156        %77 = fmul double %76, 0.000000e+00             ; <double> [#uses=1]
157        %78 = fadd double %73, %77              ; <double> [#uses=1]
158        %79 = fmul double 0.000000e+00, %78             ; <double> [#uses=1]
159        %80 = fadd double %66, %79              ; <double> [#uses=1]
160        %81 = fdiv double 0.000000e+00, %.pn404         ; <double> [#uses=1]
161        %82 = fdiv double 0.000000e+00, %.pn402         ; <double> [#uses=1]
162        %83 = fsub double %81, %82              ; <double> [#uses=1]
163        %84 = fmul double %83, -5.000000e-01            ; <double> [#uses=1]
164        %85 = fdiv double 0.000000e+00, %4              ; <double> [#uses=1]
165        %86 = fdiv double 0.000000e+00, %5              ; <double> [#uses=1]
166        %87 = fsub double %85, %86              ; <double> [#uses=1]
167        %88 = fmul double %87, 0.000000e+00             ; <double> [#uses=1]
168        %89 = fadd double %84, %88              ; <double> [#uses=1]
169        %90 = fmul double 0.000000e+00, %89             ; <double> [#uses=1]
170        %91 = fsub double %80, %90              ; <double> [#uses=1]
171        %92 = tail call double @llvm.exp.f64(double %8) nounwind                ; <double> [#uses=1]
172        %93 = fsub double -0.000000e+00, %92            ; <double> [#uses=1]
173        %94 = tail call double @llvm.exp.f64(double %10) nounwind               ; <double> [#uses=1]
174        %95 = fsub double -0.000000e+00, %94            ; <double> [#uses=3]
175        %96 = fdiv double %95, %.pn402          ; <double> [#uses=1]
176        %97 = fsub double 0.000000e+00, %96             ; <double> [#uses=1]
177        %98 = fmul double 0.000000e+00, %97             ; <double> [#uses=1]
178        %99 = fdiv double %93, %11              ; <double> [#uses=1]
179        %100 = fdiv double %95, %12             ; <double> [#uses=1]
180        %101 = fsub double %99, %100            ; <double> [#uses=1]
181        %102 = fsub double %98, %101            ; <double> [#uses=1]
182        %103 = fdiv double %95, %5              ; <double> [#uses=1]
183        %104 = fsub double 0.000000e+00, %103           ; <double> [#uses=1]
184        %105 = fmul double %18, %104            ; <double> [#uses=1]
185        %106 = fadd double %102, %105           ; <double> [#uses=1]
186        %107 = fmul double %106, %k.4           ; <double> [#uses=1]
187        %108 = fadd double %91, %107            ; <double> [#uses=1]
188        %109 = fsub double %108, 0.000000e+00           ; <double> [#uses=1]
189        %110 = tail call double @llvm.exp.f64(double %8) nounwind               ; <double> [#uses=1]
190        %111 = fsub double -0.000000e+00, %110          ; <double> [#uses=2]
191        %112 = tail call double @llvm.exp.f64(double %10) nounwind              ; <double> [#uses=1]
192        %113 = fsub double -0.000000e+00, %112          ; <double> [#uses=2]
193        %114 = fdiv double %111, %11            ; <double> [#uses=1]
194        %115 = fdiv double %113, %12            ; <double> [#uses=1]
195        %116 = fsub double %114, %115           ; <double> [#uses=1]
196        %117 = fmul double 0.000000e+00, %116           ; <double> [#uses=1]
197        %118 = fdiv double %111, %29            ; <double> [#uses=1]
198        %119 = fdiv double %113, %30            ; <double> [#uses=1]
199        %120 = fsub double %118, %119           ; <double> [#uses=1]
200        %121 = fsub double %117, %120           ; <double> [#uses=1]
201        %122 = fmul double %18, 0.000000e+00            ; <double> [#uses=1]
202        %123 = fadd double %121, %122           ; <double> [#uses=1]
203        %124 = fmul double %33, 0.000000e+00            ; <double> [#uses=1]
204        %125 = fadd double %123, %124           ; <double> [#uses=1]
205        %126 = fadd double %109, %125           ; <double> [#uses=1]
206        %127 = tail call double @llvm.exp.f64(double 0.000000e+00) nounwind             ; <double> [#uses=1]
207        %128 = fsub double -0.000000e+00, %127          ; <double> [#uses=2]
208        %129 = fdiv double %128, %30            ; <double> [#uses=1]
209        %130 = fsub double 0.000000e+00, %129           ; <double> [#uses=1]
210        %131 = fsub double 0.000000e+00, %130           ; <double> [#uses=1]
211        %132 = fdiv double 0.000000e+00, %.pn404                ; <double> [#uses=1]
212        %133 = fsub double %132, 0.000000e+00           ; <double> [#uses=1]
213        %134 = fmul double %18, %133            ; <double> [#uses=1]
214        %135 = fadd double %131, %134           ; <double> [#uses=1]
215        %136 = fdiv double %128, %5             ; <double> [#uses=1]
216        %137 = fsub double 0.000000e+00, %136           ; <double> [#uses=1]
217        %138 = fmul double %33, %137            ; <double> [#uses=1]
218        %139 = fadd double %135, %138           ; <double> [#uses=1]
219        %140 = fsub double %126, %139           ; <double> [#uses=1]
220        %141 = fadd double %N1.0, %59           ; <double> [#uses=1]
221        %142 = fadd double %D1.0, %140          ; <double> [#uses=1]
222        br label %bb64
223
224bb64:           ; preds = %bb62, %bb55
225        %N1.0.pn = phi double [ %141, %bb62 ], [ %N1.0, %bb55 ]         ; <double> [#uses=1]
226        %D1.0.pn = phi double [ %142, %bb62 ], [ %D1.0, %bb55 ]         ; <double> [#uses=1]
227        %x.1 = fdiv double %N1.0.pn, %D1.0.pn           ; <double> [#uses=0]
228        ret void
229}
Note: See TracBrowser for help on using the repository browser.