From 093b3b34267d80bd58650c336938d493799c2a6b Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Tue, 1 Oct 2019 21:32:37 +0200 Subject: [PATCH] Fix brz.i128 Fixes #1066 --- cranelift/codegen/meta/src/shared/legalize.rs | 2 +- cranelift/filetests/filetests/isa/x86/br-i128.clif | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cranelift/codegen/meta/src/shared/legalize.rs b/cranelift/codegen/meta/src/shared/legalize.rs index fef4c1e1ec..7ac4e8af13 100644 --- a/cranelift/codegen/meta/src/shared/legalize.rs +++ b/cranelift/codegen/meta/src/shared/legalize.rs @@ -257,7 +257,7 @@ pub(crate) fn define(insts: &InstructionGroup, imm: &Immediates) -> TransformGro ) ), def!(c = band(a, b)), - def!(brz(c, ebb, vararg)), + def!(brnz(c, ebb, vararg)), ], ); diff --git a/cranelift/filetests/filetests/isa/x86/br-i128.clif b/cranelift/filetests/filetests/isa/x86/br-i128.clif index e3ac6a9d86..442be8d6c8 100644 --- a/cranelift/filetests/filetests/isa/x86/br-i128.clif +++ b/cranelift/filetests/filetests/isa/x86/br-i128.clif @@ -4,6 +4,11 @@ target x86_64 function u0:0(i128) -> i8 fast { ebb0(v0: i128): brz v0, ebb2 + ; check: v0 = iconcat v3, v4 + ; nextln: v5 = icmp_imm eq v3, 0 + ; nextln: v6 = icmp_imm eq v4, 0 + ; nextln: v7 = band v5, v6 + ; nextln: brnz v7, ebb2 jump ebb1 ebb1: @@ -18,7 +23,14 @@ ebb2: function u0:1(i128) -> i8 fast { ebb0(v0: i128): brnz v0, ebb2 + ; check: v0 = iconcat v3, v4 + ; nextln: brnz v3, ebb2 + ; nextln: fallthrough ebb3 + + ; check: ebb3: + ; nextln: brnz.i64 v4, ebb2 jump ebb1 + ; nextln: fallthrough ebb1 ebb1: v1 = iconst.i8 0