Skip to content

Commit ca44a99

Browse files
committed
update codegen tests.
1 parent 6b915c5 commit ca44a99

8 files changed

Lines changed: 2226 additions & 2004 deletions

File tree

llvm/test/CodeGen/Z80/cmp-zero.ll

Lines changed: 78 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,52 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
12
; RUN: llc -mtriple=ez80 < %s | FileCheck %s --check-prefix=EZ80
23

34
define i16 @cmp0_o16(i16 %x, ptr nocapture readonly %p) {
4-
; EZ80-LABEL: _cmp0_o16:
5-
; EZ80: BB0_1:
6-
; EZ80: sbc.sis hl, hl
5+
; EZ80-LABEL: cmp0_o16:
6+
; EZ80: ; %bb.0: ; %entry
7+
; EZ80-NEXT: push ix
8+
; EZ80-NEXT: ld ix, 0
9+
; EZ80-NEXT: add ix, sp
10+
; EZ80-NEXT: dec sp
11+
; EZ80-NEXT: dec sp
12+
; EZ80-NEXT: ld de, (ix + 6)
13+
; EZ80-NEXT: ld.sis hl, 0
14+
; EZ80-NEXT: ld (ix - 2), l
15+
; EZ80-NEXT: ld (ix - 1), h
16+
; EZ80-NEXT: ld iyh, 0
17+
; EZ80-NEXT: private BB0_1
18+
; EZ80-NEXT: BB0_1: ; %loop
19+
; EZ80-NEXT: ; =>This Inner Loop Header: Depth=1
20+
; EZ80-NEXT: sbc.sis hl, hl
721
; EZ80-NEXT: adc.sis hl, de
8-
; EZ80-NEXT: jr z
22+
; EZ80-NEXT: jr z, BB0_3
23+
; EZ80-NEXT: ; %bb.2: ; %body
24+
; EZ80-NEXT: ; in Loop: Header=BB0_1 Depth=1
25+
; EZ80-NEXT: ld l, 15
26+
; EZ80-NEXT: ld a, e
27+
; EZ80-NEXT: and a, l
28+
; EZ80-NEXT: ld iyl, a
29+
; EZ80-NEXT: ld bc, 0
30+
; EZ80-NEXT: ld c, iyl
31+
; EZ80-NEXT: ld b, iyh
32+
; EZ80-NEXT: ld hl, (ix + 9)
33+
; EZ80-NEXT: add hl, bc
34+
; EZ80-NEXT: ld c, (hl)
35+
; EZ80-NEXT: ld b, iyh
36+
; EZ80-NEXT: ld l, (ix - 2)
37+
; EZ80-NEXT: ld h, (ix - 1)
38+
; EZ80-NEXT: add.sis hl, bc
39+
; EZ80-NEXT: ld (ix - 2), l
40+
; EZ80-NEXT: ld (ix - 1), h
41+
; EZ80-NEXT: dec.sis de
42+
; EZ80-NEXT: jr BB0_1
43+
; EZ80-NEXT: private BB0_3
44+
; EZ80-NEXT: BB0_3: ; %exit
45+
; EZ80-NEXT: ld l, (ix - 2)
46+
; EZ80-NEXT: ld h, (ix - 1)
47+
; EZ80-NEXT: ld sp, ix
48+
; EZ80-NEXT: pop ix
49+
; EZ80-NEXT: ret
950
entry:
1051
br label %loop
1152

@@ -30,11 +71,40 @@ exit:
3071
}
3172

3273
define i24 @cmp0_o24(i24 %x, ptr nocapture readonly %p) {
33-
; EZ80-LABEL: _cmp0_o24:
34-
; EZ80: BB1_1:
35-
; EZ80: sbc hl, hl
74+
; EZ80-LABEL: cmp0_o24:
75+
; EZ80: ; %bb.0: ; %entry
76+
; EZ80-NEXT: push ix
77+
; EZ80-NEXT: ld ix, 0
78+
; EZ80-NEXT: add ix, sp
79+
; EZ80-NEXT: ld de, (ix + 6)
80+
; EZ80-NEXT: ld iy, 0
81+
; EZ80-NEXT: private BB1_1
82+
; EZ80-NEXT: BB1_1: ; %loop
83+
; EZ80-NEXT: ; =>This Inner Loop Header: Depth=1
84+
; EZ80-NEXT: sbc hl, hl
3685
; EZ80-NEXT: adc hl, de
37-
; EZ80-NEXT: jr z
86+
; EZ80-NEXT: jr z, BB1_3
87+
; EZ80-NEXT: ; %bb.2: ; %body
88+
; EZ80-NEXT: ; in Loop: Header=BB1_1 Depth=1
89+
; EZ80-NEXT: push de
90+
; EZ80-NEXT: pop hl
91+
; EZ80-NEXT: ld bc, 31
92+
; EZ80-NEXT: call __iand
93+
; EZ80-NEXT: push hl
94+
; EZ80-NEXT: pop bc
95+
; EZ80-NEXT: ld hl, (ix + 9)
96+
; EZ80-NEXT: add hl, bc
97+
; EZ80-NEXT: ld a, (hl)
98+
; EZ80-NEXT: ld bc, 0
99+
; EZ80-NEXT: ld c, a
100+
; EZ80-NEXT: add iy, bc
101+
; EZ80-NEXT: dec de
102+
; EZ80-NEXT: jr BB1_1
103+
; EZ80-NEXT: private BB1_3
104+
; EZ80-NEXT: BB1_3: ; %exit
105+
; EZ80-NEXT: lea hl, iy + 0
106+
; EZ80-NEXT: pop ix
107+
; EZ80-NEXT: ret
38108
entry:
39109
br label %loop
40110

llvm/test/CodeGen/Z80/control.ll

Lines changed: 60 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -277,36 +277,42 @@ define i8 @br.i1(i1) {
277277
; Z80: ; %bb.0:
278278
; Z80-NEXT: ld iy, 0
279279
; Z80-NEXT: add iy, sp
280-
; Z80-NEXT: xor a, a
281280
; Z80-NEXT: bit 0, (iy + 2)
282281
; Z80-NEXT: jr z, BB10_2
283282
; Z80-NEXT: ; %bb.1:
284283
; Z80-NEXT: ld a, 1
284+
; Z80-NEXT: ret
285+
; Z80-NEXT: private BB10_2
285286
; Z80-NEXT: BB10_2:
287+
; Z80-NEXT: xor a, a
286288
; Z80-NEXT: ret
287289
;
288290
; EZ80-CODE16-LABEL: br.i1:
289291
; EZ80-CODE16: ; %bb.0:
290292
; EZ80-CODE16-NEXT: ld iy, 0
291293
; EZ80-CODE16-NEXT: add iy, sp
292-
; EZ80-CODE16-NEXT: xor a, a
293294
; EZ80-CODE16-NEXT: bit 0, (iy + 2)
294295
; EZ80-CODE16-NEXT: jr z, BB10_2
295296
; EZ80-CODE16-NEXT: ; %bb.1:
296297
; EZ80-CODE16-NEXT: ld a, 1
298+
; EZ80-CODE16-NEXT: ret
299+
; EZ80-CODE16-NEXT: private BB10_2
297300
; EZ80-CODE16-NEXT: BB10_2:
301+
; EZ80-CODE16-NEXT: xor a, a
298302
; EZ80-CODE16-NEXT: ret
299303
;
300304
; EZ80-LABEL: br.i1:
301305
; EZ80: ; %bb.0:
302306
; EZ80-NEXT: ld iy, 0
303307
; EZ80-NEXT: add iy, sp
304-
; EZ80-NEXT: xor a, a
305308
; EZ80-NEXT: bit 0, (iy + 3)
306309
; EZ80-NEXT: jr z, BB10_2
307310
; EZ80-NEXT: ; %bb.1:
308311
; EZ80-NEXT: ld a, 1
312+
; EZ80-NEXT: ret
313+
; EZ80-NEXT: private BB10_2
309314
; EZ80-NEXT: BB10_2:
315+
; EZ80-NEXT: xor a, a
310316
; EZ80-NEXT: ret
311317
br i1 %0, label %2, label %3
312318
ret i8 1
@@ -326,6 +332,7 @@ define i8 @switch(i8) {
326332
; Z80-NEXT: ; %bb.1:
327333
; Z80-NEXT: ld a, -1
328334
; Z80-NEXT: ret
335+
; Z80-NEXT: private BB11_2
329336
; Z80-NEXT: BB11_2:
330337
; Z80-NEXT: ld hl, JTI11_0
331338
; Z80-NEXT: add hl, de
@@ -337,18 +344,28 @@ define i8 @switch(i8) {
337344
; Z80-NEXT: ex de, hl
338345
; Z80-NEXT: pop de
339346
; Z80-NEXT: jp (hl)
347+
; Z80-NEXT: private BB11_3
340348
; Z80-NEXT: BB11_3:
341349
; Z80-NEXT: ld a, d
342350
; Z80-NEXT: ret
351+
; Z80-NEXT: private BB11_4
343352
; Z80-NEXT: BB11_4:
344353
; Z80-NEXT: ld a, 2
345354
; Z80-NEXT: ret
355+
; Z80-NEXT: private BB11_5
346356
; Z80-NEXT: BB11_5:
347357
; Z80-NEXT: ld a, 3
348358
; Z80-NEXT: ret
359+
; Z80-NEXT: private BB11_6
349360
; Z80-NEXT: BB11_6:
350361
; Z80-NEXT: ld a, 1
351362
; Z80-NEXT: ret
363+
; Z80-NEXT: .section .rodata,"a",@progbits
364+
; Z80-NEXT: JTI11_0:
365+
; Z80-NEXT: dw BB11_3
366+
; Z80-NEXT: dw BB11_6
367+
; Z80-NEXT: dw BB11_4
368+
; Z80-NEXT: dw BB11_5
352369
;
353370
; EZ80-CODE16-LABEL: switch:
354371
; EZ80-CODE16: ; %bb.0:
@@ -362,57 +379,78 @@ define i8 @switch(i8) {
362379
; EZ80-CODE16-NEXT: ; %bb.1:
363380
; EZ80-CODE16-NEXT: ld a, -1
364381
; EZ80-CODE16-NEXT: ret
382+
; EZ80-CODE16-NEXT: private BB11_2
365383
; EZ80-CODE16-NEXT: BB11_2:
366384
; EZ80-CODE16-NEXT: ld hl, JTI11_0
367385
; EZ80-CODE16-NEXT: add hl, de
368386
; EZ80-CODE16-NEXT: add hl, de
369387
; EZ80-CODE16-NEXT: ld hl, (hl)
370388
; EZ80-CODE16-NEXT: jp (hl)
389+
; EZ80-CODE16-NEXT: private BB11_3
371390
; EZ80-CODE16-NEXT: BB11_3:
372391
; EZ80-CODE16-NEXT: ld a, d
373392
; EZ80-CODE16-NEXT: ret
393+
; EZ80-CODE16-NEXT: private BB11_4
374394
; EZ80-CODE16-NEXT: BB11_4:
375395
; EZ80-CODE16-NEXT: ld a, 2
376396
; EZ80-CODE16-NEXT: ret
397+
; EZ80-CODE16-NEXT: private BB11_5
377398
; EZ80-CODE16-NEXT: BB11_5:
378399
; EZ80-CODE16-NEXT: ld a, 3
379400
; EZ80-CODE16-NEXT: ret
401+
; EZ80-CODE16-NEXT: private BB11_6
380402
; EZ80-CODE16-NEXT: BB11_6:
381403
; EZ80-CODE16-NEXT: ld a, 1
382404
; EZ80-CODE16-NEXT: ret
405+
; EZ80-CODE16-NEXT: .section .rodata,"a",@progbits
406+
; EZ80-CODE16-NEXT: JTI11_0:
407+
; EZ80-CODE16-NEXT: dw BB11_3
408+
; EZ80-CODE16-NEXT: dw BB11_6
409+
; EZ80-CODE16-NEXT: dw BB11_4
410+
; EZ80-CODE16-NEXT: dw BB11_5
383411
;
384412
; EZ80-LABEL: switch:
385413
; EZ80: ; %bb.0:
386414
; EZ80-NEXT: ld iy, 0
387415
; EZ80-NEXT: add iy, sp
388416
; EZ80-NEXT: ld a, (iy + 3)
389-
; EZ80-NEXT: ld e, 0
390-
; EZ80-NEXT: ld bc, 0
417+
; EZ80-NEXT: ld de, 0
391418
; EZ80-NEXT: cp a, 4
392419
; EZ80-NEXT: jr c, BB11_2
393420
; EZ80-NEXT: ; %bb.1:
394421
; EZ80-NEXT: ld a, -1
395422
; EZ80-NEXT: ret
423+
; EZ80-NEXT: private BB11_2
396424
; EZ80-NEXT: BB11_2:
397-
; EZ80-NEXT: ld c, a
425+
; EZ80-NEXT: ld e, a
398426
; EZ80-NEXT: ld hl, JTI11_0
399-
; EZ80-NEXT: add hl, bc
400-
; EZ80-NEXT: add hl, bc
401-
; EZ80-NEXT: add hl, bc
427+
; EZ80-NEXT: add hl, de
428+
; EZ80-NEXT: add hl, de
429+
; EZ80-NEXT: add hl, de
402430
; EZ80-NEXT: ld hl, (hl)
403431
; EZ80-NEXT: jp (hl)
432+
; EZ80-NEXT: private BB11_3
404433
; EZ80-NEXT: BB11_3:
405-
; EZ80-NEXT: ld a, e
434+
; EZ80-NEXT: xor a, a
406435
; EZ80-NEXT: ret
436+
; EZ80-NEXT: private BB11_4
407437
; EZ80-NEXT: BB11_4:
408438
; EZ80-NEXT: ld a, 2
409439
; EZ80-NEXT: ret
440+
; EZ80-NEXT: private BB11_5
410441
; EZ80-NEXT: BB11_5:
411442
; EZ80-NEXT: ld a, 3
412443
; EZ80-NEXT: ret
444+
; EZ80-NEXT: private BB11_6
413445
; EZ80-NEXT: BB11_6:
414446
; EZ80-NEXT: ld a, 1
415447
; EZ80-NEXT: ret
448+
; EZ80-NEXT: .section .rodata,"a",@progbits
449+
; EZ80-NEXT: JTI11_0:
450+
; EZ80-NEXT: dl BB11_3
451+
; EZ80-NEXT: dl BB11_6
452+
; EZ80-NEXT: dl BB11_4
453+
; EZ80-NEXT: dl BB11_5
416454
switch i8 %0, label %2 [ i8 0, label %3
417455
i8 1, label %4
418456
i8 2, label %5
@@ -431,35 +469,44 @@ define i8 @indirectbr(i8*) {
431469
; Z80-NEXT: add iy, sp
432470
; Z80-NEXT: ld l, (iy + 2)
433471
; Z80-NEXT: ld h, (iy + 3)
434-
; Z80-NEXT: xor a, a
435472
; Z80-NEXT: jp (hl)
473+
; Z80-NEXT: private BB12_1
436474
; Z80-NEXT: BB12_1:
437475
; Z80-NEXT: ld a, 1
476+
; Z80-NEXT: ret
477+
; Z80-NEXT: private BB12_2
438478
; Z80-NEXT: BB12_2:
479+
; Z80-NEXT: xor a, a
439480
; Z80-NEXT: ret
440481
;
441482
; EZ80-CODE16-LABEL: indirectbr:
442483
; EZ80-CODE16: ; %bb.0:
443484
; EZ80-CODE16-NEXT: ld iy, 0
444485
; EZ80-CODE16-NEXT: add iy, sp
445486
; EZ80-CODE16-NEXT: ld hl, (iy + 2)
446-
; EZ80-CODE16-NEXT: xor a, a
447487
; EZ80-CODE16-NEXT: jp (hl)
488+
; EZ80-CODE16-NEXT: private BB12_1
448489
; EZ80-CODE16-NEXT: BB12_1:
449490
; EZ80-CODE16-NEXT: ld a, 1
491+
; EZ80-CODE16-NEXT: ret
492+
; EZ80-CODE16-NEXT: private BB12_2
450493
; EZ80-CODE16-NEXT: BB12_2:
494+
; EZ80-CODE16-NEXT: xor a, a
451495
; EZ80-CODE16-NEXT: ret
452496
;
453497
; EZ80-LABEL: indirectbr:
454498
; EZ80: ; %bb.0:
455499
; EZ80-NEXT: ld iy, 0
456500
; EZ80-NEXT: add iy, sp
457501
; EZ80-NEXT: ld hl, (iy + 3)
458-
; EZ80-NEXT: xor a, a
459502
; EZ80-NEXT: jp (hl)
503+
; EZ80-NEXT: private BB12_1
460504
; EZ80-NEXT: BB12_1:
461505
; EZ80-NEXT: ld a, 1
506+
; EZ80-NEXT: ret
507+
; EZ80-NEXT: private BB12_2
462508
; EZ80-NEXT: BB12_2:
509+
; EZ80-NEXT: xor a, a
463510
; EZ80-NEXT: ret
464511
indirectbr i8* %0, [label %2, label %3]
465512
ret i8 1

0 commit comments

Comments
 (0)