Skip to content
This repository was archived by the owner on Jun 26, 2020. It is now read-only.

Commit 113f8e1

Browse files
committed
Use BB-like EBB in filetests/isa/x86/*.clif
1 parent 0b4ca80 commit 113f8e1

7 files changed

+177
-6
lines changed

filetests/isa/x86/binary32-float.clif

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,21 +481,44 @@ ebb0(v0: f32 [%xmm0]):
481481
ebb1:
482482
; asm: jnp ebb1
483483
brff ord v1, ebb1 ; bin: 7b fe
484+
jump ebb2
485+
486+
ebb2:
484487
; asm: jp ebb1
485488
brff uno v1, ebb1 ; bin: 7a fc
489+
jump ebb3
490+
491+
ebb3:
486492
; asm: jne ebb1
487493
brff one v1, ebb1 ; bin: 75 fa
494+
jump ebb4
495+
496+
ebb4:
488497
; asm: je ebb1
489498
brff ueq v1, ebb1 ; bin: 74 f8
499+
jump ebb5
500+
501+
ebb5:
490502
; asm: ja ebb1
491503
brff gt v1, ebb1 ; bin: 77 f6
504+
jump ebb6
505+
506+
ebb6:
492507
; asm: jae ebb1
493508
brff ge v1, ebb1 ; bin: 73 f4
509+
jump ebb7
510+
511+
ebb7:
494512
; asm: jb ebb1
495513
brff ult v1, ebb1 ; bin: 72 f2
514+
jump ebb8
515+
516+
ebb8:
496517
; asm: jbe ebb1
497518
brff ule v1, ebb1 ; bin: 76 f0
519+
jump ebb9
498520

521+
ebb9:
499522
; asm: jp .+4; ud2
500523
trapff ord v1, user0 ; bin: 7a 02 user0 0f 0b
501524
; asm: jnp .+4; ud2

filetests/isa/x86/binary32.clif

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,12 +472,21 @@ ebb0:
472472
; asm: testl %ecx, %ecx
473473
; asm: je ebb1
474474
brz v1, ebb1 ; bin: 85 c9 74 0e
475+
fallthrough ebb3
476+
477+
ebb3:
475478
; asm: testl %esi, %esi
476479
; asm: je ebb1
477480
brz v2, ebb1 ; bin: 85 f6 74 0a
481+
fallthrough ebb4
482+
483+
ebb4:
478484
; asm: testl %ecx, %ecx
479485
; asm: jne ebb1
480486
brnz v1, ebb1 ; bin: 85 c9 75 06
487+
fallthrough ebb5
488+
489+
ebb5:
481490
; asm: testl %esi, %esi
482491
; asm: jne ebb1
483492
brnz v2, ebb1 ; bin: 85 f6 75 02
@@ -506,16 +515,27 @@ ebb0:
506515
; asm: testl $0xff, %edi
507516
; asm: je ebb1
508517
brz v3, ebb1 ; bin: f7 c7 000000ff 0f 84 00000015
518+
fallthrough ebb2
519+
520+
ebb2:
509521
; asm: testb %bl, %bl
510522
; asm: je ebb1
511523
brz v4, ebb1 ; bin: 84 db 74 11
524+
fallthrough ebb3
525+
526+
ebb3:
512527
; asm: testl $0xff, %edi
513528
; asm: jne ebb1
514529
brnz v3, ebb1 ; bin: f7 c7 000000ff 0f 85 00000005
530+
fallthrough ebb4
531+
532+
ebb4:
515533
; asm: testb %bl, %bl
516534
; asm: jne ebb1
517535
brnz v4, ebb1 ; bin: 84 db 75 01
536+
fallthrough ebb5
518537

538+
ebb5:
519539
return
520540

521541
ebb1:
@@ -537,24 +557,54 @@ ebb1:
537557

538558
; asm: je ebb1
539559
brif eq v11, ebb1 ; bin: 74 fa
560+
jump ebb2
561+
562+
ebb2:
540563
; asm: jne ebb1
541564
brif ne v11, ebb1 ; bin: 75 f8
565+
jump ebb3
566+
567+
ebb3:
542568
; asm: jl ebb1
543569
brif slt v11, ebb1 ; bin: 7c f6
570+
jump ebb4
571+
572+
ebb4:
544573
; asm: jge ebb1
545574
brif sge v11, ebb1 ; bin: 7d f4
575+
jump ebb5
576+
577+
ebb5:
546578
; asm: jg ebb1
547579
brif sgt v11, ebb1 ; bin: 7f f2
580+
jump ebb6
581+
582+
ebb6:
548583
; asm: jle ebb1
549584
brif sle v11, ebb1 ; bin: 7e f0
585+
jump ebb7
586+
587+
ebb7:
550588
; asm: jb ebb1
551589
brif ult v11, ebb1 ; bin: 72 ee
590+
jump ebb8
591+
592+
ebb8:
552593
; asm: jae ebb1
553594
brif uge v11, ebb1 ; bin: 73 ec
595+
jump ebb9
596+
597+
ebb9:
554598
; asm: ja ebb1
555599
brif ugt v11, ebb1 ; bin: 77 ea
600+
jump ebb10
601+
602+
ebb10:
556603
; asm: jbe ebb1
557604
brif ule v11, ebb1 ; bin: 76 e8
605+
jump ebb11
606+
607+
ebb11:
558608

559609
; asm: sete %bl
560610
[-,%rbx] v20 = trueif eq v11 ; bin: 0f 94 c3

filetests/isa/x86/binary64-float.clif

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,21 +542,44 @@ ebb0(v0: f32 [%xmm0]):
542542
ebb1:
543543
; asm: jnp ebb1
544544
brff ord v1, ebb1 ; bin: 7b fe
545+
jump ebb2
546+
547+
ebb2:
545548
; asm: jp ebb1
546549
brff uno v1, ebb1 ; bin: 7a fc
550+
jump ebb3
551+
552+
ebb3:
547553
; asm: jne ebb1
548554
brff one v1, ebb1 ; bin: 75 fa
555+
jump ebb4
556+
557+
ebb4:
549558
; asm: je ebb1
550559
brff ueq v1, ebb1 ; bin: 74 f8
560+
jump ebb5
561+
562+
ebb5:
551563
; asm: ja ebb1
552564
brff gt v1, ebb1 ; bin: 77 f6
565+
jump ebb6
566+
567+
ebb6:
553568
; asm: jae ebb1
554569
brff ge v1, ebb1 ; bin: 73 f4
570+
jump ebb7
571+
572+
ebb7:
555573
; asm: jb ebb1
556574
brff ult v1, ebb1 ; bin: 72 f2
575+
jump ebb8
576+
577+
ebb8:
557578
; asm: jbe ebb1
558579
brff ule v1, ebb1 ; bin: 76 f0
580+
jump ebb9
559581

582+
ebb9:
560583
; asm: jp .+4; ud2
561584
trapff ord v1, user0 ; bin: 7a 02 user0 0f 0b
562585
; asm: jnp .+4; ud2

filetests/isa/x86/binary64.clif

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,18 +690,33 @@ ebb0:
690690
; asm: testq %rcx, %rcx
691691
; asm: je ebb1
692692
brz v1, ebb1 ; bin: 48 85 c9 74 1b
693+
fallthrough ebb3
694+
695+
ebb3:
693696
; asm: testq %rsi, %rsi
694697
; asm: je ebb1
695698
brz v2, ebb1 ; bin: 48 85 f6 74 16
699+
fallthrough ebb4
700+
701+
ebb4:
696702
; asm: testq %r10, %r10
697703
; asm: je ebb1
698704
brz v3, ebb1 ; bin: 4d 85 d2 74 11
705+
fallthrough ebb5
706+
707+
ebb5:
699708
; asm: testq %rcx, %rcx
700709
; asm: jne ebb1
701710
brnz v1, ebb1 ; bin: 48 85 c9 75 0c
711+
fallthrough ebb6
712+
713+
ebb6:
702714
; asm: testq %rsi, %rsi
703715
; asm: jne ebb1
704716
brnz v2, ebb1 ; bin: 48 85 f6 75 07
717+
fallthrough ebb7
718+
719+
ebb7:
705720
; asm: testq %r10, %r10
706721
; asm: jne ebb1
707722
brnz v3, ebb1 ; bin: 4d 85 d2 75 02
@@ -733,24 +748,54 @@ ebb1:
733748

734749
; asm: je ebb1
735750
brif eq v11, ebb1 ; bin: 74 f8
751+
jump ebb2
752+
753+
ebb2:
736754
; asm: jne ebb1
737755
brif ne v11, ebb1 ; bin: 75 f6
756+
jump ebb3
757+
758+
ebb3:
738759
; asm: jl ebb1
739760
brif slt v11, ebb1 ; bin: 7c f4
761+
jump ebb4
762+
763+
ebb4:
740764
; asm: jge ebb1
741765
brif sge v11, ebb1 ; bin: 7d f2
766+
jump ebb5
767+
768+
ebb5:
742769
; asm: jg ebb1
743770
brif sgt v11, ebb1 ; bin: 7f f0
771+
jump ebb6
772+
773+
ebb6:
744774
; asm: jle ebb1
745775
brif sle v11, ebb1 ; bin: 7e ee
776+
jump ebb7
777+
778+
ebb7:
746779
; asm: jb ebb1
747780
brif ult v11, ebb1 ; bin: 72 ec
781+
jump ebb8
782+
783+
ebb8:
748784
; asm: jae ebb1
749785
brif uge v11, ebb1 ; bin: 73 ea
786+
jump ebb9
787+
788+
ebb9:
750789
; asm: ja ebb1
751790
brif ugt v11, ebb1 ; bin: 77 e8
791+
jump ebb10
792+
793+
ebb10:
752794
; asm: jbe ebb1
753795
brif ule v11, ebb1 ; bin: 76 e6
796+
jump ebb11
797+
798+
ebb11:
754799

755800
; asm: sete %bl
756801
[-,%rbx] v20 = trueif eq v11 ; bin: 0f 94 c3
@@ -1248,18 +1293,33 @@ ebb0:
12481293
; asm: testl %ecx, %ecx
12491294
; asm: je ebb1x
12501295
brz v1, ebb1 ; bin: 85 c9 74 18
1296+
fallthrough ebb3
1297+
1298+
ebb3:
12511299
; asm: testl %esi, %esi
12521300
; asm: je ebb1x
12531301
brz v2, ebb1 ; bin: 85 f6 74 14
1302+
fallthrough ebb4
1303+
1304+
ebb4:
12541305
; asm: testl %r10d, %r10d
12551306
; asm: je ebb1x
12561307
brz v3, ebb1 ; bin: 45 85 d2 74 0f
1308+
fallthrough ebb5
1309+
1310+
ebb5:
12571311
; asm: testl %ecx, %ecx
12581312
; asm: jne ebb1x
12591313
brnz v1, ebb1 ; bin: 85 c9 75 0b
1314+
fallthrough ebb6
1315+
1316+
ebb6:
12601317
; asm: testl %esi, %esi
12611318
; asm: jne ebb1x
12621319
brnz v2, ebb1 ; bin: 85 f6 75 07
1320+
fallthrough ebb7
1321+
1322+
ebb7:
12631323
; asm: testl %r10d, %r10d
12641324
; asm: jne ebb1x
12651325
brnz v3, ebb1 ; bin: 45 85 d2 75 02

filetests/isa/x86/prologue-epilogue.clif

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -213,20 +213,23 @@ function %divert(i32) -> i32 system_v {
213213
ebb0(v0: i32):
214214
v2 = iconst.i32 0
215215
v3 = iconst.i32 1
216-
jump ebb3(v0, v3, v2)
216+
jump ebb1(v0, v3, v2)
217217

218-
ebb3(v4: i32, v5: i32, v6: i32):
219-
brz v4, ebb4
218+
ebb1(v4: i32, v5: i32, v6: i32):
219+
brz v4, ebb3
220+
fallthrough ebb2
221+
222+
ebb2:
220223
v7 = iadd v5, v6
221224
v8 = iadd_imm v4, -1
222-
jump ebb3(v8, v7, v5)
225+
jump ebb1(v8, v7, v5)
223226

224-
ebb4:
227+
ebb3:
225228
return v5
226229
}
227230

228231
; check: function %divert
229-
; check: regmove v5, %rcx -> %rbx
232+
; check: regmove.i32 v5, %rcx -> %rbx
230233
; check: [Op1popq#58,%rbx] v15 = x86_pop.i64
231234

232235
; Stack limit checking

filetests/isa/x86/relax_branch.clif

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ function u0:2691(i32 [%rdi], i32 [%rsi], i64 vmctx [%r14]) -> i64 uext [%rax] ba
5555
@004c [Op1r_id#4081,%rcx] v37 = band_imm v35, 255
5656
[Op1rcmp_ib#7083,%rflags] v97 = ifcmp_imm v37, 26
5757
@0050 [Op1brib#70] brif sge v97, ebb6
58+
@0050 [-] fallthrough ebb10
59+
60+
ebb10:
5861
[Op1umr#89,%rcx] v101 = copy v18
5962
@0054 [Op1jmpb#eb] jump ebb5(v18, v101)
6063

@@ -82,6 +85,9 @@ function u0:2691(i32 [%rdi], i32 [%rsi], i64 vmctx [%r14]) -> i64 uext [%rax] ba
8285
[Op1rcmp_ib#7083,%rflags] v98 = ifcmp_imm v63, 26
8386
@0084 [RexOp1rmov#89] regmove v47, %rdi -> %rbx
8487
@0084 [Op1brib#70] brif sge v98, ebb8
88+
@0084 [-] fallthrough ebb11
89+
90+
ebb11:
8591
[RexOp1umr#89,%rdx] v103 = copy.i32 v29
8692
@0088 [Op1jmpb#eb] jump ebb7(v29, v10, v21, v103)
8793

@@ -99,6 +105,9 @@ function u0:2691(i32 [%rdi], i32 [%rsi], i64 vmctx [%r14]) -> i64 uext [%rax] ba
99105
@0098 [Op2urm_noflags_abcd#4b6,%rbx] v77 = bint.i32 v76
100106
@0099 [RexOp1rr#21,%r10] v78 = band.i32 v50, v77
101107
@009a [RexOp1tjccb#74] brz v78, ebb9
108+
@009a [-] fallthrough ebb12
109+
110+
ebb12:
102111
[RexOp1umr#89,%rcx] v99 = copy v81
103112
[Op1umr#89,%rdx] v100 = copy v79
104113
@00a4 [RexOp1rmov#89] regmove v100, %rdx -> %rdi

filetests/isa/x86/shrink-multiple-uses.clif

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ ebb0(v0: i32 [%rdi]):
88
[Op2seti_abcd#490,%rax] v1 = trueif eq v3
99
[RexOp2urm_noflags#4b6,%rax] v2 = bint.i32 v1
1010
[Op1brib#70] brif eq v3, ebb1
11+
[-] fallthrough ebb2
12+
13+
ebb2:
1114
[Op1ret#c3] return v2
1215

1316
ebb1:

0 commit comments

Comments
 (0)