xref: /llvm-project/llvm/test/MC/LoongArch/Directives/data.s (revision 3347f77b80758a04a942dd672d35d9fc15b8f41e)
1## Test data directives.
2# RUN: llvm-mc --triple=loongarch32 < %s \
3# RUN:     | FileCheck --check-prefix=CHECK-ASM %s
4# RUN: llvm-mc --triple=loongarch64 < %s \
5# RUN:     | FileCheck --check-prefix=CHECK-ASM %s
6# RUN: llvm-mc --triple=loongarch32 --filetype=obj < %s | llvm-objdump -s - \
7# RUN:     | FileCheck --check-prefix=CHECK-DATA %s
8# RUN: llvm-mc --triple=loongarch64 --filetype=obj < %s | llvm-objdump -s - \
9# RUN:     | FileCheck --check-prefix=CHECK-DATA %s
10# RUN: not llvm-mc --triple=loongarch32 --defsym=ERR=1 < %s 2>&1 \
11# RUN:     | FileCheck %s --check-prefix=CHECK-ERR
12# RUN: not llvm-mc --triple=loongarch64 --defsym=ERR=1 < %s 2>&1 \
13# RUN:     | FileCheck %s --check-prefix=CHECK-ERR
14
15.data
16
17# CHECK-ASM:      .byte 0
18# CHECK-ASM-NEXT: .byte 1
19# CHECK-ASM-NEXT: .byte 171
20# CHECK-ASM-NEXT: .byte 255
21# CHECK-DATA: Contents of section .data:
22# CHECK-DATA-NEXT: 0000 0001abff 0100ffff 0100ffff 0100ffff
23.byte 0
24.byte 1
25.byte 0xab
26.byte 0xff
27
28# CHECK-ASM:      .half 1
29# CHECK-ASM-NEXT: .half 65535
30.half 0x1
31.half 0xffff
32
33# CHECK-ASM:      .half 1
34# CHECK-ASM-NEXT: .half 65535
35.2byte 0x1
36.2byte 0xffff
37
38# CHECK-ASM:      .half 1
39# CHECK-ASM-NEXT: .half 65535
40.short 0x1
41.short 0xffff
42
43# CHECK-ASM:      .half 0
44# CHECK-ASM-NEXT: .half 1
45# CHECK-ASM-NEXT: .half 4660
46# CHECK-ASM-NEXT: .half 65535
47# CHECK-DATA-NEXT: 0010 00000100 3412ffff 01000000 ffffffff
48.hword 0
49.hword 0x1
50.hword 0x1234
51.hword 0xffff
52
53# CHECK-ASM:      .word 1
54# CHECK-ASM-NEXT: .word 4294967295
55.word 0x1
56.word 0xffffffff
57
58# CHECK-ASM:      .word 1
59# CHECK-ASM-NEXT: .word 4294967295
60# CHECK-DATA-NEXT: 0020 01000000 ffffffff 01000000 ffffffff
61.long 0x1
62.long 0xffffffff
63
64# CHECK-ASM:      .word 1
65# CHECK-ASM-NEXT: .word 4294967295
66.4byte 0x1
67.4byte 0xffffffff
68
69# CHECK-ASM:      .dword 1
70# CHECK-ASM-NEXT: .dword 1234605616436508552
71# CHECK-DATA-NEXT: 0030 01000000 00000000 88776655 44332211
72.dword 0x1
73.dword 0x1122334455667788
74
75# CHECK-ASM:      .dword 1
76# CHECK-ASM-NEXT: .dword 1234605616436508552
77# CHECK-DATA-NEXT: 0040 01000000 00000000 88776655 44332211
78.8byte 0x1
79.8byte 0x1122334455667788
80
81.ifdef ERR
82# CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value
83.byte 0xffa
84# CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value
85.half 0xffffa
86# CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value
87.short 0xffffa
88# CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value
89.hword 0xffffa
90# CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value
91.2byte 0xffffa
92# CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value
93.word 0xffffffffa
94# CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value
95.long 0xffffffffa
96# CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value
97.4byte 0xffffffffa
98# CHECK-ERR: :[[#@LINE+1]]:8: error: literal value out of range for directive
99.dword 0xffffffffffffffffa
100# CHECK-ERR: :[[#@LINE+1]]:8: error: literal value out of range for directive
101.8byte 0xffffffffffffffffa
102.endif
103