Skip to content

Commit b614e5b

Browse files
[SystemZ] Add missing (dis-)assembly tests. (#88498)
### Assembly Tests This adds assembly tests for ``` lcdfr, lndfr, lpdfr ``` ### Disassembly Tests This also adds a number of disassembly tests for the following menmonics: ``` cgit, cgrt, cit, clfit, clgit, clgrt, clgt, clrt, clt, crt, lcdfr, lndfr, lpdfr ``` For `cutfu` / `cu12`, it also adds a check for bad register choice.
1 parent 6f1e23b commit b614e5b

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

llvm/test/MC/Disassembler/SystemZ/insns.txt

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2956,6 +2956,12 @@
29562956
# CHECK: cgib %r0, 0, 15, 0
29572957
0xec 0x0f 0x00 0x00 0x00 0xfc
29582958

2959+
# CHECK: cgit %r0, 0, 0
2960+
0xec 0x00 0x00 0x00 0x00 0x70
2961+
2962+
# CHECK: cgit %r0, 0, 15
2963+
0xec 0x00 0x00 0x00 0xf0 0x70
2964+
29592965
# CHECK: cgith %r0, 0
29602966
0xec 0x00 0x00 0x00 0x20 0x70
29612967

@@ -3052,6 +3058,12 @@
30523058
# CHECK: cgrb %r0, %r0, 15, 0
30533059
0xec 0x00 0x00 0x00 0xf0 0xe4
30543060

3061+
# CHECK: cgrt %r0, %r1, 0
3062+
0xb9 0x60 0x00 0x01
3063+
3064+
# CHECK: cgrt %r0, %r1, 15
3065+
0xb9 0x60 0xf0 0x01
3066+
30553067
# CHECK: cgrth %r0, %r1
30563068
0xb9 0x60 0x20 0x01
30573069

@@ -3430,6 +3442,12 @@
34303442
# CHECK: cih %r15, 0
34313443
0xcc 0xfd 0x00 0x00 0x00 0x00
34323444

3445+
# CHECK: cit %r0, 0, 0
3446+
0xec 0x00 0x00 0x00 0x00 0x72
3447+
3448+
# CHECK: cit %r0, 0, 15
3449+
0xec 0x00 0x00 0x00 0xf0 0x72
3450+
34333451
# CHECK: cith %r0, 0
34343452
0xec 0x00 0x00 0x00 0x20 0x72
34353453

@@ -3862,6 +3880,12 @@
38623880
# CHECK: clfi %r15, 0
38633881
0xc2 0xff 0x00 0x00 0x00 0x00
38643882

3883+
# CHECK: clfit %r0, 0, 0
3884+
0xec 0x00 0x00 0x00 0x00 0x73
3885+
3886+
# CHECK: clfit %r0, 0, 15
3887+
0xec 0x00 0x00 0x00 0xf0 0x73
3888+
38653889
# CHECK: clfith %r0, 0
38663890
0xec 0x00 0x00 0x00 0x20 0x73
38673891

@@ -3910,6 +3934,12 @@
39103934
# CHECK: clg %r15, 0
39113935
0xe3 0xf0 0x00 0x00 0x00 0x21
39123936

3937+
# CHECK: clgit %r0, 0, 0
3938+
0xec 0x00 0x00 0x00 0x00 0x71
3939+
3940+
# CHECK: clgit %r0, 0, 15
3941+
0xec 0x00 0x00 0x00 0xf0 0x71
3942+
39133943
# CHECK: clgith %r0, 0
39143944
0xec 0x00 0x00 0x00 0x20 0x71
39153945

@@ -4447,6 +4477,12 @@
44474477
# CHECK: clrb %r0, %r0, 15, 0
44484478
0xec 0x00 0x00 0x00 0xf0 0xf7
44494479

4480+
# CHECK: clgrt %r0, %r1, 0
4481+
0xb9 0x61 0x00 0x01
4482+
4483+
# CHECK: clgrt %r0, %r1, 15
4484+
0xb9 0x61 0xf0 0x01
4485+
44504486
# CHECK: clgrth %r0, %r1
44514487
0xb9 0x61 0x20 0x01
44524488

@@ -4465,6 +4501,12 @@
44654501
# CHECK: clgrtle %r0, %r1
44664502
0xb9 0x61 0xc0 0x01
44674503

4504+
# CHECK: clrt %r0, %r1, 0
4505+
0xb9 0x73 0x00 0x01
4506+
4507+
# CHECK: clrt %r0, %r1, 15
4508+
0xb9 0x73 0xf0 0x01
4509+
44684510
# CHECK: clrth %r0, %r1
44694511
0xb9 0x73 0x20 0x01
44704512

@@ -4483,6 +4525,12 @@
44834525
# CHECK: clrtle %r0, %r1
44844526
0xb9 0x73 0xc0 0x01
44854527

4528+
# CHECK: clt %r0, 0, -524288
4529+
0xeb 0x00 0x00 0x00 0x80 0x23
4530+
4531+
# CHECK: clt %r0, 15, 32768
4532+
0xeb 0x0f 0x00 0x00 0x08 0x23
4533+
44864534
# CHECK: clth %r0, -524288
44874535
0xeb 0x02 0x00 0x00 0x80 0x23
44884536

@@ -4525,6 +4573,12 @@
45254573
# CHECK: cltle %r1, 0
45264574
0xeb 0x1c 0x00 0x00 0x00 0x23
45274575

4576+
# CHECK: clgt %r0, 0, -524288
4577+
0xeb 0x00 0x00 0x00 0x80 0x2b
4578+
4579+
# CHECK: clgt %r0, 15, 32768
4580+
0xeb 0x0f 0x00 0x00 0x08 0x2b
4581+
45284582
# CHECK: clgth %r0, -524288
45294583
0xeb 0x02 0x00 0x00 0x80 0x2b
45304584

@@ -4792,6 +4846,12 @@
47924846
# CHECK: crdte %r4, %r5, %r6, 7
47934847
0xb9 0x8f 0x57 0x46
47944848

4849+
# CHECK: crt %r0, %r1, 0
4850+
0xb9 0x72 0x00 0x01
4851+
4852+
# CHECK: crt %r0, %r1, 15
4853+
0xb9 0x72 0xf0 0x01
4854+
47954855
# CHECK: crth %r0, %r1
47964856
0xb9 0x72 0x20 0x01
47974857

@@ -7972,6 +8032,18 @@
79728032
# CHECK: lcdbr %f15, %f9
79738033
0xb3 0x13 0x00 0xf9
79748034

8035+
# CHECK: lcdfr %f0, %f9
8036+
0xb3 0x73 0x00 0x09
8037+
8038+
# CHECK: lcdfr %f0, %f15
8039+
0xb3 0x73 0x00 0x0f
8040+
8041+
# CHECK: lcdfr %f15, %f0
8042+
0xb3 0x73 0x00 0xf0
8043+
8044+
# CHECK: lcdfr %f15, %f9
8045+
0xb3 0x73 0x00 0xf9
8046+
79758047
# CHECK: lcdr %f0, %f9
79768048
0x23 0x09
79778049

@@ -9570,6 +9642,18 @@
95709642
# CHECK: lndbr %f15, %f9
95719643
0xb3 0x11 0x00 0xf9
95729644

9645+
# CHECK: lndfr %f0, %f9
9646+
0xb3 0x71 0x00 0x09
9647+
9648+
# CHECK: lndfr %f0, %f15
9649+
0xb3 0x71 0x00 0x0f
9650+
9651+
# CHECK: lndfr %f15, %f0
9652+
0xb3 0x71 0x00 0xf0
9653+
9654+
# CHECK: lndfr %f15, %f9
9655+
0xb3 0x71 0x00 0xf9
9656+
95739657
# CHECK: lndr %f0, %f9
95749658
0x21 0x09
95759659

@@ -9909,6 +9993,18 @@
99099993
# CHECK: lpdbr %f15, %f9
99109994
0xb3 0x10 0x00 0xf9
99119995

9996+
# CHECK: lpdfr %f0, %f9
9997+
0xb3 0x70 0x00 0x09
9998+
9999+
# CHECK: lpdfr %f0, %f15
10000+
0xb3 0x70 0x00 0x0f
10001+
10002+
# CHECK: lpdfr %f15, %f0
10003+
0xb3 0x70 0x00 0xf0
10004+
10005+
# CHECK: lpdfr %f15, %f9
10006+
0xb3 0x70 0x00 0xf9
10007+
991210008
# CHECK: lpdg %r0, 0, 0
991310009
0xc8 0x05 0x00 0x00 0x00 0x00
991410010

llvm/test/MC/Disassembler/SystemZ/invalid-regs.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@
2020
# CHECK-NEXT: 0xb9 0x97 0x00 0x18
2121
# CHECK-NEXT: ^
2222
0xb9 0x97 0x00 0x18
23+
24+
# This would be "cutfu %r1, %r2", but %r1 is invalid.
25+
#
26+
# CHECK-NEXT: warning: invalid instruction encoding
27+
# CHECK-NEXT: 0xb2 0xa7 0x00 0x12
28+
# CHECK-NEXT: ^
29+
0xb2 0xa7 0x00 0x12

llvm/test/MC/SystemZ/insn-good.s

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9038,6 +9038,36 @@
90389038
lcdbr %f15,%f0
90399039
lcdbr %f15,%f9
90409040

9041+
#CHECK: lcdfr %f0, %f9 # encoding: [0xb3,0x73,0x00,0x09]
9042+
#CHECK: lcdfr %f0, %f15 # encoding: [0xb3,0x73,0x00,0x0f]
9043+
#CHECK: lcdfr %f15, %f0 # encoding: [0xb3,0x73,0x00,0xf0]
9044+
#CHECK: lcdfr %f15, %f9 # encoding: [0xb3,0x73,0x00,0xf9]
9045+
9046+
lcdfr %f0,%f9
9047+
lcdfr %f0,%f15
9048+
lcdfr %f15,%f0
9049+
lcdfr %f15,%f9
9050+
9051+
#CHECK: lndfr %f0, %f9 # encoding: [0xb3,0x71,0x00,0x09]
9052+
#CHECK: lndfr %f0, %f15 # encoding: [0xb3,0x71,0x00,0x0f]
9053+
#CHECK: lndfr %f15, %f0 # encoding: [0xb3,0x71,0x00,0xf0]
9054+
#CHECK: lndfr %f15, %f9 # encoding: [0xb3,0x71,0x00,0xf9]
9055+
9056+
lndfr %f0,%f9
9057+
lndfr %f0,%f15
9058+
lndfr %f15,%f0
9059+
lndfr %f15,%f9
9060+
9061+
#CHECK: lpdfr %f0, %f9 # encoding: [0xb3,0x70,0x00,0x09]
9062+
#CHECK: lpdfr %f0, %f15 # encoding: [0xb3,0x70,0x00,0x0f]
9063+
#CHECK: lpdfr %f15, %f0 # encoding: [0xb3,0x70,0x00,0xf0]
9064+
#CHECK: lpdfr %f15, %f9 # encoding: [0xb3,0x70,0x00,0xf9]
9065+
9066+
lpdfr %f0,%f9
9067+
lpdfr %f0,%f15
9068+
lpdfr %f15,%f0
9069+
lpdfr %f15,%f9
9070+
90419071
#CHECK: lcdr %f0, %f9 # encoding: [0x23,0x09]
90429072
#CHECK: lcdr %f0, %f15 # encoding: [0x23,0x0f]
90439073
#CHECK: lcdr %f15, %f0 # encoding: [0x23,0xf0]

0 commit comments

Comments
 (0)