| ; REQUIRES: arm |
| ;; Test we can infer the e_machine value EM_ARM from a bitcode file. |
| |
| ; RUN: split-file %s %t |
| |
| ; RUN: llvm-as %t/arm.ll -o %t/arm.o |
| ; RUN: ld.lld %t/arm.o -o %t/arm |
| ; RUN: llvm-readobj -h %t/arm | FileCheck %s --check-prefix=ARM |
| ; RUN: llvm-as %t/armeb.ll -o %t/armeb.o |
| ; RUN: ld.lld %t/armeb.o -o %t/armeb |
| ; RUN: llvm-readobj -h %t/armeb | FileCheck %s --check-prefix=ARMEB |
| |
| ; RUN: llvm-as %t/thumb.ll -o %t/thumb.o |
| ; RUN: ld.lld %t/thumb.o -o %t/thumb |
| ; RUN: llvm-readobj -h %t/thumb | FileCheck %s --check-prefix=THUMB |
| ; RUN: llvm-as %t/thumbeb.ll -o %t/thumbeb.o |
| ; RUN: ld.lld %t/thumbeb.o -o %t/thumbeb |
| ; RUN: llvm-readobj -h %t/thumbeb | FileCheck %s --check-prefix=THUMBEB |
| |
| ; ARM: Class: 32-bit |
| ; ARM: DataEncoding: LittleEndian |
| ; ARM: Machine: EM_ARM ( |
| ; ARMEB: Class: 32-bit |
| ; ARMEB: DataEncoding: BigEndian |
| ; ARMEB: Machine: EM_ARM ( |
| |
| ; THUMB: Class: 32-bit |
| ; THUMB: DataEncoding: LittleEndian |
| ; THUMB: Machine: EM_ARM ( |
| ; THUMBEB: Class: 32-bit |
| ; THUMBEB: DataEncoding: BigEndian |
| ; THUMBEB: Machine: EM_ARM ( |
| |
| ;--- arm.ll |
| target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" |
| target triple = "armv7-linux-musleabi" |
| |
| define void @_start() { |
| ret void |
| } |
| |
| ;--- thumb.ll |
| target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" |
| target triple = "thumbv8m.base-none-unknown-gnueabi" |
| |
| define void @_start() { |
| ret void |
| } |
| |
| ;--- armeb.ll |
| target datalayout = "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" |
| target triple = "armebv7-unknown-linux-musleabi" |
| |
| define void @_start() { |
| ret void |
| } |
| |
| ;--- thumbeb.ll |
| target datalayout = "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" |
| target triple = "thumbebv8m.base-none-unknown-gnueabi" |
| |
| define void @_start() { |
| ret void |
| } |