1// RUN: llvm-mc %s -triple=arm64-apple-darwin -filetype=asm -o - \
2// RUN:   | FileCheck %s --check-prefix=CHECK-ASM
3// RUN: llvm-mc %s -triple=arm64-apple-darwin -filetype=obj -o - \
4// RUN:   | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-CODE
5// RUN: llvm-mc %s -triple=aarch64-win32-gnu -filetype=asm -o - \
6// RUN:   | FileCheck %s --check-prefix=CHECK-ASM
7// RUN: llvm-mc %s -triple=aarch64-win32-gnu -filetype=obj -o - \
8// RUN:   | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-CODE
9// RUN: llvm-mc %s -triple=aarch64-linux-gnu -filetype=asm -o - \
10// RUN:   | FileCheck %s --check-prefix=CHECK-ASM
11// RUN: llvm-mc %s -triple=aarch64-linux-gnu -filetype=obj -o - \
12// RUN:   | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-DATA
13// RUN: llvm-mc %s -triple=aarch64_be-linux-gnu -filetype=asm -o - \
14// RUN:   | FileCheck %s --check-prefix=CHECK-ASM
15// RUN: llvm-mc %s -triple=aarch64_be-linux-gnu -filetype=obj -o - \
16// RUN:   | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-BE
17
18    .text
19
20    .p2align  2
21    .globl _func
22_func:
23    nop
24    // A .long is stored differently for big endian aarch64 targets, while
25    // instructions always are stored in little endian.
26    // ELF distinguishes between data and code when emitted this way, but
27    // MachO and COFF don't.
28    .long 0xd503201f
29    .inst 0xd503201f
30
31// CHECK-ASM:        .p2align  2
32// CHECK-ASM:        .globl  _func
33// CHECK-ASM: _func:
34// CHECK-ASM:        nop
35// CHECK-ASM:        .{{long|word}}   3573751839
36// CHECK-ASM:        .inst   0xd503201f
37
38// CHECK-OBJ:        0:       1f 20 03 d5     nop
39// CHECK-OBJ-CODE:   4:       1f 20 03 d5     nop
40// CHECK-OBJ-DATA:   4:       1f 20 03 d5     .word 0xd503201f
41// CHECK-OBJ-BE:     4:       d5 03 20 1f     .word 0xd503201f
42// CHECK-OBJ:        8:       1f 20 03 d5     nop
43