1
1
# Xqcilo - Qualcomm uC Large Offset Load Store extension
2
2
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcilo -M no-aliases -show-encoding \
3
- # RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST %s
3
+ # RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-NOALIAS %s
4
4
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcilo < %s \
5
5
# RUN: | llvm-objdump --mattr=+experimental-xqcilo -M no-aliases --no-print-imm-hex -d - \
6
6
# RUN: | FileCheck -check-prefix=CHECK-INST %s
7
7
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcilo -show-encoding \
8
- # RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST %s
8
+ # RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-ALIAS %s
9
9
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcilo < %s \
10
10
# RUN: | llvm-objdump --mattr=+experimental-xqcilo --no-print-imm-hex -d - \
11
11
# RUN: | FileCheck -check-prefix=CHECK-INST %s
12
12
13
- # CHECK-INST: qc.e.lb a1, 12 (a0)
14
- # CHECK-ENC: encoding: [0x9f,0x55,0xc5,0x00,0x00 ,0x00]
15
- qc.e.lb x11, 12 (x10)
13
+ # CHECK-INST: qc.e.lb a1, 3000 (a0)
14
+ # CHECK-ENC: encoding: [0x9f,0x55,0x85,0x3b,0x02 ,0x00]
15
+ qc.e.lb x11, 3000 (x10)
16
16
17
17
# CHECK-INST: qc.e.lb a1, -33554432(a0)
18
18
# CHECK-ENC: encoding: [0x9f,0x55,0x05,0x00,0x00,0x80]
@@ -23,9 +23,9 @@ qc.e.lb x11, -33554432(x10)
23
23
qc.e.lb x11, 33554431 (x10)
24
24
25
25
26
- # CHECK-INST: qc.e.lbu a1, 12 (a0)
27
- # CHECK-ENC: encoding: [0x9f,0x55,0xc5,0x40,0x00 ,0x00]
28
- qc.e.lbu x11, 12 (x10)
26
+ # CHECK-INST: qc.e.lbu a1, 3000 (a0)
27
+ # CHECK-ENC: encoding: [0x9f,0x55,0x85,0x7b,0x02 ,0x00]
28
+ qc.e.lbu x11, 3000 (x10)
29
29
30
30
# CHECK-INST: qc.e.lbu a1, -33554432(a0)
31
31
# CHECK-ENC: encoding: [0x9f,0x55,0x05,0x40,0x00,0x80]
@@ -36,9 +36,9 @@ qc.e.lbu x11, -33554432(x10)
36
36
qc.e.lbu x11, 33554431 (x10)
37
37
38
38
39
- # CHECK-INST: qc.e.lh a1, 12 (a0)
40
- # CHECK-ENC: encoding: [0x9f,0x55,0xc5,0x80,0x00 ,0x00]
41
- qc.e.lh x11, 12 (x10)
39
+ # CHECK-INST: qc.e.lh a1, 3000 (a0)
40
+ # CHECK-ENC: encoding: [0x9f,0x55,0x85,0xbb,0x02 ,0x00]
41
+ qc.e.lh x11, 3000 (x10)
42
42
43
43
# CHECK-INST: qc.e.lh a1, -33554432(a0)
44
44
# CHECK-ENC: encoding: [0x9f,0x55,0x05,0x80,0x00,0x80]
@@ -49,9 +49,9 @@ qc.e.lh x11, -33554432(x10)
49
49
qc.e.lh x11, 33554431 (x10)
50
50
51
51
52
- # CHECK-INST: qc.e.lhu a1, 12 (a0)
53
- # CHECK-ENC: encoding: [0x9f,0x55,0xc5,0xc0,0x00 ,0x00]
54
- qc.e.lhu x11, 12 (x10)
52
+ # CHECK-INST: qc.e.lhu a1, 3000 (a0)
53
+ # CHECK-ENC: encoding: [0x9f,0x55,0x85,0xfb,0x02 ,0x00]
54
+ qc.e.lhu x11, 3000 (x10)
55
55
56
56
# CHECK-INST: qc.e.lhu a1, -33554432(a0)
57
57
# CHECK-ENC: encoding: [0x9f,0x55,0x05,0xc0,0x00,0x80]
@@ -62,9 +62,9 @@ qc.e.lhu x11, -33554432(x10)
62
62
qc.e.lhu x11, 33554431 (x10)
63
63
64
64
65
- # CHECK-INST: qc.e.lw a1, 12 (a0)
66
- # CHECK-ENC: encoding: [0x9f,0x65,0xc5,0x00,0x00 ,0x00]
67
- qc.e.lw x11, 12 (x10)
65
+ # CHECK-INST: qc.e.lw a1, 3000 (a0)
66
+ # CHECK-ENC: encoding: [0x9f,0x65,0x85,0x3b,0x02 ,0x00]
67
+ qc.e.lw x11, 3000 (x10)
68
68
69
69
# CHECK-INST: qc.e.lw a1, -33554432(a0)
70
70
# CHECK-ENC: encoding: [0x9f,0x65,0x05,0x00,0x00,0x80]
@@ -75,9 +75,9 @@ qc.e.lw x11, -33554432(x10)
75
75
qc.e.lw x11, 33554431 (x10)
76
76
77
77
78
- # CHECK-INST: qc.e.sb a1, 12 (a0)
79
- # CHECK-ENC: encoding: [0x1f,0x66 ,0xb5,0x40,0x00 ,0x00]
80
- qc.e.sb x11, 12 (x10)
78
+ # CHECK-INST: qc.e.sb a1, 3000 (a0)
79
+ # CHECK-ENC: encoding: [0x1f,0x6c ,0xb5,0x7a,0x02 ,0x00]
80
+ qc.e.sb x11, 3000 (x10)
81
81
82
82
# CHECK-INST: qc.e.sb a1, -33554432(a0)
83
83
# CHECK-ENC: encoding: [0x1f,0x60,0xb5,0x40,0x00,0x80]
@@ -88,9 +88,9 @@ qc.e.sb x11, -33554432(x10)
88
88
qc.e.sb x11, 33554431 (x10)
89
89
90
90
91
- # CHECK-INST: qc.e.sh a1, 12 (a0)
92
- # CHECK-ENC: encoding: [0x1f,0x66 ,0xb5,0x80,0x00 ,0x00]
93
- qc.e.sh x11, 12 (x10)
91
+ # CHECK-INST: qc.e.sh a1, 3000 (a0)
92
+ # CHECK-ENC: encoding: [0x1f,0x6c ,0xb5,0xba,0x02 ,0x00]
93
+ qc.e.sh x11, 3000 (x10)
94
94
95
95
# CHECK-INST: qc.e.sh a1, -33554432(a0)
96
96
# CHECK-ENC: encoding: [0x1f,0x60,0xb5,0x80,0x00,0x80]
@@ -101,9 +101,9 @@ qc.e.sh x11, -33554432(x10)
101
101
qc.e.sh x11, 33554431 (x10)
102
102
103
103
104
- # CHECK-INST: qc.e.sw a1, 12 (a0)
105
- # CHECK-ENC: encoding: [0x1f,0x66 ,0xb5,0xc0,0x00 ,0x00]
106
- qc.e.sw x11, 12 (x10)
104
+ # CHECK-INST: qc.e.sw a1, 3000 (a0)
105
+ # CHECK-ENC: encoding: [0x1f,0x6c ,0xb5,0xfa,0x02 ,0x00]
106
+ qc.e.sw x11, 3000 (x10)
107
107
108
108
# CHECK-INST: qc.e.sw a1, -33554432(a0)
109
109
# CHECK-ENC: encoding: [0x1f,0x60,0xb5,0xc0,0x00,0x80]
@@ -112,3 +112,57 @@ qc.e.sw x11, -33554432(x10)
112
112
# CHECK-INST: qc.e.sw a1, 33554431(a0)
113
113
# CHECK-ENC: encoding: [0x9f,0x6f,0xb5,0xfe,0xff,0x7f]
114
114
qc.e.sw x11, 33554431 (x10)
115
+
116
+ # Check that compressed patterns work
117
+
118
+ # CHECK-INST: lb a1, 100(a0)
119
+ # CHECK-ENC: encoding: [0x83,0x05,0x45,0x06]
120
+ qc.e.lb x11, 100 (x10)
121
+
122
+ # CHECK-INST: lbu a1, 200(a0)
123
+ # CHECK-ENC: encoding: [0x83,0x45,0x85,0x0c]
124
+ qc.e.lbu x11, 200 (x10)
125
+
126
+ # CHECK-INST: lh a1, 300(a0)
127
+ # CHECK-ENC: encoding: [0x83,0x15,0xc5,0x12]
128
+ qc.e.lh x11, 300 (x10)
129
+
130
+ # CHECK-INST: lhu a1, 400(a0)
131
+ # CHECK-ENC: encoding: [0x83,0x55,0x05,0x19]
132
+ qc.e.lhu x11, 400 (x10)
133
+
134
+ # CHECK-INST: lw a1, 500(a0)
135
+ # CHECK-ENC: encoding: [0x83,0x25,0x45,0x1f]
136
+ qc.e.lw x11, 500 (x10)
137
+
138
+ # CHECK-INST: sb a1, 600(a0)
139
+ # CHECK-ENC: encoding: [0x23,0x0c,0xb5,0x24]
140
+ qc.e.sb x11, 600 (x10)
141
+
142
+ # CHECK-INST: sh a1, 700(a0)
143
+ # CHECK-ENC: encoding: [0x23,0x1e,0xb5,0x2a]
144
+ qc.e.sh x11, 700 (x10)
145
+
146
+ # CHECK-INST: sw a1, 800(a0)
147
+ # CHECK-ENC: encoding: [0x23,0x20,0xb5,0x32]
148
+ qc.e.sw x11, 800 (x10)
149
+
150
+ # CHECK-ALIAS: lw a1, 32(a0)
151
+ # CHECK-NOALIAS: c.lw a1, 32(a0)
152
+ # CHECK-ENC: encoding: [0x0c,0x51]
153
+ qc.e.lw x11, 32 (x10)
154
+
155
+ # CHECK-ALIAS: sw a1, 124(a0)
156
+ # CHECK-NOALIAS: c.sw a1, 124(a0)
157
+ # CHECK-ENC: encoding: [0x6c,0xdd]
158
+ qc.e.sw x11, 124 (x10)
159
+
160
+ # CHECK-ALIAS: lw ra, 64(sp)
161
+ # CHECK-NOALIAS: c.lwsp ra, 64(sp)
162
+ # CHECK-ENC: encoding: [0x86,0x40]
163
+ qc.e.lw x1, 64 (x2)
164
+
165
+ # CHECK-ALIAS: sw a1, 252(sp)
166
+ # CHECK-NOALIAS: c.swsp a1, 252(sp)
167
+ # CHECK-ENC: encoding: [0xae,0xdf]
168
+ qc.e.sw x11, 252 (x2)
0 commit comments