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

Side by Side Diff: tests_lit/llvm2ice_tests/elf_container.ll

Issue 1386593004: Subzero: Fix nondeterministic behavior in constant pool creation. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Update comment Created 5 years, 2 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 ; Tests that we generate an ELF container with fields that make sense, 1 ; Tests that we generate an ELF container with fields that make sense,
2 ; cross-validating against llvm-mc. 2 ; cross-validating against llvm-mc.
3 3
4 ; For the integrated ELF writer, we can't pipe the output because we need 4 ; For the integrated ELF writer, we can't pipe the output because we need
5 ; to seek backward and patch up the file headers. So, use a temporary file. 5 ; to seek backward and patch up the file headers. So, use a temporary file.
6 ; RUN: %p2i -i %s --filetype=obj --args -O2 --verbose none -o %t \ 6 ; RUN: %p2i -i %s --filetype=obj --args -O2 --verbose none -o %t \
7 ; RUN: && llvm-readobj -file-headers -sections -section-data \ 7 ; RUN: && llvm-readobj -file-headers -sections -section-data \
8 ; RUN: -relocations -symbols %t | FileCheck %s 8 ; RUN: -relocations -symbols %t | FileCheck %s
9 9
10 ; RUN: %if --need=allow_dump --command %p2i -i %s --args -O2 --verbose none \ 10 ; RUN: %if --need=allow_dump --command %p2i -i %s --args -O2 --verbose none \
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 @double_zero_const = internal constant [8 x i8] zeroinitializer, align 32 48 @double_zero_const = internal constant [8 x i8] zeroinitializer, align 32
49 @double_zero_const2 = internal constant [8 x i8] zeroinitializer, align 8 49 @double_zero_const2 = internal constant [8 x i8] zeroinitializer, align 8
50 50
51 ; Use float/double constants to test constant pools. 51 ; Use float/double constants to test constant pools.
52 define internal float @returnFloatConst() { 52 define internal float @returnFloatConst() {
53 entry: 53 entry:
54 %f = fadd float -0.0, 0x3FF3AE1400000000 54 %f = fadd float -0.0, 0x3FF3AE1400000000
55 ret float %f 55 ret float %f
56 } 56 }
57 ; TEXT-RELOCS-LABEL: returnFloatConst 57 ; TEXT-RELOCS-LABEL: returnFloatConst
58 ; TEXT-RELOCS: movss {{.*}} R_386_32 .L$float$0 58 ; TEXT-RELOCS: movss {{.*}} R_386_32 .L$float$80000000
59 ; TEXT-RELOCS: addss {{.*}} R_386_32 .L$float$1 59 ; TEXT-RELOCS: addss {{.*}} R_386_32 .L$float$3f9d70a0
60 60
61 define internal double @returnDoubleConst() { 61 define internal double @returnDoubleConst() {
62 entry: 62 entry:
63 %d = fadd double 0x7FFFFFFFFFFFFFFFF, 0xFFF7FFFFFFFFFFFF 63 %d = fadd double 0x7FFFFFFFFFFFFFFFF, 0xFFF7FFFFFFFFFFFF
64 %d2 = fadd double %d, 0xFFF8000000000003 64 %d2 = fadd double %d, 0xFFF8000000000003
65 ret double %d2 65 ret double %d2
66 } 66 }
67 ; TEXT-RELOCS-LABEL: returnDoubleConst 67 ; TEXT-RELOCS-LABEL: returnDoubleConst
68 ; TEXT-RELOCS: movsd {{.*}} R_386_32 .L$double$0 68 ; TEXT-RELOCS: movsd {{.*}} R_386_32 .L$double$ffffffffffffffff
69 ; TEXT-RELOCS: addsd {{.*}} R_386_32 .L$double$1 69 ; TEXT-RELOCS: addsd {{.*}} R_386_32 .L$double$fff7ffffffffffff
70 ; TEXT-RELOCS: addsd {{.*}} R_386_32 .L$double$2 70 ; TEXT-RELOCS: addsd {{.*}} R_386_32 .L$double$fff8000000000003
71 71
72 ; Test intrinsics that call out to external functions. 72 ; Test intrinsics that call out to external functions.
73 define internal void @test_memcpy(i32 %iptr_dst, i32 %len) { 73 define internal void @test_memcpy(i32 %iptr_dst, i32 %len) {
74 entry: 74 entry:
75 %dst = inttoptr i32 %iptr_dst to i8* 75 %dst = inttoptr i32 %iptr_dst to i8*
76 %src = bitcast [7 x i8]* @bytes to i8* 76 %src = bitcast [7 x i8]* @bytes to i8*
77 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %src, 77 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %src,
78 i32 %len, i32 1, i1 false) 78 i32 %len, i32 1, i1 false)
79 ret void 79 ret void
80 } 80 }
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 ; CHECK: Size: {{[1-9][0-9]*}} 376 ; CHECK: Size: {{[1-9][0-9]*}}
377 ; CHECK: Link: 0 377 ; CHECK: Link: 0
378 ; CHECK: Info: 0 378 ; CHECK: Info: 0
379 ; CHECK: AddressAlignment: 1 379 ; CHECK: AddressAlignment: 1
380 ; CHECK: EntrySize: 0 380 ; CHECK: EntrySize: 0
381 ; CHECK: } 381 ; CHECK: }
382 382
383 383
384 ; CHECK: Relocations [ 384 ; CHECK: Relocations [
385 ; CHECK: Section ({{[0-9]+}}) .rel.text { 385 ; CHECK: Section ({{[0-9]+}}) .rel.text {
386 ; CHECK: 0x4 R_386_32 .L$float$0 0x0 386 ; CHECK: 0x4 R_386_32 .L$float$80000000 0x0
387 ; CHECK: 0xC R_386_32 .L$float$1 0x0 387 ; CHECK: 0xC R_386_32 .L$float$3f9d70a0 0x0
388 ; CHECK: 0x24 R_386_32 .L$double$0 0x0 388 ; CHECK: 0x24 R_386_32 .L$double$ffffffffffffffff 0x0
389 ; CHECK: 0x2C R_386_32 .L$double$1 0x0 389 ; CHECK: 0x2C R_386_32 .L$double$fff7ffffffffffff 0x0
390 ; CHECK: 0x34 R_386_32 .L$double$2 0x0 390 ; CHECK: 0x34 R_386_32 .L$double$fff8000000000003 0x0
391 ; CHECK: 0x{{.*}} R_386_PC32 memcpy 391 ; CHECK: 0x{{.*}} R_386_PC32 memcpy
392 ; CHECK: 0x{{.*}} R_386_PC32 memset 392 ; CHECK: 0x{{.*}} R_386_PC32 memset
393 ; CHECK: 0x{{.*}} R_386_PC32 external_foo 393 ; CHECK: 0x{{.*}} R_386_PC32 external_foo
394 ; CHECK: } 394 ; CHECK: }
395 ; CHECK: Section ({{[0-9]+}}) .rel.data { 395 ; CHECK: Section ({{[0-9]+}}) .rel.data {
396 ; The set of relocations between llvm-mc and the integrated elf-writer 396 ; The set of relocations between llvm-mc and the integrated elf-writer
397 ; are different. For local symbols, llvm-mc uses the section + offset within 397 ; are different. For local symbols, llvm-mc uses the section + offset within
398 ; the section, while the integrated elf-writer refers the symbol itself. 398 ; the section, while the integrated elf-writer refers the symbol itself.
399 ; CHECK: 0x10 R_386_32 {{.*}} 0x0 399 ; CHECK: 0x10 R_386_32 {{.*}} 0x0
400 ; CHECK: 0x14 R_386_32 {{.*}} 0x0 400 ; CHECK: 0x14 R_386_32 {{.*}} 0x0
(...skipping 11 matching lines...) Expand all
412 ; CHECK-NEXT: Symbol { 412 ; CHECK-NEXT: Symbol {
413 ; CHECK-NEXT: Name: (0) 413 ; CHECK-NEXT: Name: (0)
414 ; CHECK-NEXT: Value: 0x0 414 ; CHECK-NEXT: Value: 0x0
415 ; CHECK-NEXT: Size: 0 415 ; CHECK-NEXT: Size: 0
416 ; CHECK-NEXT: Binding: Local 416 ; CHECK-NEXT: Binding: Local
417 ; CHECK-NEXT: Type: None 417 ; CHECK-NEXT: Type: None
418 ; CHECK-NEXT: Other: 0 418 ; CHECK-NEXT: Other: 0
419 ; CHECK-NEXT: Section: Undefined (0x0) 419 ; CHECK-NEXT: Section: Undefined (0x0)
420 ; CHECK-NEXT: } 420 ; CHECK-NEXT: }
421 ; CHECK: Symbol { 421 ; CHECK: Symbol {
422 ; CHECK: Name: .L$double$0 422 ; CHECK: Name: .L$double$fff8000000000003
423 ; CHECK-NEXT: Value: 0x10 423 ; CHECK-NEXT: Value: 0x8
424 ; CHECK-NEXT: Size: 0 424 ; CHECK-NEXT: Size: 0
425 ; CHECK-NEXT: Binding: Local (0x0) 425 ; CHECK-NEXT: Binding: Local (0x0)
426 ; CHECK-NEXT: Type: None (0x0) 426 ; CHECK-NEXT: Type: None (0x0)
427 ; CHECK-NEXT: Other: 0 427 ; CHECK-NEXT: Other: 0
428 ; CHECK-NEXT: Section: .rodata.cst8 428 ; CHECK-NEXT: Section: .rodata.cst8
429 ; CHECK-NEXT: } 429 ; CHECK-NEXT: }
430 ; CHECK: Symbol { 430 ; CHECK: Symbol {
431 ; CHECK: Name: .L$double$2 431 ; CHECK: Name: .L$double$ffffffffffffffff
432 ; CHECK-NEXT: Value: 0x8 432 ; CHECK-NEXT: Value: 0x10
433 ; CHECK-NEXT: Size: 0 433 ; CHECK-NEXT: Size: 0
434 ; CHECK-NEXT: Binding: Local (0x0) 434 ; CHECK-NEXT: Binding: Local (0x0)
435 ; CHECK-NEXT: Type: None (0x0) 435 ; CHECK-NEXT: Type: None (0x0)
436 ; CHECK-NEXT: Other: 0 436 ; CHECK-NEXT: Other: 0
437 ; CHECK-NEXT: Section: .rodata.cst8 437 ; CHECK-NEXT: Section: .rodata.cst8
438 ; CHECK-NEXT: } 438 ; CHECK-NEXT: }
439 ; CHECK: Symbol { 439 ; CHECK: Symbol {
440 ; CHECK: Name: .L$float$0 440 ; CHECK: Name: .L$float$3f9d70a0
441 ; CHECK-NEXT: Value: 0x4 441 ; CHECK-NEXT: Value: 0x0
442 ; CHECK-NEXT: Size: 0 442 ; CHECK-NEXT: Size: 0
443 ; CHECK-NEXT: Binding: Local (0x0) 443 ; CHECK-NEXT: Binding: Local (0x0)
444 ; CHECK-NEXT: Type: None (0x0) 444 ; CHECK-NEXT: Type: None (0x0)
445 ; CHECK-NEXT: Other: 0 445 ; CHECK-NEXT: Other: 0
446 ; CHECK-NEXT: Section: .rodata.cst4 446 ; CHECK-NEXT: Section: .rodata.cst4
447 ; CHECK-NEXT: } 447 ; CHECK-NEXT: }
448 ; CHECK: Symbol { 448 ; CHECK: Symbol {
449 ; CHECK: Name: .L$float$1 449 ; CHECK: Name: .L$float$80000000
450 ; CHECK-NEXT: Value: 0x0 450 ; CHECK-NEXT: Value: 0x4
451 ; CHECK-NEXT: Size: 0 451 ; CHECK-NEXT: Size: 0
452 ; CHECK-NEXT: Binding: Local (0x0) 452 ; CHECK-NEXT: Binding: Local (0x0)
453 ; CHECK-NEXT: Type: None (0x0) 453 ; CHECK-NEXT: Type: None (0x0)
454 ; CHECK-NEXT: Other: 0 454 ; CHECK-NEXT: Other: 0
455 ; CHECK-NEXT: Section: .rodata.cst4 455 ; CHECK-NEXT: Section: .rodata.cst4
456 ; CHECK-NEXT: } 456 ; CHECK-NEXT: }
457 ; CHECK: Symbol { 457 ; CHECK: Symbol {
458 ; CHECK: Name: addend_ptr 458 ; CHECK: Name: addend_ptr
459 ; CHECK-NEXT: Value: 0x18 459 ; CHECK-NEXT: Value: 0x18
460 ; CHECK-NEXT: Size: 4 460 ; CHECK-NEXT: Size: 4
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 ; CHECK: Symbol { 638 ; CHECK: Symbol {
639 ; CHECK: Name: memset 639 ; CHECK: Name: memset
640 ; CHECK-NEXT: Value: 0x0 640 ; CHECK-NEXT: Value: 0x0
641 ; CHECK-NEXT: Size: 0 641 ; CHECK-NEXT: Size: 0
642 ; CHECK-NEXT: Binding: Global 642 ; CHECK-NEXT: Binding: Global
643 ; CHECK-NEXT: Type: None 643 ; CHECK-NEXT: Type: None
644 ; CHECK-NEXT: Other: 0 644 ; CHECK-NEXT: Other: 0
645 ; CHECK-NEXT: Section: Undefined 645 ; CHECK-NEXT: Section: Undefined
646 ; CHECK-NEXT: } 646 ; CHECK-NEXT: }
647 ; CHECK: ] 647 ; CHECK: ]
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/bitcast.ll ('k') | tests_lit/llvm2ice_tests/randomize-pool-immediate-basic.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698