Skip to content

Commit 27b4928

Browse files
authored
[RISCV] Add exhaustive diassember tests for c.slli64. NFC (#133820)
The c.slli encoding with a shift of 0 is c.slli64 for RV128 and a hint for RV32 and RV64. Add a test for this encoding to the exhaustive c.slli test.
1 parent dd86235 commit 27b4928

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

llvm/test/MC/Disassembler/RISCV/c_slli.txt

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
# RUN: -M no-aliases --show-encoding < %s 2>&1 | \
1515
# RUN: FileCheck --check-prefix=NOHINTS %s
1616

17+
0x02 0x00 # GOOD: c.slli64 zero
18+
0x02 0x00 # NOHINTS: invalid instruction encoding
1719
0x06 0x00 # GOOD: c.slli zero, 1
1820
0x06 0x00 # NOHINTS: invalid instruction encoding
1921
0x0A 0x00 # GOOD: c.slli zero, 2
@@ -172,6 +174,10 @@
172174
0x7E 0x10 # BAD32: invalid instruction encoding
173175
0x7E 0x10 # GOOD64: c.slli zero, 63
174176
0x7E 0x10 # NOHINTS: invalid instruction encoding
177+
# GOOD: c.slli64 ra
178+
# NOHINTS: invalid instruction encoding
179+
0x82 0x00
180+
0x86 0x00 # GOOD: c.slli ra, 1
175181
0x86 0x00 # GOOD: c.slli ra, 1
176182
0x8A 0x00 # GOOD: c.slli ra, 2
177183
0x8E 0x00 # GOOD: c.slli ra, 3
@@ -267,6 +273,9 @@
267273
0xFA 0x10 # GOOD64: c.slli ra, 62
268274
0xFE 0x10 # BAD32: invalid instruction encoding
269275
0xFE 0x10 # GOOD64: c.slli ra, 63
276+
# GOOD: c.slli64 sp
277+
# NOHINTS: invalid instruction encoding
278+
0x02 0x01
270279
0x06 0x01 # GOOD: c.slli sp, 1
271280
0x0A 0x01 # GOOD: c.slli sp, 2
272281
0x0E 0x01 # GOOD: c.slli sp, 3
@@ -362,6 +371,9 @@
362371
0x7A 0x11 # GOOD64: c.slli sp, 62
363372
0x7E 0x11 # BAD32: invalid instruction encoding
364373
0x7E 0x11 # GOOD64: c.slli sp, 63
374+
# GOOD: c.slli64 gp
375+
# NOHINTS: invalid instruction encoding
376+
0x82 0x01
365377
0x86 0x01 # GOOD: c.slli gp, 1
366378
0x8A 0x01 # GOOD: c.slli gp, 2
367379
0x8E 0x01 # GOOD: c.slli gp, 3
@@ -457,6 +469,9 @@
457469
0xFA 0x11 # GOOD64: c.slli gp, 62
458470
0xFE 0x11 # BAD32: invalid instruction encoding
459471
0xFE 0x11 # GOOD64: c.slli gp, 63
472+
# GOOD: c.slli64 tp
473+
# NOHINTS: invalid instruction encoding
474+
0x02 0x02
460475
0x06 0x02 # GOOD: c.slli tp, 1
461476
0x0A 0x02 # GOOD: c.slli tp, 2
462477
0x0E 0x02 # GOOD: c.slli tp, 3
@@ -552,6 +567,9 @@
552567
0x7A 0x12 # GOOD64: c.slli tp, 62
553568
0x7E 0x12 # BAD32: invalid instruction encoding
554569
0x7E 0x12 # GOOD64: c.slli tp, 63
570+
# GOOD: c.slli64 t0
571+
# NOHINTS: invalid instruction encoding
572+
0x82 0x02
555573
0x86 0x02 # GOOD: c.slli t0, 1
556574
0x8A 0x02 # GOOD: c.slli t0, 2
557575
0x8E 0x02 # GOOD: c.slli t0, 3
@@ -647,6 +665,9 @@
647665
0xFA 0x12 # GOOD64: c.slli t0, 62
648666
0xFE 0x12 # BAD32: invalid instruction encoding
649667
0xFE 0x12 # GOOD64: c.slli t0, 63
668+
# GOOD: c.slli64 t1
669+
# NOHINTS: invalid instruction encoding
670+
0x02 0x03
650671
0x06 0x03 # GOOD: c.slli t1, 1
651672
0x0A 0x03 # GOOD: c.slli t1, 2
652673
0x0E 0x03 # GOOD: c.slli t1, 3
@@ -742,6 +763,9 @@
742763
0x7A 0x13 # GOOD64: c.slli t1, 62
743764
0x7E 0x13 # BAD32: invalid instruction encoding
744765
0x7E 0x13 # GOOD64: c.slli t1, 63
766+
# GOOD: c.slli64 t2
767+
# NOHINTS: invalid instruction encoding
768+
0x82 0x03
745769
0x86 0x03 # GOOD: c.slli t2, 1
746770
0x8A 0x03 # GOOD: c.slli t2, 2
747771
0x8E 0x03 # GOOD: c.slli t2, 3
@@ -837,6 +861,9 @@
837861
0xFA 0x13 # GOOD64: c.slli t2, 62
838862
0xFE 0x13 # BAD32: invalid instruction encoding
839863
0xFE 0x13 # GOOD64: c.slli t2, 63
864+
# GOOD: c.slli64 s0
865+
# NOHINTS: invalid instruction encoding
866+
0x02 0x04
840867
0x06 0x04 # GOOD: c.slli s0, 1
841868
0x0A 0x04 # GOOD: c.slli s0, 2
842869
0x0E 0x04 # GOOD: c.slli s0, 3
@@ -932,6 +959,9 @@
932959
0x7A 0x14 # GOOD64: c.slli s0, 62
933960
0x7E 0x14 # BAD32: invalid instruction encoding
934961
0x7E 0x14 # GOOD64: c.slli s0, 63
962+
# GOOD: c.slli64 s1
963+
# NOHINTS: invalid instruction encoding
964+
0x82 0x04
935965
0x86 0x04 # GOOD: c.slli s1, 1
936966
0x8A 0x04 # GOOD: c.slli s1, 2
937967
0x8E 0x04 # GOOD: c.slli s1, 3
@@ -1027,6 +1057,9 @@
10271057
0xFA 0x14 # GOOD64: c.slli s1, 62
10281058
0xFE 0x14 # BAD32: invalid instruction encoding
10291059
0xFE 0x14 # GOOD64: c.slli s1, 63
1060+
# GOOD: c.slli64 a0
1061+
# NOHINTS: invalid instruction encoding
1062+
0x02 0x05
10301063
0x06 0x05 # GOOD: c.slli a0, 1
10311064
0x0A 0x05 # GOOD: c.slli a0, 2
10321065
0x0E 0x05 # GOOD: c.slli a0, 3
@@ -1122,6 +1155,9 @@
11221155
0x7A 0x15 # GOOD64: c.slli a0, 62
11231156
0x7E 0x15 # BAD32: invalid instruction encoding
11241157
0x7E 0x15 # GOOD64: c.slli a0, 63
1158+
# GOOD: c.slli64 a1
1159+
# NOHINTS: invalid instruction encoding
1160+
0x82 0x05
11251161
0x86 0x05 # GOOD: c.slli a1, 1
11261162
0x8A 0x05 # GOOD: c.slli a1, 2
11271163
0x8E 0x05 # GOOD: c.slli a1, 3
@@ -1217,6 +1253,9 @@
12171253
0xFA 0x15 # GOOD64: c.slli a1, 62
12181254
0xFE 0x15 # BAD32: invalid instruction encoding
12191255
0xFE 0x15 # GOOD64: c.slli a1, 63
1256+
# GOOD: c.slli64 a2
1257+
# NOHINTS: invalid instruction encoding
1258+
0x02 0x06
12201259
0x06 0x06 # GOOD: c.slli a2, 1
12211260
0x0A 0x06 # GOOD: c.slli a2, 2
12221261
0x0E 0x06 # GOOD: c.slli a2, 3
@@ -1312,6 +1351,9 @@
13121351
0x7A 0x16 # GOOD64: c.slli a2, 62
13131352
0x7E 0x16 # BAD32: invalid instruction encoding
13141353
0x7E 0x16 # GOOD64: c.slli a2, 63
1354+
# GOOD: c.slli64 a3
1355+
# NOHINTS: invalid instruction encoding
1356+
0x82 0x06
13151357
0x86 0x06 # GOOD: c.slli a3, 1
13161358
0x8A 0x06 # GOOD: c.slli a3, 2
13171359
0x8E 0x06 # GOOD: c.slli a3, 3
@@ -1407,6 +1449,9 @@
14071449
0xFA 0x16 # GOOD64: c.slli a3, 62
14081450
0xFE 0x16 # BAD32: invalid instruction encoding
14091451
0xFE 0x16 # GOOD64: c.slli a3, 63
1452+
# GOOD: c.slli64 a4
1453+
# NOHINTS: invalid instruction encoding
1454+
0x02 0x07
14101455
0x06 0x07 # GOOD: c.slli a4, 1
14111456
0x0A 0x07 # GOOD: c.slli a4, 2
14121457
0x0E 0x07 # GOOD: c.slli a4, 3
@@ -1502,6 +1547,9 @@
15021547
0x7A 0x17 # GOOD64: c.slli a4, 62
15031548
0x7E 0x17 # BAD32: invalid instruction encoding
15041549
0x7E 0x17 # GOOD64: c.slli a4, 63
1550+
# GOOD: c.slli64 a5
1551+
# NOHINTS: invalid instruction encoding
1552+
0x82 0x07
15051553
0x86 0x07 # GOOD: c.slli a5, 1
15061554
0x8A 0x07 # GOOD: c.slli a5, 2
15071555
0x8E 0x07 # GOOD: c.slli a5, 3
@@ -1597,6 +1645,9 @@
15971645
0xFA 0x17 # GOOD64: c.slli a5, 62
15981646
0xFE 0x17 # BAD32: invalid instruction encoding
15991647
0xFE 0x17 # GOOD64: c.slli a5, 63
1648+
# GOOD: c.slli64 a6
1649+
# NOHINTS: invalid instruction encoding
1650+
0x02 0x08
16001651
0x06 0x08 # GOOD: c.slli a6, 1
16011652
0x0A 0x08 # GOOD: c.slli a6, 2
16021653
0x0E 0x08 # GOOD: c.slli a6, 3
@@ -1692,6 +1743,9 @@
16921743
0x7A 0x18 # GOOD64: c.slli a6, 62
16931744
0x7E 0x18 # BAD32: invalid instruction encoding
16941745
0x7E 0x18 # GOOD64: c.slli a6, 63
1746+
# GOOD: c.slli64 a7
1747+
# NOHINTS: invalid instruction encoding
1748+
0x82 0x08
16951749
0x86 0x08 # GOOD: c.slli a7, 1
16961750
0x8A 0x08 # GOOD: c.slli a7, 2
16971751
0x8E 0x08 # GOOD: c.slli a7, 3
@@ -1787,6 +1841,9 @@
17871841
0xFA 0x18 # GOOD64: c.slli a7, 62
17881842
0xFE 0x18 # BAD32: invalid instruction encoding
17891843
0xFE 0x18 # GOOD64: c.slli a7, 63
1844+
# GOOD: c.slli64 s2
1845+
# NOHINTS: invalid instruction encoding
1846+
0x02 0x09
17901847
0x06 0x09 # GOOD: c.slli s2, 1
17911848
0x0A 0x09 # GOOD: c.slli s2, 2
17921849
0x0E 0x09 # GOOD: c.slli s2, 3
@@ -1882,6 +1939,9 @@
18821939
0x7A 0x19 # GOOD64: c.slli s2, 62
18831940
0x7E 0x19 # BAD32: invalid instruction encoding
18841941
0x7E 0x19 # GOOD64: c.slli s2, 63
1942+
# GOOD: c.slli64 s3
1943+
# NOHINTS: invalid instruction encoding
1944+
0x82 0x09
18851945
0x86 0x09 # GOOD: c.slli s3, 1
18861946
0x8A 0x09 # GOOD: c.slli s3, 2
18871947
0x8E 0x09 # GOOD: c.slli s3, 3
@@ -1977,6 +2037,9 @@
19772037
0xFA 0x19 # GOOD64: c.slli s3, 62
19782038
0xFE 0x19 # BAD32: invalid instruction encoding
19792039
0xFE 0x19 # GOOD64: c.slli s3, 63
2040+
# GOOD: c.slli64 s4
2041+
# NOHINTS: invalid instruction encoding
2042+
0x02 0x0A
19802043
0x06 0x0A # GOOD: c.slli s4, 1
19812044
0x0A 0x0A # GOOD: c.slli s4, 2
19822045
0x0E 0x0A # GOOD: c.slli s4, 3
@@ -2072,6 +2135,9 @@
20722135
0x7A 0x1A # GOOD64: c.slli s4, 62
20732136
0x7E 0x1A # BAD32: invalid instruction encoding
20742137
0x7E 0x1A # GOOD64: c.slli s4, 63
2138+
# GOOD: c.slli64 s5
2139+
# NOHINTS: invalid instruction encoding
2140+
0x82 0x0A
20752141
0x86 0x0A # GOOD: c.slli s5, 1
20762142
0x8A 0x0A # GOOD: c.slli s5, 2
20772143
0x8E 0x0A # GOOD: c.slli s5, 3
@@ -2167,6 +2233,9 @@
21672233
0xFA 0x1A # GOOD64: c.slli s5, 62
21682234
0xFE 0x1A # BAD32: invalid instruction encoding
21692235
0xFE 0x1A # GOOD64: c.slli s5, 63
2236+
# GOOD: c.slli64 s6
2237+
# NOHINTS: invalid instruction encoding
2238+
0x02 0x0B
21702239
0x06 0x0B # GOOD: c.slli s6, 1
21712240
0x0A 0x0B # GOOD: c.slli s6, 2
21722241
0x0E 0x0B # GOOD: c.slli s6, 3
@@ -2262,6 +2331,9 @@
22622331
0x7A 0x1B # GOOD64: c.slli s6, 62
22632332
0x7E 0x1B # BAD32: invalid instruction encoding
22642333
0x7E 0x1B # GOOD64: c.slli s6, 63
2334+
# GOOD: c.slli64 s7
2335+
# NOHINTS: invalid instruction encoding
2336+
0x82 0x0B
22652337
0x86 0x0B # GOOD: c.slli s7, 1
22662338
0x8A 0x0B # GOOD: c.slli s7, 2
22672339
0x8E 0x0B # GOOD: c.slli s7, 3
@@ -2357,6 +2429,9 @@
23572429
0xFA 0x1B # GOOD64: c.slli s7, 62
23582430
0xFE 0x1B # BAD32: invalid instruction encoding
23592431
0xFE 0x1B # GOOD64: c.slli s7, 63
2432+
# GOOD: c.slli64 s8
2433+
# NOHINTS: invalid instruction encoding
2434+
0x02 0x0C
23602435
0x06 0x0C # GOOD: c.slli s8, 1
23612436
0x0A 0x0C # GOOD: c.slli s8, 2
23622437
0x0E 0x0C # GOOD: c.slli s8, 3
@@ -2452,6 +2527,9 @@
24522527
0x7A 0x1C # GOOD64: c.slli s8, 62
24532528
0x7E 0x1C # BAD32: invalid instruction encoding
24542529
0x7E 0x1C # GOOD64: c.slli s8, 63
2530+
# GOOD: c.slli64 s9
2531+
# NOHINTS: invalid instruction encoding
2532+
0x82 0x0C
24552533
0x86 0x0C # GOOD: c.slli s9, 1
24562534
0x8A 0x0C # GOOD: c.slli s9, 2
24572535
0x8E 0x0C # GOOD: c.slli s9, 3
@@ -2547,6 +2625,9 @@
25472625
0xFA 0x1C # GOOD64: c.slli s9, 62
25482626
0xFE 0x1C # BAD32: invalid instruction encoding
25492627
0xFE 0x1C # GOOD64: c.slli s9, 63
2628+
# GOOD: c.slli64 s10
2629+
# NOHINTS: invalid instruction encoding
2630+
0x02 0x0D
25502631
0x06 0x0D # GOOD: c.slli s10, 1
25512632
0x0A 0x0D # GOOD: c.slli s10, 2
25522633
0x0E 0x0D # GOOD: c.slli s10, 3
@@ -2642,6 +2723,9 @@
26422723
0x7A 0x1D # GOOD64: c.slli s10, 62
26432724
0x7E 0x1D # BAD32: invalid instruction encoding
26442725
0x7E 0x1D # GOOD64: c.slli s10, 63
2726+
# GOOD: c.slli64 s11
2727+
# NOHINTS: invalid instruction encoding
2728+
0x82 0x0D
26452729
0x86 0x0D # GOOD: c.slli s11, 1
26462730
0x8A 0x0D # GOOD: c.slli s11, 2
26472731
0x8E 0x0D # GOOD: c.slli s11, 3
@@ -2737,6 +2821,9 @@
27372821
0xFA 0x1D # GOOD64: c.slli s11, 62
27382822
0xFE 0x1D # BAD32: invalid instruction encoding
27392823
0xFE 0x1D # GOOD64: c.slli s11, 63
2824+
# GOOD: c.slli64 t3
2825+
# NOHINTS: invalid instruction encoding
2826+
0x02 0x0E
27402827
0x06 0x0E # GOOD: c.slli t3, 1
27412828
0x0A 0x0E # GOOD: c.slli t3, 2
27422829
0x0E 0x0E # GOOD: c.slli t3, 3
@@ -2832,6 +2919,9 @@
28322919
0x7A 0x1E # GOOD64: c.slli t3, 62
28332920
0x7E 0x1E # BAD32: invalid instruction encoding
28342921
0x7E 0x1E # GOOD64: c.slli t3, 63
2922+
# GOOD: c.slli64 t4
2923+
# NOHINTS: invalid instruction encoding
2924+
0x82 0x0E
28352925
0x86 0x0E # GOOD: c.slli t4, 1
28362926
0x8A 0x0E # GOOD: c.slli t4, 2
28372927
0x8E 0x0E # GOOD: c.slli t4, 3
@@ -2927,6 +3017,9 @@
29273017
0xFA 0x1E # GOOD64: c.slli t4, 62
29283018
0xFE 0x1E # BAD32: invalid instruction encoding
29293019
0xFE 0x1E # GOOD64: c.slli t4, 63
3020+
# GOOD: c.slli64 t5
3021+
# NOHINTS: invalid instruction encoding
3022+
0x02 0x0F
29303023
0x06 0x0F # GOOD: c.slli t5, 1
29313024
0x0A 0x0F # GOOD: c.slli t5, 2
29323025
0x0E 0x0F # GOOD: c.slli t5, 3
@@ -3022,6 +3115,9 @@
30223115
0x7A 0x1F # GOOD64: c.slli t5, 62
30233116
0x7E 0x1F # BAD32: invalid instruction encoding
30243117
0x7E 0x1F # GOOD64: c.slli t5, 63
3118+
# GOOD: c.slli64 t6
3119+
# NOHINTS: invalid instruction encoding
3120+
0x82 0x0F
30253121
0x86 0x0F # GOOD: c.slli t6, 1
30263122
0x8A 0x0F # GOOD: c.slli t6, 2
30273123
0x8E 0x0F # GOOD: c.slli t6, 3

0 commit comments

Comments
 (0)