| ; REQUIRES: ppc |
| ;; Test we can infer the e_machine value EM_PPC/EM_PPC64 from a bitcode file. |
| |
| ; RUN: split-file %s %t |
| ; RUN: llvm-as %t/32le.ll -o %t/32le.o |
| ; RUN: ld.lld %t/32le.o -o %t/32le |
| ; RUN: llvm-readobj -h %t/32le | FileCheck %s --check-prefix=LE32 |
| |
| ; RUN: llvm-as %t/32be.ll -o %t/32be.o |
| ; RUN: ld.lld %t/32be.o -o %t/32be |
| ; RUN: llvm-readobj -h %t/32be | FileCheck %s --check-prefix=BE32 |
| |
| ; RUN: llvm-as %t/64.ll -o %t/64.o |
| ; RUN: ld.lld %t/64.o -o %t/64 |
| ; RUN: llvm-readobj -h %t/64 | FileCheck %s --check-prefix=LE64 |
| |
| ; LE32: Class: 32-bit |
| ; LE32: DataEncoding: LittleEndian |
| ; LE32: Machine: EM_PPC ( |
| |
| ; BE32: Class: 32-bit |
| ; BE32: DataEncoding: BigEndian |
| ; BE32: Machine: EM_PPC ( |
| |
| ; LE64: Class: 64-bit |
| ; LE64: DataEncoding: LittleEndian |
| ; LE64: Machine: EM_PPC64 |
| |
| ;--- 32le.ll |
| target datalayout = "e-m:e-p:32:32-i64:64-n32" |
| target triple = "powerpcle-pc-freebsd" |
| |
| define void @_start() { |
| ret void |
| } |
| |
| ;--- 32be.ll |
| target datalayout = "E-m:e-p:32:32-i64:64-n32" |
| target triple = "powerpc-unknown-linux-gnu" |
| |
| define void @_start() { |
| ret void |
| } |
| |
| ;--- 64.ll |
| target datalayout = "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512" |
| target triple = "powerpc64le-unknown-linux-gnu" |
| |
| define void @_start() { |
| ret void |
| } |