xref: /llvm-project/lld/test/ELF/lto/arm.ll (revision 89f095d20469f5343d9652ec70e53837978abc61)
1; REQUIRES: arm
2;; Test we can infer the e_machine value EM_ARM from a bitcode file.
3
4; RUN: split-file %s %t
5
6; RUN: llvm-as %t/arm.ll -o %t/arm.o
7; RUN: ld.lld %t/arm.o -o %t/arm
8; RUN: llvm-readobj -h %t/arm | FileCheck %s --check-prefix=ARM
9; RUN: llvm-as %t/armeb.ll -o %t/armeb.o
10; RUN: ld.lld %t/armeb.o -o %t/armeb
11; RUN: llvm-readobj -h %t/armeb | FileCheck %s --check-prefix=ARMEB
12
13; RUN: llvm-as %t/thumb.ll -o %t/thumb.o
14; RUN: ld.lld %t/thumb.o -o %t/thumb
15; RUN: llvm-readobj -h %t/thumb | FileCheck %s --check-prefix=THUMB
16; RUN: llvm-as %t/thumbeb.ll -o %t/thumbeb.o
17; RUN: ld.lld %t/thumbeb.o -o %t/thumbeb
18; RUN: llvm-readobj -h %t/thumbeb | FileCheck %s --check-prefix=THUMBEB
19
20; ARM:       Class: 32-bit
21; ARM:       DataEncoding: LittleEndian
22; ARM:     Machine: EM_ARM (
23; ARMEB:     Class: 32-bit
24; ARMEB:     DataEncoding: BigEndian
25; ARMEB:   Machine: EM_ARM (
26
27; THUMB:     Class: 32-bit
28; THUMB:     DataEncoding: LittleEndian
29; THUMB:   Machine: EM_ARM (
30; THUMBEB:   Class: 32-bit
31; THUMBEB:   DataEncoding: BigEndian
32; THUMBEB: Machine: EM_ARM (
33
34;--- arm.ll
35target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
36target triple = "armv7-linux-musleabi"
37
38define void @_start() {
39  ret void
40}
41
42;--- thumb.ll
43target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
44target triple = "thumbv8m.base-none-unknown-gnueabi"
45
46define void @_start() {
47  ret void
48}
49
50;--- armeb.ll
51target datalayout = "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
52target triple = "armebv7-unknown-linux-musleabi"
53
54define void @_start() {
55  ret void
56}
57
58;--- thumbeb.ll
59target datalayout = "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
60target triple = "thumbebv8m.base-none-unknown-gnueabi"
61
62define void @_start() {
63  ret void
64}
65