llvm/lld/test/ELF/lto/aarch64.ll

; REQUIRES: aarch64
;; Test we can infer the e_machine value EM_AARCH64 from a bitcode file.

; RUN: split-file %s %t
; RUN: llvm-as %t/le.s -o %t/le.o
; RUN: ld.lld %t/le.o -o %t/le
; RUN: llvm-readobj -h %t/le | FileCheck %s --check-prefixes=CHECK,LE

; RUN: llvm-as %t/be.s -o %t/be.o
; RUN: ld.lld %t/be.o -o %t/be
; RUN: llvm-readobj -h %t/be | FileCheck %s --check-prefixes=CHECK,BE

; CHECK:   Class: 64-bit
; LE:      DataEncoding: LittleEndian
; BE:      DataEncoding: BigEndian
; CHECK: Machine: EM_AARCH64

;--- le.s
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-unknown-linux-gnu"

define void @_start() {
entry:
  ret void
}

;--- be.s
target datalayout = "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64_be-unknown-linux-gnu"

define void @_start() {
entry:
  ret void
}