Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / compiler-rt / test / orc / TestCases / Linux / ppc64 / trivial-static-initializer.S
blob9d84b259f3a7277caaac51e8e1571bb863a5d785
1 // Test that basic ELF static initializers work. The main function in this
2 // test returns the value of 'x', which is initially 1 in the data section,
3 // and reset to 0 if the _static_init function is run. If the static initializer
4 // does not run then main will return 1, causing the test to be treated as a
5 // failure.
6 //
7 // RUN: %clang -c -o %t %s
8 // RUN: %llvm_jitlink %t
9         .text
10         .abiversion 2
11         .file   "init.c"
12         .globl  static_init
13         .p2align        4
14         .type   static_init,@function
15 static_init:
16 .Lfunc_begin0:
17 .Lfunc_gep0:
18         addis 2, 12, .TOC.-.Lfunc_gep0@ha
19         addi 2, 2, .TOC.-.Lfunc_gep0@l
20 .Lfunc_lep0:
21         .localentry     static_init, .Lfunc_lep0-.Lfunc_gep0
22         addis 3, 2, x@toc@ha
23         li 4, 0
24         stw 4, x@toc@l(3)
25         blr
26         .long   0
27         .quad   0
28 .Lfunc_end0:
29         .size   static_init, .Lfunc_end0-.Lfunc_begin0
31         .globl  main
32         .p2align        4
33         .type   main,@function
34 main:
35 .Lfunc_begin1:
36 .Lfunc_gep1:
37         addis 2, 12, .TOC.-.Lfunc_gep1@ha
38         addi 2, 2, .TOC.-.Lfunc_gep1@l
39 .Lfunc_lep1:
40         .localentry     main, .Lfunc_lep1-.Lfunc_gep1
41         addis 3, 2, x@toc@ha
42         lwa 3, x@toc@l(3)
43         blr
44         .long   0
45         .quad   0
46 .Lfunc_end1:
47         .size   main, .Lfunc_end1-.Lfunc_begin1
49         .type   x,@object
50         .data
51         .globl  x
52         .p2align        2, 0x0
54         .long   1
55         .size   x, 4
57         .section        .init_array.0,"aw",@init_array
58         .p2align        3
59         .quad   static_init