Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / X86 / ctor-priority-coff.ll
blob2e4e7ca0c5dcff6761e7acff584d70649c0594f3
1 ; RUN: llc < %s | FileCheck %s
3 ; Check that we come up with appropriate section names that link.exe sorts
4 ; well.
6 ; CHECK: .section        .CRT$XCA00042,"dr"
7 ; CHECK: .p2align        3
8 ; CHECK: .quad   f
9 ; CHECK: .section        .CRT$XCC,"dr"
10 ; CHECK: .p2align        3
11 ; CHECK: .quad   i
12 ; CHECK: .section        .CRT$XCC00250,"dr"
13 ; CHECK: .p2align        3
14 ; CHECK: .quad   k
15 ; CHECK: .section        .CRT$XCL,"dr"
16 ; CHECK: .p2align        3
17 ; CHECK: .quad   j
18 ; CHECK: .section        .CRT$XCT12345,"dr"
19 ; CHECK: .p2align        3
20 ; CHECK: .quad   g
21 ; CHECK: .section        .CRT$XCT23456,"dr",associative,h
22 ; CHECK: .p2align        3
23 ; CHECK: .quad   init_h
25 target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
26 target triple = "x86_64-pc-windows-msvc19.14.26433"
28 $h = comdat any
30 @h = linkonce_odr global i8 55, comdat, align 1
32 @str0 = private dso_local unnamed_addr constant [6 x i8] c"later\00", align 1
33 @str1 = private dso_local unnamed_addr constant [6 x i8] c"first\00", align 1
34 @str2 = private dso_local unnamed_addr constant [5 x i8] c"main\00", align 1
36 @llvm.global_ctors = appending global [6 x { i32, ptr, ptr }] [
37   { i32, ptr, ptr } { i32 12345, ptr @g, ptr null },
38   { i32, ptr, ptr } { i32 42, ptr @f, ptr null },
39   { i32, ptr, ptr } { i32 23456, ptr @init_h, ptr @h },
40   { i32, ptr, ptr } { i32 200, ptr @i, ptr null },
41   { i32, ptr, ptr } { i32 400, ptr @j, ptr null },
42   { i32, ptr, ptr } { i32 250, ptr @k, ptr null }
45 declare dso_local i32 @puts(ptr nocapture readonly) local_unnamed_addr
47 define dso_local void @g() {
48 entry:
49   %call = tail call i32 @puts(ptr @str0)
50   ret void
53 define dso_local void @f() {
54 entry:
55   %call = tail call i32 @puts(ptr @str1)
56   ret void
59 define dso_local void @init_h() {
60 entry:
61   store i8 42, ptr @h
62   ret void
65 define dso_local void @i() {
66 entry:
67   store i8 43, ptr @h
68   ret void
71 define dso_local void @j() {
72 entry:
73   store i8 44, ptr @h
74   ret void
77 define dso_local void @k() {
78 entry:
79   store i8 45, ptr @h
80   ret void
83 ; Function Attrs: nounwind uwtable
84 define dso_local i32 @main() local_unnamed_addr {
85 entry:
86   %call = tail call i32 @puts(ptr @str2)
87   ret i32 0