xref: /aosp_15_r20/external/llvm/test/tools/gold/X86/common.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as %s -o %t1.o
2*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as %p/Inputs/common.ll -o %t2.o
3*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as %p/Inputs/common2.ll -o %t2b.o
4*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as %p/Inputs/common3.ll -o %t2c.o
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@a = common global i16 0, align 8
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
9*9880d681SAndroid Build Coastguard Worker; RUN:    --plugin-opt=emit-llvm \
10*9880d681SAndroid Build Coastguard Worker; RUN:    -shared %t1.o %t2.o -o %t3.o
11*9880d681SAndroid Build Coastguard Worker; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=A
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker; Shared library case, we merge @a as common and keep it for the symbol table.
14*9880d681SAndroid Build Coastguard Worker; A: @a = common global i32 0, align 8
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
17*9880d681SAndroid Build Coastguard Worker; RUN:    --plugin-opt=emit-llvm \
18*9880d681SAndroid Build Coastguard Worker; RUN:    -shared %t1.o %t2b.o -o %t3.o
19*9880d681SAndroid Build Coastguard Worker; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=B
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker; (i16 align 8) + (i8 align 16) = i16 align 16
22*9880d681SAndroid Build Coastguard Worker; B: @a = common global i16 0, align 16
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
25*9880d681SAndroid Build Coastguard Worker; RUN:    --plugin-opt=emit-llvm \
26*9880d681SAndroid Build Coastguard Worker; RUN:    -shared %t1.o %t2c.o -o %t3.o
27*9880d681SAndroid Build Coastguard Worker; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=C
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker; (i16 align 8) + (i8 align 1) = i16 align 8.
30*9880d681SAndroid Build Coastguard Worker; C: @a = common global i16 0, align 8
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
33*9880d681SAndroid Build Coastguard Worker; RUN:    --plugin-opt=emit-llvm \
34*9880d681SAndroid Build Coastguard Worker; RUN:    %t1.o %t2.o -o %t3.o
35*9880d681SAndroid Build Coastguard Worker; RUN: llvm-dis %t3.o -o - | FileCheck --check-prefix=EXEC %s
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker; All IR case, we internalize a after merging.
38*9880d681SAndroid Build Coastguard Worker; EXEC: @a = internal global i32 0, align 8
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Worker; RUN: llc %p/Inputs/common.ll -o %t2native.o -filetype=obj
41*9880d681SAndroid Build Coastguard Worker; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
42*9880d681SAndroid Build Coastguard Worker; RUN:    --plugin-opt=emit-llvm \
43*9880d681SAndroid Build Coastguard Worker; RUN:    %t1.o %t2native.o -o %t3.o
44*9880d681SAndroid Build Coastguard Worker; RUN: llvm-dis %t3.o -o - | FileCheck --check-prefix=MIXED %s
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Worker; Mixed ELF and IR. We keep ours as common so the linker will finish the merge.
47*9880d681SAndroid Build Coastguard Worker; MIXED: @a = common global i16 0, align 8
48