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