Implement a feature (-vector-unaligned-mem) to allow targets to
[oota-llvm.git] / test / CodeGen / X86 / 2010-01-07-UAMemFeature.ll
1 ; RUN: llc -mattr=vector-unaligned-mem < %s | FileCheck %s
2 ; CHECK: addps{{[ \t]+}}(
3
4 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
5 target triple = "x86_64-unknown-linux-gnu"
6
7 define i32 @foo(i32 %n1, float* %A2, float* %B3, float* %C4) {
8 "file loop.c, line 1, bb1":     ; srcLine 1
9         %n = alloca i32, align 4                ; <i32*> [#uses=2]      ; [oox.12 : sln.1]
10         %A = alloca float*, align 8             ; <float**> [#uses=2]   ; [oox.13 : sln.1]
11         %B = alloca float*, align 8             ; <float**> [#uses=2]   ; [oox.14 : sln.1]
12         %C = alloca float*, align 8             ; <float**> [#uses=2]   ; [oox.15 : sln.1]
13         %i = alloca i32, align 4                ; <i32*> [#uses=0]      ; [oox.24 : sln.1]
14         %"$CSVL_V0" = alloca i64, align 8               ; <i64*> [#uses=2]      ; [oox.38 : sln.1]
15         %"$TC_1" = alloca i64, align 8          ; <i64*> [#uses=3]      ; [oox.43 : sln.1]
16         %"$LIS_S5" = alloca i64, align 8                ; <i64*> [#uses=2]      ; [oox.54 : sln.1]
17         %"$LIS_S7" = alloca i64, align 8                ; <i64*> [#uses=2]      ; [oox.56 : sln.1]
18         %"$LIS_S8" = alloca i64, align 8                ; <i64*> [#uses=2]      ; [oox.57 : sln.1]
19         %"$LIS_S9" = alloca i64, align 8                ; <i64*> [#uses=2]      ; [oox.58 : sln.1]
20         %"$LIS_S15" = alloca i64, align 8               ; <i64*> [#uses=3]      ; [oox.64 : sln.1]
21         %"$LIS_S17" = alloca i64, align 8               ; <i64*> [#uses=3]      ; [oox.66 : sln.1]
22         %"$LIS_S18" = alloca i64, align 8               ; <i64*> [#uses=3]      ; [oox.67 : sln.1]
23         %"$LIS_S19" = alloca i64, align 8               ; <i64*> [#uses=2]      ; [oox.68 : sln.1]
24         %"$LIS_S20" = alloca i64, align 8               ; <i64*> [#uses=2]      ; [oox.69 : sln.1]
25         %"$LIS_S21" = alloca i64, align 8               ; <i64*> [#uses=2]      ; [oox.70 : sln.1]
26         %"$MR_n_0" = alloca i32, align 4                ; <i32*> [#uses=7]      ; [oox.72 : sln.1]
27         %"$MR_C_1" = alloca float*, align 8             ; <float**> [#uses=5]   ; [oox.73 : sln.1]
28         %"$MR_A_2" = alloca float*, align 8             ; <float**> [#uses=6]   ; [oox.74 : sln.1]
29         %"$MR_B_3" = alloca float*, align 8             ; <float**> [#uses=5]   ; [oox.75 : sln.1]
30         %"$LCS_0" = alloca i64, align 8         ; <i64*> [#uses=6]      ; [oox.82 : sln.1]
31         %"$LCS_1" = alloca i64, align 8         ; <i64*> [#uses=5]      ; [oox.83 : sln.1]
32         %"$LCS_2" = alloca i64, align 8         ; <i64*> [#uses=3]      ; [oox.84 : sln.1]
33         %"$LCS_1_3" = alloca i64, align 8               ; <i64*> [#uses=3]      ; [oox.85 : sln.1]
34         %"$LCS_4" = alloca i64, align 8         ; <i64*> [#uses=5]      ; [oox.86 : sln.1]
35         %"$LCS_5" = alloca i64, align 8         ; <i64*> [#uses=5]      ; [oox.87 : sln.1]
36         %"$LCS_6" = alloca i64, align 8         ; <i64*> [#uses=5]      ; [oox.88 : sln.1]
37         %"$LCS_n_7" = alloca i64, align 8               ; <i64*> [#uses=3]      ; [oox.89 : sln.1]
38         %"$i_S23" = alloca i64, align 8         ; <i64*> [#uses=15]     ; [oox.90 : sln.1]
39         %"$LC_S24" = alloca i64, align 8                ; <i64*> [#uses=9]      ; [oox.91 : sln.1]
40         %"$SI_S25" = alloca i64, align 8                ; <i64*> [#uses=11]     ; [oox.92 : sln.1]
41         store i32 %n1, i32* %n, align 4 ; [oox.12 : sln.1]
42         store float* %A2, float** %A, align 8   ; [oox.13 : sln.1]
43         store float* %B3, float** %B, align 8   ; [oox.14 : sln.1]
44         store float* %C4, float** %C, align 8   ; [oox.15 : sln.1]
45         br label %"file loop.c, line 1, bb69"   ; [oox.0 : sln.0]
46
47 "file loop.c, line 1, bb69":    ; srcLine 1             ; preds = %"file loop.c, line 1, bb1"
48         %r = load i32* %n, align 4              ; <i32> [#uses=1]       ; [oox.190 : sln.5]
49         store i32 %r, i32* %"$MR_n_0", align 4  ; [oox.190 : sln.5]
50         %r5 = load i32* %"$MR_n_0", align 4             ; <i32> [#uses=1]       ; [oox.191 : sln.5]
51         %r6 = icmp sge i32 0, %r5               ; <i1> [#uses=1]        ; [oox.191 : sln.5]
52         %r7 = zext i1 %r6 to i32                ; <i32> [#uses=1]       ; [oox.191 : sln.5]
53         %r8 = icmp ne i32 %r7, 0                ; <i1> [#uses=1]        ; [oox.191 : sln.5]
54         br i1 %r8, label %"file loop.c, line 5, bb6", label %"file loop.c, line 1, bb3" ; [oox.191 : sln.5]
55
56 "file loop.c, line 1, bb3":     ; srcLine 1             ; preds = %"file loop.c, line 1, bb69"
57         br label %"file loop.c, line 5, bb28"   ; [oox.0 : sln.0]
58
59 "file loop.c, line 5, bb28":    ; srcLine 5             ; preds = %"file loop.c, line 1, bb3"
60         store i64 0, i64* %"$i_S23", align 8    ; [oox.189 : sln.5]
61         %r9 = load float** %C, align 8          ; <float*> [#uses=1]    ; [oox.190 : sln.5]
62         store float* %r9, float** %"$MR_C_1", align 8   ; [oox.190 : sln.5]
63         %r10 = load float** %A, align 8         ; <float*> [#uses=1]    ; [oox.191 : sln.5]
64         store float* %r10, float** %"$MR_A_2", align 8  ; [oox.191 : sln.5]
65         %r11 = load float** %B, align 8         ; <float*> [#uses=1]    ; [oox.192 : sln.5]
66         store float* %r11, float** %"$MR_B_3", align 8  ; [oox.192 : sln.5]
67         %r12 = load float** %"$MR_A_2", align 8         ; <float*> [#uses=1]    ; [oox.193 : sln.5]
68         %r13 = load float** %"$MR_C_1", align 8         ; <float*> [#uses=1]    ; [oox.193 : sln.5]
69         %r14 = ptrtoint float* %r12 to i64              ; <i64> [#uses=1]       ; [oox.193 : sln.5]
70         %r15 = ptrtoint float* %r13 to i64              ; <i64> [#uses=1]       ; [oox.193 : sln.5]
71         %r16 = sub i64 %r14, %r15               ; <i64> [#uses=1]       ; [oox.193 : sln.5]
72         %r17 = sdiv i64 %r16, 4         ; <i64> [#uses=1]       ; [oox.193 : sln.5]
73         store i64 %r17, i64* %"$LCS_0", align 8 ; [oox.193 : sln.5]
74         %r18 = load float** %"$MR_A_2", align 8         ; <float*> [#uses=1]    ; [oox.194 : sln.5]
75         %r19 = load float** %"$MR_B_3", align 8         ; <float*> [#uses=1]    ; [oox.194 : sln.5]
76         %r20 = ptrtoint float* %r18 to i64              ; <i64> [#uses=1]       ; [oox.194 : sln.5]
77         %r21 = ptrtoint float* %r19 to i64              ; <i64> [#uses=1]       ; [oox.194 : sln.5]
78         %r22 = sub i64 %r20, %r21               ; <i64> [#uses=1]       ; [oox.194 : sln.5]
79         %r23 = sdiv i64 %r22, 4         ; <i64> [#uses=1]       ; [oox.194 : sln.5]
80         store i64 %r23, i64* %"$LCS_1", align 8 ; [oox.194 : sln.5]
81         %r24 = load i32* %"$MR_n_0", align 4            ; <i32> [#uses=1]       ; [oox.195 : sln.5]
82         %r25 = sext i32 %r24 to i64             ; <i64> [#uses=1]       ; [oox.195 : sln.5]
83         %r26 = add i64 -1, %r25         ; <i64> [#uses=1]       ; [oox.195 : sln.5]
84         store i64 %r26, i64* %"$LCS_1_3", align 8       ; [oox.195 : sln.5]
85         %r27 = load i64* %"$LCS_0", align 8             ; <i64> [#uses=1]       ; [oox.196 : sln.5]
86         %r28 = icmp sgt i64 %r27, 0             ; <i1> [#uses=1]        ; [oox.196 : sln.5]
87         %r29 = zext i1 %r28 to i64              ; <i64> [#uses=1]       ; [oox.196 : sln.5]
88         %r30 = load i64* %"$LCS_0", align 8             ; <i64> [#uses=1]       ; [oox.196 : sln.5]
89         %r31 = load i64* %"$LCS_1_3", align 8           ; <i64> [#uses=1]       ; [oox.196 : sln.5]
90         %r32 = icmp sle i64 %r30, %r31          ; <i1> [#uses=1]        ; [oox.196 : sln.5]
91         %r33 = zext i1 %r32 to i32              ; <i32> [#uses=1]       ; [oox.196 : sln.5]
92         %r34 = sext i32 %r33 to i64             ; <i64> [#uses=1]       ; [oox.196 : sln.5]
93         %r35 = and i64 %r29, %r34               ; <i64> [#uses=1]       ; [oox.196 : sln.5]
94         %r36 = load i64* %"$LCS_0", align 8             ; <i64> [#uses=1]       ; [oox.196 : sln.5]
95         %r37 = icmp sle i64 %r36, 4             ; <i1> [#uses=1]        ; [oox.196 : sln.5]
96         %r38 = zext i1 %r37 to i32              ; <i32> [#uses=1]       ; [oox.196 : sln.5]
97         %r39 = sext i32 %r38 to i64             ; <i64> [#uses=1]       ; [oox.196 : sln.5]
98         %r40 = and i64 %r35, %r39               ; <i64> [#uses=1]       ; [oox.196 : sln.5]
99         store i64 %r40, i64* %"$LCS_2", align 8 ; [oox.196 : sln.5]
100         %r41 = load i64* %"$LCS_1", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
101         %r42 = load i64* %"$LCS_0", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
102         %r43 = load i64* %"$LCS_2", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
103         %r44 = icmp ne i64 %r43, 0              ; <i1> [#uses=1]        ; [oox.197 : sln.5]
104         %r45 = select i1 %r44, i64 %r42, i64 4          ; <i64> [#uses=1]       ; [oox.197 : sln.5]
105         %r46 = load i64* %"$LCS_1", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
106         %r47 = icmp sgt i64 %r46, 0             ; <i1> [#uses=1]        ; [oox.197 : sln.5]
107         %r48 = zext i1 %r47 to i64              ; <i64> [#uses=1]       ; [oox.197 : sln.5]
108         %r49 = load i64* %"$LCS_1", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
109         %r50 = load i64* %"$LCS_0", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
110         %r51 = load i64* %"$LCS_2", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
111         %r52 = icmp ne i64 %r51, 0              ; <i1> [#uses=1]        ; [oox.197 : sln.5]
112         %r53 = select i1 %r52, i64 %r50, i64 4          ; <i64> [#uses=1]       ; [oox.197 : sln.5]
113         %r54 = icmp sle i64 %r49, %r53          ; <i1> [#uses=1]        ; [oox.197 : sln.5]
114         %r55 = zext i1 %r54 to i32              ; <i32> [#uses=1]       ; [oox.197 : sln.5]
115         %r56 = load i64* %"$LCS_1", align 8             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
116         %r57 = load i64* %"$LCS_1_3", align 8           ; <i64> [#uses=1]       ; [oox.197 : sln.5]
117         %r58 = icmp sle i64 %r56, %r57          ; <i1> [#uses=1]        ; [oox.197 : sln.5]
118         %r59 = zext i1 %r58 to i32              ; <i32> [#uses=1]       ; [oox.197 : sln.5]
119         %r60 = and i32 %r55, %r59               ; <i32> [#uses=1]       ; [oox.197 : sln.5]
120         %r61 = sext i32 %r60 to i64             ; <i64> [#uses=1]       ; [oox.197 : sln.5]
121         %r62 = and i64 %r48, %r61               ; <i64> [#uses=1]       ; [oox.197 : sln.5]
122         %r63 = icmp ne i64 %r62, 0              ; <i1> [#uses=1]        ; [oox.197 : sln.5]
123         %r64 = select i1 %r63, i64 %r41, i64 %r45               ; <i64> [#uses=1]       ; [oox.197 : sln.5]
124         store i64 %r64, i64* %"$CSVL_V0", align 8       ; [oox.197 : sln.5]
125         %r65 = load i64* %"$CSVL_V0", align 8           ; <i64> [#uses=1]       ; [oox.198 : sln.5]
126         %r66 = icmp sgt i64 %r65, 4             ; <i1> [#uses=1]        ; [oox.198 : sln.5]
127         %r67 = zext i1 %r66 to i32              ; <i32> [#uses=1]       ; [oox.198 : sln.5]
128         %r68 = icmp ne i32 %r67, 0              ; <i1> [#uses=1]        ; [oox.198 : sln.5]
129         br i1 %r68, label %"file loop.c, line 1, bb26", label %"file loop.c, line 1, bb27"      ; [oox.198 : sln.5]
130
131 "file loop.c, line 1, bb27":    ; srcLine 1             ; preds = %"file loop.c, line 5, bb28"
132         br label %"file loop.c, line 5, bb55"   ; [oox.0 : sln.0]
133
134 "file loop.c, line 5, bb55":    ; srcLine 5             ; preds = %"file loop.c, line 1, bb27"
135         %r69 = load i32* %"$MR_n_0", align 4            ; <i32> [#uses=1]       ; [oox.189 : sln.5]
136         %r70 = sext i32 %r69 to i64             ; <i64> [#uses=1]       ; [oox.189 : sln.5]
137         store i64 %r70, i64* %"$LIS_S9", align 8        ; [oox.189 : sln.5]
138         %r71 = load float** %"$MR_B_3", align 8         ; <float*> [#uses=1]    ; [oox.190 : sln.6]
139         %r72 = ptrtoint float* %r71 to i64              ; <i64> [#uses=1]       ; [oox.190 : sln.6]
140         store i64 %r72, i64* %"$LIS_S5", align 8        ; [oox.190 : sln.6]
141         %r73 = load float** %"$MR_C_1", align 8         ; <float*> [#uses=1]    ; [oox.191 : sln.6]
142         %r74 = ptrtoint float* %r73 to i64              ; <i64> [#uses=1]       ; [oox.191 : sln.6]
143         store i64 %r74, i64* %"$LIS_S7", align 8        ; [oox.191 : sln.6]
144         %r75 = load float** %"$MR_A_2", align 8         ; <float*> [#uses=1]    ; [oox.192 : sln.6]
145         %r76 = ptrtoint float* %r75 to i64              ; <i64> [#uses=1]       ; [oox.192 : sln.6]
146         store i64 %r76, i64* %"$LIS_S8", align 8        ; [oox.192 : sln.6]
147         br label %"file loop.c, line 1, in inner loop at depth 0, bb29" ; [oox.0 : sln.0]
148
149 "file loop.c, line 1, in inner loop at depth 0, bb29":  ; srcLine 1             ; preds = %"file loop.c, line 5, in inner loop at depth 0, bb32", %"file loop.c, line 5, bb55"
150         br label %"file loop.c, line 5, in inner loop at depth 0, bb32" ; [oox.0 : sln.0]
151
152 "file loop.c, line 5, in inner loop at depth 0, bb32":  ; srcLine 5             ; preds = %"file loop.c, line 1, in inner loop at depth 0, bb29"
153         %r77 = load i64* %"$LIS_S7", align 8            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
154         %r78 = inttoptr i64 %r77 to float*              ; <float*> [#uses=1]    ; [oox.189 : sln.6]
155         %r79 = load i64* %"$i_S23", align 8             ; <i64> [#uses=1]       ; [oox.189 : sln.6]
156         %r80 = getelementptr float* %r78, i64 %r79              ; <float*> [#uses=1]    ; [oox.189 : sln.6]
157         %r81 = load float* %r80, align 4                ; <float> [#uses=1]     ; [oox.189 : sln.6]
158         %r82 = load i64* %"$LIS_S5", align 8            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
159         %r83 = inttoptr i64 %r82 to float*              ; <float*> [#uses=1]    ; [oox.189 : sln.6]
160         %r84 = load i64* %"$i_S23", align 8             ; <i64> [#uses=1]       ; [oox.189 : sln.6]
161         %r85 = getelementptr float* %r83, i64 %r84              ; <float*> [#uses=1]    ; [oox.189 : sln.6]
162         %r86 = load float* %r85, align 4                ; <float> [#uses=1]     ; [oox.189 : sln.6]
163         %r87 = add float %r81, %r86             ; <float> [#uses=1]     ; [oox.189 : sln.6]
164         %r88 = load i64* %"$LIS_S8", align 8            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
165         %r89 = inttoptr i64 %r88 to float*              ; <float*> [#uses=1]    ; [oox.189 : sln.6]
166         %r90 = load i64* %"$i_S23", align 8             ; <i64> [#uses=1]       ; [oox.189 : sln.6]
167         %r91 = getelementptr float* %r89, i64 %r90              ; <float*> [#uses=1]    ; [oox.189 : sln.6]
168         store float %r87, float* %r91, align 4  ; [oox.189 : sln.6]
169         %r92 = load i64* %"$i_S23", align 8             ; <i64> [#uses=1]       ; [oox.190 : sln.5]
170         %r93 = add i64 1, %r92          ; <i64> [#uses=1]       ; [oox.190 : sln.5]
171         store i64 %r93, i64* %"$i_S23", align 8 ; [oox.190 : sln.5]
172         %r94 = load i64* %"$i_S23", align 8             ; <i64> [#uses=1]       ; [oox.191 : sln.5]
173         %r95 = load i64* %"$LIS_S9", align 8            ; <i64> [#uses=1]       ; [oox.191 : sln.5]
174         %r96 = icmp slt i64 %r94, %r95          ; <i1> [#uses=1]        ; [oox.191 : sln.5]
175         %r97 = zext i1 %r96 to i64              ; <i64> [#uses=1]       ; [oox.191 : sln.5]
176         %r98 = icmp ne i64 %r97, 0              ; <i1> [#uses=1]        ; [oox.191 : sln.5]
177         br i1 %r98, label %"file loop.c, line 1, in inner loop at depth 0, bb29", label %"file loop.c, line 5, bb6"     ; [oox.191 : sln.5]
178
179 "file loop.c, line 1, bb26":    ; srcLine 1             ; preds = %"file loop.c, line 5, bb28"
180         br label %"file loop.c, line 5, bb48"   ; [oox.0 : sln.0]
181
182 "file loop.c, line 5, bb48":    ; srcLine 5             ; preds = %"file loop.c, line 1, bb26"
183         %r99 = load i32* %"$MR_n_0", align 4            ; <i32> [#uses=1]       ; [oox.189 : sln.5]
184         %r100 = sext i32 %r99 to i64            ; <i64> [#uses=1]       ; [oox.189 : sln.5]
185         %r101 = icmp slt i64 %r100, 4           ; <i1> [#uses=1]        ; [oox.189 : sln.5]
186         %r102 = zext i1 %r101 to i32            ; <i32> [#uses=1]       ; [oox.189 : sln.5]
187         %r103 = icmp ne i32 %r102, 0            ; <i1> [#uses=1]        ; [oox.189 : sln.5]
188         br i1 %r103, label %"file loop.c, line 5, bb50", label %"file loop.c, line 1, bb47"     ; [oox.189 : sln.5]
189
190 "file loop.c, line 1, bb47":    ; srcLine 1             ; preds = %"file loop.c, line 5, bb48"
191         br label %"file loop.c, line 5, bb60"   ; [oox.0 : sln.0]
192
193 "file loop.c, line 5, bb60":    ; srcLine 5             ; preds = %"file loop.c, line 1, bb47"
194         %r104 = load i32* %"$MR_n_0", align 4           ; <i32> [#uses=1]       ; [oox.189 : sln.5]
195         %r105 = sext i32 %r104 to i64           ; <i64> [#uses=1]       ; [oox.189 : sln.5]
196         %r106 = and i64 -4, %r105               ; <i64> [#uses=1]       ; [oox.189 : sln.5]
197         store i64 %r106, i64* %"$TC_1", align 8 ; [oox.189 : sln.5]
198         %r107 = load i64* %"$TC_1", align 8             ; <i64> [#uses=1]       ; [oox.190 : sln.5]
199         %r108 = sub i64 0, %r107                ; <i64> [#uses=1]       ; [oox.190 : sln.5]
200         store i64 %r108, i64* %"$LC_S24", align 8       ; [oox.190 : sln.5]
201         store i64 0, i64* %"$SI_S25", align 8   ; [oox.191 : sln.5]
202         %r109 = load float** %"$MR_C_1", align 8                ; <float*> [#uses=1]    ; [oox.192 : sln.6]
203         %r110 = ptrtoint float* %r109 to i64            ; <i64> [#uses=1]       ; [oox.192 : sln.6]
204         store i64 %r110, i64* %"$LIS_S15", align 8      ; [oox.192 : sln.6]
205         %r111 = load float** %"$MR_B_3", align 8                ; <float*> [#uses=1]    ; [oox.193 : sln.6]
206         %r112 = ptrtoint float* %r111 to i64            ; <i64> [#uses=1]       ; [oox.193 : sln.6]
207         store i64 %r112, i64* %"$LIS_S17", align 8      ; [oox.193 : sln.6]
208         %r113 = load float** %"$MR_A_2", align 8                ; <float*> [#uses=1]    ; [oox.194 : sln.6]
209         %r114 = ptrtoint float* %r113 to i64            ; <i64> [#uses=1]       ; [oox.194 : sln.6]
210         store i64 %r114, i64* %"$LIS_S18", align 8      ; [oox.194 : sln.6]
211         %r115 = load i64* %"$LC_S24", align 8           ; <i64> [#uses=1]       ; [oox.195 : sln.5]
212         %r116 = icmp sge i64 %r115, -15         ; <i1> [#uses=1]        ; [oox.195 : sln.5]
213         %r117 = zext i1 %r116 to i32            ; <i32> [#uses=1]       ; [oox.195 : sln.5]
214         %r118 = icmp ne i32 %r117, 0            ; <i1> [#uses=1]        ; [oox.195 : sln.5]
215         br i1 %r118, label %"file loop.c, line 5, bb64", label %"file loop.c, line 1, bb61"     ; [oox.195 : sln.5]
216
217 "file loop.c, line 1, bb61":    ; srcLine 1             ; preds = %"file loop.c, line 5, bb60"
218         br label %"file loop.c, line 1, in inner vector loop at depth 0, bb58"  ; [oox.0 : sln.0]
219
220 "file loop.c, line 1, in inner vector loop at depth 0, bb58":   ; srcLine 1             ; preds = %"file loop.c, line 6, in inner vector loop at depth 0, bb59", %"file loop.c, line 1, bb61"
221         br label %"file loop.c, line 6, in inner vector loop at depth 0, bb59"  ; [oox.0 : sln.0]
222
223 "file loop.c, line 6, in inner vector loop at depth 0, bb59":   ; srcLine 6             ; preds = %"file loop.c, line 1, in inner vector loop at depth 0, bb58"
224         %r119 = load i64* %"$LIS_S15", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
225         %r120 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.189 : sln.6]
226         %r121 = add i64 %r119, %r120            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
227         store i64 %r121, i64* %"$LCS_4", align 8        ; [oox.189 : sln.6]
228         %r122 = load i64* %"$LIS_S17", align 8          ; <i64> [#uses=1]       ; [oox.190 : sln.6]
229         %r123 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.190 : sln.6]
230         %r124 = add i64 %r122, %r123            ; <i64> [#uses=1]       ; [oox.190 : sln.6]
231         store i64 %r124, i64* %"$LCS_5", align 8        ; [oox.190 : sln.6]
232         %r125 = load i64* %"$LIS_S18", align 8          ; <i64> [#uses=1]       ; [oox.191 : sln.6]
233         %r126 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.191 : sln.6]
234         %r127 = add i64 %r125, %r126            ; <i64> [#uses=1]       ; [oox.191 : sln.6]
235         store i64 %r127, i64* %"$LCS_6", align 8        ; [oox.191 : sln.6]
236         %r128 = load i64* %"$LCS_4", align 8            ; <i64> [#uses=1]       ; [oox.192 : sln.6]
237         %r129 = inttoptr i64 %r128 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.192 : sln.6]
238         %r130 = load <4 x float>* %r129, align 4                ; <<4 x float>> [#uses=1]       ; [oox.192 : sln.6]
239         %r131 = load i64* %"$LCS_5", align 8            ; <i64> [#uses=1]       ; [oox.192 : sln.6]
240         %r132 = inttoptr i64 %r131 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.192 : sln.6]
241         %r133 = load <4 x float>* %r132, align 4                ; <<4 x float>> [#uses=1]       ; [oox.192 : sln.6]
242         %r134 = add <4 x float> %r130, %r133            ; <<4 x float>> [#uses=1]       ; [oox.192 : sln.6]
243         %r135 = load i64* %"$LCS_6", align 8            ; <i64> [#uses=1]       ; [oox.192 : sln.6]
244         %r136 = inttoptr i64 %r135 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.192 : sln.6]
245         store <4 x float> %r134, <4 x float>* %r136, align 4    ; [oox.192 : sln.6]
246         %r137 = load i64* %"$LCS_4", align 8            ; <i64> [#uses=1]       ; [oox.193 : sln.6]
247         %r138 = add i64 16, %r137               ; <i64> [#uses=1]       ; [oox.193 : sln.6]
248         %r139 = inttoptr i64 %r138 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.193 : sln.6]
249         %r140 = load <4 x float>* %r139, align 4                ; <<4 x float>> [#uses=1]       ; [oox.193 : sln.6]
250         %r141 = load i64* %"$LCS_5", align 8            ; <i64> [#uses=1]       ; [oox.193 : sln.6]
251         %r142 = add i64 16, %r141               ; <i64> [#uses=1]       ; [oox.193 : sln.6]
252         %r143 = inttoptr i64 %r142 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.193 : sln.6]
253         %r144 = load <4 x float>* %r143, align 4                ; <<4 x float>> [#uses=1]       ; [oox.193 : sln.6]
254         %r145 = add <4 x float> %r140, %r144            ; <<4 x float>> [#uses=1]       ; [oox.193 : sln.6]
255         %r146 = load i64* %"$LCS_6", align 8            ; <i64> [#uses=1]       ; [oox.193 : sln.6]
256         %r147 = add i64 16, %r146               ; <i64> [#uses=1]       ; [oox.193 : sln.6]
257         %r148 = inttoptr i64 %r147 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.193 : sln.6]
258         store <4 x float> %r145, <4 x float>* %r148, align 4    ; [oox.193 : sln.6]
259         %r149 = load i64* %"$LCS_4", align 8            ; <i64> [#uses=1]       ; [oox.194 : sln.6]
260         %r150 = add i64 32, %r149               ; <i64> [#uses=1]       ; [oox.194 : sln.6]
261         %r151 = inttoptr i64 %r150 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.194 : sln.6]
262         %r152 = load <4 x float>* %r151, align 4                ; <<4 x float>> [#uses=1]       ; [oox.194 : sln.6]
263         %r153 = load i64* %"$LCS_5", align 8            ; <i64> [#uses=1]       ; [oox.194 : sln.6]
264         %r154 = add i64 32, %r153               ; <i64> [#uses=1]       ; [oox.194 : sln.6]
265         %r155 = inttoptr i64 %r154 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.194 : sln.6]
266         %r156 = load <4 x float>* %r155, align 4                ; <<4 x float>> [#uses=1]       ; [oox.194 : sln.6]
267         %r157 = add <4 x float> %r152, %r156            ; <<4 x float>> [#uses=1]       ; [oox.194 : sln.6]
268         %r158 = load i64* %"$LCS_6", align 8            ; <i64> [#uses=1]       ; [oox.194 : sln.6]
269         %r159 = add i64 32, %r158               ; <i64> [#uses=1]       ; [oox.194 : sln.6]
270         %r160 = inttoptr i64 %r159 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.194 : sln.6]
271         store <4 x float> %r157, <4 x float>* %r160, align 4    ; [oox.194 : sln.6]
272         %r161 = load i64* %"$LCS_4", align 8            ; <i64> [#uses=1]       ; [oox.195 : sln.6]
273         %r162 = add i64 48, %r161               ; <i64> [#uses=1]       ; [oox.195 : sln.6]
274         %r163 = inttoptr i64 %r162 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.195 : sln.6]
275         %r164 = load <4 x float>* %r163, align 4                ; <<4 x float>> [#uses=1]       ; [oox.195 : sln.6]
276         %r165 = load i64* %"$LCS_5", align 8            ; <i64> [#uses=1]       ; [oox.195 : sln.6]
277         %r166 = add i64 48, %r165               ; <i64> [#uses=1]       ; [oox.195 : sln.6]
278         %r167 = inttoptr i64 %r166 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.195 : sln.6]
279         %r168 = load <4 x float>* %r167, align 4                ; <<4 x float>> [#uses=1]       ; [oox.195 : sln.6]
280         %r169 = add <4 x float> %r164, %r168            ; <<4 x float>> [#uses=1]       ; [oox.195 : sln.6]
281         %r170 = load i64* %"$LCS_6", align 8            ; <i64> [#uses=1]       ; [oox.195 : sln.6]
282         %r171 = add i64 48, %r170               ; <i64> [#uses=1]       ; [oox.195 : sln.6]
283         %r172 = inttoptr i64 %r171 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.195 : sln.6]
284         store <4 x float> %r169, <4 x float>* %r172, align 4    ; [oox.195 : sln.6]
285         %r173 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.196 : sln.5]
286         %r174 = add i64 64, %r173               ; <i64> [#uses=1]       ; [oox.196 : sln.5]
287         store i64 %r174, i64* %"$SI_S25", align 8       ; [oox.196 : sln.5]
288         %r175 = load i64* %"$LC_S24", align 8           ; <i64> [#uses=1]       ; [oox.197 : sln.5]
289         %r176 = add i64 16, %r175               ; <i64> [#uses=1]       ; [oox.197 : sln.5]
290         store i64 %r176, i64* %"$LC_S24", align 8       ; [oox.197 : sln.5]
291         %r177 = load i64* %"$LC_S24", align 8           ; <i64> [#uses=1]       ; [oox.198 : sln.5]
292         %r178 = icmp slt i64 %r177, -15         ; <i1> [#uses=1]        ; [oox.198 : sln.5]
293         %r179 = zext i1 %r178 to i32            ; <i32> [#uses=1]       ; [oox.198 : sln.5]
294         %r180 = icmp ne i32 %r179, 0            ; <i1> [#uses=1]        ; [oox.198 : sln.5]
295         br i1 %r180, label %"file loop.c, line 1, in inner vector loop at depth 0, bb58", label %"file loop.c, line 5, bb64"    ; [oox.198 : sln.5]
296
297 "file loop.c, line 5, bb64":    ; srcLine 5             ; preds = %"file loop.c, line 6, in inner vector loop at depth 0, bb59", %"file loop.c, line 5, bb60"
298         %r181 = load i64* %"$LC_S24", align 8           ; <i64> [#uses=1]       ; [oox.189 : sln.5]
299         %r182 = icmp sge i64 %r181, 0           ; <i1> [#uses=1]        ; [oox.189 : sln.5]
300         %r183 = zext i1 %r182 to i32            ; <i32> [#uses=1]       ; [oox.189 : sln.5]
301         %r184 = icmp ne i32 %r183, 0            ; <i1> [#uses=1]        ; [oox.189 : sln.5]
302         br i1 %r184, label %"file loop.c, line 5, bb45", label %"file loop.c, line 1, bb65"     ; [oox.189 : sln.5]
303
304 "file loop.c, line 1, bb65":    ; srcLine 1             ; preds = %"file loop.c, line 5, bb64"
305         br label %"file loop.c, line 1, in inner vector loop at depth 0, bb62"  ; [oox.0 : sln.0]
306
307 "file loop.c, line 1, in inner vector loop at depth 0, bb62":   ; srcLine 1             ; preds = %"file loop.c, line 6, in inner vector loop at depth 0, bb63", %"file loop.c, line 1, bb65"
308         br label %"file loop.c, line 6, in inner vector loop at depth 0, bb63"  ; [oox.0 : sln.0]
309
310 "file loop.c, line 6, in inner vector loop at depth 0, bb63":   ; srcLine 6             ; preds = %"file loop.c, line 1, in inner vector loop at depth 0, bb62"
311         %r185 = load i64* %"$LIS_S17", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
312         %r186 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.189 : sln.6]
313         %r187 = add i64 %r185, %r186            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
314         %r188 = inttoptr i64 %r187 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.189 : sln.6]
315         %r189 = load <4 x float>* %r188, align 4                ; <<4 x float>> [#uses=1]       ; [oox.189 : sln.6]
316         %r190 = load i64* %"$LIS_S15", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
317         %r191 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.189 : sln.6]
318         %r192 = add i64 %r190, %r191            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
319         %r193 = inttoptr i64 %r192 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.189 : sln.6]
320         %r194 = load <4 x float>* %r193, align 4                ; <<4 x float>> [#uses=1]       ; [oox.189 : sln.6]
321         %r195 = add <4 x float> %r189, %r194            ; <<4 x float>> [#uses=1]       ; [oox.189 : sln.6]
322         %r196 = load i64* %"$LIS_S18", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
323         %r197 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.189 : sln.6]
324         %r198 = add i64 %r196, %r197            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
325         %r199 = inttoptr i64 %r198 to <4 x float>*              ; <<4 x float>*> [#uses=1]      ; [oox.189 : sln.6]
326         store <4 x float> %r195, <4 x float>* %r199, align 4    ; [oox.189 : sln.6]
327         %r200 = load i64* %"$SI_S25", align 8           ; <i64> [#uses=1]       ; [oox.190 : sln.5]
328         %r201 = add i64 16, %r200               ; <i64> [#uses=1]       ; [oox.190 : sln.5]
329         store i64 %r201, i64* %"$SI_S25", align 8       ; [oox.190 : sln.5]
330         %r202 = load i64* %"$LC_S24", align 8           ; <i64> [#uses=1]       ; [oox.191 : sln.5]
331         %r203 = add i64 4, %r202                ; <i64> [#uses=1]       ; [oox.191 : sln.5]
332         store i64 %r203, i64* %"$LC_S24", align 8       ; [oox.191 : sln.5]
333         %r204 = load i64* %"$LC_S24", align 8           ; <i64> [#uses=1]       ; [oox.192 : sln.5]
334         %r205 = icmp slt i64 %r204, 0           ; <i1> [#uses=1]        ; [oox.192 : sln.5]
335         %r206 = zext i1 %r205 to i64            ; <i64> [#uses=1]       ; [oox.192 : sln.5]
336         %r207 = icmp ne i64 %r206, 0            ; <i1> [#uses=1]        ; [oox.192 : sln.5]
337         br i1 %r207, label %"file loop.c, line 1, in inner vector loop at depth 0, bb62", label %"file loop.c, line 5, bb45"    ; [oox.192 : sln.5]
338
339 "file loop.c, line 5, bb45":    ; srcLine 5             ; preds = %"file loop.c, line 6, in inner vector loop at depth 0, bb63", %"file loop.c, line 5, bb64"
340         %r208 = load i64* %"$TC_1", align 8             ; <i64> [#uses=1]       ; [oox.189 : sln.5]
341         store i64 %r208, i64* %"$i_S23", align 8        ; [oox.189 : sln.5]
342         br label %"file loop.c, line 5, bb50"   ; [oox.0 : sln.0]
343
344 "file loop.c, line 5, bb50":    ; srcLine 5             ; preds = %"file loop.c, line 5, bb45", %"file loop.c, line 5, bb48"
345         %r209 = load i32* %"$MR_n_0", align 4           ; <i32> [#uses=1]       ; [oox.189 : sln.5]
346         %r210 = sext i32 %r209 to i64           ; <i64> [#uses=1]       ; [oox.189 : sln.5]
347         store i64 %r210, i64* %"$LCS_n_7", align 8      ; [oox.189 : sln.5]
348         %r211 = load i64* %"$LCS_n_7", align 8          ; <i64> [#uses=1]       ; [oox.190 : sln.5]
349         %r212 = load i64* %"$i_S23", align 8            ; <i64> [#uses=1]       ; [oox.190 : sln.5]
350         %r213 = icmp sle i64 %r211, %r212               ; <i1> [#uses=1]        ; [oox.190 : sln.5]
351         %r214 = zext i1 %r213 to i32            ; <i32> [#uses=1]       ; [oox.190 : sln.5]
352         %r215 = icmp ne i32 %r214, 0            ; <i1> [#uses=1]        ; [oox.190 : sln.5]
353         br i1 %r215, label %"file loop.c, line 5, bb6", label %"file loop.c, line 1, bb49"      ; [oox.190 : sln.5]
354
355 "file loop.c, line 1, bb49":    ; srcLine 1             ; preds = %"file loop.c, line 5, bb50"
356         br label %"file loop.c, line 6, bb57"   ; [oox.0 : sln.0]
357
358 "file loop.c, line 6, bb57":    ; srcLine 6             ; preds = %"file loop.c, line 1, bb49"
359         %r216 = load float** %"$MR_B_3", align 8                ; <float*> [#uses=1]    ; [oox.189 : sln.6]
360         %r217 = ptrtoint float* %r216 to i64            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
361         store i64 %r217, i64* %"$LIS_S19", align 8      ; [oox.189 : sln.6]
362         %r218 = load float** %"$MR_C_1", align 8                ; <float*> [#uses=1]    ; [oox.190 : sln.6]
363         %r219 = ptrtoint float* %r218 to i64            ; <i64> [#uses=1]       ; [oox.190 : sln.6]
364         store i64 %r219, i64* %"$LIS_S20", align 8      ; [oox.190 : sln.6]
365         %r220 = load float** %"$MR_A_2", align 8                ; <float*> [#uses=1]    ; [oox.191 : sln.6]
366         %r221 = ptrtoint float* %r220 to i64            ; <i64> [#uses=1]       ; [oox.191 : sln.6]
367         store i64 %r221, i64* %"$LIS_S21", align 8      ; [oox.191 : sln.6]
368         br label %"file loop.c, line 1, in inner loop at depth 0, bb51" ; [oox.0 : sln.0]
369
370 "file loop.c, line 1, in inner loop at depth 0, bb51":  ; srcLine 1             ; preds = %"file loop.c, line 5, in inner loop at depth 0, bb54", %"file loop.c, line 6, bb57"
371         br label %"file loop.c, line 5, in inner loop at depth 0, bb54" ; [oox.0 : sln.0]
372
373 "file loop.c, line 5, in inner loop at depth 0, bb54":  ; srcLine 5             ; preds = %"file loop.c, line 1, in inner loop at depth 0, bb51"
374         %r222 = load i64* %"$LIS_S20", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
375         %r223 = inttoptr i64 %r222 to float*            ; <float*> [#uses=1]    ; [oox.189 : sln.6]
376         %r224 = load i64* %"$i_S23", align 8            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
377         %r225 = getelementptr float* %r223, i64 %r224           ; <float*> [#uses=1]    ; [oox.189 : sln.6]
378         %r226 = load float* %r225, align 4              ; <float> [#uses=1]     ; [oox.189 : sln.6]
379         %r227 = load i64* %"$LIS_S19", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
380         %r228 = inttoptr i64 %r227 to float*            ; <float*> [#uses=1]    ; [oox.189 : sln.6]
381         %r229 = load i64* %"$i_S23", align 8            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
382         %r230 = getelementptr float* %r228, i64 %r229           ; <float*> [#uses=1]    ; [oox.189 : sln.6]
383         %r231 = load float* %r230, align 4              ; <float> [#uses=1]     ; [oox.189 : sln.6]
384         %r232 = add float %r226, %r231          ; <float> [#uses=1]     ; [oox.189 : sln.6]
385         %r233 = load i64* %"$LIS_S21", align 8          ; <i64> [#uses=1]       ; [oox.189 : sln.6]
386         %r234 = inttoptr i64 %r233 to float*            ; <float*> [#uses=1]    ; [oox.189 : sln.6]
387         %r235 = load i64* %"$i_S23", align 8            ; <i64> [#uses=1]       ; [oox.189 : sln.6]
388         %r236 = getelementptr float* %r234, i64 %r235           ; <float*> [#uses=1]    ; [oox.189 : sln.6]
389         store float %r232, float* %r236, align 4        ; [oox.189 : sln.6]
390         %r237 = load i64* %"$i_S23", align 8            ; <i64> [#uses=1]       ; [oox.190 : sln.5]
391         %r238 = add i64 1, %r237                ; <i64> [#uses=1]       ; [oox.190 : sln.5]
392         store i64 %r238, i64* %"$i_S23", align 8        ; [oox.190 : sln.5]
393         %r239 = load i64* %"$i_S23", align 8            ; <i64> [#uses=1]       ; [oox.191 : sln.5]
394         %r240 = load i64* %"$LCS_n_7", align 8          ; <i64> [#uses=1]       ; [oox.191 : sln.5]
395         %r241 = icmp slt i64 %r239, %r240               ; <i1> [#uses=1]        ; [oox.191 : sln.5]
396         %r242 = zext i1 %r241 to i64            ; <i64> [#uses=1]       ; [oox.191 : sln.5]
397         %r243 = icmp ne i64 %r242, 0            ; <i1> [#uses=1]        ; [oox.191 : sln.5]
398         br i1 %r243, label %"file loop.c, line 1, in inner loop at depth 0, bb51", label %"file loop.c, line 5, bb6"    ; [oox.191 : sln.5]
399
400 "file loop.c, line 5, bb6":     ; srcLine 5             ; preds = %"file loop.c, line 5, in inner loop at depth 0, bb54", %"file loop.c, line 5, bb50", %"file loop.c, line 5, in inner loop at depth 0, bb32", %"file loop.c, line 1, bb69"
401         ret i32 0       ; [oox.189 : sln.10]
402 }