Lines Matching full:ppc64
4 // RUN: | FileCheck -check-prefix=CHECK-PPC64 %s
29 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read00
30 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
31 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
32 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 50
33 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[shr]] to i32
34 // CHECK-PPC64: ret i32 %[[trunc]]
45 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read01
46 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
47 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
48 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 48
49 // CHECK-PPC64: %[[and:.*]] = and i64 %[[shr]], 3
50 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
51 // CHECK-PPC64: ret i32 %[[trunc]]
62 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read20
63 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
64 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
65 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 42
66 // CHECK-PPC64: %[[and:.*]] = and i64 %[[shr]], 63
67 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
68 // CHECK-PPC64: ret i32 %[[trunc]]
79 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read21
80 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
81 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
82 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 40
83 // CHECK-PPC64: %[[and:.*]] = and i64 %[[shr]], 3
84 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
85 // CHECK-PPC64: ret i32 %[[trunc]]
96 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read30
97 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
98 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
99 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 10
100 // CHECK-PPC64: %[[and:.*]] = and i64 %[[shr]], 1073741823
101 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
102 // CHECK-PPC64: ret i32 %[[trunc]]
113 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read31
114 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
115 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
116 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 8
117 // CHECK-PPC64: %[[and:.*]] = and i64 %[[shr]], 3
118 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
119 // CHECK-PPC64: ret i32 %[[trunc]]
130 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read70
131 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
132 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
133 // CHECK-PPC64: %[[shr:.*]] = lshr i64 %[[val]], 2
134 // CHECK-PPC64: %[[and:.*]] = and i64 %[[shr]], 63
135 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
136 // CHECK-PPC64: ret i32 %[[trunc]]
146 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N06read71
147 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i64*
148 // CHECK-PPC64: %[[val:.*]] = load i64, i64* %[[ptr]]
149 // CHECK-PPC64: %[[and:.*]] = and i64 %[[val]], 3
150 // CHECK-PPC64: %[[trunc:.*]] = trunc i64 %[[and]] to i32
151 // CHECK-PPC64: ret i32 %[[trunc]]
175 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N14read
176 // CHECK-PPC64: %[[ptr:.*]] = getelementptr inbounds %{{.*}}, %{{.*}}* %{{.*}}, i32 0, i32 1
177 // CHECK-PPC64: %[[val:.*]] = load i8, i8* %[[ptr]]
178 // CHECK-PPC64: %[[shr:.*]] = lshr i8 %[[val]], 7
179 // CHECK-PPC64: %[[ext:.*]] = zext i8 %[[shr]] to i32
180 // CHECK-PPC64: ret i32 %[[ext]]
192 // CHECK-PPC64-LABEL: define void @_ZN2N15write
193 // CHECK-PPC64: %[[ptr:.*]] = getelementptr inbounds %{{.*}}, %{{.*}}* %{{.*}}, i32 0, i32 1
194 // CHECK-PPC64: %[[x_trunc:.*]] = trunc i32 %{{.*}} to i8
195 // CHECK-PPC64: %[[old:.*]] = load i8, i8* %[[ptr]]
196 // CHECK-PPC64: %[[x_and:.*]] = and i8 %[[x_trunc]], 1
197 // CHECK-PPC64: %[[x_shl:.*]] = shl i8 %[[x_and]], 7
198 // CHECK-PPC64: %[[old_and:.*]] = and i8 %[[old]], 127
199 // CHECK-PPC64: %[[new:.*]] = or i8 %[[old_and]], %[[x_shl]]
200 // CHECK-PPC64: store i8 %[[new]], i8* %[[ptr]]
218 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N24read
219 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i32*
220 // CHECK-PPC64: %[[val:.*]] = load i32, i32* %[[ptr]]
221 // CHECK-PPC64: %[[shr:.*]] = lshr i32 %[[val]], 8
222 // CHECK-PPC64: ret i32 %[[shr]]
233 // CHECK-PPC64-LABEL: define void @_ZN2N25write
234 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i32*
235 // CHECK-PPC64: %[[old:.*]] = load i32, i32* %[[ptr]]
236 // CHECK-PPC64: %[[x_and:.*]] = and i32 %{{.*}}, 16777215
237 // CHECK-PPC64: %[[x_shl:.*]] = shl i32 %[[x_and]], 8
238 // CHECK-PPC64: %[[old_and:.*]] = and i32 %[[old]], 255
239 // CHECK-PPC64: %[[new:.*]] = or i32 %[[old_and]], %[[x_shl]]
240 // CHECK-PPC64: store i32 %[[new]], i32* %[[ptr]]
257 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N34read
258 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i32*
259 // CHECK-PPC64: %[[val:.*]] = load i32, i32* %[[ptr]]
260 // CHECK-PPC64: %[[shr:.*]] = lshr i32 %[[val]], 8
261 // CHECK-PPC64: ret i32 %[[shr]]
272 // CHECK-PPC64-LABEL: define void @_ZN2N35write
273 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i32*
274 // CHECK-PPC64: %[[old:.*]] = load i32, i32* %[[ptr]]
275 // CHECK-PPC64: %[[x_and:.*]] = and i32 %{{.*}}, 16777215
276 // CHECK-PPC64: %[[x_shl:.*]] = shl i32 %[[x_and]], 8
277 // CHECK-PPC64: %[[old_and:.*]] = and i32 %[[old]], 255
278 // CHECK-PPC64: %[[new:.*]] = or i32 %[[old_and]], %[[x_shl]]
279 // CHECK-PPC64: store i32 %[[new]], i32* %[[ptr]]
309 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N44read
310 // CHECK-PPC64: %[[gep:.*]] = getelementptr inbounds {{.*}}, {{.*}}* %{{.*}}, i32 0, i32 1
311 // CHECK-PPC64: %[[ptr:.*]] = bitcast [3 x i8]* %[[gep]] to i24*
312 // CHECK-PPC64: %[[val:.*]] = load i24, i24* %[[ptr]]
313 // CHECK-PPC64: %[[ext:.*]] = zext i24 %[[val]] to i32
314 // CHECK-PPC64: ret i32 %[[ext]]
323 // CHECK-PPC64-LABEL: define void @_ZN2N45write
324 // CHECK-PPC64: %[[gep:.*]] = getelementptr inbounds {{.*}}, {{.*}}* %{{.*}}, i32 0, i32 1
325 // CHECK-PPC64: %[[ptr:.*]] = bitcast [3 x i8]* %[[gep]] to i24*
326 // CHECK-PPC64: %[[new:.*]] = trunc i32 %{{.*}} to i24
327 // CHECK-PPC64: store i24 %[[new]], i24* %[[ptr]]
350 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N54read
351 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i32*
352 // CHECK-PPC64: %[[val:.*]] = load i32, i32* %[[ptr]]
353 // CHECK-PPC64: %[[shr:.*]] = lshr i32 %[[val]], 8
354 // CHECK-PPC64: ret i32 %[[shr]]
365 // CHECK-PPC64-LABEL: define void @_ZN2N55write
366 // CHECK-PPC64: %[[ptr:.*]] = bitcast %{{.*}}* %{{.*}} to i32*
367 // CHECK-PPC64: %[[old:.*]] = load i32, i32* %[[ptr]]
368 // CHECK-PPC64: %[[x_and:.*]] = and i32 %{{.*}}, 16777215
369 // CHECK-PPC64: %[[x_shl:.*]] = shl i32 %[[x_and]], 8
370 // CHECK-PPC64: %[[old_and:.*]] = and i32 %[[old]], 255
371 // CHECK-PPC64: %[[new:.*]] = or i32 %[[old_and]], %[[x_shl]]
372 // CHECK-PPC64: store i32 %[[new]], i32* %[[ptr]]
399 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N64read
400 // CHECK-PPC64: %[[ptr1:.*]] = bitcast {{.*}}* %{{.*}} to i24*
401 // CHECK-PPC64: %[[val1:.*]] = load i24, i24* %[[ptr1]]
402 // CHECK-PPC64: %[[ext1:.*]] = zext i24 %[[val1]] to i32
403 // CHECK-PPC64: %[[ptr2:.*]] = getelementptr inbounds {{.*}}, {{.*}}* %{{.*}}, i32 0, i32 1
404 // CHECK-PPC64: %[[val2:.*]] = load i8, i8* %[[ptr2]]
405 // CHECK-PPC64: %[[ext2:.*]] = zext i8 %[[val2]] to i32
406 // CHECK-PPC64: %[[add:.*]] = add nsw i32 %[[ext1]], %[[ext2]]
407 // CHECK-PPC64: ret i32 %[[add]]
418 // CHECK-PPC64-LABEL: define void @_ZN2N65write
419 // CHECK-PPC64: %[[ptr1:.*]] = bitcast {{.*}}* %{{.*}} to i24*
420 // CHECK-PPC64: %[[new1:.*]] = trunc i32 %{{.*}} to i24
421 // CHECK-PPC64: store i24 %[[new1]], i24* %[[ptr1]]
422 // CHECK-PPC64: %[[new2:.*]] = trunc i32 %{{.*}} to i8
423 // CHECK-PPC64: %[[ptr2:.*]] = getelementptr inbounds {{.*}}, {{.*}}* %{{.*}}, i32 0, i32 1
424 // CHECK-PPC64: store i8 %[[new2]], i8* %[[ptr2]]
459 // CHECK-PPC64-LABEL: define zeroext i32 @_ZN2N74read
460 // CHECK-PPC64: %[[gep:.*]] = getelementptr inbounds {{.*}}, {{.*}}* %{{.*}}, i32 0, i32 1
461 // CHECK-PPC64: %[[ptr:.*]] = bitcast [3 x i8]* %[[gep]] to i24*
462 // CHECK-PPC64: %[[val:.*]] = load i24, i24* %[[ptr]]
463 // CHECK-PPC64: %[[ext:.*]] = zext i24 %[[val]] to i32
464 // CHECK-PPC64: ret i32 %[[ext]]
473 // CHECK-PPC64-LABEL: define void @_ZN2N75write
474 // CHECK-PPC64: %[[gep:.*]] = getelementptr inbounds {{.*}}, {{.*}}* %{{.*}}, i32 0, i32 1
475 // CHECK-PPC64: %[[ptr:.*]] = bitcast [3 x i8]* %[[gep]] to i24*
476 // CHECK-PPC64: %[[new:.*]] = trunc i32 %{{.*}} to i24
477 // CHECK-PPC64: store i24 %[[new]], i24* %[[ptr]]