brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · 24f4b34 Raw
244 lines · plain
1; RUN: llc -mtriple x86_64-pc-win32 \2; RUN:     -relocation-model=static  < %s | FileCheck --check-prefix=COFF_S %s3; RUN: llc -mtriple x86_64-pc-win32 \4; RUN:     -relocation-model=pic     < %s | FileCheck --check-prefix=COFF %s5; RUN: llc -mtriple x86_64-pc-win32 \6; RUN:  -relocation-model=dynamic-no-pic < %s | FileCheck --check-prefix=COFF %s7 8; RUN: llc -mtriple x86_64-uefi \9; RUN:     -relocation-model=static  < %s | FileCheck --check-prefix=COFF_S %s10; RUN: llc -mtriple x86_64-uefi \11; RUN:     -relocation-model=pic     < %s | FileCheck --check-prefix=COFF %s12; RUN: llc -mtriple x86_64-uefi \13; RUN:  -relocation-model=dynamic-no-pic < %s | FileCheck --check-prefix=COFF %s14 15 16; 32 bits17 18; RUN: llc -mtriple i386-pc-win32 \19; RUN:    -relocation-model=static  < %s | FileCheck --check-prefix=COFF32 %s20; RUN: llc -mtriple i386-pc-win32 \21; RUN:     -relocation-model=pic     < %s | FileCheck --check-prefix=COFF32 %s22; RUN: llc -mtriple i386-pc-win32 \23; RUN:   -relocation-model=dynamic-no-pic < %s | \24; RUN:   FileCheck --check-prefix=COFF32 %s25 26; globals27 28@strong_default_global = global i32 4229define ptr @get_strong_default_global() {30  ret ptr @strong_default_global31}32; COFF: leaq strong_default_global(%rip), %rax33; COFF_S: movl $strong_default_global, %eax34; COFF32: movl $_strong_default_global, %eax35 36@weak_default_global = weak global i32 4237define ptr @get_weak_default_global() {38  ret ptr @weak_default_global39}40; COFF: leaq weak_default_global(%rip), %rax41; COFF_S: movl $weak_default_global, %eax42; COFF32: movl $_weak_default_global, %eax43 44@external_default_global = external global i3245define ptr @get_external_default_global() {46  ret ptr @external_default_global47}48; COFF: leaq external_default_global(%rip), %rax49; COFF_S: movl $external_default_global, %eax50; COFF32: movl $_external_default_global, %eax51 52 53@strong_local_global = dso_local global i32 4254define ptr @get_strong_local_global() {55  ret ptr @strong_local_global56}57; COFF: leaq strong_local_global(%rip), %rax58; COFF_S: movl $strong_local_global, %eax59; COFF32: movl $_strong_local_global, %eax60 61@weak_local_global = weak dso_local global i32 4262define ptr @get_weak_local_global() {63  ret ptr @weak_local_global64}65; COFF: leaq weak_local_global(%rip), %rax66; COFF_S: movl $weak_local_global, %eax67; COFF32: movl $_weak_local_global, %eax68 69@external_local_global = external dso_local global i3270define ptr @get_external_local_global() {71  ret ptr @external_local_global72}73; COFF: leaq external_local_global(%rip), %rax74; COFF_S: movl $external_local_global, %eax75; COFF32: movl $_external_local_global, %eax76 77 78@strong_preemptable_global = dso_preemptable global i32 4279define ptr @get_strong_preemptable_global() {80  ret ptr @strong_preemptable_global81}82; COFF: leaq strong_preemptable_global(%rip), %rax83; COFF_S: movl $strong_preemptable_global, %eax84; COFF32: movl $_strong_preemptable_global, %eax85 86@weak_preemptable_global = weak dso_preemptable global i32 4287define ptr @get_weak_preemptable_global() {88  ret ptr @weak_preemptable_global89}90; COFF: leaq weak_preemptable_global(%rip), %rax91; COFF_S: movl $weak_preemptable_global, %eax92; COFF32: movl $_weak_preemptable_global, %eax93 94@external_preemptable_global = external dso_preemptable global i3295define ptr @get_external_preemptable_global() {96  ret ptr @external_preemptable_global97}98; COFF: leaq external_preemptable_global(%rip), %rax99; COFF_S: movl $external_preemptable_global, %eax100; COFF32: movl $_external_preemptable_global, %eax101 102 103; aliases104@aliasee = global i32 42105 106@strong_default_alias = alias i32, ptr @aliasee107define ptr @get_strong_default_alias() {108  ret ptr @strong_default_alias109}110; COFF: leaq strong_default_alias(%rip), %rax111; COFF_S: movl $strong_default_alias, %eax112; COFF32: movl $_strong_default_alias, %eax113 114@weak_default_alias = weak alias i32, ptr @aliasee115define ptr @get_weak_default_alias() {116  ret ptr @weak_default_alias117}118; COFF: leaq weak_default_alias(%rip), %rax119; COFF_S: movl $weak_default_alias, %eax120; COFF32: movl $_weak_default_alias, %eax121 122 123@strong_local_alias = dso_local alias i32, ptr @aliasee124define ptr @get_strong_local_alias() {125  ret ptr @strong_local_alias126}127; COFF: leaq strong_local_alias(%rip), %rax128; COFF_S: movl $strong_local_alias, %eax129; COFF32: movl $_strong_local_alias, %eax130 131@weak_local_alias = weak dso_local alias i32, ptr @aliasee132define ptr @get_weak_local_alias() {133  ret ptr @weak_local_alias134}135; COFF: leaq weak_local_alias(%rip), %rax136; COFF_S: movl $weak_local_alias, %eax137; COFF32: movl $_weak_local_alias, %eax138 139 140@strong_preemptable_alias = dso_preemptable alias i32, ptr @aliasee141define ptr @get_strong_preemptable_alias() {142  ret ptr @strong_preemptable_alias143}144; COFF: leaq strong_preemptable_alias(%rip), %rax145; COFF_S: movl $strong_preemptable_alias, %eax146; COFF32: movl $_strong_preemptable_alias, %eax147 148@weak_preemptable_alias = weak dso_preemptable alias i32, ptr @aliasee149define ptr @get_weak_preemptable_alias() {150  ret ptr @weak_preemptable_alias151}152; COFF: leaq weak_preemptable_alias(%rip), %rax153; COFF_S: movl $weak_preemptable_alias, %eax154; COFF32: movl $_weak_preemptable_alias, %eax155 156 157; functions158 159define void @strong_default_function() {160  ret void161}162define ptr @get_strong_default_function() {163  ret ptr @strong_default_function164}165; COFF: leaq strong_default_function(%rip), %rax166; COFF_S: movl $strong_default_function, %eax167; COFF32: movl $_strong_default_function, %eax168 169define weak void @weak_default_function() {170  ret void171}172define ptr @get_weak_default_function() {173  ret ptr @weak_default_function174}175; COFF: leaq weak_default_function(%rip), %rax176; COFF_S: movl $weak_default_function, %eax177; COFF32: movl $_weak_default_function, %eax178 179declare void @external_default_function()180define ptr @get_external_default_function() {181  ret ptr @external_default_function182}183; COFF: leaq external_default_function(%rip), %rax184; COFF_S: movl $external_default_function, %eax185; COFF32: movl $_external_default_function, %eax186 187 188define dso_local void @strong_local_function() {189  ret void190}191define ptr @get_strong_local_function() {192  ret ptr @strong_local_function193}194; COFF: leaq strong_local_function(%rip), %rax195; COFF_S: movl $strong_local_function, %eax196; COFF32: movl $_strong_local_function, %eax197 198define weak dso_local void @weak_local_function() {199  ret void200}201define ptr @get_weak_local_function() {202  ret ptr @weak_local_function203}204; COFF: leaq weak_local_function(%rip), %rax205; COFF_S: movl $weak_local_function, %eax206; COFF32: movl $_weak_local_function, %eax207 208declare dso_local void @external_local_function()209define ptr @get_external_local_function() {210  ret ptr @external_local_function211}212; COFF: leaq external_local_function(%rip), %rax213; COFF_S: movl $external_local_function, %eax214; COFF32: movl $_external_local_function, %eax215 216 217define dso_preemptable void @strong_preemptable_function() {218  ret void219}220define ptr @get_strong_preemptable_function() {221  ret ptr @strong_preemptable_function222}223; COFF: leaq strong_preemptable_function(%rip), %rax224; COFF_S: movl $strong_preemptable_function, %eax225; COFF32: movl $_strong_preemptable_function, %eax226 227define weak dso_preemptable void @weak_preemptable_function() {228  ret void229}230define ptr @get_weak_preemptable_function() {231  ret ptr @weak_preemptable_function232}233; COFF: leaq weak_preemptable_function(%rip), %rax234; COFF_S: movl $weak_preemptable_function, %eax235; COFF32: movl $_weak_preemptable_function, %eax236 237declare dso_preemptable void @external_preemptable_function()238define ptr @get_external_preemptable_function() {239  ret ptr @external_preemptable_function240}241; COFF: leaq external_preemptable_function(%rip), %rax242; COFF_S: movl $external_preemptable_function, %eax243; COFF32: movl $_external_preemptable_function, %eax244