[SLP]Reduce number of alternate instruction, where possible
[llvm-project.git] / llvm / test / MC / LoongArch / Directives / data.s
blobe3c66d10b18a054b1f694ee6d3864e3fb84df955
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
15 .data
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
28 # CHECK-ASM: .half 1
29 # CHECK-ASM-NEXT: .half 65535
30 .half 0x1
31 .half 0xffff
33 # CHECK-ASM: .half 1
34 # CHECK-ASM-NEXT: .half 65535
35 .2byte 0x1
36 .2byte 0xffff
38 # CHECK-ASM: .half 1
39 # CHECK-ASM-NEXT: .half 65535
40 .short 0x1
41 .short 0xffff
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
53 # CHECK-ASM: .word 1
54 # CHECK-ASM-NEXT: .word 4294967295
55 .word 0x1
56 .word 0xffffffff
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
64 # CHECK-ASM: .word 1
65 # CHECK-ASM-NEXT: .word 4294967295
66 .4byte 0x1
67 .4byte 0xffffffff
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
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
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