cranelift: Remove brz and brnz (#5630)

Remove the brz and brnz instructions, as their behavior is now redundant with brif.
This commit is contained in:
Trevor Elliott
2023-01-30 12:34:56 -08:00
committed by GitHub
parent 77cf547f41
commit a5698cedf8
247 changed files with 2947 additions and 3754 deletions

View File

@@ -6,8 +6,7 @@ target x86_64
function %f(i32, i32) -> i32 {
block0(v0: i32, v1: i32):
v2 = iadd v0, v1
brnz v2, block1(v0)
jump block2(v1)
brif v2, block1(v0), block2(v1)
block1(v3: i32):
v4 = iadd v0, v1

View File

@@ -17,8 +17,7 @@ function u0:0(i64 vmctx, i64) fast {
block0(v0: i64, v1: i64):
@0019 v2 = vconst.i8x16 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
@001b v3 = iconst.i32 0
@001d brz v3, block2 ; v3 = 0
@001d jump block3
@001d brif v3, block3, block2 ; v3 = 0
block3:
@001f trap unreachable
@@ -30,8 +29,7 @@ function u0:0(i64 vmctx, i64) fast {
@0027 v7 = bitcast.i32x4 little v6
@0027 v8 = vhigh_bits.i32 v7
@002a v9 = iconst.i32 0
@002c brnz v9, block1 ; v9 = 0
@002c jump block4
@002c brif v9, block1, block4 ; v9 = 0
block4:
@002e call fn0(v0, v0)

View File

@@ -14,8 +14,7 @@ block1(v2: i32):
v6 = icmp eq v2, v5
v7 = iconst.i32 1
v8 = iadd.i32 v2, v7
brnz v6, block2(v4)
jump block1(v8)
brif v6, block2(v4), block1(v8)
block2(v9: i32):
return v9
@@ -30,8 +29,7 @@ block2(v9: i32):
; check: v6 = icmp eq v2, v5
; check: v3 = iconst.i32 1
; check: v8 = iadd v2, v3
; check: brnz v6, block2
; check: jump block1(v8)
; check: brif v6, block2, block1(v8)
; check: block2:
; check: v10 = iconst.i32 1

View File

@@ -7,8 +7,7 @@ function %f(i32) -> i32 {
block0(v0: i32):
v1 = iconst.i32 42
v2 = iadd.i32 v0, v1
brnz v2, block1
jump block2
brif v2, block1, block2
block1:
v3 = iconst.i32 84
@@ -22,8 +21,7 @@ block2:
; check: block0(v0: i32):
; check: v1 = iconst.i32 42
; check: v2 = iadd v0, v1
; check: brnz v2, block1
; check: jump block2
; check: brif v2, block1, block2
; check: block1:
; check: v11 = iconst.i32 126
; check: v13 = iadd.i32 v0, v11