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

Side by Side Diff: tests_lit/llvm2ice_tests/8bit.pnacl.ll

Issue 1161543005: Subzero: Changes needed for LLVM 3.7 integration. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 6 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 ; This tries to be a comprehensive test of i8 operations. 1 ; This tries to be a comprehensive test of i8 operations.
2 2
3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 | FileCheck %s 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 | FileCheck %s
4 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 | FileCheck %s 4 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 | FileCheck %s
5 5
6 declare void @useInt(i32 %x) 6 declare void @useInt(i32 %x)
7 7
8 define internal i32 @add8Bit(i32 %a, i32 %b) { 8 define internal i32 @add8Bit(i32 %a, i32 %b) {
9 entry: 9 entry:
10 %a_8 = trunc i32 %a to i8 10 %a_8 = trunc i32 %a to i8
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 %ret = zext i1 %icmp to i32 246 %ret = zext i1 %icmp to i32
247 ret i32 %ret 247 ret i32 %ret
248 } 248 }
249 ; CHECK-LABEL: icmp8BitConstSwapped 249 ; CHECK-LABEL: icmp8BitConstSwapped
250 ; CHECK: cmp {{[abcd]l|BYTE PTR}} 250 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
251 251
252 define internal i32 @icmp8BitMem(i32 %a, i32 %b_iptr) { 252 define internal i32 @icmp8BitMem(i32 %a, i32 %b_iptr) {
253 entry: 253 entry:
254 %a_8 = trunc i32 %a to i8 254 %a_8 = trunc i32 %a to i8
255 %bptr = inttoptr i32 %b_iptr to i8* 255 %bptr = inttoptr i32 %b_iptr to i8*
256 %b_8 = load i8* %bptr, align 1 256 %b_8 = load i8, i8* %bptr, align 1
257 %icmp = icmp ne i8 %b_8, %a_8 257 %icmp = icmp ne i8 %b_8, %a_8
258 %ret = zext i1 %icmp to i32 258 %ret = zext i1 %icmp to i32
259 ret i32 %ret 259 ret i32 %ret
260 } 260 }
261 ; CHECK-LABEL: icmp8BitMem 261 ; CHECK-LABEL: icmp8BitMem
262 ; CHECK: cmp {{[abcd]l|BYTE PTR}} 262 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
263 263
264 define internal i32 @icmp8BitMemSwapped(i32 %a, i32 %b_iptr) { 264 define internal i32 @icmp8BitMemSwapped(i32 %a, i32 %b_iptr) {
265 entry: 265 entry:
266 %a_8 = trunc i32 %a to i8 266 %a_8 = trunc i32 %a to i8
267 %bptr = inttoptr i32 %b_iptr to i8* 267 %bptr = inttoptr i32 %b_iptr to i8*
268 %b_8 = load i8* %bptr, align 1 268 %b_8 = load i8, i8* %bptr, align 1
269 %icmp = icmp ne i8 %a_8, %b_8 269 %icmp = icmp ne i8 %a_8, %b_8
270 %ret = zext i1 %icmp to i32 270 %ret = zext i1 %icmp to i32
271 ret i32 %ret 271 ret i32 %ret
272 } 272 }
273 ; CHECK-LABEL: icmp8BitMemSwapped 273 ; CHECK-LABEL: icmp8BitMemSwapped
274 ; CHECK: cmp {{[abcd]l|BYTE PTR}} 274 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
275 275
276 define internal i32 @selectI8Var(i32 %a, i32 %b) { 276 define internal i32 @selectI8Var(i32 %a, i32 %b) {
277 entry: 277 entry:
278 %a_8 = trunc i32 %a to i8 278 %a_8 = trunc i32 %a to i8
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 ; This assumes there will be some copy from an 8-bit register / stack slot. 327 ; This assumes there will be some copy from an 8-bit register / stack slot.
328 ; CHECK-DAG: mov {{.*}},{{[a-d]}}l 328 ; CHECK-DAG: mov {{.*}},{{[a-d]}}l
329 ; CHECK-DAG: mov {{.*}},BYTE PTR 329 ; CHECK-DAG: mov {{.*}},BYTE PTR
330 ; CHECK-DAG: mov BYTE PTR {{.*}} 330 ; CHECK-DAG: mov BYTE PTR {{.*}}
331 331
332 @global8 = internal global [1 x i8] c"\01", align 4 332 @global8 = internal global [1 x i8] c"\01", align 4
333 333
334 define i32 @load_i8(i32 %addr_arg) { 334 define i32 @load_i8(i32 %addr_arg) {
335 entry: 335 entry:
336 %addr = inttoptr i32 %addr_arg to i8* 336 %addr = inttoptr i32 %addr_arg to i8*
337 %ret = load i8* %addr, align 1 337 %ret = load i8, i8* %addr, align 1
338 %ret2 = sub i8 %ret, 0 338 %ret2 = sub i8 %ret, 0
339 %ret_ext = zext i8 %ret2 to i32 339 %ret_ext = zext i8 %ret2 to i32
340 ret i32 %ret_ext 340 ret i32 %ret_ext
341 } 341 }
342 ; CHECK-LABEL: load_i8 342 ; CHECK-LABEL: load_i8
343 ; CHECK: mov {{[a-d]l}},BYTE PTR 343 ; CHECK: mov {{[a-d]l}},BYTE PTR
344 344
345 define i32 @load_i8_global(i32 %addr_arg) { 345 define i32 @load_i8_global(i32 %addr_arg) {
346 entry: 346 entry:
347 %addr = bitcast [1 x i8]* @global8 to i8* 347 %addr = bitcast [1 x i8]* @global8 to i8*
348 %ret = load i8* %addr, align 1 348 %ret = load i8, i8* %addr, align 1
349 %ret2 = sub i8 %ret, 0 349 %ret2 = sub i8 %ret, 0
350 %ret_ext = zext i8 %ret2 to i32 350 %ret_ext = zext i8 %ret2 to i32
351 ret i32 %ret_ext 351 ret i32 %ret_ext
352 } 352 }
353 ; CHECK-LABEL: load_i8_global 353 ; CHECK-LABEL: load_i8_global
354 ; CHECK: mov {{[a-d]l}},BYTE PTR 354 ; CHECK: mov {{[a-d]l}},BYTE PTR
355 355
356 define void @store_i8(i32 %addr_arg, i32 %val) { 356 define void @store_i8(i32 %addr_arg, i32 %val) {
357 entry: 357 entry:
358 %val_trunc = trunc i32 %val to i8 358 %val_trunc = trunc i32 %val to i8
359 %addr = inttoptr i32 %addr_arg to i8* 359 %addr = inttoptr i32 %addr_arg to i8*
360 store i8 %val_trunc, i8* %addr, align 1 360 store i8 %val_trunc, i8* %addr, align 1
361 ret void 361 ret void
362 } 362 }
363 ; CHECK-LABEL: store_i8 363 ; CHECK-LABEL: store_i8
364 ; CHECK: mov BYTE PTR {{.*}},{{[a-d]l}} 364 ; CHECK: mov BYTE PTR {{.*}},{{[a-d]l}}
365 365
366 define void @store_i8_const(i32 %addr_arg) { 366 define void @store_i8_const(i32 %addr_arg) {
367 entry: 367 entry:
368 %addr = inttoptr i32 %addr_arg to i8* 368 %addr = inttoptr i32 %addr_arg to i8*
369 store i8 123, i8* %addr, align 1 369 store i8 123, i8* %addr, align 1
370 ret void 370 ret void
371 } 371 }
372 ; CHECK-LABEL: store_i8_const 372 ; CHECK-LABEL: store_i8_const
373 ; CHECK: mov BYTE PTR {{.*}},0x7b 373 ; CHECK: mov BYTE PTR {{.*}},0x7b
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/64bit.pnacl.ll ('k') | tests_lit/llvm2ice_tests/addr-opt-multi-def-var.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698