[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / Thumb / 2009-08-12-ConstIslandAssert.ll
blob7036dd19b4bc14c6b467f9b09f24f672e8dc5651
1 ; RUN: llc < %s -mtriple=thumbv6-apple-darwin
3         %struct.BF_KEY = type { [18 x i32], [1024 x i32] }
5 define void @BF_encrypt(i32* nocapture %data, %struct.BF_KEY* nocapture %key, i32 %encrypt) nounwind {
6 entry:
7         %0 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 0; <i32*> [#uses=2]
8         %1 = load i32, i32* %data, align 4             ; <i32> [#uses=2]
9         %2 = load i32, i32* undef, align 4             ; <i32> [#uses=2]
10         br i1 undef, label %bb1, label %bb
12 bb:                                               ; preds = %entry
13         %3 = load i32, i32* %0, align 4                ; <i32> [#uses=1]
14         %4 = xor i32 %3, %1                       ; <i32> [#uses=4]
15         %5 = load i32, i32* null, align 4              ; <i32> [#uses=1]
16         %6 = lshr i32 %4, 24                      ; <i32> [#uses=1]
17         %7 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %6; <i32*> [#uses=1]
18         %8 = load i32, i32* %7, align 4                ; <i32> [#uses=1]
19         %9 = lshr i32 %4, 16                      ; <i32> [#uses=1]
20         %10 = or i32 %9, 256                      ; <i32> [#uses=1]
21         %11 = and i32 %10, 511                    ; <i32> [#uses=1]
22         %12 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %11; <i32*> [#uses=1]
23         %13 = load i32, i32* %12, align 4              ; <i32> [#uses=1]
24         %14 = add i32 %13, %8                     ; <i32> [#uses=1]
25         %15 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 undef; <i32*> [#uses=1]
26         %16 = load i32, i32* %15, align 4              ; <i32> [#uses=1]
27         %17 = xor i32 %14, %16                    ; <i32> [#uses=1]
28         %18 = or i32 %4, 768                      ; <i32> [#uses=1]
29         %19 = and i32 %18, 1023                   ; <i32> [#uses=1]
30         %20 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %19; <i32*> [#uses=1]
31         %21 = load i32, i32* %20, align 4              ; <i32> [#uses=1]
32         %22 = add i32 %17, %21                    ; <i32> [#uses=1]
33         %23 = xor i32 %5, %2                      ; <i32> [#uses=1]
34         %24 = xor i32 %23, %22                    ; <i32> [#uses=5]
35         %25 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 2; <i32*> [#uses=1]
36         %26 = load i32, i32* %25, align 4              ; <i32> [#uses=1]
37         %27 = lshr i32 %24, 24                    ; <i32> [#uses=1]
38         %28 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %27; <i32*> [#uses=1]
39         %29 = load i32, i32* %28, align 4              ; <i32> [#uses=1]
40         %30 = lshr i32 %24, 16                    ; <i32> [#uses=1]
41         %31 = or i32 %30, 256                     ; <i32> [#uses=1]
42         %32 = and i32 %31, 511                    ; <i32> [#uses=1]
43         %33 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %32; <i32*> [#uses=1]
44         %34 = load i32, i32* %33, align 4              ; <i32> [#uses=1]
45         %35 = add i32 %34, %29                    ; <i32> [#uses=1]
46         %36 = lshr i32 %24, 8                     ; <i32> [#uses=1]
47         %37 = or i32 %36, 512                     ; <i32> [#uses=1]
48         %38 = and i32 %37, 767                    ; <i32> [#uses=1]
49         %39 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %38; <i32*> [#uses=1]
50         %40 = load i32, i32* %39, align 4              ; <i32> [#uses=1]
51         %41 = xor i32 %35, %40                    ; <i32> [#uses=1]
52         %42 = or i32 %24, 768                     ; <i32> [#uses=1]
53         %43 = and i32 %42, 1023                   ; <i32> [#uses=1]
54         %44 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %43; <i32*> [#uses=1]
55         %45 = load i32, i32* %44, align 4              ; <i32> [#uses=1]
56         %46 = add i32 %41, %45                    ; <i32> [#uses=1]
57         %47 = xor i32 %26, %4                     ; <i32> [#uses=1]
58         %48 = xor i32 %47, %46                    ; <i32> [#uses=5]
59         %49 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 3; <i32*> [#uses=1]
60         %50 = load i32, i32* %49, align 4              ; <i32> [#uses=1]
61         %51 = lshr i32 %48, 24                    ; <i32> [#uses=1]
62         %52 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %51; <i32*> [#uses=1]
63         %53 = load i32, i32* %52, align 4              ; <i32> [#uses=1]
64         %54 = lshr i32 %48, 16                    ; <i32> [#uses=1]
65         %55 = or i32 %54, 256                     ; <i32> [#uses=1]
66         %56 = and i32 %55, 511                    ; <i32> [#uses=1]
67         %57 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %56; <i32*> [#uses=1]
68         %58 = load i32, i32* %57, align 4              ; <i32> [#uses=1]
69         %59 = add i32 %58, %53                    ; <i32> [#uses=1]
70         %60 = lshr i32 %48, 8                     ; <i32> [#uses=1]
71         %61 = or i32 %60, 512                     ; <i32> [#uses=1]
72         %62 = and i32 %61, 767                    ; <i32> [#uses=1]
73         %63 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %62; <i32*> [#uses=1]
74         %64 = load i32, i32* %63, align 4              ; <i32> [#uses=1]
75         %65 = xor i32 %59, %64                    ; <i32> [#uses=1]
76         %66 = or i32 %48, 768                     ; <i32> [#uses=1]
77         %67 = and i32 %66, 1023                   ; <i32> [#uses=1]
78         %68 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %67; <i32*> [#uses=1]
79         %69 = load i32, i32* %68, align 4              ; <i32> [#uses=1]
80         %70 = add i32 %65, %69                    ; <i32> [#uses=1]
81         %71 = xor i32 %50, %24                    ; <i32> [#uses=1]
82         %72 = xor i32 %71, %70                    ; <i32> [#uses=5]
83         %73 = load i32, i32* null, align 4             ; <i32> [#uses=1]
84         %74 = lshr i32 %72, 24                    ; <i32> [#uses=1]
85         %75 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %74; <i32*> [#uses=1]
86         %76 = load i32, i32* %75, align 4              ; <i32> [#uses=1]
87         %77 = lshr i32 %72, 16                    ; <i32> [#uses=1]
88         %78 = or i32 %77, 256                     ; <i32> [#uses=1]
89         %79 = and i32 %78, 511                    ; <i32> [#uses=1]
90         %80 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %79; <i32*> [#uses=1]
91         %81 = load i32, i32* %80, align 4              ; <i32> [#uses=1]
92         %82 = add i32 %81, %76                    ; <i32> [#uses=1]
93         %83 = lshr i32 %72, 8                     ; <i32> [#uses=1]
94         %84 = or i32 %83, 512                     ; <i32> [#uses=1]
95         %85 = and i32 %84, 767                    ; <i32> [#uses=1]
96         %86 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %85; <i32*> [#uses=1]
97         %87 = load i32, i32* %86, align 4              ; <i32> [#uses=1]
98         %88 = xor i32 %82, %87                    ; <i32> [#uses=1]
99         %89 = or i32 %72, 768                     ; <i32> [#uses=1]
100         %90 = and i32 %89, 1023                   ; <i32> [#uses=1]
101         %91 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %90; <i32*> [#uses=1]
102         %92 = load i32, i32* %91, align 4              ; <i32> [#uses=1]
103         %93 = add i32 %88, %92                    ; <i32> [#uses=1]
104         %94 = xor i32 %73, %48                    ; <i32> [#uses=1]
105         %95 = xor i32 %94, %93                    ; <i32> [#uses=5]
106         %96 = load i32, i32* undef, align 4            ; <i32> [#uses=1]
107         %97 = lshr i32 %95, 24                    ; <i32> [#uses=1]
108         %98 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %97; <i32*> [#uses=1]
109         %99 = load i32, i32* %98, align 4              ; <i32> [#uses=1]
110         %100 = lshr i32 %95, 16                   ; <i32> [#uses=1]
111         %101 = or i32 %100, 256                   ; <i32> [#uses=1]
112         %102 = and i32 %101, 511                  ; <i32> [#uses=1]
113         %103 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %102; <i32*> [#uses=1]
114         %104 = load i32, i32* %103, align 4            ; <i32> [#uses=1]
115         %105 = add i32 %104, %99                  ; <i32> [#uses=1]
116         %106 = lshr i32 %95, 8                    ; <i32> [#uses=1]
117         %107 = or i32 %106, 512                   ; <i32> [#uses=1]
118         %108 = and i32 %107, 767                  ; <i32> [#uses=1]
119         %109 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %108; <i32*> [#uses=1]
120         %110 = load i32, i32* %109, align 4            ; <i32> [#uses=1]
121         %111 = xor i32 %105, %110                 ; <i32> [#uses=1]
122         %112 = or i32 %95, 768                    ; <i32> [#uses=1]
123         %113 = and i32 %112, 1023                 ; <i32> [#uses=1]
124         %114 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %113; <i32*> [#uses=1]
125         %115 = load i32, i32* %114, align 4            ; <i32> [#uses=1]
126         %116 = add i32 %111, %115                 ; <i32> [#uses=1]
127         %117 = xor i32 %96, %72                   ; <i32> [#uses=1]
128         %118 = xor i32 %117, %116                 ; <i32> [#uses=5]
129         %119 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 6; <i32*> [#uses=1]
130         %120 = load i32, i32* %119, align 4            ; <i32> [#uses=1]
131         %121 = lshr i32 %118, 24                  ; <i32> [#uses=1]
132         %122 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %121; <i32*> [#uses=1]
133         %123 = load i32, i32* %122, align 4            ; <i32> [#uses=1]
134         %124 = lshr i32 %118, 16                  ; <i32> [#uses=1]
135         %125 = or i32 %124, 256                   ; <i32> [#uses=1]
136         %126 = and i32 %125, 511                  ; <i32> [#uses=1]
137         %127 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %126; <i32*> [#uses=1]
138         %128 = load i32, i32* %127, align 4            ; <i32> [#uses=1]
139         %129 = add i32 %128, %123                 ; <i32> [#uses=1]
140         %130 = lshr i32 %118, 8                   ; <i32> [#uses=1]
141         %131 = or i32 %130, 512                   ; <i32> [#uses=1]
142         %132 = and i32 %131, 767                  ; <i32> [#uses=1]
143         %133 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %132; <i32*> [#uses=1]
144         %134 = load i32, i32* %133, align 4            ; <i32> [#uses=1]
145         %135 = xor i32 %129, %134                 ; <i32> [#uses=1]
146         %136 = or i32 %118, 768                   ; <i32> [#uses=1]
147         %137 = and i32 %136, 1023                 ; <i32> [#uses=1]
148         %138 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %137; <i32*> [#uses=1]
149         %139 = load i32, i32* %138, align 4            ; <i32> [#uses=1]
150         %140 = add i32 %135, %139                 ; <i32> [#uses=1]
151         %141 = xor i32 %120, %95                  ; <i32> [#uses=1]
152         %142 = xor i32 %141, %140                 ; <i32> [#uses=5]
153         %143 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 7; <i32*> [#uses=1]
154         %144 = load i32, i32* %143, align 4            ; <i32> [#uses=1]
155         %145 = lshr i32 %142, 24                  ; <i32> [#uses=1]
156         %146 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %145; <i32*> [#uses=1]
157         %147 = load i32, i32* %146, align 4            ; <i32> [#uses=1]
158         %148 = lshr i32 %142, 16                  ; <i32> [#uses=1]
159         %149 = or i32 %148, 256                   ; <i32> [#uses=1]
160         %150 = and i32 %149, 511                  ; <i32> [#uses=1]
161         %151 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %150; <i32*> [#uses=1]
162         %152 = load i32, i32* %151, align 4            ; <i32> [#uses=1]
163         %153 = add i32 %152, %147                 ; <i32> [#uses=1]
164         %154 = lshr i32 %142, 8                   ; <i32> [#uses=1]
165         %155 = or i32 %154, 512                   ; <i32> [#uses=1]
166         %156 = and i32 %155, 767                  ; <i32> [#uses=1]
167         %157 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %156; <i32*> [#uses=1]
168         %158 = load i32, i32* %157, align 4            ; <i32> [#uses=1]
169         %159 = xor i32 %153, %158                 ; <i32> [#uses=1]
170         %160 = or i32 %142, 768                   ; <i32> [#uses=1]
171         %161 = and i32 %160, 1023                 ; <i32> [#uses=1]
172         %162 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %161; <i32*> [#uses=1]
173         %163 = load i32, i32* %162, align 4            ; <i32> [#uses=1]
174         %164 = add i32 %159, %163                 ; <i32> [#uses=1]
175         %165 = xor i32 %144, %118                 ; <i32> [#uses=1]
176         %166 = xor i32 %165, %164                 ; <i32> [#uses=5]
177         %167 = load i32, i32* undef, align 4           ; <i32> [#uses=1]
178         %168 = lshr i32 %166, 24                  ; <i32> [#uses=1]
179         %169 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %168; <i32*> [#uses=1]
180         %170 = load i32, i32* %169, align 4            ; <i32> [#uses=1]
181         %171 = lshr i32 %166, 16                  ; <i32> [#uses=1]
182         %172 = or i32 %171, 256                   ; <i32> [#uses=1]
183         %173 = and i32 %172, 511                  ; <i32> [#uses=1]
184         %174 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %173; <i32*> [#uses=1]
185         %175 = load i32, i32* %174, align 4            ; <i32> [#uses=1]
186         %176 = add i32 %175, %170                 ; <i32> [#uses=1]
187         %177 = lshr i32 %166, 8                   ; <i32> [#uses=1]
188         %178 = or i32 %177, 512                   ; <i32> [#uses=1]
189         %179 = and i32 %178, 767                  ; <i32> [#uses=1]
190         %180 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %179; <i32*> [#uses=1]
191         %181 = load i32, i32* %180, align 4            ; <i32> [#uses=1]
192         %182 = xor i32 %176, %181                 ; <i32> [#uses=1]
193         %183 = or i32 %166, 768                   ; <i32> [#uses=1]
194         %184 = and i32 %183, 1023                 ; <i32> [#uses=1]
195         %185 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %184; <i32*> [#uses=1]
196         %186 = load i32, i32* %185, align 4            ; <i32> [#uses=1]
197         %187 = add i32 %182, %186                 ; <i32> [#uses=1]
198         %188 = xor i32 %167, %142                 ; <i32> [#uses=1]
199         %189 = xor i32 %188, %187                 ; <i32> [#uses=5]
200         %190 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 9; <i32*> [#uses=1]
201         %191 = load i32, i32* %190, align 4            ; <i32> [#uses=1]
202         %192 = lshr i32 %189, 24                  ; <i32> [#uses=1]
203         %193 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %192; <i32*> [#uses=1]
204         %194 = load i32, i32* %193, align 4            ; <i32> [#uses=1]
205         %195 = lshr i32 %189, 16                  ; <i32> [#uses=1]
206         %196 = or i32 %195, 256                   ; <i32> [#uses=1]
207         %197 = and i32 %196, 511                  ; <i32> [#uses=1]
208         %198 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %197; <i32*> [#uses=1]
209         %199 = load i32, i32* %198, align 4            ; <i32> [#uses=1]
210         %200 = add i32 %199, %194                 ; <i32> [#uses=1]
211         %201 = lshr i32 %189, 8                   ; <i32> [#uses=1]
212         %202 = or i32 %201, 512                   ; <i32> [#uses=1]
213         %203 = and i32 %202, 767                  ; <i32> [#uses=1]
214         %204 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %203; <i32*> [#uses=1]
215         %205 = load i32, i32* %204, align 4            ; <i32> [#uses=1]
216         %206 = xor i32 %200, %205                 ; <i32> [#uses=1]
217         %207 = or i32 %189, 768                   ; <i32> [#uses=1]
218         %208 = and i32 %207, 1023                 ; <i32> [#uses=1]
219         %209 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %208; <i32*> [#uses=1]
220         %210 = load i32, i32* %209, align 4            ; <i32> [#uses=1]
221         %211 = add i32 %206, %210                 ; <i32> [#uses=1]
222         %212 = xor i32 %191, %166                 ; <i32> [#uses=1]
223         %213 = xor i32 %212, %211                 ; <i32> [#uses=5]
224         %214 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 10; <i32*> [#uses=1]
225         %215 = load i32, i32* %214, align 4            ; <i32> [#uses=1]
226         %216 = lshr i32 %213, 24                  ; <i32> [#uses=1]
227         %217 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %216; <i32*> [#uses=1]
228         %218 = load i32, i32* %217, align 4            ; <i32> [#uses=1]
229         %219 = lshr i32 %213, 16                  ; <i32> [#uses=1]
230         %220 = or i32 %219, 256                   ; <i32> [#uses=1]
231         %221 = and i32 %220, 511                  ; <i32> [#uses=1]
232         %222 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %221; <i32*> [#uses=1]
233         %223 = load i32, i32* %222, align 4            ; <i32> [#uses=1]
234         %224 = add i32 %223, %218                 ; <i32> [#uses=1]
235         %225 = lshr i32 %213, 8                   ; <i32> [#uses=1]
236         %226 = or i32 %225, 512                   ; <i32> [#uses=1]
237         %227 = and i32 %226, 767                  ; <i32> [#uses=1]
238         %228 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %227; <i32*> [#uses=1]
239         %229 = load i32, i32* %228, align 4            ; <i32> [#uses=1]
240         %230 = xor i32 %224, %229                 ; <i32> [#uses=1]
241         %231 = or i32 %213, 768                   ; <i32> [#uses=1]
242         %232 = and i32 %231, 1023                 ; <i32> [#uses=1]
243         %233 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %232; <i32*> [#uses=1]
244         %234 = load i32, i32* %233, align 4            ; <i32> [#uses=1]
245         %235 = add i32 %230, %234                 ; <i32> [#uses=1]
246         %236 = xor i32 %215, %189                 ; <i32> [#uses=1]
247         %237 = xor i32 %236, %235                 ; <i32> [#uses=5]
248         %238 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 11; <i32*> [#uses=1]
249         %239 = load i32, i32* %238, align 4            ; <i32> [#uses=1]
250         %240 = lshr i32 %237, 24                  ; <i32> [#uses=1]
251         %241 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %240; <i32*> [#uses=1]
252         %242 = load i32, i32* %241, align 4            ; <i32> [#uses=1]
253         %243 = lshr i32 %237, 16                  ; <i32> [#uses=1]
254         %244 = or i32 %243, 256                   ; <i32> [#uses=1]
255         %245 = and i32 %244, 511                  ; <i32> [#uses=1]
256         %246 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %245; <i32*> [#uses=1]
257         %247 = load i32, i32* %246, align 4            ; <i32> [#uses=1]
258         %248 = add i32 %247, %242                 ; <i32> [#uses=1]
259         %249 = lshr i32 %237, 8                   ; <i32> [#uses=1]
260         %250 = or i32 %249, 512                   ; <i32> [#uses=1]
261         %251 = and i32 %250, 767                  ; <i32> [#uses=1]
262         %252 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %251; <i32*> [#uses=1]
263         %253 = load i32, i32* %252, align 4            ; <i32> [#uses=1]
264         %254 = xor i32 %248, %253                 ; <i32> [#uses=1]
265         %255 = or i32 %237, 768                   ; <i32> [#uses=1]
266         %256 = and i32 %255, 1023                 ; <i32> [#uses=1]
267         %257 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %256; <i32*> [#uses=1]
268         %258 = load i32, i32* %257, align 4            ; <i32> [#uses=1]
269         %259 = add i32 %254, %258                 ; <i32> [#uses=1]
270         %260 = xor i32 %239, %213                 ; <i32> [#uses=1]
271         %261 = xor i32 %260, %259                 ; <i32> [#uses=5]
272         %262 = load i32, i32* undef, align 4           ; <i32> [#uses=1]
273         %263 = lshr i32 %261, 24                  ; <i32> [#uses=1]
274         %264 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %263; <i32*> [#uses=1]
275         %265 = load i32, i32* %264, align 4            ; <i32> [#uses=1]
276         %266 = lshr i32 %261, 16                  ; <i32> [#uses=1]
277         %267 = or i32 %266, 256                   ; <i32> [#uses=1]
278         %268 = and i32 %267, 511                  ; <i32> [#uses=1]
279         %269 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %268; <i32*> [#uses=1]
280         %270 = load i32, i32* %269, align 4            ; <i32> [#uses=1]
281         %271 = add i32 %270, %265                 ; <i32> [#uses=1]
282         %272 = lshr i32 %261, 8                   ; <i32> [#uses=1]
283         %273 = or i32 %272, 512                   ; <i32> [#uses=1]
284         %274 = and i32 %273, 767                  ; <i32> [#uses=1]
285         %275 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %274; <i32*> [#uses=1]
286         %276 = load i32, i32* %275, align 4            ; <i32> [#uses=1]
287         %277 = xor i32 %271, %276                 ; <i32> [#uses=1]
288         %278 = or i32 %261, 768                   ; <i32> [#uses=1]
289         %279 = and i32 %278, 1023                 ; <i32> [#uses=1]
290         %280 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %279; <i32*> [#uses=1]
291         %281 = load i32, i32* %280, align 4            ; <i32> [#uses=1]
292         %282 = add i32 %277, %281                 ; <i32> [#uses=1]
293         %283 = xor i32 %262, %237                 ; <i32> [#uses=1]
294         %284 = xor i32 %283, %282                 ; <i32> [#uses=4]
295         %285 = load i32, i32* null, align 4            ; <i32> [#uses=1]
296         %286 = lshr i32 %284, 24                  ; <i32> [#uses=1]
297         %287 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %286; <i32*> [#uses=1]
298         %288 = load i32, i32* %287, align 4            ; <i32> [#uses=1]
299         %289 = lshr i32 %284, 16                  ; <i32> [#uses=1]
300         %290 = or i32 %289, 256                   ; <i32> [#uses=1]
301         %291 = and i32 %290, 511                  ; <i32> [#uses=1]
302         %292 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %291; <i32*> [#uses=1]
303         %293 = load i32, i32* %292, align 4            ; <i32> [#uses=1]
304         %294 = add i32 %293, %288                 ; <i32> [#uses=1]
305         %295 = lshr i32 %284, 8                   ; <i32> [#uses=1]
306         %296 = or i32 %295, 512                   ; <i32> [#uses=1]
307         %297 = and i32 %296, 767                  ; <i32> [#uses=1]
308         %298 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %297; <i32*> [#uses=1]
309         %299 = load i32, i32* %298, align 4            ; <i32> [#uses=1]
310         %300 = xor i32 %294, %299                 ; <i32> [#uses=1]
311         %301 = or i32 %284, 768                   ; <i32> [#uses=1]
312         %302 = and i32 %301, 1023                 ; <i32> [#uses=1]
313         %303 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %302; <i32*> [#uses=1]
314         %304 = load i32, i32* %303, align 4            ; <i32> [#uses=1]
315         %305 = add i32 %300, %304                 ; <i32> [#uses=1]
316         %306 = xor i32 %285, %261                 ; <i32> [#uses=1]
317         %307 = xor i32 %306, %305                 ; <i32> [#uses=1]
318         %308 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 15; <i32*> [#uses=1]
319         %309 = load i32, i32* %308, align 4            ; <i32> [#uses=1]
320         %310 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 0; <i32*> [#uses=1]
321         %311 = load i32, i32* %310, align 4            ; <i32> [#uses=1]
322         %312 = or i32 0, 256                      ; <i32> [#uses=1]
323         %313 = and i32 %312, 511                  ; <i32> [#uses=1]
324         %314 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %313; <i32*> [#uses=1]
325         %315 = load i32, i32* %314, align 4            ; <i32> [#uses=1]
326         %316 = add i32 %315, %311                 ; <i32> [#uses=1]
327         %317 = or i32 0, 512                      ; <i32> [#uses=1]
328         %318 = and i32 %317, 767                  ; <i32> [#uses=1]
329         %319 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %318; <i32*> [#uses=1]
330         %320 = load i32, i32* %319, align 4            ; <i32> [#uses=1]
331         %321 = xor i32 %316, %320                 ; <i32> [#uses=1]
332         %322 = or i32 0, 768                      ; <i32> [#uses=1]
333         %323 = and i32 %322, 1023                 ; <i32> [#uses=1]
334         %324 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %323; <i32*> [#uses=1]
335         %325 = load i32, i32* %324, align 4            ; <i32> [#uses=1]
336         %326 = add i32 %321, %325                 ; <i32> [#uses=1]
337         %327 = xor i32 %309, %307                 ; <i32> [#uses=1]
338         %328 = xor i32 %327, %326                 ; <i32> [#uses=5]
339         %329 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 17; <i32*> [#uses=1]
340         br label %bb2
342 bb1:                                              ; preds = %entry
343         %330 = load i32, i32* null, align 4            ; <i32> [#uses=1]
344         %331 = xor i32 %330, %1                   ; <i32> [#uses=4]
345         %332 = load i32, i32* null, align 4            ; <i32> [#uses=1]
346         %333 = lshr i32 %331, 24                  ; <i32> [#uses=1]
347         %334 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %333; <i32*> [#uses=1]
348         %335 = load i32, i32* %334, align 4            ; <i32> [#uses=1]
349         %336 = load i32, i32* null, align 4            ; <i32> [#uses=1]
350         %337 = add i32 %336, %335                 ; <i32> [#uses=1]
351         %338 = lshr i32 %331, 8                   ; <i32> [#uses=1]
352         %339 = or i32 %338, 512                   ; <i32> [#uses=1]
353         %340 = and i32 %339, 767                  ; <i32> [#uses=1]
354         %341 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %340; <i32*> [#uses=1]
355         %342 = load i32, i32* %341, align 4            ; <i32> [#uses=1]
356         %343 = xor i32 %337, %342                 ; <i32> [#uses=1]
357         %344 = or i32 %331, 768                   ; <i32> [#uses=1]
358         %345 = and i32 %344, 1023                 ; <i32> [#uses=1]
359         %346 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %345; <i32*> [#uses=1]
360         %347 = load i32, i32* %346, align 4            ; <i32> [#uses=1]
361         %348 = add i32 %343, %347                 ; <i32> [#uses=1]
362         %349 = xor i32 %332, %2                   ; <i32> [#uses=1]
363         %350 = xor i32 %349, %348                 ; <i32> [#uses=5]
364         %351 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 15; <i32*> [#uses=1]
365         %352 = load i32, i32* %351, align 4            ; <i32> [#uses=1]
366         %353 = lshr i32 %350, 24                  ; <i32> [#uses=1]
367         %354 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %353; <i32*> [#uses=1]
368         %355 = load i32, i32* %354, align 4            ; <i32> [#uses=1]
369         %356 = lshr i32 %350, 16                  ; <i32> [#uses=1]
370         %357 = or i32 %356, 256                   ; <i32> [#uses=1]
371         %358 = and i32 %357, 511                  ; <i32> [#uses=1]
372         %359 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %358; <i32*> [#uses=1]
373         %360 = load i32, i32* %359, align 4            ; <i32> [#uses=1]
374         %361 = add i32 %360, %355                 ; <i32> [#uses=1]
375         %362 = lshr i32 %350, 8                   ; <i32> [#uses=1]
376         %363 = or i32 %362, 512                   ; <i32> [#uses=1]
377         %364 = and i32 %363, 767                  ; <i32> [#uses=1]
378         %365 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %364; <i32*> [#uses=1]
379         %366 = load i32, i32* %365, align 4            ; <i32> [#uses=1]
380         %367 = xor i32 %361, %366                 ; <i32> [#uses=1]
381         %368 = or i32 %350, 768                   ; <i32> [#uses=1]
382         %369 = and i32 %368, 1023                 ; <i32> [#uses=1]
383         %370 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %369; <i32*> [#uses=1]
384         %371 = load i32, i32* %370, align 4            ; <i32> [#uses=1]
385         %372 = add i32 %367, %371                 ; <i32> [#uses=1]
386         %373 = xor i32 %352, %331                 ; <i32> [#uses=1]
387         %374 = xor i32 %373, %372                 ; <i32> [#uses=5]
388         %375 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 14; <i32*> [#uses=1]
389         %376 = load i32, i32* %375, align 4            ; <i32> [#uses=1]
390         %377 = lshr i32 %374, 24                  ; <i32> [#uses=1]
391         %378 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %377; <i32*> [#uses=1]
392         %379 = load i32, i32* %378, align 4            ; <i32> [#uses=1]
393         %380 = lshr i32 %374, 16                  ; <i32> [#uses=1]
394         %381 = or i32 %380, 256                   ; <i32> [#uses=1]
395         %382 = and i32 %381, 511                  ; <i32> [#uses=1]
396         %383 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %382; <i32*> [#uses=1]
397         %384 = load i32, i32* %383, align 4            ; <i32> [#uses=1]
398         %385 = add i32 %384, %379                 ; <i32> [#uses=1]
399         %386 = lshr i32 %374, 8                   ; <i32> [#uses=1]
400         %387 = or i32 %386, 512                   ; <i32> [#uses=1]
401         %388 = and i32 %387, 767                  ; <i32> [#uses=1]
402         %389 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %388; <i32*> [#uses=1]
403         %390 = load i32, i32* %389, align 4            ; <i32> [#uses=1]
404         %391 = xor i32 %385, %390                 ; <i32> [#uses=1]
405         %392 = or i32 %374, 768                   ; <i32> [#uses=1]
406         %393 = and i32 %392, 1023                 ; <i32> [#uses=1]
407         %394 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %393; <i32*> [#uses=1]
408         %395 = load i32, i32* %394, align 4            ; <i32> [#uses=1]
409         %396 = add i32 %391, %395                 ; <i32> [#uses=1]
410         %397 = xor i32 %376, %350                 ; <i32> [#uses=1]
411         %398 = xor i32 %397, %396                 ; <i32> [#uses=5]
412         %399 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 13; <i32*> [#uses=1]
413         %400 = load i32, i32* %399, align 4            ; <i32> [#uses=1]
414         %401 = lshr i32 %398, 24                  ; <i32> [#uses=1]
415         %402 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %401; <i32*> [#uses=1]
416         %403 = load i32, i32* %402, align 4            ; <i32> [#uses=1]
417         %404 = lshr i32 %398, 16                  ; <i32> [#uses=1]
418         %405 = or i32 %404, 256                   ; <i32> [#uses=1]
419         %406 = and i32 %405, 511                  ; <i32> [#uses=1]
420         %407 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %406; <i32*> [#uses=1]
421         %408 = load i32, i32* %407, align 4            ; <i32> [#uses=1]
422         %409 = add i32 %408, %403                 ; <i32> [#uses=1]
423         %410 = lshr i32 %398, 8                   ; <i32> [#uses=1]
424         %411 = or i32 %410, 512                   ; <i32> [#uses=1]
425         %412 = and i32 %411, 767                  ; <i32> [#uses=1]
426         %413 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %412; <i32*> [#uses=1]
427         %414 = load i32, i32* %413, align 4            ; <i32> [#uses=1]
428         %415 = xor i32 %409, %414                 ; <i32> [#uses=1]
429         %416 = or i32 %398, 768                   ; <i32> [#uses=1]
430         %417 = and i32 %416, 1023                 ; <i32> [#uses=1]
431         %418 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %417; <i32*> [#uses=1]
432         %419 = load i32, i32* %418, align 4            ; <i32> [#uses=1]
433         %420 = add i32 %415, %419                 ; <i32> [#uses=1]
434         %421 = xor i32 %400, %374                 ; <i32> [#uses=1]
435         %422 = xor i32 %421, %420                 ; <i32> [#uses=5]
436         %423 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 12; <i32*> [#uses=1]
437         %424 = load i32, i32* %423, align 4            ; <i32> [#uses=1]
438         %425 = lshr i32 %422, 24                  ; <i32> [#uses=1]
439         %426 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %425; <i32*> [#uses=1]
440         %427 = load i32, i32* %426, align 4            ; <i32> [#uses=1]
441         %428 = lshr i32 %422, 16                  ; <i32> [#uses=1]
442         %429 = or i32 %428, 256                   ; <i32> [#uses=1]
443         %430 = and i32 %429, 511                  ; <i32> [#uses=1]
444         %431 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %430; <i32*> [#uses=1]
445         %432 = load i32, i32* %431, align 4            ; <i32> [#uses=1]
446         %433 = add i32 %432, %427                 ; <i32> [#uses=1]
447         %434 = lshr i32 %422, 8                   ; <i32> [#uses=1]
448         %435 = or i32 %434, 512                   ; <i32> [#uses=1]
449         %436 = and i32 %435, 767                  ; <i32> [#uses=1]
450         %437 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %436; <i32*> [#uses=1]
451         %438 = load i32, i32* %437, align 4            ; <i32> [#uses=1]
452         %439 = xor i32 %433, %438                 ; <i32> [#uses=1]
453         %440 = or i32 %422, 768                   ; <i32> [#uses=1]
454         %441 = and i32 %440, 1023                 ; <i32> [#uses=1]
455         %442 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %441; <i32*> [#uses=1]
456         %443 = load i32, i32* %442, align 4            ; <i32> [#uses=1]
457         %444 = add i32 %439, %443                 ; <i32> [#uses=1]
458         %445 = xor i32 %424, %398                 ; <i32> [#uses=1]
459         %446 = xor i32 %445, %444                 ; <i32> [#uses=5]
460         %447 = load i32, i32* undef, align 4           ; <i32> [#uses=1]
461         %448 = lshr i32 %446, 24                  ; <i32> [#uses=1]
462         %449 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %448; <i32*> [#uses=1]
463         %450 = load i32, i32* %449, align 4            ; <i32> [#uses=1]
464         %451 = lshr i32 %446, 16                  ; <i32> [#uses=1]
465         %452 = or i32 %451, 256                   ; <i32> [#uses=1]
466         %453 = and i32 %452, 511                  ; <i32> [#uses=1]
467         %454 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %453; <i32*> [#uses=1]
468         %455 = load i32, i32* %454, align 4            ; <i32> [#uses=1]
469         %456 = add i32 %455, %450                 ; <i32> [#uses=1]
470         %457 = lshr i32 %446, 8                   ; <i32> [#uses=1]
471         %458 = or i32 %457, 512                   ; <i32> [#uses=1]
472         %459 = and i32 %458, 767                  ; <i32> [#uses=1]
473         %460 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %459; <i32*> [#uses=1]
474         %461 = load i32, i32* %460, align 4            ; <i32> [#uses=1]
475         %462 = xor i32 %456, %461                 ; <i32> [#uses=1]
476         %463 = or i32 %446, 768                   ; <i32> [#uses=1]
477         %464 = and i32 %463, 1023                 ; <i32> [#uses=1]
478         %465 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %464; <i32*> [#uses=1]
479         %466 = load i32, i32* %465, align 4            ; <i32> [#uses=1]
480         %467 = add i32 %462, %466                 ; <i32> [#uses=1]
481         %468 = xor i32 %447, %422                 ; <i32> [#uses=1]
482         %469 = xor i32 %468, %467                 ; <i32> [#uses=5]
483         %470 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 10; <i32*> [#uses=1]
484         %471 = load i32, i32* %470, align 4            ; <i32> [#uses=1]
485         %472 = lshr i32 %469, 24                  ; <i32> [#uses=1]
486         %473 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %472; <i32*> [#uses=1]
487         %474 = load i32, i32* %473, align 4            ; <i32> [#uses=1]
488         %475 = lshr i32 %469, 16                  ; <i32> [#uses=1]
489         %476 = or i32 %475, 256                   ; <i32> [#uses=1]
490         %477 = and i32 %476, 511                  ; <i32> [#uses=1]
491         %478 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %477; <i32*> [#uses=1]
492         %479 = load i32, i32* %478, align 4            ; <i32> [#uses=1]
493         %480 = add i32 %479, %474                 ; <i32> [#uses=1]
494         %481 = lshr i32 %469, 8                   ; <i32> [#uses=1]
495         %482 = or i32 %481, 512                   ; <i32> [#uses=1]
496         %483 = and i32 %482, 767                  ; <i32> [#uses=1]
497         %484 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %483; <i32*> [#uses=1]
498         %485 = load i32, i32* %484, align 4            ; <i32> [#uses=1]
499         %486 = xor i32 %480, %485                 ; <i32> [#uses=1]
500         %487 = or i32 %469, 768                   ; <i32> [#uses=1]
501         %488 = and i32 %487, 1023                 ; <i32> [#uses=1]
502         %489 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %488; <i32*> [#uses=1]
503         %490 = load i32, i32* %489, align 4            ; <i32> [#uses=1]
504         %491 = add i32 %486, %490                 ; <i32> [#uses=1]
505         %492 = xor i32 %471, %446                 ; <i32> [#uses=1]
506         %493 = xor i32 %492, %491                 ; <i32> [#uses=5]
507         %494 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 9; <i32*> [#uses=1]
508         %495 = load i32, i32* %494, align 4            ; <i32> [#uses=1]
509         %496 = lshr i32 %493, 24                  ; <i32> [#uses=1]
510         %497 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %496; <i32*> [#uses=1]
511         %498 = load i32, i32* %497, align 4            ; <i32> [#uses=1]
512         %499 = lshr i32 %493, 16                  ; <i32> [#uses=1]
513         %500 = or i32 %499, 256                   ; <i32> [#uses=1]
514         %501 = and i32 %500, 511                  ; <i32> [#uses=1]
515         %502 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %501; <i32*> [#uses=1]
516         %503 = load i32, i32* %502, align 4            ; <i32> [#uses=1]
517         %504 = add i32 %503, %498                 ; <i32> [#uses=1]
518         %505 = lshr i32 %493, 8                   ; <i32> [#uses=1]
519         %506 = or i32 %505, 512                   ; <i32> [#uses=1]
520         %507 = and i32 %506, 767                  ; <i32> [#uses=1]
521         %508 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %507; <i32*> [#uses=1]
522         %509 = load i32, i32* %508, align 4            ; <i32> [#uses=1]
523         %510 = xor i32 %504, %509                 ; <i32> [#uses=1]
524         %511 = or i32 %493, 768                   ; <i32> [#uses=1]
525         %512 = and i32 %511, 1023                 ; <i32> [#uses=1]
526         %513 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %512; <i32*> [#uses=1]
527         %514 = load i32, i32* %513, align 4            ; <i32> [#uses=1]
528         %515 = add i32 %510, %514                 ; <i32> [#uses=1]
529         %516 = xor i32 %495, %469                 ; <i32> [#uses=1]
530         %517 = xor i32 %516, %515                 ; <i32> [#uses=5]
531         %518 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 8; <i32*> [#uses=1]
532         %519 = load i32, i32* %518, align 4            ; <i32> [#uses=1]
533         %520 = lshr i32 %517, 24                  ; <i32> [#uses=1]
534         %521 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %520; <i32*> [#uses=1]
535         %522 = load i32, i32* %521, align 4            ; <i32> [#uses=1]
536         %523 = lshr i32 %517, 16                  ; <i32> [#uses=1]
537         %524 = or i32 %523, 256                   ; <i32> [#uses=1]
538         %525 = and i32 %524, 511                  ; <i32> [#uses=1]
539         %526 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %525; <i32*> [#uses=1]
540         %527 = load i32, i32* %526, align 4            ; <i32> [#uses=1]
541         %528 = add i32 %527, %522                 ; <i32> [#uses=1]
542         %529 = lshr i32 %517, 8                   ; <i32> [#uses=1]
543         %530 = or i32 %529, 512                   ; <i32> [#uses=1]
544         %531 = and i32 %530, 767                  ; <i32> [#uses=1]
545         %532 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %531; <i32*> [#uses=1]
546         %533 = load i32, i32* %532, align 4            ; <i32> [#uses=1]
547         %534 = xor i32 %528, %533                 ; <i32> [#uses=1]
548         %535 = or i32 %517, 768                   ; <i32> [#uses=1]
549         %536 = and i32 %535, 1023                 ; <i32> [#uses=1]
550         %537 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %536; <i32*> [#uses=1]
551         %538 = load i32, i32* %537, align 4            ; <i32> [#uses=1]
552         %539 = add i32 %534, %538                 ; <i32> [#uses=1]
553         %540 = xor i32 %519, %493                 ; <i32> [#uses=1]
554         %541 = xor i32 %540, %539                 ; <i32> [#uses=5]
555         %542 = load i32, i32* undef, align 4           ; <i32> [#uses=1]
556         %543 = lshr i32 %541, 24                  ; <i32> [#uses=1]
557         %544 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %543; <i32*> [#uses=1]
558         %545 = load i32, i32* %544, align 4            ; <i32> [#uses=1]
559         %546 = lshr i32 %541, 16                  ; <i32> [#uses=1]
560         %547 = or i32 %546, 256                   ; <i32> [#uses=1]
561         %548 = and i32 %547, 511                  ; <i32> [#uses=1]
562         %549 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %548; <i32*> [#uses=1]
563         %550 = load i32, i32* %549, align 4            ; <i32> [#uses=1]
564         %551 = add i32 %550, %545                 ; <i32> [#uses=1]
565         %552 = lshr i32 %541, 8                   ; <i32> [#uses=1]
566         %553 = or i32 %552, 512                   ; <i32> [#uses=1]
567         %554 = and i32 %553, 767                  ; <i32> [#uses=1]
568         %555 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %554; <i32*> [#uses=1]
569         %556 = load i32, i32* %555, align 4            ; <i32> [#uses=1]
570         %557 = xor i32 %551, %556                 ; <i32> [#uses=1]
571         %558 = or i32 %541, 768                   ; <i32> [#uses=1]
572         %559 = and i32 %558, 1023                 ; <i32> [#uses=1]
573         %560 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %559; <i32*> [#uses=1]
574         %561 = load i32, i32* %560, align 4            ; <i32> [#uses=1]
575         %562 = add i32 %557, %561                 ; <i32> [#uses=1]
576         %563 = xor i32 %542, %517                 ; <i32> [#uses=1]
577         %564 = xor i32 %563, %562                 ; <i32> [#uses=5]
578         %565 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 6; <i32*> [#uses=1]
579         %566 = load i32, i32* %565, align 4            ; <i32> [#uses=1]
580         %567 = lshr i32 %564, 24                  ; <i32> [#uses=1]
581         %568 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %567; <i32*> [#uses=1]
582         %569 = load i32, i32* %568, align 4            ; <i32> [#uses=1]
583         %570 = lshr i32 %564, 16                  ; <i32> [#uses=1]
584         %571 = or i32 %570, 256                   ; <i32> [#uses=1]
585         %572 = and i32 %571, 511                  ; <i32> [#uses=1]
586         %573 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %572; <i32*> [#uses=1]
587         %574 = load i32, i32* %573, align 4            ; <i32> [#uses=1]
588         %575 = add i32 %574, %569                 ; <i32> [#uses=1]
589         %576 = lshr i32 %564, 8                   ; <i32> [#uses=1]
590         %577 = or i32 %576, 512                   ; <i32> [#uses=1]
591         %578 = and i32 %577, 767                  ; <i32> [#uses=1]
592         %579 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %578; <i32*> [#uses=1]
593         %580 = load i32, i32* %579, align 4            ; <i32> [#uses=1]
594         %581 = xor i32 %575, %580                 ; <i32> [#uses=1]
595         %582 = or i32 %564, 768                   ; <i32> [#uses=1]
596         %583 = and i32 %582, 1023                 ; <i32> [#uses=1]
597         %584 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %583; <i32*> [#uses=1]
598         %585 = load i32, i32* %584, align 4            ; <i32> [#uses=1]
599         %586 = add i32 %581, %585                 ; <i32> [#uses=1]
600         %587 = xor i32 %566, %541                 ; <i32> [#uses=1]
601         %588 = xor i32 %587, %586                 ; <i32> [#uses=5]
602         %589 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 5; <i32*> [#uses=1]
603         %590 = load i32, i32* %589, align 4            ; <i32> [#uses=1]
604         %591 = lshr i32 %588, 24                  ; <i32> [#uses=1]
605         %592 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %591; <i32*> [#uses=1]
606         %593 = load i32, i32* %592, align 4            ; <i32> [#uses=1]
607         %594 = lshr i32 %588, 16                  ; <i32> [#uses=1]
608         %595 = or i32 %594, 256                   ; <i32> [#uses=1]
609         %596 = and i32 %595, 511                  ; <i32> [#uses=1]
610         %597 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %596; <i32*> [#uses=1]
611         %598 = load i32, i32* %597, align 4            ; <i32> [#uses=1]
612         %599 = add i32 %598, %593                 ; <i32> [#uses=1]
613         %600 = lshr i32 %588, 8                   ; <i32> [#uses=1]
614         %601 = or i32 %600, 512                   ; <i32> [#uses=1]
615         %602 = and i32 %601, 767                  ; <i32> [#uses=1]
616         %603 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %602; <i32*> [#uses=1]
617         %604 = load i32, i32* %603, align 4            ; <i32> [#uses=1]
618         %605 = xor i32 %599, %604                 ; <i32> [#uses=1]
619         %606 = or i32 %588, 768                   ; <i32> [#uses=1]
620         %607 = and i32 %606, 1023                 ; <i32> [#uses=1]
621         %608 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %607; <i32*> [#uses=1]
622         %609 = load i32, i32* %608, align 4            ; <i32> [#uses=1]
623         %610 = add i32 %605, %609                 ; <i32> [#uses=1]
624         %611 = xor i32 %590, %564                 ; <i32> [#uses=1]
625         %612 = xor i32 %611, %610                 ; <i32> [#uses=5]
626         %613 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 4; <i32*> [#uses=1]
627         %614 = load i32, i32* %613, align 4            ; <i32> [#uses=1]
628         %615 = lshr i32 %612, 24                  ; <i32> [#uses=1]
629         %616 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %615; <i32*> [#uses=1]
630         %617 = load i32, i32* %616, align 4            ; <i32> [#uses=1]
631         %618 = lshr i32 %612, 16                  ; <i32> [#uses=1]
632         %619 = or i32 %618, 256                   ; <i32> [#uses=1]
633         %620 = and i32 %619, 511                  ; <i32> [#uses=1]
634         %621 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %620; <i32*> [#uses=1]
635         %622 = load i32, i32* %621, align 4            ; <i32> [#uses=1]
636         %623 = add i32 %622, %617                 ; <i32> [#uses=1]
637         %624 = lshr i32 %612, 8                   ; <i32> [#uses=1]
638         %625 = or i32 %624, 512                   ; <i32> [#uses=1]
639         %626 = and i32 %625, 767                  ; <i32> [#uses=1]
640         %627 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %626; <i32*> [#uses=1]
641         %628 = load i32, i32* %627, align 4            ; <i32> [#uses=1]
642         %629 = xor i32 %623, %628                 ; <i32> [#uses=1]
643         %630 = or i32 %612, 768                   ; <i32> [#uses=1]
644         %631 = and i32 %630, 1023                 ; <i32> [#uses=1]
645         %632 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %631; <i32*> [#uses=1]
646         %633 = load i32, i32* %632, align 4            ; <i32> [#uses=1]
647         %634 = add i32 %629, %633                 ; <i32> [#uses=1]
648         %635 = xor i32 %614, %588                 ; <i32> [#uses=1]
649         %636 = xor i32 %635, %634                 ; <i32> [#uses=5]
650         %637 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 3; <i32*> [#uses=1]
651         %638 = load i32, i32* %637, align 4            ; <i32> [#uses=1]
652         %639 = lshr i32 %636, 24                  ; <i32> [#uses=1]
653         %640 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %639; <i32*> [#uses=1]
654         %641 = load i32, i32* %640, align 4            ; <i32> [#uses=1]
655         %642 = lshr i32 %636, 16                  ; <i32> [#uses=1]
656         %643 = or i32 %642, 256                   ; <i32> [#uses=1]
657         %644 = and i32 %643, 511                  ; <i32> [#uses=1]
658         %645 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %644; <i32*> [#uses=1]
659         %646 = load i32, i32* %645, align 4            ; <i32> [#uses=1]
660         %647 = add i32 %646, %641                 ; <i32> [#uses=1]
661         %648 = lshr i32 %636, 8                   ; <i32> [#uses=1]
662         %649 = or i32 %648, 512                   ; <i32> [#uses=1]
663         %650 = and i32 %649, 767                  ; <i32> [#uses=1]
664         %651 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %650; <i32*> [#uses=1]
665         %652 = load i32, i32* %651, align 4            ; <i32> [#uses=1]
666         %653 = xor i32 %647, %652                 ; <i32> [#uses=1]
667         %654 = or i32 %636, 768                   ; <i32> [#uses=1]
668         %655 = and i32 %654, 1023                 ; <i32> [#uses=1]
669         %656 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %655; <i32*> [#uses=1]
670         %657 = load i32, i32* %656, align 4            ; <i32> [#uses=1]
671         %658 = add i32 %653, %657                 ; <i32> [#uses=1]
672         %659 = xor i32 %638, %612                 ; <i32> [#uses=1]
673         %660 = xor i32 %659, %658                 ; <i32> [#uses=5]
674         %661 = load i32, i32* undef, align 4           ; <i32> [#uses=1]
675         %662 = lshr i32 %660, 24                  ; <i32> [#uses=1]
676         %663 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %662; <i32*> [#uses=1]
677         %664 = load i32, i32* %663, align 4            ; <i32> [#uses=1]
678         %665 = lshr i32 %660, 16                  ; <i32> [#uses=1]
679         %666 = or i32 %665, 256                   ; <i32> [#uses=1]
680         %667 = and i32 %666, 511                  ; <i32> [#uses=1]
681         %668 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %667; <i32*> [#uses=1]
682         %669 = load i32, i32* %668, align 4            ; <i32> [#uses=1]
683         %670 = add i32 %669, %664                 ; <i32> [#uses=1]
684         %671 = lshr i32 %660, 8                   ; <i32> [#uses=1]
685         %672 = or i32 %671, 512                   ; <i32> [#uses=1]
686         %673 = and i32 %672, 767                  ; <i32> [#uses=1]
687         %674 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %673; <i32*> [#uses=1]
688         %675 = load i32, i32* %674, align 4            ; <i32> [#uses=1]
689         %676 = xor i32 %670, %675                 ; <i32> [#uses=1]
690         %677 = or i32 %660, 768                   ; <i32> [#uses=1]
691         %678 = and i32 %677, 1023                 ; <i32> [#uses=1]
692         %679 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %678; <i32*> [#uses=1]
693         %680 = load i32, i32* %679, align 4            ; <i32> [#uses=1]
694         %681 = add i32 %676, %680                 ; <i32> [#uses=1]
695         %682 = xor i32 %661, %636                 ; <i32> [#uses=1]
696         %683 = xor i32 %682, %681                 ; <i32> [#uses=5]
697         %684 = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 0, i32 1; <i32*> [#uses=1]
698         br label %bb2
700 bb2:                                              ; preds = %bb1, %bb
701         %.pn2.in = phi i32* [ %329, %bb ], [ %0, %bb1 ]; <i32*> [#uses=1]
702         %.pn3 = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
703         %.pn15.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
704         %.pn14.in.in.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
705         %.pn13.in.in.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
706         %.pn10.in.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
707         %.pn4.in = phi i32* [ null, %bb ], [ %684, %bb1 ]; <i32*> [#uses=1]
708         %.pn5 = phi i32 [ 0, %bb ], [ %660, %bb1 ]; <i32> [#uses=1]
709         %.pn14.in.in = lshr i32 %.pn14.in.in.in, 16; <i32> [#uses=1]
710         %.pn14.in = or i32 %.pn14.in.in, 256      ; <i32> [#uses=1]
711         %.pn13.in.in = lshr i32 %.pn13.in.in.in, 8; <i32> [#uses=1]
712         %.pn15 = lshr i32 %.pn15.in, 24           ; <i32> [#uses=1]
713         %.pn14 = and i32 %.pn14.in, 511           ; <i32> [#uses=1]
714         %.pn13.in = or i32 %.pn13.in.in, 512      ; <i32> [#uses=1]
715         %.pn11.in = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %.pn15; <i32*> [#uses=1]
716         %.pn12.in = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %.pn14; <i32*> [#uses=1]
717         %.pn13 = and i32 %.pn13.in, 767           ; <i32> [#uses=1]
718         %.pn10.in = or i32 %.pn10.in.in, 768      ; <i32> [#uses=1]
719         %.pn11 = load i32, i32* %.pn11.in              ; <i32> [#uses=1]
720         %.pn12 = load i32, i32* %.pn12.in              ; <i32> [#uses=1]
721         %.pn9.in = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %.pn13; <i32*> [#uses=1]
722         %.pn10 = and i32 %.pn10.in, 1023          ; <i32> [#uses=1]
723         %.pn8 = add i32 %.pn12, %.pn11            ; <i32> [#uses=1]
724         %.pn9 = load i32, i32* %.pn9.in                ; <i32> [#uses=1]
725         %.pn7.in = getelementptr %struct.BF_KEY, %struct.BF_KEY* %key, i32 0, i32 1, i32 %.pn10; <i32*> [#uses=1]
726         %.pn6 = xor i32 %.pn8, %.pn9              ; <i32> [#uses=1]
727         %.pn7 = load i32, i32* %.pn7.in                ; <i32> [#uses=1]
728         %.pn4 = load i32, i32* %.pn4.in                ; <i32> [#uses=1]
729         %.pn2 = load i32, i32* %.pn2.in                ; <i32> [#uses=1]
730         %.pn = add i32 %.pn6, %.pn7               ; <i32> [#uses=1]
731         %r.0 = xor i32 %.pn2, %.pn3               ; <i32> [#uses=1]
732         %.pn1 = xor i32 %.pn, %.pn5               ; <i32> [#uses=1]
733         %l.0 = xor i32 %.pn1, %.pn4               ; <i32> [#uses=1]
734         store i32 %l.0, i32* undef, align 4
735         store i32 %r.0, i32* %data, align 4
736         ret void