Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: test/CodeGen/JS/expand-i64.ll

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; RUN: opt -S -expand-illegal-ints < %s | FileCheck %s 1 ; RUN: opt -S -expand-illegal-ints < %s | FileCheck %s
2 2
3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:128-n32-S128" 3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:128-n32-S128"
4 4
5 ; CHECK: define i32 @add(i32, i32, i32, i32) { 5 ; CHECK: define i32 @add(i32, i32, i32, i32) {
6 ; CHECK: %5 = call i32 @i64Add(i32 %0, i32 %1, i32 %2, i32 %3) 6 ; CHECK: %5 = call i32 @i64Add(i32 %0, i32 %1, i32 %2, i32 %3)
7 ; CHECK: %6 = call i32 @getHigh32() 7 ; CHECK: %6 = call i32 @getHigh32()
8 ; CHECK: call void @setHigh32(i32 %6) 8 ; CHECK: call void @setHigh32(i32 %6)
9 ; CHECK: ret i32 %5 9 ; CHECK: ret i32 %5
10 ; CHECK: } 10 ; CHECK: }
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 ; CHECK: } 198 ; CHECK: }
199 define i32 @icmp_ult(i64 %a, i64 %b) { 199 define i32 @icmp_ult(i64 %a, i64 %b) {
200 %c = icmp ult i64 %a, %b 200 %c = icmp ult i64 %a, %b
201 %d = zext i1 %c to i32 201 %d = zext i1 %c to i32
202 ret i32 %d 202 ret i32 %d
203 } 203 }
204 204
205 ; CHECK: define i32 @load(i64* %a) { 205 ; CHECK: define i32 @load(i64* %a) {
206 ; CHECK: %1 = ptrtoint i64* %a to i32 206 ; CHECK: %1 = ptrtoint i64* %a to i32
207 ; CHECK: %2 = inttoptr i32 %1 to i32* 207 ; CHECK: %2 = inttoptr i32 %1 to i32*
208 ; CHECK: %3 = load i32* %2 208 ; CHECK: %3 = load i32, i32* %2
209 ; CHECK: %4 = add i32 %1, 4 209 ; CHECK: %4 = add i32 %1, 4
210 ; CHECK: %5 = inttoptr i32 %4 to i32* 210 ; CHECK: %5 = inttoptr i32 %4 to i32*
211 ; CHECK: %6 = load i32* %5 211 ; CHECK: %6 = load i32, i32* %5
212 ; CHECK: call void @setHigh32(i32 %6) 212 ; CHECK: call void @setHigh32(i32 %6)
213 ; CHECK: ret i32 %3 213 ; CHECK: ret i32 %3
214 ; CHECK: } 214 ; CHECK: }
215 define i64 @load(i64 *%a) { 215 define i64 @load(i64 *%a) {
216 %c = load i64* %a 216 %c = load i64, i64* %a
217 ret i64 %c 217 ret i64 %c
218 } 218 }
219 219
220 ; CHECK: define i32 @aligned_load(i64* %a) { 220 ; CHECK: define i32 @aligned_load(i64* %a) {
221 ; CHECK: %1 = ptrtoint i64* %a to i32 221 ; CHECK: %1 = ptrtoint i64* %a to i32
222 ; CHECK: %2 = inttoptr i32 %1 to i32* 222 ; CHECK: %2 = inttoptr i32 %1 to i32*
223 ; CHECK: %3 = load i32* %2, align 16 223 ; CHECK: %3 = load i32, i32* %2, align 16
224 ; CHECK: %4 = add i32 %1, 4 224 ; CHECK: %4 = add i32 %1, 4
225 ; CHECK: %5 = inttoptr i32 %4 to i32* 225 ; CHECK: %5 = inttoptr i32 %4 to i32*
226 ; CHECK: %6 = load i32* %5, align 4 226 ; CHECK: %6 = load i32, i32* %5, align 4
227 ; CHECK: call void @setHigh32(i32 %6) 227 ; CHECK: call void @setHigh32(i32 %6)
228 ; CHECK: ret i32 %3 228 ; CHECK: ret i32 %3
229 ; CHECK: } 229 ; CHECK: }
230 define i64 @aligned_load(i64 *%a) { 230 define i64 @aligned_load(i64 *%a) {
231 %c = load i64* %a, align 16 231 %c = load i64, i64* %a, align 16
232 ret i64 %c 232 ret i64 %c
233 } 233 }
234 234
235 ; CHECK: define void @store(i64* %a, i32, i32) { 235 ; CHECK: define void @store(i64* %a, i32, i32) {
236 ; CHECK: %3 = ptrtoint i64* %a to i32 236 ; CHECK: %3 = ptrtoint i64* %a to i32
237 ; CHECK: %4 = inttoptr i32 %3 to i32* 237 ; CHECK: %4 = inttoptr i32 %3 to i32*
238 ; CHECK: store i32 %0, i32* %4 238 ; CHECK: store i32 %0, i32* %4
239 ; CHECK: %5 = add i32 %3, 4 239 ; CHECK: %5 = add i32 %3, 4
240 ; CHECK: %6 = inttoptr i32 %5 to i32* 240 ; CHECK: %6 = inttoptr i32 %5 to i32*
241 ; CHECK: store i32 %1, i32* %6 241 ; CHECK: store i32 %1, i32* %6
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 ret i64 %y 300 ret i64 %y
301 } 301 }
302 302
303 ; CHECK: define void @unreachable_blocks(i64* %p) { 303 ; CHECK: define void @unreachable_blocks(i64* %p) {
304 ; CHECK-NEXT: ret void 304 ; CHECK-NEXT: ret void
305 ; CHECK-NEXT: } 305 ; CHECK-NEXT: }
306 define void @unreachable_blocks(i64* %p) { 306 define void @unreachable_blocks(i64* %p) {
307 ret void 307 ret void
308 308
309 dead: 309 dead:
310 %t = load i64* %p 310 %t = load i64, i64* %p
311 %s = add i64 %t, 1 311 %s = add i64 %t, 1
312 store i64 %s, i64* %p 312 store i64 %s, i64* %p
313 ret void 313 ret void
314 } 314 }
315 315
316 ; CHECK: define i1 @slt_zero(i32 %a) { 316 ; CHECK: define i1 @slt_zero(i32 %a) {
317 ; CHECK: %1 = icmp slt i32 %a, 0 317 ; CHECK: %1 = icmp slt i32 %a, 0
318 ; CHECK: %2 = sext i1 %1 to i32 318 ; CHECK: %2 = sext i1 %1 to i32
319 ; CHECK: %3 = sext i1 %1 to i32 319 ; CHECK: %3 = sext i1 %1 to i32
320 ; CHECK: %4 = sext i1 %1 to i32 320 ; CHECK: %4 = sext i1 %1 to i32
321 ; CHECK: %5 = icmp slt i32 %4, 0 321 ; CHECK: %5 = icmp slt i32 %4, 0
322 ; CHECK: ret i1 %5 322 ; CHECK: ret i1 %5
323 ; CHECK: } 323 ; CHECK: }
324 define i1 @slt_zero(i32 %a) { 324 define i1 @slt_zero(i32 %a) {
325 %b = sext i32 %a to i128 325 %b = sext i32 %a to i128
326 %c = icmp slt i128 %b, 0 326 %c = icmp slt i128 %b, 0
327 ret i1 %c 327 ret i1 %c
328 } 328 }
329 329
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698