diff --git a/cranelift/codegen/src/egraph/cost.rs b/cranelift/codegen/src/egraph/cost.rs index ee4a40ade376..fd23eb83679e 100644 --- a/cranelift/codegen/src/egraph/cost.rs +++ b/cranelift/codegen/src/egraph/cost.rs @@ -79,6 +79,7 @@ impl Cost { // "Simple" arithmetic. Opcode::Iadd | Opcode::Isub + | Opcode::Ineg | Opcode::Band | Opcode::Bor | Opcode::Bxor diff --git a/cranelift/codegen/src/opts/arithmetic.isle b/cranelift/codegen/src/opts/arithmetic.isle index 22207658d574..07a1e0caea84 100644 --- a/cranelift/codegen/src/opts/arithmetic.isle +++ b/cranelift/codegen/src/opts/arithmetic.isle @@ -699,3 +699,35 @@ (isub ty (iconst ty x) y) (iadd ty z (iconst ty p)))) (iadd ty (isub ty z y) (iconst ty (imm64_add ty p x)))) + +;; -(x & y) + x --> x & ~y +(rule (simplify (iadd ty (ineg ty (band ty x y)) x)) (band ty x (bnot ty y))) +(rule (simplify (iadd ty (ineg ty (band ty x y)) y)) (band ty y (bnot ty x))) +(rule (simplify (iadd ty x (ineg ty (band ty x y)))) (band ty x (bnot ty y))) +(rule (simplify (iadd ty x (ineg ty (band ty y x)))) (band ty x (bnot ty y))) + +;; (~x & y) + (~y & x) --> y ^ x +(rule (simplify (iadd ty (band ty (bnot ty x) y) (band ty (bnot ty y) x))) (bxor ty y x)) +(rule (simplify (iadd ty (band ty (bnot ty x) y) (band ty x (bnot ty y)))) (bxor ty y x)) +(rule (simplify (iadd ty (band ty x (bnot ty y)) (band ty (bnot ty x) y))) (bxor ty x y)) +(rule (simplify (iadd ty (band ty x (bnot ty y)) (band ty y (bnot ty x)))) (bxor ty x y)) + +;; max(~x, ~y) --> ~min(x, y) +(rule (simplify (smax ty (bnot ty x) (bnot ty y))) (bnot ty (smin ty x y))) +(rule (simplify (umax ty (bnot ty x) (bnot ty y))) (bnot ty (umin ty x y))) + +;; min(~x, ~y) --> ~max(x, y) +(rule (simplify (smin ty (bnot ty x) (bnot ty y))) (bnot ty (smax ty x y))) +(rule (simplify (umin ty (bnot ty x) (bnot ty y))) (bnot ty (umax ty x y))) + +;; (-x) - (~x) --> 1 +(rule (simplify (isub (ty_int_vec128 ty) (ineg ty x) (bnot ty x))) (iconst_u ty 1)) + +;; ~x + C --> (C - 1) - x +(rule (simplify (iadd (fits_in_64 ty) (bnot ty x) (iconst ty y))) (isub ty (iconst ty (imm64_sub ty y (imm64 1))) x)) + +;; (x | C) - C --> x & ~C +(rule (simplify (isub (fits_in_64 ty) (bor ty x (iconst ty y)) (iconst ty y))) (band ty x (iconst ty (imm64_not ty y)))) + +;; (x << 1) * C --> x * (2 * C) +(rule (simplify (imul (fits_in_64 ty) (ishl ty x (iconst_u ty 1)) (iconst ty y))) (imul ty x (iconst ty (imm64_mul ty y (imm64 2))))) diff --git a/cranelift/codegen/src/opts/bitops.isle b/cranelift/codegen/src/opts/bitops.isle index 5230997aa616..0cc70cad73da 100644 --- a/cranelift/codegen/src/opts/bitops.isle +++ b/cranelift/codegen/src/opts/bitops.isle @@ -846,3 +846,82 @@ ;; ~(x & y) | x --> -1 (rule (simplify (bor (ty_int_vec128 ty) (bnot ty (band ty x y)) x)) (subsume (iconst_s ty -1))) + +;; (~x | y) ^ x --> ~(x & y) +(rule (simplify (bxor ty (bor ty (bnot ty x) y) x)) (bnot ty (band ty x y))) +(rule (simplify (bxor ty (bor ty x (bnot ty y)) y)) (bnot ty (band ty y x))) +(rule (simplify (bxor ty x (bor ty (bnot ty x) y))) (bnot ty (band ty x y))) +(rule (simplify (bxor ty x (bor ty y (bnot ty x)))) (bnot ty (band ty x y))) + +;; max(x, y) & min(x, y) --> x & y +(rule (simplify (band ty (smax ty x y) (smin ty x y))) (band ty x y)) +(rule (simplify (band ty (smax ty x y) (smin ty y x))) (band ty x y)) +(rule (simplify (band ty (smin ty x y) (smax ty x y))) (band ty x y)) +(rule (simplify (band ty (smin ty x y) (smax ty y x))) (band ty x y)) +(rule (simplify (band ty (umax ty x y) (umin ty x y))) (band ty x y)) +(rule (simplify (band ty (umax ty x y) (umin ty y x))) (band ty x y)) +(rule (simplify (band ty (umin ty x y) (umax ty x y))) (band ty x y)) +(rule (simplify (band ty (umin ty x y) (umax ty y x))) (band ty x y)) + +;; max(x, y) | min(x, y) --> x | y +(rule (simplify (bor ty (smax ty x y) (smin ty x y))) (bor ty x y)) +(rule (simplify (bor ty (smax ty x y) (smin ty y x))) (bor ty x y)) +(rule (simplify (bor ty (smin ty x y) (smax ty x y))) (bor ty x y)) +(rule (simplify (bor ty (smin ty x y) (smax ty y x))) (bor ty x y)) +(rule (simplify (bor ty (umax ty x y) (umin ty x y))) (bor ty x y)) +(rule (simplify (bor ty (umax ty x y) (umin ty y x))) (bor ty x y)) +(rule (simplify (bor ty (umin ty x y) (umax ty x y))) (bor ty x y)) +(rule (simplify (bor ty (umin ty x y) (umax ty y x))) (bor ty x y)) + +;; max(x, y) ^ min(x, y) --> x ^ y +(rule (simplify (bxor ty (smax ty x y) (smin ty x y))) (bxor ty x y)) +(rule (simplify (bxor ty (smax ty x y) (smin ty y x))) (bxor ty x y)) +(rule (simplify (bxor ty (smin ty x y) (smax ty x y))) (bxor ty x y)) +(rule (simplify (bxor ty (smin ty x y) (smax ty y x))) (bxor ty x y)) +(rule (simplify (bxor ty (umax ty x y) (umin ty x y))) (bxor ty x y)) +(rule (simplify (bxor ty (umax ty x y) (umin ty y x))) (bxor ty x y)) +(rule (simplify (bxor ty (umin ty x y) (umax ty x y))) (bxor ty x y)) +(rule (simplify (bxor ty (umin ty x y) (umax ty y x))) (bxor ty x y)) + +;; (~x OP y) ^ (~y OP x) --> x ^ y (OP = {&, |}) +(rule (simplify (bxor ty (bor ty (bnot ty x) y) (bor ty (bnot ty y) x))) (bxor ty x y)) +(rule (simplify (bxor ty (bor ty (bnot ty x) y) (bor ty x (bnot ty y)))) (bxor ty x y)) +(rule (simplify (bxor ty (bor ty x (bnot ty y)) (bor ty (bnot ty x) y))) (bxor ty y x)) +(rule (simplify (bxor ty (bor ty x (bnot ty y)) (bor ty y (bnot ty x)))) (bxor ty y x)) +(rule (simplify (bxor ty (band ty (bnot ty x) y) (band ty (bnot ty y) x))) (bxor ty y x)) +(rule (simplify (bxor ty (band ty (bnot ty x) y) (band ty x (bnot ty y)))) (bxor ty y x)) +(rule (simplify (bxor ty (band ty x (bnot ty y)) (band ty (bnot ty x) y))) (bxor ty x y)) +(rule (simplify (bxor ty (band ty x (bnot ty y)) (band ty y (bnot ty x)))) (bxor ty x y)) + +;; (~x | y) & (~y | x) --> ~(x ^ y) +(rule (simplify (band ty (bor ty (bnot ty x) y) (bor ty (bnot ty y) x))) (bnot ty (bxor ty x y))) +(rule (simplify (band ty (bor ty (bnot ty x) y) (bor ty x (bnot ty y)))) (bnot ty (bxor ty x y))) +(rule (simplify (band ty (bor ty x (bnot ty y)) (bor ty (bnot ty x) y))) (bnot ty (bxor ty y x))) +(rule (simplify (band ty (bor ty x (bnot ty y)) (bor ty y (bnot ty x)))) (bnot ty (bxor ty y x))) + +;; (x + C) ^ -1 --> (-(C + 1)) - x +(rule (simplify (bxor (fits_in_64 ty) (iadd ty x (iconst ty y)) (iconst_s ty -1))) (isub ty (ineg ty (iconst ty (imm64_add ty y (imm64 1)))) x)) + +;; (x | C) ^ (y | C) --> (x ^ y) & ~C +(rule (simplify (bxor (fits_in_64 (ty_int ty)) (bor ty (iconst ty x) y) (bor ty z (iconst ty x)))) (band ty (bxor ty z y) (iconst ty (imm64_not ty x)))) +(rule (simplify (bxor (fits_in_64 (ty_int ty)) (bor ty x (iconst ty y)) (bor ty z (iconst ty y)))) (band ty (bxor ty x z) (iconst ty (imm64_not ty y)))) + +;; (x | C) ^ (y ^ C) --> (x & ~C) ^ y +(rule (simplify (bxor (fits_in_64 (ty_int ty)) (bor ty x (iconst ty y)) (bxor ty z (iconst ty y)))) (bxor ty (band ty x (iconst ty (imm64_not ty y))) z)) +(rule (simplify (bxor (fits_in_64 (ty_int ty)) (bxor ty x (iconst ty y)) (bor ty z (iconst ty y)))) (bxor ty (band ty z (iconst ty (imm64_not ty y))) x)) + +;; ~smax(~x, y) --> smin(x, ~y) +(rule (simplify (bnot ty (smax ty (bnot ty x) y))) (smin ty x (bnot ty y))) +(rule (simplify (bnot ty (smax ty x (bnot ty y)))) (smin ty y (bnot ty x))) + +;; ~umax(~x, y) --> umin(x, ~y) +(rule (simplify (bnot ty (umax ty (bnot ty x) y))) (umin ty x (bnot ty y))) +(rule (simplify (bnot ty (umax ty x (bnot ty y)))) (umin ty y (bnot ty x))) + +;; ~smin(~x, y) --> smax(x, ~y) +(rule (simplify (bnot ty (smin ty (bnot ty x) y))) (smax ty x (bnot ty y))) +(rule (simplify (bnot ty (smin ty x (bnot ty y)))) (smax ty y (bnot ty x))) + +;; ~umin(~x, y) --> umax(x, ~y) +(rule (simplify (bnot ty (umin ty (bnot ty x) y))) (umax ty x (bnot ty y))) +(rule (simplify (bnot ty (umin ty x (bnot ty y)))) (umax ty y (bnot ty x))) diff --git a/cranelift/codegen/src/opts/icmp.isle b/cranelift/codegen/src/opts/icmp.isle index b28120a7aae8..ef69e41be8f5 100644 --- a/cranelift/codegen/src/opts/icmp.isle +++ b/cranelift/codegen/src/opts/icmp.isle @@ -628,3 +628,52 @@ (rule (simplify (bor _ (ne cty x (iconst_u cty 0)) (ne cty y (iconst_u cty 0)))) (ne cty (bor cty x y) (all_zero cty))) ;; (x == 0) & (y == 0) --> (x | y) == 0 (rule (simplify (band _ (eq cty x (iconst_u cty 0)) (eq cty y (iconst_u cty 0)))) (eq cty (bor cty x y) (all_zero cty))) + +;; (x << 1) == x --> x == 0 +(rule (simplify (eq ty (ishl cty x (iconst_u _ 1)) x)) (eq ty x (all_zero cty))) +(rule (simplify (eq ty x (ishl cty x (iconst_u _ 1)))) (eq ty x (all_zero cty))) + +;; (x >>u 1) == x --> x == 0 +(rule (simplify (eq ty (ushr cty x (iconst_u _ 1)) x)) (eq ty x (all_zero cty))) +(rule (simplify (eq ty x (ushr cty x (iconst_u _ 1)))) (eq ty x (all_zero cty))) + +;; (~x & y) == y --> (y & x) == 0 +(rule (simplify (eq ty (band cty (bnot cty x) y) y)) (eq ty (band cty y x) (all_zero cty))) +(rule (simplify (eq ty (band cty x (bnot cty y)) x)) (eq ty (band cty x y) (all_zero cty))) +(rule (simplify (eq ty x (band cty (bnot cty y) x))) (eq ty (band cty x y) (all_zero cty))) +(rule (simplify (eq ty x (band cty x (bnot cty y)))) (eq ty (band cty x y) (all_zero cty))) + +;; umax(x, y) OP 0 --> (x | y) OP 0 (OP = {==, !=}) +(rule (simplify (eq ty (umax cty x y) (all_zero cty))) (eq ty (bor cty x y) (all_zero cty))) +(rule (simplify (ne ty (umax cty x y) (all_zero cty))) (ne ty (bor cty x y) (all_zero cty))) + +;; umax(x, y) OP umin(x, y) --> x OP y (OP = {==, !=}) +(rule (simplify (eq ty (umax cty x y) (umin cty x y))) (eq ty x y)) +(rule (simplify (eq ty (umax cty x y) (umin cty y x))) (eq ty x y)) +(rule (simplify (eq ty (umin cty x y) (umax cty x y))) (eq ty x y)) +(rule (simplify (eq ty (umin cty x y) (umax cty y x))) (eq ty x y)) +(rule (simplify (ne ty (umax cty x y) (umin cty x y))) (ne ty x y)) +(rule (simplify (ne ty (umax cty x y) (umin cty y x))) (ne ty x y)) +(rule (simplify (ne ty (umin cty x y) (umax cty x y))) (ne ty x y)) +(rule (simplify (ne ty (umin cty x y) (umax cty y x))) (ne ty x y)) + +;; ~x == (~x | y) --> (y & x) == 0 +(rule (simplify (eq ty (bnot cty x) (bor cty (bnot cty x) y))) (eq ty (band cty y x) (all_zero cty))) +(rule (simplify (eq ty (bnot cty x) (bor cty y (bnot cty x)))) (eq ty (band cty y x) (all_zero cty))) +(rule (simplify (eq ty (bor cty (bnot cty x) y) (bnot cty x))) (eq ty (band cty y x) (all_zero cty))) +(rule (simplify (eq ty (bor cty x (bnot cty y)) (bnot cty y))) (eq ty (band cty x y) (all_zero cty))) + +;; (c ? x : y) == (c ? y : x) --> x == y +(rule (simplify (eq ty (select cty x y z) (select cty x z y))) (eq ty y z)) + +;; (x >=s y) & (y >=s x) --> x == y +(rule (simplify (band _ (sge cty x y) (sge cty y x))) (eq cty x y)) +(rule (simplify (band _ (sge cty x y) (sle cty x y))) (eq cty x y)) +(rule (simplify (band _ (sle cty x y) (sge cty x y))) (eq cty x y)) +(rule (simplify (band _ (sle cty x y) (sle cty y x))) (eq cty x y)) + +;; (x >=u y) & (y >=u x) --> x == y +(rule (simplify (band _ (uge cty x y) (uge cty y x))) (eq cty x y)) +(rule (simplify (band _ (uge cty x y) (ule cty x y))) (eq cty x y)) +(rule (simplify (band _ (ule cty x y) (uge cty x y))) (eq cty x y)) +(rule (simplify (band _ (ule cty x y) (ule cty y x))) (eq cty x y)) diff --git a/cranelift/codegen/src/opts/selects.isle b/cranelift/codegen/src/opts/selects.isle index 6a6a9129f382..5ec428ceefed 100644 --- a/cranelift/codegen/src/opts/selects.isle +++ b/cranelift/codegen/src/opts/selects.isle @@ -313,3 +313,25 @@ ;; (c ? C1 : C2) - C --> c ? (C1 - C) : (C2 - C) (rule (simplify (isub (fits_in_64 ty) (select ty x (iconst ty y) (iconst ty z)) (iconst ty p))) (select ty x (iconst ty (imm64_sub ty y p)) (iconst ty (imm64_sub ty z p)))) + +;; (x == 0) ? -x : x --> x +(rule (simplify (select ty (eq cty x (all_zero ty)) (ineg ty x) x)) x) +(rule (simplify (select ty (ne cty x (all_zero ty)) x (ineg ty x))) x) + +;; ~(c ? C1 : C2) --> c ? ~C1 : ~C2 +(rule (simplify (bnot (fits_in_64 ty) (select ty x (iconst ty y) (iconst ty z)))) (select ty x (iconst ty (imm64_not ty y)) (iconst ty (imm64_not ty z)))) + +;; -(c ? C1 : C2) --> c ? -C1 : -C2 +(rule (simplify (ineg (fits_in_64 ty) (select ty x (iconst ty y) (iconst ty z)))) (select ty x (iconst ty (imm64_neg ty y)) (iconst ty (imm64_neg ty z)))) + +;; (x == 0) ? 0 : (x & y) --> x & y +(rule (simplify (select ty (eq cty x (iconst_u ty 0)) (iconst_u ty 0) (band ty x y))) (band ty x y)) +(rule (simplify (select ty (eq cty x (iconst_u ty 0)) (iconst_u ty 0) (band ty y x))) (band ty x y)) +(rule (simplify (select ty (ne cty x (iconst_u ty 0)) (band ty x y) (iconst_u ty 0))) (band ty x y)) +(rule (simplify (select ty (ne cty x (iconst_u ty 0)) (band ty y x) (iconst_u ty 0))) (band ty x y)) + +;; (x == 0) ? 0 : (x * y) --> x * y +(rule (simplify (select ty (eq cty x (iconst_u ty 0)) (iconst_u ty 0) (imul ty x y))) (imul ty x y)) +(rule (simplify (select ty (eq cty x (iconst_u ty 0)) (iconst_u ty 0) (imul ty y x))) (imul ty x y)) +(rule (simplify (select ty (ne cty x (iconst_u ty 0)) (imul ty x y) (iconst_u ty 0))) (imul ty x y)) +(rule (simplify (select ty (ne cty x (iconst_u ty 0)) (imul ty y x) (iconst_u ty 0))) (imul ty x y)) diff --git a/cranelift/codegen/src/opts/shifts.isle b/cranelift/codegen/src/opts/shifts.isle index 96ad855f0621..b8aee5ead226 100644 --- a/cranelift/codegen/src/opts/shifts.isle +++ b/cranelift/codegen/src/opts/shifts.isle @@ -368,3 +368,9 @@ ;; ((x & M) << k) & M --> (x << k) & M (M = 2^n - 1) (rule (simplify (band ty (ishl ty (band ty x (iconst_u ty y)) z) (iconst_u ty y))) (if-let true (u64_eq (u64_and y (u64_wrapping_add y 1)) 0)) (band ty (ishl ty x z) (iconst_u ty y))) + +;; ~rotl(~x, k) --> rotl(x, k) +(rule (simplify (bnot ty (rotl ty (bnot ty x) y))) (rotl ty x y)) + +;; ~rotr(~x, k) --> rotr(x, k) +(rule (simplify (bnot ty (rotr ty (bnot ty x) y))) (rotr ty x y)) diff --git a/cranelift/filetests/filetests/egraph/arithmetic.clif b/cranelift/filetests/filetests/egraph/arithmetic.clif index cc8110893b1d..667fe60708a0 100644 --- a/cranelift/filetests/filetests/egraph/arithmetic.clif +++ b/cranelift/filetests/filetests/egraph/arithmetic.clif @@ -457,10 +457,10 @@ block0(v0: i32): v2 = iadd v0, v1 v3 = bnot v2 return v3 - ; check: v4 = bnot v0 - ; check: v5 = iconst.i32 -5 - ; check: v6 = iadd v4, v5 - ; check: return v6 + ; check: v1 = iconst.i32 5 + ; check: v2 = iadd v0, v1 + ; check: v3 = bnot v2 + ; check: return v3 } ;; ~(x + y) --> (~x) + (-y) @@ -470,10 +470,10 @@ block0(v0: i64): v2 = iadd v0, v1 v3 = bnot v2 return v3 - ; check: v4 = bnot v0 - ; check: v5 = iconst.i64 7 - ; check: v6 = iadd v4, v5 - ; check: return v6 + ; check: v1 = iconst.i64 -7 + ; check: v2 = iadd v0, v1 + ; check: v3 = bnot v2 + ; check: return v3 } ;; -1 - x --> ~x @@ -1086,3 +1086,622 @@ block0(v0: i8, v1: i8): ; check: v10 = iconst.i8 56 ; check: v11 = iadd v9, v10 ; v10 = 56 ; check: return v11 + +function %transplant_41834_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41834_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41834_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41835_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v1 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v1, v2 +; check: return v7 + +function %transplant_41835_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v1 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v1, v2 +; check: return v7 + +function %transplant_41904_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41904_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41905_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v1, v0 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} + +; check: v2 = band v1, v0 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41905_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v1, v0 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} + +; check: v2 = band v1, v0 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41772_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41772_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41772_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41773_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41773_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41782_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41782_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41783_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41783_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_44291_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} + +; check: v5 = smin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_44291_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} + +; check: v5 = smin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_44291_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} + +; check: v5 = smin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45214_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} + +; check: v5 = umin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45214_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} + +; check: v5 = umin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45214_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} + +; check: v5 = umin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_44346_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} + +; check: v5 = smax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_44346_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} + +; check: v5 = smax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_44346_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} + +; check: v5 = smax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45269_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} + +; check: v5 = umax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45269_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} + +; check: v5 = umax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45269_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} + +; check: v5 = umax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_42334_i8(i8) -> i8 { +block0(v0: i8): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} + +; check: v4 = iconst.i8 1 +; check: return v4 + +function %transplant_42334_i64(i64) -> i64 { +block0(v0: i64): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} + +; check: v4 = iconst.i64 1 +; check: return v4 + +function %transplant_42334_i128(i128) -> i128 { +block0(v0: i128): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} + +; check: v4 = iconst.i64 1 +; check: v5 = uextend.i128 v4 +; check: return v5 + +function %transplant_41604_i8(i8) -> i8 { +block0(v0: i8): + v1 = bnot v0 + v2 = iconst.i8 13 + v3 = iadd v1, v2 + return v3 +} + +; check: v1 = bnot v0 +; check: v2 = iconst.i8 13 +; check: v3 = iadd v1, v2 +; check: return v3 + +function %transplant_41604_i64(i64) -> i64 { +block0(v0: i64): + v1 = bnot v0 + v2 = iconst.i64 13 + v3 = iadd v1, v2 + return v3 +} + +; check: v1 = bnot v0 +; check: v2 = iconst.i64 13 +; check: v3 = iadd v1, v2 +; check: return v3 + +function %transplant_41604_i128(i128) -> i128 { +block0(v0: i128): + v1 = bnot v0 + v2 = iconst.i64 13 + v3 = sextend.i128 v2 + v4 = iadd v1, v3 + return v4 +} + +; check: v1 = bnot v0 +; check: v2 = iconst.i64 13 +; check: v3 = sextend.i128 v2 +; check: v4 = iadd v1, v3 +; check: return v4 + +function %transplant_42176_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = bor v0, v1 + v3 = iconst.i8 13 + v4 = isub v2, v3 + return v4 +} + +; check: v5 = iconst.i8 -14 +; check: v6 = band v0, v5 +; check: return v6 + +function %transplant_42176_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 13 + v2 = bor v0, v1 + v3 = iconst.i64 13 + v4 = isub v2, v3 + return v4 +} + +; check: v5 = iconst.i64 -14 +; check: v6 = band v0, v5 +; check: return v6 + +function %transplant_42176_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = bor v0, v2 + v4 = iconst.i64 13 + v5 = sextend.i128 v4 + v6 = isub v3, v5 + return v6 +} + +; check: v1 = iconst.i64 13 +; check: v2 = sextend.i128 v1 +; check: v3 = bor v0, v2 +; check: v6 = isub v3, v2 +; check: return v6 + +function %transplant_41951_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = iconst.i8 13 + v4 = imul v2, v3 + return v4 +} + +; check: v1 = iconst.i32 1 +; check: v2 = ishl v0, v1 +; check: v3 = iconst.i8 13 +; check: v4 = imul v2, v3 +; check: return v4 + +function %transplant_41951_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = iconst.i64 13 + v4 = imul v2, v3 + return v4 +} + +; check: v1 = iconst.i32 1 +; check: v2 = ishl v0, v1 +; check: v3 = iconst.i64 13 +; check: v4 = imul v2, v3 +; check: return v4 + +function %transplant_41951_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = iconst.i64 13 + v4 = sextend.i128 v3 + v5 = imul v2, v4 + return v5 +} + +; check: v1 = iconst.i32 1 +; check: v2 = ishl v0, v1 +; check: v3 = iconst.i64 13 +; check: v4 = sextend.i128 v3 +; check: v5 = imul v2, v4 +; check: return v5 + +function %transplant_41834_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} + +; check: v2 = band v0, v1 +; check: v7 = isub v0, v2 +; check: return v7 + +function %transplant_41772_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_44291_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} + +; check: v5 = smin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45214_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} + +; check: v5 = umin v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_44346_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} + +; check: v5 = smax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_45269_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} + +; check: v5 = umax v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_42334_i32x4(i32x4) -> i32x4 { +block0(v0: i32x4): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} + +; check: const0 = 0x00000001000000010000000100000001 +; check: v6 = vconst.i32x4 const0 +; check: return v6 diff --git a/cranelift/filetests/filetests/egraph/bitops.clif b/cranelift/filetests/filetests/egraph/bitops.clif index 4319f4ccc676..6ef52a24aa88 100644 --- a/cranelift/filetests/filetests/egraph/bitops.clif +++ b/cranelift/filetests/filetests/egraph/bitops.clif @@ -438,8 +438,8 @@ block0(v0: i64): return v9 } -; check: v14 = bmask.i64 v0 -; check: return v14 +; check: v19 = bmask.i64 v0 +; check: return v19 function %bmask_sshr(i64) -> i64 { block0(v0: i64): @@ -1649,3 +1649,1678 @@ block0(v0: i32x4, v1: i32x4): ; nextln: v7 = vconst.i32x4 const0 ; nextln: return v7 ; v7 = const0 ; nextln: } + +function %transplant_41059_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41059_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41059_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41066_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bxor v3, v1 + return v4 +} + +; check: v5 = band v1, v0 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41066_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bxor v3, v1 + return v4 +} + +; check: v5 = band v1, v0 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41263_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v0, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41263_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v0, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41264_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v1, v2 + v4 = bxor v0, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_41264_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v1, v2 + v4 = bxor v0, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_38578_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38578_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38578_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38579_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38579_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38580_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38580_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38581_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_38581_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39078_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39078_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39078_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39079_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39079_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39080_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39080_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39081_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39081_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_40372_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40372_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40372_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40373_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40373_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40374_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40374_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40375_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40375_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40790_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40790_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40790_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40791_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40791_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40792_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40792_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40793_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40793_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_41171_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41171_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41171_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41172_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41172_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41173_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41173_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41174_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41174_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41251_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41251_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41251_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41252_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41252_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41253_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41253_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41254_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41254_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41053_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41053_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41053_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41054_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41054_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41060_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41060_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41062_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41062_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41026_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41026_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41026_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41027_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41027_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_41031_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41031_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41032_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41032_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_37458_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37458_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37458_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37459_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37459_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37471_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37471_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37472_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_37472_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_40979_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = iadd v0, v1 + v3 = iconst.i8 -1 + v4 = bxor v2, v3 + return v4 +} + +; check: v1 = iconst.i8 13 +; check: v2 = iadd v0, v1 +; check: v3 = iconst.i8 -1 +; check: v4 = bxor v2, v3 +; check: return v4 + +function %transplant_40979_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 13 + v2 = iadd v0, v1 + v3 = iconst.i64 -1 + v4 = bxor v2, v3 + return v4 +} + +; check: v1 = iconst.i64 13 +; check: v2 = iadd v0, v1 +; check: v3 = iconst.i64 -1 +; check: v4 = bxor v2, v3 +; check: return v4 + +function %transplant_40979_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = iadd v0, v2 + v4 = iconst.i64 -1 + v5 = sextend.i128 v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v1 = iconst.i64 13 +; check: v2 = sextend.i128 v1 +; check: v3 = iadd v0, v2 +; check: v4 = iconst.i64 -1 +; check: v5 = sextend.i128 v4 +; check: v6 = bxor v3, v5 +; check: return v6 + +function %transplant_40923_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bor v2, v0 + v4 = iconst.i8 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v12 = bxor v1, v0 +; check: v10 = iconst.i8 -14 +; check: v13 = band v12, v10 +; check: return v13 + +function %transplant_40923_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bor v2, v0 + v4 = iconst.i64 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v12 = bxor v1, v0 +; check: v10 = iconst.i64 -14 +; check: v13 = band v12, v10 +; check: return v13 + +function %transplant_40923_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 13 + v3 = sextend.i128 v2 + v4 = bor v3, v0 + v5 = iconst.i64 13 + v6 = sextend.i128 v5 + v7 = bor v1, v6 + v8 = bxor v4, v7 + return v8 +} + +; check: v2 = iconst.i64 13 +; check: v3 = sextend.i128 v2 +; check: v4 = bor v3, v0 +; check: v7 = bor v1, v3 +; check: v8 = bxor v4, v7 +; check: return v8 + +function %transplant_40933_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bor v0, v2 + v4 = iconst.i8 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = iconst.i8 -14 +; check: v9 = band v7, v8 +; check: return v9 + +function %transplant_40933_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bor v0, v2 + v4 = iconst.i64 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = iconst.i64 -14 +; check: v9 = band v7, v8 +; check: return v9 + +function %transplant_40935_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bor v0, v2 + v4 = iconst.i8 13 + v5 = bxor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = iconst.i8 -14 +; check: v8 = band v0, v7 +; check: v9 = bxor v8, v1 +; check: return v9 + +function %transplant_40935_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bor v0, v2 + v4 = iconst.i64 13 + v5 = bxor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = iconst.i64 -14 +; check: v8 = band v0, v7 +; check: v9 = bxor v8, v1 +; check: return v9 + +function %transplant_40935_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 13 + v3 = sextend.i128 v2 + v4 = bor v0, v3 + v5 = iconst.i64 13 + v6 = sextend.i128 v5 + v7 = bxor v1, v6 + v8 = bxor v4, v7 + return v8 +} + +; check: v2 = iconst.i64 13 +; check: v3 = sextend.i128 v2 +; check: v4 = bor v0, v3 +; check: v7 = bxor v1, v3 +; check: v8 = bxor v4, v7 +; check: return v8 + +function %transplant_40950_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bxor v0, v2 + v4 = iconst.i8 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = iconst.i8 -14 +; check: v8 = band v1, v7 +; check: v9 = bxor v8, v0 +; check: return v9 + +function %transplant_40950_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bxor v0, v2 + v4 = iconst.i64 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = iconst.i64 -14 +; check: v8 = band v1, v7 +; check: v9 = bxor v8, v0 +; check: return v9 + +function %transplant_39206_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smin v0, v5 +; check: return v6 + +function %transplant_39206_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smin v0, v5 +; check: return v6 + +function %transplant_39206_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smin v0, v5 +; check: return v6 + +function %transplant_39207_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = smax v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = smin v1, v5 +; check: return v6 + +function %transplant_39207_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = smax v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = smin v1, v5 +; check: return v6 + +function %transplant_39214_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umin v0, v5 +; check: return v6 + +function %transplant_39214_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umin v0, v5 +; check: return v6 + +function %transplant_39214_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umin v0, v5 +; check: return v6 + +function %transplant_39215_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = umax v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = umin v1, v5 +; check: return v6 + +function %transplant_39215_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = umax v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = umin v1, v5 +; check: return v6 + +function %transplant_39208_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smax v0, v5 +; check: return v6 + +function %transplant_39208_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smax v0, v5 +; check: return v6 + +function %transplant_39208_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smax v0, v5 +; check: return v6 + +function %transplant_39209_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = smin v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = smax v1, v5 +; check: return v6 + +function %transplant_39209_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = smin v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = smax v1, v5 +; check: return v6 + +function %transplant_39216_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umax v0, v5 +; check: return v6 + +function %transplant_39216_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umax v0, v5 +; check: return v6 + +function %transplant_39216_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umax v0, v5 +; check: return v6 + +function %transplant_39217_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = umin v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = umax v1, v5 +; check: return v6 + +function %transplant_39217_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = umin v0, v2 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v0 +; check: v6 = umax v1, v5 +; check: return v6 + +function %transplant_41059_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} + +; check: v5 = band v0, v1 +; check: v6 = bnot v5 +; check: return v6 + +function %transplant_38578_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_39078_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} + +; check: v5 = band v0, v1 +; check: return v5 + +function %transplant_40372_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_40790_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} + +; check: v5 = bor v0, v1 +; check: return v5 + +function %transplant_41171_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41251_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} + +; check: v5 = bxor v0, v1 +; check: return v5 + +function %transplant_41053_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: return v7 + +function %transplant_41026_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} + +; check: v7 = bxor v1, v0 +; check: return v7 + +function %transplant_37458_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} + +; check: v7 = bxor v0, v1 +; check: v8 = bnot v7 +; check: return v8 + +function %transplant_39206_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smin v0, v5 +; check: return v6 + +function %transplant_39214_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umin v0, v5 +; check: return v6 + +function %transplant_39208_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = smax v0, v5 +; check: return v6 + +function %transplant_39216_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = bnot v1 +; check: v6 = umax v0, v5 +; check: return v6 diff --git a/cranelift/filetests/filetests/egraph/i32x2-scalar-guards.clif b/cranelift/filetests/filetests/egraph/i32x2-scalar-guards.clif index bd06723a3fa3..e2092d8eb24a 100644 --- a/cranelift/filetests/filetests/egraph/i32x2-scalar-guards.clif +++ b/cranelift/filetests/filetests/egraph/i32x2-scalar-guards.clif @@ -62,3 +62,37 @@ block0(v0: i32x2): ; v2 = bnot v1 ; return v2 ; } + +;; `(-x) - (~x) --> 1` should not build `iconst_u` on i32x2. +function %isub_ineg_bnot_i32x2(i32x2) -> i32x2 { +block0(v0: i32x2): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} + +; function %isub_ineg_bnot_i32x2(i32x2) -> i32x2 fast { +; block0(v0: i32x2): +; v1 = ineg v0 +; v2 = bnot v0 +; v3 = isub v1, v2 +; return v3 +; } + +;; `(-x) - (~x) --> 1` should not build `iconst_u` on i8x4. +function %isub_ineg_bnot_i8x4(i8x4) -> i8x4 { +block0(v0: i8x4): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} + +; function %isub_ineg_bnot_i8x4(i8x4) -> i8x4 fast { +; block0(v0: i8x4): +; v1 = ineg v0 +; v2 = bnot v0 +; v3 = isub v1, v2 +; return v3 +; } diff --git a/cranelift/filetests/filetests/egraph/icmp.clif b/cranelift/filetests/filetests/egraph/icmp.clif index 9a0e57b7d4c7..d1b36972ec9a 100644 --- a/cranelift/filetests/filetests/egraph/icmp.clif +++ b/cranelift/filetests/filetests/egraph/icmp.clif @@ -1481,3 +1481,1265 @@ block0(v0: i32, v1: i32): ; v7 = icmp eq v6, v2 ; v2 = 0 ; return v7 ; } + +function %transplant_41371_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41371_i8(i8) -> i8 fast { +; block0(v0: i8): +; v4 = iconst.i8 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41371_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41371_i64(i64) -> i8 fast { +; block0(v0: i64): +; v4 = iconst.i64 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41371_i128(i128) -> i8 { +block0(v0: i128): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41371_i128(i128) -> i8 fast { +; block0(v0: i128): +; v4 = iconst.i64 0 +; v5 = uextend.i128 v4 ; v4 = 0 +; v6 = icmp eq v0, v5 +; return v6 +; } + +function %transplant_41481_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v0, v2 + return v3 +} + +; function %transplant_41481_i8(i8) -> i8 fast { +; block0(v0: i8): +; v4 = iconst.i8 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41481_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v0, v2 + return v3 +} + +; function %transplant_41481_i64(i64) -> i8 fast { +; block0(v0: i64): +; v4 = iconst.i64 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41468_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41468_i8(i8) -> i8 fast { +; block0(v0: i8): +; v4 = iconst.i8 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41468_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41468_i64(i64) -> i8 fast { +; block0(v0: i64): +; v4 = iconst.i64 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41468_i128(i128) -> i8 { +block0(v0: i128): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41468_i128(i128) -> i8 fast { +; block0(v0: i128): +; v4 = iconst.i64 0 +; v5 = uextend.i128 v4 ; v4 = 0 +; v6 = icmp eq v0, v5 +; return v6 +; } + +function %transplant_41521_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v0, v2 + return v3 +} + +; function %transplant_41521_i8(i8) -> i8 fast { +; block0(v0: i8): +; v4 = iconst.i8 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41521_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v0, v2 + return v3 +} + +; function %transplant_41521_i64(i64) -> i8 fast { +; block0(v0: i64): +; v4 = iconst.i64 0 +; v5 = icmp eq v0, v4 ; v4 = 0 +; return v5 +; } + +function %transplant_41309_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} + +; function %transplant_41309_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = band v1, v0 +; v6 = iconst.i8 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41309_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} + +; function %transplant_41309_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = band v1, v0 +; v6 = iconst.i64 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41309_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} + +; function %transplant_41309_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v5 = band v1, v0 +; v6 = iconst.i64 0 +; v7 = uextend.i128 v6 ; v6 = 0 +; v8 = icmp eq v5, v7 +; return v8 +; } + +function %transplant_41318_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v3, v0 + return v4 +} + +; function %transplant_41318_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = band v0, v1 +; v6 = iconst.i8 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41318_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v3, v0 + return v4 +} + +; function %transplant_41318_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = band v0, v1 +; v6 = iconst.i64 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41469_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v2, v0 + v4 = icmp eq v0, v3 + return v4 +} + +; function %transplant_41469_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = band v0, v1 +; v6 = iconst.i8 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41469_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v2, v0 + v4 = icmp eq v0, v3 + return v4 +} + +; function %transplant_41469_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = band v0, v1 +; v6 = iconst.i64 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41472_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v0, v3 + return v4 +} + +; function %transplant_41472_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = band v0, v1 +; v6 = iconst.i8 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41472_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v0, v3 + return v4 +} + +; function %transplant_41472_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = band v0, v1 +; v6 = iconst.i64 0 +; v7 = icmp eq v5, v6 ; v6 = 0 +; return v7 +; } + +function %transplant_41459_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = iconst.i8 0 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41459_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = bor v0, v1 +; v3 = iconst.i8 0 +; v6 = icmp eq v5, v3 ; v3 = 0 +; return v6 +; } + +function %transplant_41459_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41459_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = bor v0, v1 +; v3 = iconst.i64 0 +; v6 = icmp eq v5, v3 ; v3 = 0 +; return v6 +; } + +function %transplant_41459_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = sextend.i128 v3 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41459_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v2 = umax v0, v1 +; v3 = iconst.i64 0 +; v4 = sextend.i128 v3 ; v3 = 0 +; v5 = icmp eq v2, v4 +; return v5 +; } + +function %transplant_42478_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = iconst.i8 0 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42478_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = bor v0, v1 +; v3 = iconst.i8 0 +; v6 = icmp ne v5, v3 ; v3 = 0 +; return v6 +; } + +function %transplant_42478_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42478_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = bor v0, v1 +; v3 = iconst.i64 0 +; v6 = icmp ne v5, v3 ; v3 = 0 +; return v6 +; } + +function %transplant_42478_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = sextend.i128 v3 + v5 = icmp ne v2, v4 + return v5 +} + +; function %transplant_42478_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v2 = umax v0, v1 +; v3 = iconst.i64 0 +; v4 = sextend.i128 v3 ; v3 = 0 +; v5 = icmp ne v2, v4 +; return v5 +; } + +function %transplant_41460_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41460_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41460_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41460_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41460_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41460_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41461_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41461_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41461_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41461_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41464_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41464_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41464_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41464_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41465_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41465_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41465_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41465_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_42479_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42479_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42479_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42479_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42479_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42479_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42480_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42480_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42480_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42480_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42483_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42483_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42483_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42483_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42484_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42484_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_42484_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42484_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_41327_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41327_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v6 = band v1, v0 +; v7 = iconst.i8 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41327_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41327_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v6 = band v1, v0 +; v7 = iconst.i64 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41327_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41327_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v6 = band v1, v0 +; v7 = iconst.i64 0 +; v8 = uextend.i128 v7 ; v7 = 0 +; v9 = icmp eq v6, v8 +; return v9 +; } + +function %transplant_41328_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v1, v3 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41328_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v6 = band v1, v0 +; v7 = iconst.i8 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41328_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v1, v3 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41328_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v6 = band v1, v0 +; v7 = iconst.i64 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41330_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v0 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41330_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v6 = band v1, v0 +; v7 = iconst.i8 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41330_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v0 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41330_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v6 = band v1, v0 +; v7 = iconst.i64 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41334_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v1 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41334_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v6 = band v0, v1 +; v7 = iconst.i8 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41334_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v1 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41334_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v6 = band v0, v1 +; v7 = iconst.i64 0 +; v8 = icmp eq v6, v7 ; v7 = 0 +; return v8 +; } + +function %transplant_41425_i8(i8, i8, i8) -> i8 { +block0(v0: i8, v1: i8, v2: i8): + v3 = select v0, v1, v2 + v4 = select v0, v2, v1 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41425_i8(i8, i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8, v2: i8): +; v6 = icmp eq v1, v2 +; return v6 +; } + +function %transplant_41425_i64(i8, i64, i64) -> i8 { +block0(v0: i8, v1: i64, v2: i64): + v3 = select v0, v1, v2 + v4 = select v0, v2, v1 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41425_i64(i8, i64, i64) -> i8 fast { +; block0(v0: i8, v1: i64, v2: i64): +; v6 = icmp eq v1, v2 +; return v6 +; } + +function %transplant_41425_i128(i8, i128, i128) -> i8 { +block0(v0: i8, v1: i128, v2: i128): + v3 = select v0, v1, v2 + v4 = select v0, v2, v1 + v5 = icmp eq v3, v4 + return v5 +} + +; function %transplant_41425_i128(i8, i128, i128) -> i8 fast { +; block0(v0: i8, v1: i128, v2: i128): +; v6 = icmp eq v1, v2 +; return v6 +; } + +function %transplant_38178_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38178_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38178_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38178_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38178_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38178_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38180_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sge v0, v1 + v3 = icmp sle v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38180_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38180_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sge v0, v1 + v3 = icmp sle v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38180_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38418_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sle v0, v1 + v3 = icmp sge v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38418_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38418_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sle v0, v1 + v3 = icmp sge v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38418_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38422_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sle v0, v1 + v3 = icmp sle v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38422_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38422_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sle v0, v1 + v3 = icmp sle v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38422_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38685_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38685_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38685_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38685_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38685_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38685_i128(i128, i128) -> i8 fast { +; block0(v0: i128, v1: i128): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38687_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp uge v0, v1 + v3 = icmp ule v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38687_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38687_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp uge v0, v1 + v3 = icmp ule v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38687_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38925_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp ule v0, v1 + v3 = icmp uge v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38925_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38925_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp ule v0, v1 + v3 = icmp uge v0, v1 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38925_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38931_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp ule v0, v1 + v3 = icmp ule v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38931_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38931_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp ule v0, v1 + v3 = icmp ule v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38931_i64(i64, i64) -> i8 fast { +; block0(v0: i64, v1: i64): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_41371_i32x4(i32x4) -> i32x4 { +block0(v0: i32x4): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41371_i32x4(i32x4) -> i32x4 fast { +; const0 = 0x00000000000000000000000000000000 +; +; block0(v0: i32x4): +; v4 = vconst.i32x4 const0 +; v5 = icmp eq v0, v4 ; v4 = const0 +; return v5 +; } + +function %transplant_41468_i32x4(i32x4) -> i32x4 { +block0(v0: i32x4): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} + +; function %transplant_41468_i32x4(i32x4) -> i32x4 fast { +; const0 = 0x00000000000000000000000000000000 +; +; block0(v0: i32x4): +; v4 = vconst.i32x4 const0 +; v5 = icmp eq v0, v4 ; v4 = const0 +; return v5 +; } + +function %transplant_41309_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} + +; function %transplant_41309_i32x4(i32x4, i32x4) -> i32x4 fast { +; const0 = 0x00000000000000000000000000000000 +; +; block0(v0: i32x4, v1: i32x4): +; v2 = bnot v0 +; v3 = band v2, v1 +; v4 = icmp eq v3, v1 +; return v4 +; } + +function %transplant_41459_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v993 = iconst.i32 0 + v3 = splat.i32x4 v993 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41459_i32x4(i32x4, i32x4) -> i32x4 fast { +; const0 = 0x00000000000000000000000000000000 +; +; block0(v0: i32x4, v1: i32x4): +; v996 = bor v0, v1 +; v994 = vconst.i32x4 const0 +; v997 = icmp eq v996, v994 ; v994 = const0 +; return v997 +; } + +function %transplant_42478_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v993 = iconst.i32 0 + v3 = splat.i32x4 v993 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42478_i32x4(i32x4, i32x4) -> i32x4 fast { +; const0 = 0x00000000000000000000000000000000 +; +; block0(v0: i32x4, v1: i32x4): +; v996 = bor v0, v1 +; v994 = vconst.i32x4 const0 +; v997 = icmp ne v996, v994 ; v994 = const0 +; return v997 +; } + +function %transplant_41460_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} + +; function %transplant_41460_i32x4(i32x4, i32x4) -> i32x4 fast { +; block0(v0: i32x4, v1: i32x4): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_42479_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} + +; function %transplant_42479_i32x4(i32x4, i32x4) -> i32x4 fast { +; block0(v0: i32x4, v1: i32x4): +; v5 = icmp ne v0, v1 +; return v5 +; } + +function %transplant_41327_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} + +; function %transplant_41327_i32x4(i32x4, i32x4) -> i32x4 fast { +; const0 = 0x00000000000000000000000000000000 +; +; block0(v0: i32x4, v1: i32x4): +; v6 = band v1, v0 +; v7 = vconst.i32x4 const0 +; v8 = icmp eq v6, v7 ; v7 = const0 +; return v8 +; } + +function %transplant_38178_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38178_i32x4(i32x4, i32x4) -> i32x4 fast { +; block0(v0: i32x4, v1: i32x4): +; v5 = icmp eq v0, v1 +; return v5 +; } + +function %transplant_38685_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} + +; function %transplant_38685_i32x4(i32x4, i32x4) -> i32x4 fast { +; block0(v0: i32x4, v1: i32x4): +; v5 = icmp eq v0, v1 +; return v5 +; } diff --git a/cranelift/filetests/filetests/egraph/selects.clif b/cranelift/filetests/filetests/egraph/selects.clif index c3ab029bc7b4..3ee1f315f221 100644 --- a/cranelift/filetests/filetests/egraph/selects.clif +++ b/cranelift/filetests/filetests/egraph/selects.clif @@ -1108,3 +1108,553 @@ block0(v0: i8, v1: i64): ; v5 = bor v3, v4 ; v4 = 5 ; return v5 ; } + +function %transplant_42865_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 0 + v2 = icmp eq v0, v1 + v3 = ineg v0 + v4 = select v2, v3, v0 + return v4 +} + +; function %transplant_42865_i8(i8) -> i8 fast { +; block0(v0: i8): +; return v0 +; } + +function %transplant_42865_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 0 + v2 = icmp eq v0, v1 + v3 = ineg v0 + v4 = select v2, v3, v0 + return v4 +} + +; function %transplant_42865_i64(i64) -> i64 fast { +; block0(v0: i64): +; return v0 +; } + +function %transplant_42865_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 0 + v2 = sextend.i128 v1 + v3 = icmp eq v0, v2 + v4 = ineg v0 + v5 = select v3, v4, v0 + return v5 +} + +; function %transplant_42865_i128(i128) -> i128 fast { +; block0(v0: i128): +; v1 = iconst.i64 0 +; v2 = sextend.i128 v1 ; v1 = 0 +; v3 = icmp eq v0, v2 +; v4 = ineg v0 +; v5 = select v3, v4, v0 +; return v5 +; } + +function %transplant_43009_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 0 + v2 = icmp ne v0, v1 + v3 = ineg v0 + v4 = select v2, v0, v3 + return v4 +} + +; function %transplant_43009_i8(i8) -> i8 fast { +; block0(v0: i8): +; return v0 +; } + +function %transplant_43009_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 0 + v2 = icmp ne v0, v1 + v3 = ineg v0 + v4 = select v2, v0, v3 + return v4 +} + +; function %transplant_43009_i64(i64) -> i64 fast { +; block0(v0: i64): +; return v0 +; } + +function %transplant_43009_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 0 + v2 = sextend.i128 v1 + v3 = icmp ne v0, v2 + v4 = ineg v0 + v5 = select v3, v0, v4 + return v5 +} + +; function %transplant_43009_i128(i128) -> i128 fast { +; block0(v0: i128): +; v1 = iconst.i64 0 +; v2 = sextend.i128 v1 ; v1 = 0 +; v3 = icmp ne v0, v2 +; v4 = ineg v0 +; v5 = select v3, v0, v4 +; return v5 +; } + +function %transplant_39182_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = iconst.i8 42 + v3 = select v0, v1, v2 + v4 = bnot v3 + return v4 +} + +; function %transplant_39182_i8(i8) -> i8 fast { +; block0(v0: i8): +; v5 = iconst.i8 -14 +; v6 = iconst.i8 -43 +; v7 = select v0, v5, v6 ; v5 = -14, v6 = -43 +; return v7 +; } + +function %transplant_39182_i64(i8) -> i64 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = iconst.i64 42 + v3 = select v0, v1, v2 + v4 = bnot v3 + return v4 +} + +; function %transplant_39182_i64(i8) -> i64 fast { +; block0(v0: i8): +; v5 = iconst.i64 -14 +; v6 = iconst.i64 -43 +; v7 = select v0, v5, v6 ; v5 = -14, v6 = -43 +; return v7 +; } + +function %transplant_39182_i128(i8) -> i128 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = iconst.i64 42 + v4 = sextend.i128 v3 + v5 = select v0, v2, v4 + v6 = bnot v5 + return v6 +} + +; function %transplant_39182_i128(i8) -> i128 fast { +; block0(v0: i8): +; v1 = iconst.i64 13 +; v3 = iconst.i64 42 +; v7 = select v0, v1, v3 ; v1 = 13, v3 = 42 +; v8 = sextend.i128 v7 +; v6 = bnot v8 +; return v6 +; } + +function %transplant_42061_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = iconst.i8 42 + v3 = select v0, v1, v2 + v4 = ineg v3 + return v4 +} + +; function %transplant_42061_i8(i8) -> i8 fast { +; block0(v0: i8): +; v5 = iconst.i8 -13 +; v6 = iconst.i8 -42 +; v7 = select v0, v5, v6 ; v5 = -13, v6 = -42 +; return v7 +; } + +function %transplant_42061_i64(i8) -> i64 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = iconst.i64 42 + v3 = select v0, v1, v2 + v4 = ineg v3 + return v4 +} + +; function %transplant_42061_i64(i8) -> i64 fast { +; block0(v0: i8): +; v5 = iconst.i64 -13 +; v6 = iconst.i64 -42 +; v7 = select v0, v5, v6 ; v5 = -13, v6 = -42 +; return v7 +; } + +function %transplant_42061_i128(i8) -> i128 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = iconst.i64 42 + v4 = sextend.i128 v3 + v5 = select v0, v2, v4 + v6 = ineg v5 + return v6 +} + +; function %transplant_42061_i128(i8) -> i128 fast { +; block0(v0: i8): +; v1 = iconst.i64 13 +; v3 = iconst.i64 42 +; v7 = select v0, v1, v3 ; v1 = 13, v3 = 42 +; v8 = sextend.i128 v7 +; v6 = ineg v8 +; return v6 +; } + +function %transplant_42859_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = band v0, v1 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42859_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = band v0, v1 +; return v5 +; } + +function %transplant_42859_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = band v0, v1 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42859_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v5 = band v0, v1 +; return v5 +; } + +function %transplant_42859_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp eq v0, v3 + v5 = iconst.i64 0 + v6 = sextend.i128 v5 + v7 = band v0, v1 + v8 = select v4, v6, v7 + return v8 +} + +; function %transplant_42859_i128(i128, i128) -> i128 fast { +; block0(v0: i128, v1: i128): +; v2 = iconst.i64 0 +; v3 = sextend.i128 v2 ; v2 = 0 +; v4 = icmp eq v0, v3 +; v7 = band v0, v1 +; v8 = select v4, v3, v7 +; return v8 +; } + +function %transplant_42860_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = band v1, v0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42860_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v7 = band v0, v1 +; return v7 +; } + +function %transplant_42860_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = band v1, v0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42860_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v7 = band v0, v1 +; return v7 +; } + +function %transplant_42992_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = band v0, v1 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42992_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v4 = band v0, v1 +; return v4 +; } + +function %transplant_42992_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = band v0, v1 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42992_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v4 = band v0, v1 +; return v4 +; } + +function %transplant_42992_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp ne v0, v3 + v5 = band v0, v1 + v6 = iconst.i64 0 + v7 = sextend.i128 v6 + v8 = select v4, v5, v7 + return v8 +} + +; function %transplant_42992_i128(i128, i128) -> i128 fast { +; block0(v0: i128, v1: i128): +; v2 = iconst.i64 0 +; v3 = sextend.i128 v2 ; v2 = 0 +; v4 = icmp ne v0, v3 +; v5 = band v0, v1 +; v8 = select v4, v5, v3 +; return v8 +; } + +function %transplant_42993_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = band v1, v0 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42993_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v7 = band v0, v1 +; return v7 +; } + +function %transplant_42993_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = band v1, v0 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42993_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v7 = band v0, v1 +; return v7 +; } + +function %transplant_42861_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = imul v0, v1 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42861_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v5 = imul v0, v1 +; return v5 +; } + +function %transplant_42861_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = imul v0, v1 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42861_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v5 = imul v0, v1 +; return v5 +; } + +function %transplant_42861_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp eq v0, v3 + v5 = iconst.i64 0 + v6 = sextend.i128 v5 + v7 = imul v0, v1 + v8 = select v4, v6, v7 + return v8 +} + +; function %transplant_42861_i128(i128, i128) -> i128 fast { +; block0(v0: i128, v1: i128): +; v2 = iconst.i64 0 +; v3 = sextend.i128 v2 ; v2 = 0 +; v4 = icmp eq v0, v3 +; v7 = imul v0, v1 +; v8 = select v4, v3, v7 +; return v8 +; } + +function %transplant_42862_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = imul v1, v0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42862_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v7 = imul v0, v1 +; return v7 +; } + +function %transplant_42862_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = imul v1, v0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42862_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v7 = imul v0, v1 +; return v7 +; } + +function %transplant_42996_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = imul v0, v1 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42996_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v4 = imul v0, v1 +; return v4 +; } + +function %transplant_42996_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = imul v0, v1 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42996_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v4 = imul v0, v1 +; return v4 +; } + +function %transplant_42996_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp ne v0, v3 + v5 = imul v0, v1 + v6 = iconst.i64 0 + v7 = sextend.i128 v6 + v8 = select v4, v5, v7 + return v8 +} + +; function %transplant_42996_i128(i128, i128) -> i128 fast { +; block0(v0: i128, v1: i128): +; v2 = iconst.i64 0 +; v3 = sextend.i128 v2 ; v2 = 0 +; v4 = icmp ne v0, v3 +; v5 = imul v0, v1 +; v8 = select v4, v5, v3 +; return v8 +; } + +function %transplant_42997_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = imul v1, v0 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42997_i8(i8, i8) -> i8 fast { +; block0(v0: i8, v1: i8): +; v7 = imul v0, v1 +; return v7 +; } + +function %transplant_42997_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = imul v1, v0 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} + +; function %transplant_42997_i64(i64, i64) -> i64 fast { +; block0(v0: i64, v1: i64): +; v7 = imul v0, v1 +; return v7 +; } diff --git a/cranelift/filetests/filetests/egraph/shifts.clif b/cranelift/filetests/filetests/egraph/shifts.clif index 8b79db1211a9..839cadaecb7a 100644 --- a/cranelift/filetests/filetests/egraph/shifts.clif +++ b/cranelift/filetests/filetests/egraph/shifts.clif @@ -1090,3 +1090,69 @@ block0(v0: i32x4, v1: i32x4, v2: i32): ; nextln: v7 = ushr v6, v2 ; nextln: return v7 ; nextln: } + +function %transplant_39204_i32(i32, i32) -> i32 { +block0(v0: i32, v1: i32): + v2 = bnot v0 + v3 = rotl v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = rotl v0, v1 +; check: return v5 + +function %transplant_39204_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = rotl v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = rotl v0, v1 +; check: return v5 + +function %transplant_39204_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = rotl v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = rotl v0, v1 +; check: return v5 + +function %transplant_39205_i32(i32, i32) -> i32 { +block0(v0: i32, v1: i32): + v2 = bnot v0 + v3 = rotr v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = rotr v0, v1 +; check: return v5 + +function %transplant_39205_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = rotr v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = rotr v0, v1 +; check: return v5 + +function %transplant_39205_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = rotr v2, v1 + v4 = bnot v3 + return v4 +} + +; check: v5 = rotr v0, v1 +; check: return v5 diff --git a/cranelift/filetests/filetests/runtests/arithmetic.clif b/cranelift/filetests/filetests/runtests/arithmetic.clif index 327613818a97..479d97dc498c 100644 --- a/cranelift/filetests/filetests/runtests/arithmetic.clif +++ b/cranelift/filetests/filetests/runtests/arithmetic.clif @@ -1590,3 +1590,1175 @@ block0(v0: i8, v1: i8): ; run: %sub_sub_offsets_wrap_i8(-128, 0) == -72 ; run: %sub_sub_offsets_wrap_i8(127, -1) == -72 ; run: %sub_sub_offsets_wrap_i8(127, -128) == 55 + +function %transplant_41834_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} +; run: %transplant_41834_i8(-128, -128) == 0 +; run: %transplant_41834_i8(-128, -86) == 0 +; run: %transplant_41834_i8(-128, 0) == -128 +; run: %transplant_41834_i8(-86, -86) == 0 +; run: %transplant_41834_i8(-86, 9) == -94 +; run: %transplant_41834_i8(-1, -1) == 0 +; run: %transplant_41834_i8(-1, 0) == -1 +; run: %transplant_41834_i8(-1, 85) == -86 +; run: %transplant_41834_i8(0, -128) == 0 +; run: %transplant_41834_i8(0, -1) == 0 +; run: %transplant_41834_i8(0, 0) == 0 +; run: %transplant_41834_i8(0, 1) == 0 +; run: %transplant_41834_i8(0, 127) == 0 +; run: %transplant_41834_i8(1, 0) == 1 +; run: %transplant_41834_i8(1, 1) == 0 +; run: %transplant_41834_i8(1, 127) == 0 +; run: %transplant_41834_i8(2, 0) == 2 +; run: %transplant_41834_i8(2, 2) == 0 +; run: %transplant_41834_i8(7, 2) == 5 +; run: %transplant_41834_i8(7, 7) == 0 +; run: %transplant_41834_i8(8, 8) == 0 +; run: %transplant_41834_i8(8, 13) == 0 +; run: %transplant_41834_i8(9, 9) == 0 +; run: %transplant_41834_i8(9, 42) == 1 +; run: %transplant_41834_i8(13, 1) == 12 +; run: %transplant_41834_i8(13, 13) == 0 +; run: %transplant_41834_i8(42, -1) == 0 +; run: %transplant_41834_i8(42, 42) == 0 +; run: %transplant_41834_i8(85, 8) == 85 +; run: %transplant_41834_i8(85, 85) == 0 +; run: %transplant_41834_i8(127, 0) == 127 +; run: %transplant_41834_i8(127, 7) == 120 +; run: %transplant_41834_i8(127, 127) == 0 + +function %transplant_41834_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} +; run: %transplant_41834_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41834_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41834_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41834_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41834_i64(-6148914691236517206, 65) == -6148914691236517206 +; run: %transplant_41834_i64(-1, -1) == 0 +; run: %transplant_41834_i64(-1, 0) == -1 +; run: %transplant_41834_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41834_i64(0, -9223372036854775808) == 0 +; run: %transplant_41834_i64(0, -1) == 0 +; run: %transplant_41834_i64(0, 0) == 0 +; run: %transplant_41834_i64(0, 1) == 0 +; run: %transplant_41834_i64(0, 9223372036854775807) == 0 +; run: %transplant_41834_i64(1, 0) == 1 +; run: %transplant_41834_i64(1, 1) == 0 +; run: %transplant_41834_i64(1, 9223372036854775807) == 0 +; run: %transplant_41834_i64(2, 0) == 2 +; run: %transplant_41834_i64(2, 2) == 0 +; run: %transplant_41834_i64(13, 1) == 12 +; run: %transplant_41834_i64(13, 13) == 0 +; run: %transplant_41834_i64(42, -1) == 0 +; run: %transplant_41834_i64(42, 42) == 0 +; run: %transplant_41834_i64(63, 2) == 61 +; run: %transplant_41834_i64(63, 63) == 0 +; run: %transplant_41834_i64(64, 13) == 64 +; run: %transplant_41834_i64(64, 64) == 0 +; run: %transplant_41834_i64(65, 42) == 65 +; run: %transplant_41834_i64(65, 65) == 0 +; run: %transplant_41834_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41834_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41834_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41834_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41834_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41835_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v1 + return v4 +} +; run: %transplant_41835_i8(-128, -128) == 0 +; run: %transplant_41835_i8(-128, -86) == 42 +; run: %transplant_41835_i8(-128, 0) == 0 +; run: %transplant_41835_i8(-86, -86) == 0 +; run: %transplant_41835_i8(-86, 9) == 1 +; run: %transplant_41835_i8(-1, -1) == 0 +; run: %transplant_41835_i8(-1, 0) == 0 +; run: %transplant_41835_i8(-1, 85) == 0 +; run: %transplant_41835_i8(0, -128) == -128 +; run: %transplant_41835_i8(0, -1) == -1 +; run: %transplant_41835_i8(0, 0) == 0 +; run: %transplant_41835_i8(0, 1) == 1 +; run: %transplant_41835_i8(0, 127) == 127 +; run: %transplant_41835_i8(1, 0) == 0 +; run: %transplant_41835_i8(1, 1) == 0 +; run: %transplant_41835_i8(1, 127) == 126 +; run: %transplant_41835_i8(2, 0) == 0 +; run: %transplant_41835_i8(2, 2) == 0 +; run: %transplant_41835_i8(7, 2) == 0 +; run: %transplant_41835_i8(7, 7) == 0 +; run: %transplant_41835_i8(8, 8) == 0 +; run: %transplant_41835_i8(8, 13) == 5 +; run: %transplant_41835_i8(9, 9) == 0 +; run: %transplant_41835_i8(9, 42) == 34 +; run: %transplant_41835_i8(13, 1) == 0 +; run: %transplant_41835_i8(13, 13) == 0 +; run: %transplant_41835_i8(42, -1) == -43 +; run: %transplant_41835_i8(42, 42) == 0 +; run: %transplant_41835_i8(85, 8) == 8 +; run: %transplant_41835_i8(85, 85) == 0 +; run: %transplant_41835_i8(127, 0) == 0 +; run: %transplant_41835_i8(127, 7) == 0 +; run: %transplant_41835_i8(127, 127) == 0 + +function %transplant_41835_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v1 + return v4 +} +; run: %transplant_41835_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41835_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41835_i64(-9223372036854775808, 0) == 0 +; run: %transplant_41835_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41835_i64(-6148914691236517206, 65) == 65 +; run: %transplant_41835_i64(-1, -1) == 0 +; run: %transplant_41835_i64(-1, 0) == 0 +; run: %transplant_41835_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41835_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41835_i64(0, -1) == -1 +; run: %transplant_41835_i64(0, 0) == 0 +; run: %transplant_41835_i64(0, 1) == 1 +; run: %transplant_41835_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41835_i64(1, 0) == 0 +; run: %transplant_41835_i64(1, 1) == 0 +; run: %transplant_41835_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41835_i64(2, 0) == 0 +; run: %transplant_41835_i64(2, 2) == 0 +; run: %transplant_41835_i64(13, 1) == 0 +; run: %transplant_41835_i64(13, 13) == 0 +; run: %transplant_41835_i64(42, -1) == -43 +; run: %transplant_41835_i64(42, 42) == 0 +; run: %transplant_41835_i64(63, 2) == 0 +; run: %transplant_41835_i64(63, 63) == 0 +; run: %transplant_41835_i64(64, 13) == 13 +; run: %transplant_41835_i64(64, 64) == 0 +; run: %transplant_41835_i64(65, 42) == 42 +; run: %transplant_41835_i64(65, 65) == 0 +; run: %transplant_41835_i64(6148914691236517205, 64) == 0 +; run: %transplant_41835_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41835_i64(9223372036854775807, 0) == 0 +; run: %transplant_41835_i64(9223372036854775807, 63) == 0 +; run: %transplant_41835_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41904_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} +; run: %transplant_41904_i8(-128, -128) == 0 +; run: %transplant_41904_i8(-128, -86) == 0 +; run: %transplant_41904_i8(-128, 0) == -128 +; run: %transplant_41904_i8(-86, -86) == 0 +; run: %transplant_41904_i8(-86, 9) == -94 +; run: %transplant_41904_i8(-1, -1) == 0 +; run: %transplant_41904_i8(-1, 0) == -1 +; run: %transplant_41904_i8(-1, 85) == -86 +; run: %transplant_41904_i8(0, -128) == 0 +; run: %transplant_41904_i8(0, -1) == 0 +; run: %transplant_41904_i8(0, 0) == 0 +; run: %transplant_41904_i8(0, 1) == 0 +; run: %transplant_41904_i8(0, 127) == 0 +; run: %transplant_41904_i8(1, 0) == 1 +; run: %transplant_41904_i8(1, 1) == 0 +; run: %transplant_41904_i8(1, 127) == 0 +; run: %transplant_41904_i8(2, 0) == 2 +; run: %transplant_41904_i8(2, 2) == 0 +; run: %transplant_41904_i8(7, 2) == 5 +; run: %transplant_41904_i8(7, 7) == 0 +; run: %transplant_41904_i8(8, 8) == 0 +; run: %transplant_41904_i8(8, 13) == 0 +; run: %transplant_41904_i8(9, 9) == 0 +; run: %transplant_41904_i8(9, 42) == 1 +; run: %transplant_41904_i8(13, 1) == 12 +; run: %transplant_41904_i8(13, 13) == 0 +; run: %transplant_41904_i8(42, -1) == 0 +; run: %transplant_41904_i8(42, 42) == 0 +; run: %transplant_41904_i8(85, 8) == 85 +; run: %transplant_41904_i8(85, 85) == 0 +; run: %transplant_41904_i8(127, 0) == 127 +; run: %transplant_41904_i8(127, 7) == 120 +; run: %transplant_41904_i8(127, 127) == 0 + +function %transplant_41904_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} +; run: %transplant_41904_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41904_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41904_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41904_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41904_i64(-6148914691236517206, 65) == -6148914691236517206 +; run: %transplant_41904_i64(-1, -1) == 0 +; run: %transplant_41904_i64(-1, 0) == -1 +; run: %transplant_41904_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41904_i64(0, -9223372036854775808) == 0 +; run: %transplant_41904_i64(0, -1) == 0 +; run: %transplant_41904_i64(0, 0) == 0 +; run: %transplant_41904_i64(0, 1) == 0 +; run: %transplant_41904_i64(0, 9223372036854775807) == 0 +; run: %transplant_41904_i64(1, 0) == 1 +; run: %transplant_41904_i64(1, 1) == 0 +; run: %transplant_41904_i64(1, 9223372036854775807) == 0 +; run: %transplant_41904_i64(2, 0) == 2 +; run: %transplant_41904_i64(2, 2) == 0 +; run: %transplant_41904_i64(13, 1) == 12 +; run: %transplant_41904_i64(13, 13) == 0 +; run: %transplant_41904_i64(42, -1) == 0 +; run: %transplant_41904_i64(42, 42) == 0 +; run: %transplant_41904_i64(63, 2) == 61 +; run: %transplant_41904_i64(63, 63) == 0 +; run: %transplant_41904_i64(64, 13) == 64 +; run: %transplant_41904_i64(64, 64) == 0 +; run: %transplant_41904_i64(65, 42) == 65 +; run: %transplant_41904_i64(65, 65) == 0 +; run: %transplant_41904_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41904_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41904_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41904_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41904_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41905_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = band v1, v0 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} +; run: %transplant_41905_i8(-128, -128) == 0 +; run: %transplant_41905_i8(-128, -86) == 0 +; run: %transplant_41905_i8(-128, 0) == -128 +; run: %transplant_41905_i8(-86, -86) == 0 +; run: %transplant_41905_i8(-86, 9) == -94 +; run: %transplant_41905_i8(-1, -1) == 0 +; run: %transplant_41905_i8(-1, 0) == -1 +; run: %transplant_41905_i8(-1, 85) == -86 +; run: %transplant_41905_i8(0, -128) == 0 +; run: %transplant_41905_i8(0, -1) == 0 +; run: %transplant_41905_i8(0, 0) == 0 +; run: %transplant_41905_i8(0, 1) == 0 +; run: %transplant_41905_i8(0, 127) == 0 +; run: %transplant_41905_i8(1, 0) == 1 +; run: %transplant_41905_i8(1, 1) == 0 +; run: %transplant_41905_i8(1, 127) == 0 +; run: %transplant_41905_i8(2, 0) == 2 +; run: %transplant_41905_i8(2, 2) == 0 +; run: %transplant_41905_i8(7, 2) == 5 +; run: %transplant_41905_i8(7, 7) == 0 +; run: %transplant_41905_i8(8, 8) == 0 +; run: %transplant_41905_i8(8, 13) == 0 +; run: %transplant_41905_i8(9, 9) == 0 +; run: %transplant_41905_i8(9, 42) == 1 +; run: %transplant_41905_i8(13, 1) == 12 +; run: %transplant_41905_i8(13, 13) == 0 +; run: %transplant_41905_i8(42, -1) == 0 +; run: %transplant_41905_i8(42, 42) == 0 +; run: %transplant_41905_i8(85, 8) == 85 +; run: %transplant_41905_i8(85, 85) == 0 +; run: %transplant_41905_i8(127, 0) == 127 +; run: %transplant_41905_i8(127, 7) == 120 +; run: %transplant_41905_i8(127, 127) == 0 + +function %transplant_41905_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = band v1, v0 + v3 = ineg v2 + v4 = iadd v0, v3 + return v4 +} +; run: %transplant_41905_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41905_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41905_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41905_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41905_i64(-6148914691236517206, 65) == -6148914691236517206 +; run: %transplant_41905_i64(-1, -1) == 0 +; run: %transplant_41905_i64(-1, 0) == -1 +; run: %transplant_41905_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41905_i64(0, -9223372036854775808) == 0 +; run: %transplant_41905_i64(0, -1) == 0 +; run: %transplant_41905_i64(0, 0) == 0 +; run: %transplant_41905_i64(0, 1) == 0 +; run: %transplant_41905_i64(0, 9223372036854775807) == 0 +; run: %transplant_41905_i64(1, 0) == 1 +; run: %transplant_41905_i64(1, 1) == 0 +; run: %transplant_41905_i64(1, 9223372036854775807) == 0 +; run: %transplant_41905_i64(2, 0) == 2 +; run: %transplant_41905_i64(2, 2) == 0 +; run: %transplant_41905_i64(13, 1) == 12 +; run: %transplant_41905_i64(13, 13) == 0 +; run: %transplant_41905_i64(42, -1) == 0 +; run: %transplant_41905_i64(42, 42) == 0 +; run: %transplant_41905_i64(63, 2) == 61 +; run: %transplant_41905_i64(63, 63) == 0 +; run: %transplant_41905_i64(64, 13) == 64 +; run: %transplant_41905_i64(64, 64) == 0 +; run: %transplant_41905_i64(65, 42) == 65 +; run: %transplant_41905_i64(65, 65) == 0 +; run: %transplant_41905_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41905_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41905_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41905_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41905_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41772_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41772_i8(-128, -128) == 0 +; run: %transplant_41772_i8(-128, -86) == 42 +; run: %transplant_41772_i8(-128, 0) == -128 +; run: %transplant_41772_i8(-86, -86) == 0 +; run: %transplant_41772_i8(-86, 9) == -93 +; run: %transplant_41772_i8(-1, -1) == 0 +; run: %transplant_41772_i8(-1, 0) == -1 +; run: %transplant_41772_i8(-1, 85) == -86 +; run: %transplant_41772_i8(0, -128) == -128 +; run: %transplant_41772_i8(0, -1) == -1 +; run: %transplant_41772_i8(0, 0) == 0 +; run: %transplant_41772_i8(0, 1) == 1 +; run: %transplant_41772_i8(0, 127) == 127 +; run: %transplant_41772_i8(1, 0) == 1 +; run: %transplant_41772_i8(1, 1) == 0 +; run: %transplant_41772_i8(1, 127) == 126 +; run: %transplant_41772_i8(2, 0) == 2 +; run: %transplant_41772_i8(2, 2) == 0 +; run: %transplant_41772_i8(7, 2) == 5 +; run: %transplant_41772_i8(7, 7) == 0 +; run: %transplant_41772_i8(8, 8) == 0 +; run: %transplant_41772_i8(8, 13) == 5 +; run: %transplant_41772_i8(9, 9) == 0 +; run: %transplant_41772_i8(9, 42) == 35 +; run: %transplant_41772_i8(13, 1) == 12 +; run: %transplant_41772_i8(13, 13) == 0 +; run: %transplant_41772_i8(42, -1) == -43 +; run: %transplant_41772_i8(42, 42) == 0 +; run: %transplant_41772_i8(85, 8) == 93 +; run: %transplant_41772_i8(85, 85) == 0 +; run: %transplant_41772_i8(127, 0) == 127 +; run: %transplant_41772_i8(127, 7) == 120 +; run: %transplant_41772_i8(127, 127) == 0 + +function %transplant_41772_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41772_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41772_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41772_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41772_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41772_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41772_i64(-1, -1) == 0 +; run: %transplant_41772_i64(-1, 0) == -1 +; run: %transplant_41772_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41772_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41772_i64(0, -1) == -1 +; run: %transplant_41772_i64(0, 0) == 0 +; run: %transplant_41772_i64(0, 1) == 1 +; run: %transplant_41772_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41772_i64(1, 0) == 1 +; run: %transplant_41772_i64(1, 1) == 0 +; run: %transplant_41772_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41772_i64(2, 0) == 2 +; run: %transplant_41772_i64(2, 2) == 0 +; run: %transplant_41772_i64(13, 1) == 12 +; run: %transplant_41772_i64(13, 13) == 0 +; run: %transplant_41772_i64(42, -1) == -43 +; run: %transplant_41772_i64(42, 42) == 0 +; run: %transplant_41772_i64(63, 2) == 61 +; run: %transplant_41772_i64(63, 63) == 0 +; run: %transplant_41772_i64(64, 13) == 77 +; run: %transplant_41772_i64(64, 64) == 0 +; run: %transplant_41772_i64(65, 42) == 107 +; run: %transplant_41772_i64(65, 65) == 0 +; run: %transplant_41772_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41772_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41772_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41772_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41772_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41773_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41773_i8(-128, -128) == 0 +; run: %transplant_41773_i8(-128, -86) == 42 +; run: %transplant_41773_i8(-128, 0) == -128 +; run: %transplant_41773_i8(-86, -86) == 0 +; run: %transplant_41773_i8(-86, 9) == -93 +; run: %transplant_41773_i8(-1, -1) == 0 +; run: %transplant_41773_i8(-1, 0) == -1 +; run: %transplant_41773_i8(-1, 85) == -86 +; run: %transplant_41773_i8(0, -128) == -128 +; run: %transplant_41773_i8(0, -1) == -1 +; run: %transplant_41773_i8(0, 0) == 0 +; run: %transplant_41773_i8(0, 1) == 1 +; run: %transplant_41773_i8(0, 127) == 127 +; run: %transplant_41773_i8(1, 0) == 1 +; run: %transplant_41773_i8(1, 1) == 0 +; run: %transplant_41773_i8(1, 127) == 126 +; run: %transplant_41773_i8(2, 0) == 2 +; run: %transplant_41773_i8(2, 2) == 0 +; run: %transplant_41773_i8(7, 2) == 5 +; run: %transplant_41773_i8(7, 7) == 0 +; run: %transplant_41773_i8(8, 8) == 0 +; run: %transplant_41773_i8(8, 13) == 5 +; run: %transplant_41773_i8(9, 9) == 0 +; run: %transplant_41773_i8(9, 42) == 35 +; run: %transplant_41773_i8(13, 1) == 12 +; run: %transplant_41773_i8(13, 13) == 0 +; run: %transplant_41773_i8(42, -1) == -43 +; run: %transplant_41773_i8(42, 42) == 0 +; run: %transplant_41773_i8(85, 8) == 93 +; run: %transplant_41773_i8(85, 85) == 0 +; run: %transplant_41773_i8(127, 0) == 127 +; run: %transplant_41773_i8(127, 7) == 120 +; run: %transplant_41773_i8(127, 127) == 0 + +function %transplant_41773_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41773_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41773_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41773_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41773_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41773_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41773_i64(-1, -1) == 0 +; run: %transplant_41773_i64(-1, 0) == -1 +; run: %transplant_41773_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41773_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41773_i64(0, -1) == -1 +; run: %transplant_41773_i64(0, 0) == 0 +; run: %transplant_41773_i64(0, 1) == 1 +; run: %transplant_41773_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41773_i64(1, 0) == 1 +; run: %transplant_41773_i64(1, 1) == 0 +; run: %transplant_41773_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41773_i64(2, 0) == 2 +; run: %transplant_41773_i64(2, 2) == 0 +; run: %transplant_41773_i64(13, 1) == 12 +; run: %transplant_41773_i64(13, 13) == 0 +; run: %transplant_41773_i64(42, -1) == -43 +; run: %transplant_41773_i64(42, 42) == 0 +; run: %transplant_41773_i64(63, 2) == 61 +; run: %transplant_41773_i64(63, 63) == 0 +; run: %transplant_41773_i64(64, 13) == 77 +; run: %transplant_41773_i64(64, 64) == 0 +; run: %transplant_41773_i64(65, 42) == 107 +; run: %transplant_41773_i64(65, 65) == 0 +; run: %transplant_41773_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41773_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41773_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41773_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41773_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41782_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41782_i8(-128, -128) == 0 +; run: %transplant_41782_i8(-128, -86) == 42 +; run: %transplant_41782_i8(-128, 0) == -128 +; run: %transplant_41782_i8(-86, -86) == 0 +; run: %transplant_41782_i8(-86, 9) == -93 +; run: %transplant_41782_i8(-1, -1) == 0 +; run: %transplant_41782_i8(-1, 0) == -1 +; run: %transplant_41782_i8(-1, 85) == -86 +; run: %transplant_41782_i8(0, -128) == -128 +; run: %transplant_41782_i8(0, -1) == -1 +; run: %transplant_41782_i8(0, 0) == 0 +; run: %transplant_41782_i8(0, 1) == 1 +; run: %transplant_41782_i8(0, 127) == 127 +; run: %transplant_41782_i8(1, 0) == 1 +; run: %transplant_41782_i8(1, 1) == 0 +; run: %transplant_41782_i8(1, 127) == 126 +; run: %transplant_41782_i8(2, 0) == 2 +; run: %transplant_41782_i8(2, 2) == 0 +; run: %transplant_41782_i8(7, 2) == 5 +; run: %transplant_41782_i8(7, 7) == 0 +; run: %transplant_41782_i8(8, 8) == 0 +; run: %transplant_41782_i8(8, 13) == 5 +; run: %transplant_41782_i8(9, 9) == 0 +; run: %transplant_41782_i8(9, 42) == 35 +; run: %transplant_41782_i8(13, 1) == 12 +; run: %transplant_41782_i8(13, 13) == 0 +; run: %transplant_41782_i8(42, -1) == -43 +; run: %transplant_41782_i8(42, 42) == 0 +; run: %transplant_41782_i8(85, 8) == 93 +; run: %transplant_41782_i8(85, 85) == 0 +; run: %transplant_41782_i8(127, 0) == 127 +; run: %transplant_41782_i8(127, 7) == 120 +; run: %transplant_41782_i8(127, 127) == 0 + +function %transplant_41782_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41782_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41782_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41782_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41782_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41782_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41782_i64(-1, -1) == 0 +; run: %transplant_41782_i64(-1, 0) == -1 +; run: %transplant_41782_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41782_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41782_i64(0, -1) == -1 +; run: %transplant_41782_i64(0, 0) == 0 +; run: %transplant_41782_i64(0, 1) == 1 +; run: %transplant_41782_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41782_i64(1, 0) == 1 +; run: %transplant_41782_i64(1, 1) == 0 +; run: %transplant_41782_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41782_i64(2, 0) == 2 +; run: %transplant_41782_i64(2, 2) == 0 +; run: %transplant_41782_i64(13, 1) == 12 +; run: %transplant_41782_i64(13, 13) == 0 +; run: %transplant_41782_i64(42, -1) == -43 +; run: %transplant_41782_i64(42, 42) == 0 +; run: %transplant_41782_i64(63, 2) == 61 +; run: %transplant_41782_i64(63, 63) == 0 +; run: %transplant_41782_i64(64, 13) == 77 +; run: %transplant_41782_i64(64, 64) == 0 +; run: %transplant_41782_i64(65, 42) == 107 +; run: %transplant_41782_i64(65, 65) == 0 +; run: %transplant_41782_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41782_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41782_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41782_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41782_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41783_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41783_i8(-128, -128) == 0 +; run: %transplant_41783_i8(-128, -86) == 42 +; run: %transplant_41783_i8(-128, 0) == -128 +; run: %transplant_41783_i8(-86, -86) == 0 +; run: %transplant_41783_i8(-86, 9) == -93 +; run: %transplant_41783_i8(-1, -1) == 0 +; run: %transplant_41783_i8(-1, 0) == -1 +; run: %transplant_41783_i8(-1, 85) == -86 +; run: %transplant_41783_i8(0, -128) == -128 +; run: %transplant_41783_i8(0, -1) == -1 +; run: %transplant_41783_i8(0, 0) == 0 +; run: %transplant_41783_i8(0, 1) == 1 +; run: %transplant_41783_i8(0, 127) == 127 +; run: %transplant_41783_i8(1, 0) == 1 +; run: %transplant_41783_i8(1, 1) == 0 +; run: %transplant_41783_i8(1, 127) == 126 +; run: %transplant_41783_i8(2, 0) == 2 +; run: %transplant_41783_i8(2, 2) == 0 +; run: %transplant_41783_i8(7, 2) == 5 +; run: %transplant_41783_i8(7, 7) == 0 +; run: %transplant_41783_i8(8, 8) == 0 +; run: %transplant_41783_i8(8, 13) == 5 +; run: %transplant_41783_i8(9, 9) == 0 +; run: %transplant_41783_i8(9, 42) == 35 +; run: %transplant_41783_i8(13, 1) == 12 +; run: %transplant_41783_i8(13, 13) == 0 +; run: %transplant_41783_i8(42, -1) == -43 +; run: %transplant_41783_i8(42, 42) == 0 +; run: %transplant_41783_i8(85, 8) == 93 +; run: %transplant_41783_i8(85, 85) == 0 +; run: %transplant_41783_i8(127, 0) == 127 +; run: %transplant_41783_i8(127, 7) == 120 +; run: %transplant_41783_i8(127, 127) == 0 + +function %transplant_41783_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41783_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41783_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41783_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41783_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41783_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41783_i64(-1, -1) == 0 +; run: %transplant_41783_i64(-1, 0) == -1 +; run: %transplant_41783_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41783_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41783_i64(0, -1) == -1 +; run: %transplant_41783_i64(0, 0) == 0 +; run: %transplant_41783_i64(0, 1) == 1 +; run: %transplant_41783_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41783_i64(1, 0) == 1 +; run: %transplant_41783_i64(1, 1) == 0 +; run: %transplant_41783_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41783_i64(2, 0) == 2 +; run: %transplant_41783_i64(2, 2) == 0 +; run: %transplant_41783_i64(13, 1) == 12 +; run: %transplant_41783_i64(13, 13) == 0 +; run: %transplant_41783_i64(42, -1) == -43 +; run: %transplant_41783_i64(42, 42) == 0 +; run: %transplant_41783_i64(63, 2) == 61 +; run: %transplant_41783_i64(63, 63) == 0 +; run: %transplant_41783_i64(64, 13) == 77 +; run: %transplant_41783_i64(64, 64) == 0 +; run: %transplant_41783_i64(65, 42) == 107 +; run: %transplant_41783_i64(65, 65) == 0 +; run: %transplant_41783_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41783_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41783_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41783_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41783_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_44291_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} +; run: %transplant_44291_i8(-128, -128) == 127 +; run: %transplant_44291_i8(-128, -86) == 127 +; run: %transplant_44291_i8(-128, 0) == 127 +; run: %transplant_44291_i8(-86, -86) == 85 +; run: %transplant_44291_i8(-86, 9) == 85 +; run: %transplant_44291_i8(-1, -1) == 0 +; run: %transplant_44291_i8(-1, 0) == 0 +; run: %transplant_44291_i8(-1, 85) == 0 +; run: %transplant_44291_i8(0, -128) == 127 +; run: %transplant_44291_i8(0, -1) == 0 +; run: %transplant_44291_i8(0, 0) == -1 +; run: %transplant_44291_i8(0, 1) == -1 +; run: %transplant_44291_i8(0, 127) == -1 +; run: %transplant_44291_i8(1, 0) == -1 +; run: %transplant_44291_i8(1, 1) == -2 +; run: %transplant_44291_i8(1, 127) == -2 +; run: %transplant_44291_i8(2, 0) == -1 +; run: %transplant_44291_i8(2, 2) == -3 +; run: %transplant_44291_i8(7, 2) == -3 +; run: %transplant_44291_i8(7, 7) == -8 +; run: %transplant_44291_i8(8, 8) == -9 +; run: %transplant_44291_i8(8, 13) == -9 +; run: %transplant_44291_i8(9, 9) == -10 +; run: %transplant_44291_i8(9, 42) == -10 +; run: %transplant_44291_i8(13, 1) == -2 +; run: %transplant_44291_i8(13, 13) == -14 +; run: %transplant_44291_i8(42, -1) == 0 +; run: %transplant_44291_i8(42, 42) == -43 +; run: %transplant_44291_i8(85, 8) == -9 +; run: %transplant_44291_i8(85, 85) == -86 +; run: %transplant_44291_i8(127, 0) == -1 +; run: %transplant_44291_i8(127, 7) == -8 +; run: %transplant_44291_i8(127, 127) == -128 + +function %transplant_44291_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} +; run: %transplant_44291_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_44291_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_44291_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_44291_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_44291_i64(-6148914691236517206, 65) == 6148914691236517205 +; run: %transplant_44291_i64(-1, -1) == 0 +; run: %transplant_44291_i64(-1, 0) == 0 +; run: %transplant_44291_i64(-1, 6148914691236517205) == 0 +; run: %transplant_44291_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_44291_i64(0, -1) == 0 +; run: %transplant_44291_i64(0, 0) == -1 +; run: %transplant_44291_i64(0, 1) == -1 +; run: %transplant_44291_i64(0, 9223372036854775807) == -1 +; run: %transplant_44291_i64(1, 0) == -1 +; run: %transplant_44291_i64(1, 1) == -2 +; run: %transplant_44291_i64(1, 9223372036854775807) == -2 +; run: %transplant_44291_i64(2, 0) == -1 +; run: %transplant_44291_i64(2, 2) == -3 +; run: %transplant_44291_i64(13, 1) == -2 +; run: %transplant_44291_i64(13, 13) == -14 +; run: %transplant_44291_i64(42, -1) == 0 +; run: %transplant_44291_i64(42, 42) == -43 +; run: %transplant_44291_i64(63, 2) == -3 +; run: %transplant_44291_i64(63, 63) == -64 +; run: %transplant_44291_i64(64, 13) == -14 +; run: %transplant_44291_i64(64, 64) == -65 +; run: %transplant_44291_i64(65, 42) == -43 +; run: %transplant_44291_i64(65, 65) == -66 +; run: %transplant_44291_i64(6148914691236517205, 64) == -65 +; run: %transplant_44291_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_44291_i64(9223372036854775807, 0) == -1 +; run: %transplant_44291_i64(9223372036854775807, 63) == -64 +; run: %transplant_44291_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_45214_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} +; run: %transplant_45214_i8(-128, -128) == 127 +; run: %transplant_45214_i8(-128, -86) == 127 +; run: %transplant_45214_i8(-128, 0) == -1 +; run: %transplant_45214_i8(-86, -86) == 85 +; run: %transplant_45214_i8(-86, 9) == -10 +; run: %transplant_45214_i8(-1, -1) == 0 +; run: %transplant_45214_i8(-1, 0) == -1 +; run: %transplant_45214_i8(-1, 85) == -86 +; run: %transplant_45214_i8(0, -128) == -1 +; run: %transplant_45214_i8(0, -1) == -1 +; run: %transplant_45214_i8(0, 0) == -1 +; run: %transplant_45214_i8(0, 1) == -1 +; run: %transplant_45214_i8(0, 127) == -1 +; run: %transplant_45214_i8(1, 0) == -1 +; run: %transplant_45214_i8(1, 1) == -2 +; run: %transplant_45214_i8(1, 127) == -2 +; run: %transplant_45214_i8(2, 0) == -1 +; run: %transplant_45214_i8(2, 2) == -3 +; run: %transplant_45214_i8(7, 2) == -3 +; run: %transplant_45214_i8(7, 7) == -8 +; run: %transplant_45214_i8(8, 8) == -9 +; run: %transplant_45214_i8(8, 13) == -9 +; run: %transplant_45214_i8(9, 9) == -10 +; run: %transplant_45214_i8(9, 42) == -10 +; run: %transplant_45214_i8(13, 1) == -2 +; run: %transplant_45214_i8(13, 13) == -14 +; run: %transplant_45214_i8(42, -1) == -43 +; run: %transplant_45214_i8(42, 42) == -43 +; run: %transplant_45214_i8(85, 8) == -9 +; run: %transplant_45214_i8(85, 85) == -86 +; run: %transplant_45214_i8(127, 0) == -1 +; run: %transplant_45214_i8(127, 7) == -8 +; run: %transplant_45214_i8(127, 127) == -128 + +function %transplant_45214_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} +; run: %transplant_45214_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_45214_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_45214_i64(-9223372036854775808, 0) == -1 +; run: %transplant_45214_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_45214_i64(-6148914691236517206, 65) == -66 +; run: %transplant_45214_i64(-1, -1) == 0 +; run: %transplant_45214_i64(-1, 0) == -1 +; run: %transplant_45214_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_45214_i64(0, -9223372036854775808) == -1 +; run: %transplant_45214_i64(0, -1) == -1 +; run: %transplant_45214_i64(0, 0) == -1 +; run: %transplant_45214_i64(0, 1) == -1 +; run: %transplant_45214_i64(0, 9223372036854775807) == -1 +; run: %transplant_45214_i64(1, 0) == -1 +; run: %transplant_45214_i64(1, 1) == -2 +; run: %transplant_45214_i64(1, 9223372036854775807) == -2 +; run: %transplant_45214_i64(2, 0) == -1 +; run: %transplant_45214_i64(2, 2) == -3 +; run: %transplant_45214_i64(13, 1) == -2 +; run: %transplant_45214_i64(13, 13) == -14 +; run: %transplant_45214_i64(42, -1) == -43 +; run: %transplant_45214_i64(42, 42) == -43 +; run: %transplant_45214_i64(63, 2) == -3 +; run: %transplant_45214_i64(63, 63) == -64 +; run: %transplant_45214_i64(64, 13) == -14 +; run: %transplant_45214_i64(64, 64) == -65 +; run: %transplant_45214_i64(65, 42) == -43 +; run: %transplant_45214_i64(65, 65) == -66 +; run: %transplant_45214_i64(6148914691236517205, 64) == -65 +; run: %transplant_45214_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_45214_i64(9223372036854775807, 0) == -1 +; run: %transplant_45214_i64(9223372036854775807, 63) == -64 +; run: %transplant_45214_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_44346_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} +; run: %transplant_44346_i8(-128, -128) == 127 +; run: %transplant_44346_i8(-128, -86) == 85 +; run: %transplant_44346_i8(-128, 0) == -1 +; run: %transplant_44346_i8(-86, -86) == 85 +; run: %transplant_44346_i8(-86, 9) == -10 +; run: %transplant_44346_i8(-1, -1) == 0 +; run: %transplant_44346_i8(-1, 0) == -1 +; run: %transplant_44346_i8(-1, 85) == -86 +; run: %transplant_44346_i8(0, -128) == -1 +; run: %transplant_44346_i8(0, -1) == -1 +; run: %transplant_44346_i8(0, 0) == -1 +; run: %transplant_44346_i8(0, 1) == -2 +; run: %transplant_44346_i8(0, 127) == -128 +; run: %transplant_44346_i8(1, 0) == -2 +; run: %transplant_44346_i8(1, 1) == -2 +; run: %transplant_44346_i8(1, 127) == -128 +; run: %transplant_44346_i8(2, 0) == -3 +; run: %transplant_44346_i8(2, 2) == -3 +; run: %transplant_44346_i8(7, 2) == -8 +; run: %transplant_44346_i8(7, 7) == -8 +; run: %transplant_44346_i8(8, 8) == -9 +; run: %transplant_44346_i8(8, 13) == -14 +; run: %transplant_44346_i8(9, 9) == -10 +; run: %transplant_44346_i8(9, 42) == -43 +; run: %transplant_44346_i8(13, 1) == -14 +; run: %transplant_44346_i8(13, 13) == -14 +; run: %transplant_44346_i8(42, -1) == -43 +; run: %transplant_44346_i8(42, 42) == -43 +; run: %transplant_44346_i8(85, 8) == -86 +; run: %transplant_44346_i8(85, 85) == -86 +; run: %transplant_44346_i8(127, 0) == -128 +; run: %transplant_44346_i8(127, 7) == -128 +; run: %transplant_44346_i8(127, 127) == -128 + +function %transplant_44346_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} +; run: %transplant_44346_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_44346_i64(-9223372036854775808, -6148914691236517206) == 6148914691236517205 +; run: %transplant_44346_i64(-9223372036854775808, 0) == -1 +; run: %transplant_44346_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_44346_i64(-6148914691236517206, 65) == -66 +; run: %transplant_44346_i64(-1, -1) == 0 +; run: %transplant_44346_i64(-1, 0) == -1 +; run: %transplant_44346_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_44346_i64(0, -9223372036854775808) == -1 +; run: %transplant_44346_i64(0, -1) == -1 +; run: %transplant_44346_i64(0, 0) == -1 +; run: %transplant_44346_i64(0, 1) == -2 +; run: %transplant_44346_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_44346_i64(1, 0) == -2 +; run: %transplant_44346_i64(1, 1) == -2 +; run: %transplant_44346_i64(1, 9223372036854775807) == -9223372036854775808 +; run: %transplant_44346_i64(2, 0) == -3 +; run: %transplant_44346_i64(2, 2) == -3 +; run: %transplant_44346_i64(13, 1) == -14 +; run: %transplant_44346_i64(13, 13) == -14 +; run: %transplant_44346_i64(42, -1) == -43 +; run: %transplant_44346_i64(42, 42) == -43 +; run: %transplant_44346_i64(63, 2) == -64 +; run: %transplant_44346_i64(63, 63) == -64 +; run: %transplant_44346_i64(64, 13) == -65 +; run: %transplant_44346_i64(64, 64) == -65 +; run: %transplant_44346_i64(65, 42) == -66 +; run: %transplant_44346_i64(65, 65) == -66 +; run: %transplant_44346_i64(6148914691236517205, 64) == -6148914691236517206 +; run: %transplant_44346_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_44346_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_44346_i64(9223372036854775807, 63) == -9223372036854775808 +; run: %transplant_44346_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_45269_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} +; run: %transplant_45269_i8(-128, -128) == 127 +; run: %transplant_45269_i8(-128, -86) == 85 +; run: %transplant_45269_i8(-128, 0) == 127 +; run: %transplant_45269_i8(-86, -86) == 85 +; run: %transplant_45269_i8(-86, 9) == 85 +; run: %transplant_45269_i8(-1, -1) == 0 +; run: %transplant_45269_i8(-1, 0) == 0 +; run: %transplant_45269_i8(-1, 85) == 0 +; run: %transplant_45269_i8(0, -128) == 127 +; run: %transplant_45269_i8(0, -1) == 0 +; run: %transplant_45269_i8(0, 0) == -1 +; run: %transplant_45269_i8(0, 1) == -2 +; run: %transplant_45269_i8(0, 127) == -128 +; run: %transplant_45269_i8(1, 0) == -2 +; run: %transplant_45269_i8(1, 1) == -2 +; run: %transplant_45269_i8(1, 127) == -128 +; run: %transplant_45269_i8(2, 0) == -3 +; run: %transplant_45269_i8(2, 2) == -3 +; run: %transplant_45269_i8(7, 2) == -8 +; run: %transplant_45269_i8(7, 7) == -8 +; run: %transplant_45269_i8(8, 8) == -9 +; run: %transplant_45269_i8(8, 13) == -14 +; run: %transplant_45269_i8(9, 9) == -10 +; run: %transplant_45269_i8(9, 42) == -43 +; run: %transplant_45269_i8(13, 1) == -14 +; run: %transplant_45269_i8(13, 13) == -14 +; run: %transplant_45269_i8(42, -1) == 0 +; run: %transplant_45269_i8(42, 42) == -43 +; run: %transplant_45269_i8(85, 8) == -86 +; run: %transplant_45269_i8(85, 85) == -86 +; run: %transplant_45269_i8(127, 0) == -128 +; run: %transplant_45269_i8(127, 7) == -128 +; run: %transplant_45269_i8(127, 127) == -128 + +function %transplant_45269_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} +; run: %transplant_45269_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_45269_i64(-9223372036854775808, -6148914691236517206) == 6148914691236517205 +; run: %transplant_45269_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_45269_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_45269_i64(-6148914691236517206, 65) == 6148914691236517205 +; run: %transplant_45269_i64(-1, -1) == 0 +; run: %transplant_45269_i64(-1, 0) == 0 +; run: %transplant_45269_i64(-1, 6148914691236517205) == 0 +; run: %transplant_45269_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_45269_i64(0, -1) == 0 +; run: %transplant_45269_i64(0, 0) == -1 +; run: %transplant_45269_i64(0, 1) == -2 +; run: %transplant_45269_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_45269_i64(1, 0) == -2 +; run: %transplant_45269_i64(1, 1) == -2 +; run: %transplant_45269_i64(1, 9223372036854775807) == -9223372036854775808 +; run: %transplant_45269_i64(2, 0) == -3 +; run: %transplant_45269_i64(2, 2) == -3 +; run: %transplant_45269_i64(13, 1) == -14 +; run: %transplant_45269_i64(13, 13) == -14 +; run: %transplant_45269_i64(42, -1) == 0 +; run: %transplant_45269_i64(42, 42) == -43 +; run: %transplant_45269_i64(63, 2) == -64 +; run: %transplant_45269_i64(63, 63) == -64 +; run: %transplant_45269_i64(64, 13) == -65 +; run: %transplant_45269_i64(64, 64) == -65 +; run: %transplant_45269_i64(65, 42) == -66 +; run: %transplant_45269_i64(65, 65) == -66 +; run: %transplant_45269_i64(6148914691236517205, 64) == -6148914691236517206 +; run: %transplant_45269_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_45269_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_45269_i64(9223372036854775807, 63) == -9223372036854775808 +; run: %transplant_45269_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_42334_i8(i8) -> i8 { +block0(v0: i8): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} +; run: %transplant_42334_i8(-128) == 1 +; run: %transplant_42334_i8(-86) == 1 +; run: %transplant_42334_i8(-1) == 1 +; run: %transplant_42334_i8(0) == 1 +; run: %transplant_42334_i8(1) == 1 +; run: %transplant_42334_i8(2) == 1 +; run: %transplant_42334_i8(7) == 1 +; run: %transplant_42334_i8(8) == 1 +; run: %transplant_42334_i8(9) == 1 +; run: %transplant_42334_i8(13) == 1 +; run: %transplant_42334_i8(42) == 1 +; run: %transplant_42334_i8(85) == 1 +; run: %transplant_42334_i8(127) == 1 + +function %transplant_42334_i64(i64) -> i64 { +block0(v0: i64): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} +; run: %transplant_42334_i64(-9223372036854775808) == 1 +; run: %transplant_42334_i64(-6148914691236517206) == 1 +; run: %transplant_42334_i64(-1) == 1 +; run: %transplant_42334_i64(0) == 1 +; run: %transplant_42334_i64(1) == 1 +; run: %transplant_42334_i64(2) == 1 +; run: %transplant_42334_i64(13) == 1 +; run: %transplant_42334_i64(42) == 1 +; run: %transplant_42334_i64(63) == 1 +; run: %transplant_42334_i64(64) == 1 +; run: %transplant_42334_i64(65) == 1 +; run: %transplant_42334_i64(6148914691236517205) == 1 +; run: %transplant_42334_i64(9223372036854775807) == 1 + +function %transplant_41604_i8(i8) -> i8 { +block0(v0: i8): + v1 = bnot v0 + v2 = iconst.i8 13 + v3 = iadd v1, v2 + return v3 +} +; run: %transplant_41604_i8(-128) == -116 +; run: %transplant_41604_i8(-86) == 98 +; run: %transplant_41604_i8(-1) == 13 +; run: %transplant_41604_i8(0) == 12 +; run: %transplant_41604_i8(1) == 11 +; run: %transplant_41604_i8(2) == 10 +; run: %transplant_41604_i8(7) == 5 +; run: %transplant_41604_i8(8) == 4 +; run: %transplant_41604_i8(9) == 3 +; run: %transplant_41604_i8(13) == -1 +; run: %transplant_41604_i8(42) == -30 +; run: %transplant_41604_i8(85) == -73 +; run: %transplant_41604_i8(127) == -115 + +function %transplant_41604_i64(i64) -> i64 { +block0(v0: i64): + v1 = bnot v0 + v2 = iconst.i64 13 + v3 = iadd v1, v2 + return v3 +} +; run: %transplant_41604_i64(-9223372036854775808) == -9223372036854775796 +; run: %transplant_41604_i64(-6148914691236517206) == 6148914691236517218 +; run: %transplant_41604_i64(-1) == 13 +; run: %transplant_41604_i64(0) == 12 +; run: %transplant_41604_i64(1) == 11 +; run: %transplant_41604_i64(2) == 10 +; run: %transplant_41604_i64(13) == -1 +; run: %transplant_41604_i64(42) == -30 +; run: %transplant_41604_i64(63) == -51 +; run: %transplant_41604_i64(64) == -52 +; run: %transplant_41604_i64(65) == -53 +; run: %transplant_41604_i64(6148914691236517205) == -6148914691236517193 +; run: %transplant_41604_i64(9223372036854775807) == -9223372036854775795 + +function %transplant_42176_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = bor v0, v1 + v3 = iconst.i8 13 + v4 = isub v2, v3 + return v4 +} +; run: %transplant_42176_i8(-128) == -128 +; run: %transplant_42176_i8(-86) == -94 +; run: %transplant_42176_i8(-1) == -14 +; run: %transplant_42176_i8(0) == 0 +; run: %transplant_42176_i8(1) == 0 +; run: %transplant_42176_i8(2) == 2 +; run: %transplant_42176_i8(7) == 2 +; run: %transplant_42176_i8(8) == 0 +; run: %transplant_42176_i8(9) == 0 +; run: %transplant_42176_i8(13) == 0 +; run: %transplant_42176_i8(42) == 34 +; run: %transplant_42176_i8(85) == 80 +; run: %transplant_42176_i8(127) == 114 + +function %transplant_42176_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 13 + v2 = bor v0, v1 + v3 = iconst.i64 13 + v4 = isub v2, v3 + return v4 +} +; run: %transplant_42176_i64(-9223372036854775808) == -9223372036854775808 +; run: %transplant_42176_i64(-6148914691236517206) == -6148914691236517214 +; run: %transplant_42176_i64(-1) == -14 +; run: %transplant_42176_i64(0) == 0 +; run: %transplant_42176_i64(1) == 0 +; run: %transplant_42176_i64(2) == 2 +; run: %transplant_42176_i64(13) == 0 +; run: %transplant_42176_i64(42) == 34 +; run: %transplant_42176_i64(63) == 50 +; run: %transplant_42176_i64(64) == 64 +; run: %transplant_42176_i64(65) == 64 +; run: %transplant_42176_i64(6148914691236517205) == 6148914691236517200 +; run: %transplant_42176_i64(9223372036854775807) == 9223372036854775794 + +function %transplant_41951_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = iconst.i8 13 + v4 = imul v2, v3 + return v4 +} +; run: %transplant_41951_i8(-128) == 0 +; run: %transplant_41951_i8(-86) == 68 +; run: %transplant_41951_i8(-1) == -26 +; run: %transplant_41951_i8(0) == 0 +; run: %transplant_41951_i8(1) == 26 +; run: %transplant_41951_i8(2) == 52 +; run: %transplant_41951_i8(7) == -74 +; run: %transplant_41951_i8(8) == -48 +; run: %transplant_41951_i8(9) == -22 +; run: %transplant_41951_i8(13) == 82 +; run: %transplant_41951_i8(42) == 68 +; run: %transplant_41951_i8(85) == -94 +; run: %transplant_41951_i8(127) == -26 + +function %transplant_41951_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = iconst.i64 13 + v4 = imul v2, v3 + return v4 +} +; run: %transplant_41951_i64(-9223372036854775808) == 0 +; run: %transplant_41951_i64(-6148914691236517206) == 6148914691236517188 +; run: %transplant_41951_i64(-1) == -26 +; run: %transplant_41951_i64(0) == 0 +; run: %transplant_41951_i64(1) == 26 +; run: %transplant_41951_i64(2) == 52 +; run: %transplant_41951_i64(13) == 338 +; run: %transplant_41951_i64(42) == 1092 +; run: %transplant_41951_i64(63) == 1638 +; run: %transplant_41951_i64(64) == 1664 +; run: %transplant_41951_i64(65) == 1690 +; run: %transplant_41951_i64(6148914691236517205) == -6148914691236517214 +; run: %transplant_41951_i64(9223372036854775807) == -26 diff --git a/cranelift/filetests/filetests/runtests/bitops.clif b/cranelift/filetests/filetests/runtests/bitops.clif index 6d706fa30cfd..38fca1e29d77 100644 --- a/cranelift/filetests/filetests/runtests/bitops.clif +++ b/cranelift/filetests/filetests/runtests/bitops.clif @@ -889,3 +889,4375 @@ block0(v0: i32, v1: i32, v2: i32): ; run: %band_band_common_fourth_rt(0, -1, 0xaaaaaaaa) == 0 ; run: %band_band_common_fourth_rt(0xf0f0f0f0, 0xcccccccc, 0xaaaaaaaa) == 0x80808080 + +function %transplant_41059_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} +; run: %transplant_41059_i8(-128, -128) == 127 +; run: %transplant_41059_i8(-128, -86) == 127 +; run: %transplant_41059_i8(-128, 0) == -1 +; run: %transplant_41059_i8(-86, -86) == 85 +; run: %transplant_41059_i8(-86, 9) == -9 +; run: %transplant_41059_i8(-1, -1) == 0 +; run: %transplant_41059_i8(-1, 0) == -1 +; run: %transplant_41059_i8(-1, 85) == -86 +; run: %transplant_41059_i8(0, -128) == -1 +; run: %transplant_41059_i8(0, -1) == -1 +; run: %transplant_41059_i8(0, 0) == -1 +; run: %transplant_41059_i8(0, 1) == -1 +; run: %transplant_41059_i8(0, 127) == -1 +; run: %transplant_41059_i8(1, 0) == -1 +; run: %transplant_41059_i8(1, 1) == -2 +; run: %transplant_41059_i8(1, 127) == -2 +; run: %transplant_41059_i8(2, 0) == -1 +; run: %transplant_41059_i8(2, 2) == -3 +; run: %transplant_41059_i8(7, 2) == -3 +; run: %transplant_41059_i8(7, 7) == -8 +; run: %transplant_41059_i8(8, 8) == -9 +; run: %transplant_41059_i8(8, 13) == -9 +; run: %transplant_41059_i8(9, 9) == -10 +; run: %transplant_41059_i8(9, 42) == -9 +; run: %transplant_41059_i8(13, 1) == -2 +; run: %transplant_41059_i8(13, 13) == -14 +; run: %transplant_41059_i8(42, -1) == -43 +; run: %transplant_41059_i8(42, 42) == -43 +; run: %transplant_41059_i8(85, 8) == -1 +; run: %transplant_41059_i8(85, 85) == -86 +; run: %transplant_41059_i8(127, 0) == -1 +; run: %transplant_41059_i8(127, 7) == -8 +; run: %transplant_41059_i8(127, 127) == -128 + +function %transplant_41059_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} +; run: %transplant_41059_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_41059_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_41059_i64(-9223372036854775808, 0) == -1 +; run: %transplant_41059_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_41059_i64(-6148914691236517206, 65) == -1 +; run: %transplant_41059_i64(-1, -1) == 0 +; run: %transplant_41059_i64(-1, 0) == -1 +; run: %transplant_41059_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41059_i64(0, -9223372036854775808) == -1 +; run: %transplant_41059_i64(0, -1) == -1 +; run: %transplant_41059_i64(0, 0) == -1 +; run: %transplant_41059_i64(0, 1) == -1 +; run: %transplant_41059_i64(0, 9223372036854775807) == -1 +; run: %transplant_41059_i64(1, 0) == -1 +; run: %transplant_41059_i64(1, 1) == -2 +; run: %transplant_41059_i64(1, 9223372036854775807) == -2 +; run: %transplant_41059_i64(2, 0) == -1 +; run: %transplant_41059_i64(2, 2) == -3 +; run: %transplant_41059_i64(13, 1) == -2 +; run: %transplant_41059_i64(13, 13) == -14 +; run: %transplant_41059_i64(42, -1) == -43 +; run: %transplant_41059_i64(42, 42) == -43 +; run: %transplant_41059_i64(63, 2) == -3 +; run: %transplant_41059_i64(63, 63) == -64 +; run: %transplant_41059_i64(64, 13) == -1 +; run: %transplant_41059_i64(64, 64) == -65 +; run: %transplant_41059_i64(65, 42) == -1 +; run: %transplant_41059_i64(65, 65) == -66 +; run: %transplant_41059_i64(6148914691236517205, 64) == -65 +; run: %transplant_41059_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41059_i64(9223372036854775807, 0) == -1 +; run: %transplant_41059_i64(9223372036854775807, 63) == -64 +; run: %transplant_41059_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_41066_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bxor v3, v1 + return v4 +} +; run: %transplant_41066_i8(-128, -128) == 127 +; run: %transplant_41066_i8(-128, -86) == 127 +; run: %transplant_41066_i8(-128, 0) == -1 +; run: %transplant_41066_i8(-86, -86) == 85 +; run: %transplant_41066_i8(-86, 9) == -9 +; run: %transplant_41066_i8(-1, -1) == 0 +; run: %transplant_41066_i8(-1, 0) == -1 +; run: %transplant_41066_i8(-1, 85) == -86 +; run: %transplant_41066_i8(0, -128) == -1 +; run: %transplant_41066_i8(0, -1) == -1 +; run: %transplant_41066_i8(0, 0) == -1 +; run: %transplant_41066_i8(0, 1) == -1 +; run: %transplant_41066_i8(0, 127) == -1 +; run: %transplant_41066_i8(1, 0) == -1 +; run: %transplant_41066_i8(1, 1) == -2 +; run: %transplant_41066_i8(1, 127) == -2 +; run: %transplant_41066_i8(2, 0) == -1 +; run: %transplant_41066_i8(2, 2) == -3 +; run: %transplant_41066_i8(7, 2) == -3 +; run: %transplant_41066_i8(7, 7) == -8 +; run: %transplant_41066_i8(8, 8) == -9 +; run: %transplant_41066_i8(8, 13) == -9 +; run: %transplant_41066_i8(9, 9) == -10 +; run: %transplant_41066_i8(9, 42) == -9 +; run: %transplant_41066_i8(13, 1) == -2 +; run: %transplant_41066_i8(13, 13) == -14 +; run: %transplant_41066_i8(42, -1) == -43 +; run: %transplant_41066_i8(42, 42) == -43 +; run: %transplant_41066_i8(85, 8) == -1 +; run: %transplant_41066_i8(85, 85) == -86 +; run: %transplant_41066_i8(127, 0) == -1 +; run: %transplant_41066_i8(127, 7) == -8 +; run: %transplant_41066_i8(127, 127) == -128 + +function %transplant_41066_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bxor v3, v1 + return v4 +} +; run: %transplant_41066_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_41066_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_41066_i64(-9223372036854775808, 0) == -1 +; run: %transplant_41066_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_41066_i64(-6148914691236517206, 65) == -1 +; run: %transplant_41066_i64(-1, -1) == 0 +; run: %transplant_41066_i64(-1, 0) == -1 +; run: %transplant_41066_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41066_i64(0, -9223372036854775808) == -1 +; run: %transplant_41066_i64(0, -1) == -1 +; run: %transplant_41066_i64(0, 0) == -1 +; run: %transplant_41066_i64(0, 1) == -1 +; run: %transplant_41066_i64(0, 9223372036854775807) == -1 +; run: %transplant_41066_i64(1, 0) == -1 +; run: %transplant_41066_i64(1, 1) == -2 +; run: %transplant_41066_i64(1, 9223372036854775807) == -2 +; run: %transplant_41066_i64(2, 0) == -1 +; run: %transplant_41066_i64(2, 2) == -3 +; run: %transplant_41066_i64(13, 1) == -2 +; run: %transplant_41066_i64(13, 13) == -14 +; run: %transplant_41066_i64(42, -1) == -43 +; run: %transplant_41066_i64(42, 42) == -43 +; run: %transplant_41066_i64(63, 2) == -3 +; run: %transplant_41066_i64(63, 63) == -64 +; run: %transplant_41066_i64(64, 13) == -1 +; run: %transplant_41066_i64(64, 64) == -65 +; run: %transplant_41066_i64(65, 42) == -1 +; run: %transplant_41066_i64(65, 65) == -66 +; run: %transplant_41066_i64(6148914691236517205, 64) == -65 +; run: %transplant_41066_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41066_i64(9223372036854775807, 0) == -1 +; run: %transplant_41066_i64(9223372036854775807, 63) == -64 +; run: %transplant_41066_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_41263_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v0, v3 + return v4 +} +; run: %transplant_41263_i8(-128, -128) == 127 +; run: %transplant_41263_i8(-128, -86) == 127 +; run: %transplant_41263_i8(-128, 0) == -1 +; run: %transplant_41263_i8(-86, -86) == 85 +; run: %transplant_41263_i8(-86, 9) == -9 +; run: %transplant_41263_i8(-1, -1) == 0 +; run: %transplant_41263_i8(-1, 0) == -1 +; run: %transplant_41263_i8(-1, 85) == -86 +; run: %transplant_41263_i8(0, -128) == -1 +; run: %transplant_41263_i8(0, -1) == -1 +; run: %transplant_41263_i8(0, 0) == -1 +; run: %transplant_41263_i8(0, 1) == -1 +; run: %transplant_41263_i8(0, 127) == -1 +; run: %transplant_41263_i8(1, 0) == -1 +; run: %transplant_41263_i8(1, 1) == -2 +; run: %transplant_41263_i8(1, 127) == -2 +; run: %transplant_41263_i8(2, 0) == -1 +; run: %transplant_41263_i8(2, 2) == -3 +; run: %transplant_41263_i8(7, 2) == -3 +; run: %transplant_41263_i8(7, 7) == -8 +; run: %transplant_41263_i8(8, 8) == -9 +; run: %transplant_41263_i8(8, 13) == -9 +; run: %transplant_41263_i8(9, 9) == -10 +; run: %transplant_41263_i8(9, 42) == -9 +; run: %transplant_41263_i8(13, 1) == -2 +; run: %transplant_41263_i8(13, 13) == -14 +; run: %transplant_41263_i8(42, -1) == -43 +; run: %transplant_41263_i8(42, 42) == -43 +; run: %transplant_41263_i8(85, 8) == -1 +; run: %transplant_41263_i8(85, 85) == -86 +; run: %transplant_41263_i8(127, 0) == -1 +; run: %transplant_41263_i8(127, 7) == -8 +; run: %transplant_41263_i8(127, 127) == -128 + +function %transplant_41263_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v0, v3 + return v4 +} +; run: %transplant_41263_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_41263_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_41263_i64(-9223372036854775808, 0) == -1 +; run: %transplant_41263_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_41263_i64(-6148914691236517206, 65) == -1 +; run: %transplant_41263_i64(-1, -1) == 0 +; run: %transplant_41263_i64(-1, 0) == -1 +; run: %transplant_41263_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41263_i64(0, -9223372036854775808) == -1 +; run: %transplant_41263_i64(0, -1) == -1 +; run: %transplant_41263_i64(0, 0) == -1 +; run: %transplant_41263_i64(0, 1) == -1 +; run: %transplant_41263_i64(0, 9223372036854775807) == -1 +; run: %transplant_41263_i64(1, 0) == -1 +; run: %transplant_41263_i64(1, 1) == -2 +; run: %transplant_41263_i64(1, 9223372036854775807) == -2 +; run: %transplant_41263_i64(2, 0) == -1 +; run: %transplant_41263_i64(2, 2) == -3 +; run: %transplant_41263_i64(13, 1) == -2 +; run: %transplant_41263_i64(13, 13) == -14 +; run: %transplant_41263_i64(42, -1) == -43 +; run: %transplant_41263_i64(42, 42) == -43 +; run: %transplant_41263_i64(63, 2) == -3 +; run: %transplant_41263_i64(63, 63) == -64 +; run: %transplant_41263_i64(64, 13) == -1 +; run: %transplant_41263_i64(64, 64) == -65 +; run: %transplant_41263_i64(65, 42) == -1 +; run: %transplant_41263_i64(65, 65) == -66 +; run: %transplant_41263_i64(6148914691236517205, 64) == -65 +; run: %transplant_41263_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41263_i64(9223372036854775807, 0) == -1 +; run: %transplant_41263_i64(9223372036854775807, 63) == -64 +; run: %transplant_41263_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_41264_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v1, v2 + v4 = bxor v0, v3 + return v4 +} +; run: %transplant_41264_i8(-128, -128) == 127 +; run: %transplant_41264_i8(-128, -86) == 127 +; run: %transplant_41264_i8(-128, 0) == -1 +; run: %transplant_41264_i8(-86, -86) == 85 +; run: %transplant_41264_i8(-86, 9) == -9 +; run: %transplant_41264_i8(-1, -1) == 0 +; run: %transplant_41264_i8(-1, 0) == -1 +; run: %transplant_41264_i8(-1, 85) == -86 +; run: %transplant_41264_i8(0, -128) == -1 +; run: %transplant_41264_i8(0, -1) == -1 +; run: %transplant_41264_i8(0, 0) == -1 +; run: %transplant_41264_i8(0, 1) == -1 +; run: %transplant_41264_i8(0, 127) == -1 +; run: %transplant_41264_i8(1, 0) == -1 +; run: %transplant_41264_i8(1, 1) == -2 +; run: %transplant_41264_i8(1, 127) == -2 +; run: %transplant_41264_i8(2, 0) == -1 +; run: %transplant_41264_i8(2, 2) == -3 +; run: %transplant_41264_i8(7, 2) == -3 +; run: %transplant_41264_i8(7, 7) == -8 +; run: %transplant_41264_i8(8, 8) == -9 +; run: %transplant_41264_i8(8, 13) == -9 +; run: %transplant_41264_i8(9, 9) == -10 +; run: %transplant_41264_i8(9, 42) == -9 +; run: %transplant_41264_i8(13, 1) == -2 +; run: %transplant_41264_i8(13, 13) == -14 +; run: %transplant_41264_i8(42, -1) == -43 +; run: %transplant_41264_i8(42, 42) == -43 +; run: %transplant_41264_i8(85, 8) == -1 +; run: %transplant_41264_i8(85, 85) == -86 +; run: %transplant_41264_i8(127, 0) == -1 +; run: %transplant_41264_i8(127, 7) == -8 +; run: %transplant_41264_i8(127, 127) == -128 + +function %transplant_41264_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v1, v2 + v4 = bxor v0, v3 + return v4 +} +; run: %transplant_41264_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_41264_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_41264_i64(-9223372036854775808, 0) == -1 +; run: %transplant_41264_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_41264_i64(-6148914691236517206, 65) == -1 +; run: %transplant_41264_i64(-1, -1) == 0 +; run: %transplant_41264_i64(-1, 0) == -1 +; run: %transplant_41264_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41264_i64(0, -9223372036854775808) == -1 +; run: %transplant_41264_i64(0, -1) == -1 +; run: %transplant_41264_i64(0, 0) == -1 +; run: %transplant_41264_i64(0, 1) == -1 +; run: %transplant_41264_i64(0, 9223372036854775807) == -1 +; run: %transplant_41264_i64(1, 0) == -1 +; run: %transplant_41264_i64(1, 1) == -2 +; run: %transplant_41264_i64(1, 9223372036854775807) == -2 +; run: %transplant_41264_i64(2, 0) == -1 +; run: %transplant_41264_i64(2, 2) == -3 +; run: %transplant_41264_i64(13, 1) == -2 +; run: %transplant_41264_i64(13, 13) == -14 +; run: %transplant_41264_i64(42, -1) == -43 +; run: %transplant_41264_i64(42, 42) == -43 +; run: %transplant_41264_i64(63, 2) == -3 +; run: %transplant_41264_i64(63, 63) == -64 +; run: %transplant_41264_i64(64, 13) == -1 +; run: %transplant_41264_i64(64, 64) == -65 +; run: %transplant_41264_i64(65, 42) == -1 +; run: %transplant_41264_i64(65, 65) == -66 +; run: %transplant_41264_i64(6148914691236517205, 64) == -65 +; run: %transplant_41264_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41264_i64(9223372036854775807, 0) == -1 +; run: %transplant_41264_i64(9223372036854775807, 63) == -64 +; run: %transplant_41264_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_38578_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38578_i8(-128, -128) == -128 +; run: %transplant_38578_i8(-128, -86) == -128 +; run: %transplant_38578_i8(-128, 0) == 0 +; run: %transplant_38578_i8(-86, -86) == -86 +; run: %transplant_38578_i8(-86, 9) == 8 +; run: %transplant_38578_i8(-1, -1) == -1 +; run: %transplant_38578_i8(-1, 0) == 0 +; run: %transplant_38578_i8(-1, 85) == 85 +; run: %transplant_38578_i8(0, -128) == 0 +; run: %transplant_38578_i8(0, -1) == 0 +; run: %transplant_38578_i8(0, 0) == 0 +; run: %transplant_38578_i8(0, 1) == 0 +; run: %transplant_38578_i8(0, 127) == 0 +; run: %transplant_38578_i8(1, 0) == 0 +; run: %transplant_38578_i8(1, 1) == 1 +; run: %transplant_38578_i8(1, 127) == 1 +; run: %transplant_38578_i8(2, 0) == 0 +; run: %transplant_38578_i8(2, 2) == 2 +; run: %transplant_38578_i8(7, 2) == 2 +; run: %transplant_38578_i8(7, 7) == 7 +; run: %transplant_38578_i8(8, 8) == 8 +; run: %transplant_38578_i8(8, 13) == 8 +; run: %transplant_38578_i8(9, 9) == 9 +; run: %transplant_38578_i8(9, 42) == 8 +; run: %transplant_38578_i8(13, 1) == 1 +; run: %transplant_38578_i8(13, 13) == 13 +; run: %transplant_38578_i8(42, -1) == 42 +; run: %transplant_38578_i8(42, 42) == 42 +; run: %transplant_38578_i8(85, 8) == 0 +; run: %transplant_38578_i8(85, 85) == 85 +; run: %transplant_38578_i8(127, 0) == 0 +; run: %transplant_38578_i8(127, 7) == 7 +; run: %transplant_38578_i8(127, 127) == 127 + +function %transplant_38578_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38578_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_38578_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_38578_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38578_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_38578_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38578_i64(-1, -1) == -1 +; run: %transplant_38578_i64(-1, 0) == 0 +; run: %transplant_38578_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38578_i64(0, -9223372036854775808) == 0 +; run: %transplant_38578_i64(0, -1) == 0 +; run: %transplant_38578_i64(0, 0) == 0 +; run: %transplant_38578_i64(0, 1) == 0 +; run: %transplant_38578_i64(0, 9223372036854775807) == 0 +; run: %transplant_38578_i64(1, 0) == 0 +; run: %transplant_38578_i64(1, 1) == 1 +; run: %transplant_38578_i64(1, 9223372036854775807) == 1 +; run: %transplant_38578_i64(2, 0) == 0 +; run: %transplant_38578_i64(2, 2) == 2 +; run: %transplant_38578_i64(13, 1) == 1 +; run: %transplant_38578_i64(13, 13) == 13 +; run: %transplant_38578_i64(42, -1) == 42 +; run: %transplant_38578_i64(42, 42) == 42 +; run: %transplant_38578_i64(63, 2) == 2 +; run: %transplant_38578_i64(63, 63) == 63 +; run: %transplant_38578_i64(64, 13) == 0 +; run: %transplant_38578_i64(64, 64) == 64 +; run: %transplant_38578_i64(65, 42) == 0 +; run: %transplant_38578_i64(65, 65) == 65 +; run: %transplant_38578_i64(6148914691236517205, 64) == 64 +; run: %transplant_38578_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38578_i64(9223372036854775807, 0) == 0 +; run: %transplant_38578_i64(9223372036854775807, 63) == 63 +; run: %transplant_38578_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_38579_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38579_i8(-128, -128) == -128 +; run: %transplant_38579_i8(-128, -86) == -128 +; run: %transplant_38579_i8(-128, 0) == 0 +; run: %transplant_38579_i8(-86, -86) == -86 +; run: %transplant_38579_i8(-86, 9) == 8 +; run: %transplant_38579_i8(-1, -1) == -1 +; run: %transplant_38579_i8(-1, 0) == 0 +; run: %transplant_38579_i8(-1, 85) == 85 +; run: %transplant_38579_i8(0, -128) == 0 +; run: %transplant_38579_i8(0, -1) == 0 +; run: %transplant_38579_i8(0, 0) == 0 +; run: %transplant_38579_i8(0, 1) == 0 +; run: %transplant_38579_i8(0, 127) == 0 +; run: %transplant_38579_i8(1, 0) == 0 +; run: %transplant_38579_i8(1, 1) == 1 +; run: %transplant_38579_i8(1, 127) == 1 +; run: %transplant_38579_i8(2, 0) == 0 +; run: %transplant_38579_i8(2, 2) == 2 +; run: %transplant_38579_i8(7, 2) == 2 +; run: %transplant_38579_i8(7, 7) == 7 +; run: %transplant_38579_i8(8, 8) == 8 +; run: %transplant_38579_i8(8, 13) == 8 +; run: %transplant_38579_i8(9, 9) == 9 +; run: %transplant_38579_i8(9, 42) == 8 +; run: %transplant_38579_i8(13, 1) == 1 +; run: %transplant_38579_i8(13, 13) == 13 +; run: %transplant_38579_i8(42, -1) == 42 +; run: %transplant_38579_i8(42, 42) == 42 +; run: %transplant_38579_i8(85, 8) == 0 +; run: %transplant_38579_i8(85, 85) == 85 +; run: %transplant_38579_i8(127, 0) == 0 +; run: %transplant_38579_i8(127, 7) == 7 +; run: %transplant_38579_i8(127, 127) == 127 + +function %transplant_38579_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38579_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_38579_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_38579_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38579_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_38579_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38579_i64(-1, -1) == -1 +; run: %transplant_38579_i64(-1, 0) == 0 +; run: %transplant_38579_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38579_i64(0, -9223372036854775808) == 0 +; run: %transplant_38579_i64(0, -1) == 0 +; run: %transplant_38579_i64(0, 0) == 0 +; run: %transplant_38579_i64(0, 1) == 0 +; run: %transplant_38579_i64(0, 9223372036854775807) == 0 +; run: %transplant_38579_i64(1, 0) == 0 +; run: %transplant_38579_i64(1, 1) == 1 +; run: %transplant_38579_i64(1, 9223372036854775807) == 1 +; run: %transplant_38579_i64(2, 0) == 0 +; run: %transplant_38579_i64(2, 2) == 2 +; run: %transplant_38579_i64(13, 1) == 1 +; run: %transplant_38579_i64(13, 13) == 13 +; run: %transplant_38579_i64(42, -1) == 42 +; run: %transplant_38579_i64(42, 42) == 42 +; run: %transplant_38579_i64(63, 2) == 2 +; run: %transplant_38579_i64(63, 63) == 63 +; run: %transplant_38579_i64(64, 13) == 0 +; run: %transplant_38579_i64(64, 64) == 64 +; run: %transplant_38579_i64(65, 42) == 0 +; run: %transplant_38579_i64(65, 65) == 65 +; run: %transplant_38579_i64(6148914691236517205, 64) == 64 +; run: %transplant_38579_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38579_i64(9223372036854775807, 0) == 0 +; run: %transplant_38579_i64(9223372036854775807, 63) == 63 +; run: %transplant_38579_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_38580_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38580_i8(-128, -128) == -128 +; run: %transplant_38580_i8(-128, -86) == -128 +; run: %transplant_38580_i8(-128, 0) == 0 +; run: %transplant_38580_i8(-86, -86) == -86 +; run: %transplant_38580_i8(-86, 9) == 8 +; run: %transplant_38580_i8(-1, -1) == -1 +; run: %transplant_38580_i8(-1, 0) == 0 +; run: %transplant_38580_i8(-1, 85) == 85 +; run: %transplant_38580_i8(0, -128) == 0 +; run: %transplant_38580_i8(0, -1) == 0 +; run: %transplant_38580_i8(0, 0) == 0 +; run: %transplant_38580_i8(0, 1) == 0 +; run: %transplant_38580_i8(0, 127) == 0 +; run: %transplant_38580_i8(1, 0) == 0 +; run: %transplant_38580_i8(1, 1) == 1 +; run: %transplant_38580_i8(1, 127) == 1 +; run: %transplant_38580_i8(2, 0) == 0 +; run: %transplant_38580_i8(2, 2) == 2 +; run: %transplant_38580_i8(7, 2) == 2 +; run: %transplant_38580_i8(7, 7) == 7 +; run: %transplant_38580_i8(8, 8) == 8 +; run: %transplant_38580_i8(8, 13) == 8 +; run: %transplant_38580_i8(9, 9) == 9 +; run: %transplant_38580_i8(9, 42) == 8 +; run: %transplant_38580_i8(13, 1) == 1 +; run: %transplant_38580_i8(13, 13) == 13 +; run: %transplant_38580_i8(42, -1) == 42 +; run: %transplant_38580_i8(42, 42) == 42 +; run: %transplant_38580_i8(85, 8) == 0 +; run: %transplant_38580_i8(85, 85) == 85 +; run: %transplant_38580_i8(127, 0) == 0 +; run: %transplant_38580_i8(127, 7) == 7 +; run: %transplant_38580_i8(127, 127) == 127 + +function %transplant_38580_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38580_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_38580_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_38580_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38580_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_38580_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38580_i64(-1, -1) == -1 +; run: %transplant_38580_i64(-1, 0) == 0 +; run: %transplant_38580_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38580_i64(0, -9223372036854775808) == 0 +; run: %transplant_38580_i64(0, -1) == 0 +; run: %transplant_38580_i64(0, 0) == 0 +; run: %transplant_38580_i64(0, 1) == 0 +; run: %transplant_38580_i64(0, 9223372036854775807) == 0 +; run: %transplant_38580_i64(1, 0) == 0 +; run: %transplant_38580_i64(1, 1) == 1 +; run: %transplant_38580_i64(1, 9223372036854775807) == 1 +; run: %transplant_38580_i64(2, 0) == 0 +; run: %transplant_38580_i64(2, 2) == 2 +; run: %transplant_38580_i64(13, 1) == 1 +; run: %transplant_38580_i64(13, 13) == 13 +; run: %transplant_38580_i64(42, -1) == 42 +; run: %transplant_38580_i64(42, 42) == 42 +; run: %transplant_38580_i64(63, 2) == 2 +; run: %transplant_38580_i64(63, 63) == 63 +; run: %transplant_38580_i64(64, 13) == 0 +; run: %transplant_38580_i64(64, 64) == 64 +; run: %transplant_38580_i64(65, 42) == 0 +; run: %transplant_38580_i64(65, 65) == 65 +; run: %transplant_38580_i64(6148914691236517205, 64) == 64 +; run: %transplant_38580_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38580_i64(9223372036854775807, 0) == 0 +; run: %transplant_38580_i64(9223372036854775807, 63) == 63 +; run: %transplant_38580_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_38581_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38581_i8(-128, -128) == -128 +; run: %transplant_38581_i8(-128, -86) == -128 +; run: %transplant_38581_i8(-128, 0) == 0 +; run: %transplant_38581_i8(-86, -86) == -86 +; run: %transplant_38581_i8(-86, 9) == 8 +; run: %transplant_38581_i8(-1, -1) == -1 +; run: %transplant_38581_i8(-1, 0) == 0 +; run: %transplant_38581_i8(-1, 85) == 85 +; run: %transplant_38581_i8(0, -128) == 0 +; run: %transplant_38581_i8(0, -1) == 0 +; run: %transplant_38581_i8(0, 0) == 0 +; run: %transplant_38581_i8(0, 1) == 0 +; run: %transplant_38581_i8(0, 127) == 0 +; run: %transplant_38581_i8(1, 0) == 0 +; run: %transplant_38581_i8(1, 1) == 1 +; run: %transplant_38581_i8(1, 127) == 1 +; run: %transplant_38581_i8(2, 0) == 0 +; run: %transplant_38581_i8(2, 2) == 2 +; run: %transplant_38581_i8(7, 2) == 2 +; run: %transplant_38581_i8(7, 7) == 7 +; run: %transplant_38581_i8(8, 8) == 8 +; run: %transplant_38581_i8(8, 13) == 8 +; run: %transplant_38581_i8(9, 9) == 9 +; run: %transplant_38581_i8(9, 42) == 8 +; run: %transplant_38581_i8(13, 1) == 1 +; run: %transplant_38581_i8(13, 13) == 13 +; run: %transplant_38581_i8(42, -1) == 42 +; run: %transplant_38581_i8(42, 42) == 42 +; run: %transplant_38581_i8(85, 8) == 0 +; run: %transplant_38581_i8(85, 85) == 85 +; run: %transplant_38581_i8(127, 0) == 0 +; run: %transplant_38581_i8(127, 7) == 7 +; run: %transplant_38581_i8(127, 127) == 127 + +function %transplant_38581_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38581_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_38581_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_38581_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38581_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_38581_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38581_i64(-1, -1) == -1 +; run: %transplant_38581_i64(-1, 0) == 0 +; run: %transplant_38581_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38581_i64(0, -9223372036854775808) == 0 +; run: %transplant_38581_i64(0, -1) == 0 +; run: %transplant_38581_i64(0, 0) == 0 +; run: %transplant_38581_i64(0, 1) == 0 +; run: %transplant_38581_i64(0, 9223372036854775807) == 0 +; run: %transplant_38581_i64(1, 0) == 0 +; run: %transplant_38581_i64(1, 1) == 1 +; run: %transplant_38581_i64(1, 9223372036854775807) == 1 +; run: %transplant_38581_i64(2, 0) == 0 +; run: %transplant_38581_i64(2, 2) == 2 +; run: %transplant_38581_i64(13, 1) == 1 +; run: %transplant_38581_i64(13, 13) == 13 +; run: %transplant_38581_i64(42, -1) == 42 +; run: %transplant_38581_i64(42, 42) == 42 +; run: %transplant_38581_i64(63, 2) == 2 +; run: %transplant_38581_i64(63, 63) == 63 +; run: %transplant_38581_i64(64, 13) == 0 +; run: %transplant_38581_i64(64, 64) == 64 +; run: %transplant_38581_i64(65, 42) == 0 +; run: %transplant_38581_i64(65, 65) == 65 +; run: %transplant_38581_i64(6148914691236517205, 64) == 64 +; run: %transplant_38581_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_38581_i64(9223372036854775807, 0) == 0 +; run: %transplant_38581_i64(9223372036854775807, 63) == 63 +; run: %transplant_38581_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39078_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39078_i8(-128, -128) == -128 +; run: %transplant_39078_i8(-128, -86) == -128 +; run: %transplant_39078_i8(-128, 0) == 0 +; run: %transplant_39078_i8(-86, -86) == -86 +; run: %transplant_39078_i8(-86, 9) == 8 +; run: %transplant_39078_i8(-1, -1) == -1 +; run: %transplant_39078_i8(-1, 0) == 0 +; run: %transplant_39078_i8(-1, 85) == 85 +; run: %transplant_39078_i8(0, -128) == 0 +; run: %transplant_39078_i8(0, -1) == 0 +; run: %transplant_39078_i8(0, 0) == 0 +; run: %transplant_39078_i8(0, 1) == 0 +; run: %transplant_39078_i8(0, 127) == 0 +; run: %transplant_39078_i8(1, 0) == 0 +; run: %transplant_39078_i8(1, 1) == 1 +; run: %transplant_39078_i8(1, 127) == 1 +; run: %transplant_39078_i8(2, 0) == 0 +; run: %transplant_39078_i8(2, 2) == 2 +; run: %transplant_39078_i8(7, 2) == 2 +; run: %transplant_39078_i8(7, 7) == 7 +; run: %transplant_39078_i8(8, 8) == 8 +; run: %transplant_39078_i8(8, 13) == 8 +; run: %transplant_39078_i8(9, 9) == 9 +; run: %transplant_39078_i8(9, 42) == 8 +; run: %transplant_39078_i8(13, 1) == 1 +; run: %transplant_39078_i8(13, 13) == 13 +; run: %transplant_39078_i8(42, -1) == 42 +; run: %transplant_39078_i8(42, 42) == 42 +; run: %transplant_39078_i8(85, 8) == 0 +; run: %transplant_39078_i8(85, 85) == 85 +; run: %transplant_39078_i8(127, 0) == 0 +; run: %transplant_39078_i8(127, 7) == 7 +; run: %transplant_39078_i8(127, 127) == 127 + +function %transplant_39078_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39078_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39078_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_39078_i64(-9223372036854775808, 0) == 0 +; run: %transplant_39078_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39078_i64(-6148914691236517206, 65) == 0 +; run: %transplant_39078_i64(-1, -1) == -1 +; run: %transplant_39078_i64(-1, 0) == 0 +; run: %transplant_39078_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39078_i64(0, -9223372036854775808) == 0 +; run: %transplant_39078_i64(0, -1) == 0 +; run: %transplant_39078_i64(0, 0) == 0 +; run: %transplant_39078_i64(0, 1) == 0 +; run: %transplant_39078_i64(0, 9223372036854775807) == 0 +; run: %transplant_39078_i64(1, 0) == 0 +; run: %transplant_39078_i64(1, 1) == 1 +; run: %transplant_39078_i64(1, 9223372036854775807) == 1 +; run: %transplant_39078_i64(2, 0) == 0 +; run: %transplant_39078_i64(2, 2) == 2 +; run: %transplant_39078_i64(13, 1) == 1 +; run: %transplant_39078_i64(13, 13) == 13 +; run: %transplant_39078_i64(42, -1) == 42 +; run: %transplant_39078_i64(42, 42) == 42 +; run: %transplant_39078_i64(63, 2) == 2 +; run: %transplant_39078_i64(63, 63) == 63 +; run: %transplant_39078_i64(64, 13) == 0 +; run: %transplant_39078_i64(64, 64) == 64 +; run: %transplant_39078_i64(65, 42) == 0 +; run: %transplant_39078_i64(65, 65) == 65 +; run: %transplant_39078_i64(6148914691236517205, 64) == 64 +; run: %transplant_39078_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39078_i64(9223372036854775807, 0) == 0 +; run: %transplant_39078_i64(9223372036854775807, 63) == 63 +; run: %transplant_39078_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39079_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39079_i8(-128, -128) == -128 +; run: %transplant_39079_i8(-128, -86) == -128 +; run: %transplant_39079_i8(-128, 0) == 0 +; run: %transplant_39079_i8(-86, -86) == -86 +; run: %transplant_39079_i8(-86, 9) == 8 +; run: %transplant_39079_i8(-1, -1) == -1 +; run: %transplant_39079_i8(-1, 0) == 0 +; run: %transplant_39079_i8(-1, 85) == 85 +; run: %transplant_39079_i8(0, -128) == 0 +; run: %transplant_39079_i8(0, -1) == 0 +; run: %transplant_39079_i8(0, 0) == 0 +; run: %transplant_39079_i8(0, 1) == 0 +; run: %transplant_39079_i8(0, 127) == 0 +; run: %transplant_39079_i8(1, 0) == 0 +; run: %transplant_39079_i8(1, 1) == 1 +; run: %transplant_39079_i8(1, 127) == 1 +; run: %transplant_39079_i8(2, 0) == 0 +; run: %transplant_39079_i8(2, 2) == 2 +; run: %transplant_39079_i8(7, 2) == 2 +; run: %transplant_39079_i8(7, 7) == 7 +; run: %transplant_39079_i8(8, 8) == 8 +; run: %transplant_39079_i8(8, 13) == 8 +; run: %transplant_39079_i8(9, 9) == 9 +; run: %transplant_39079_i8(9, 42) == 8 +; run: %transplant_39079_i8(13, 1) == 1 +; run: %transplant_39079_i8(13, 13) == 13 +; run: %transplant_39079_i8(42, -1) == 42 +; run: %transplant_39079_i8(42, 42) == 42 +; run: %transplant_39079_i8(85, 8) == 0 +; run: %transplant_39079_i8(85, 85) == 85 +; run: %transplant_39079_i8(127, 0) == 0 +; run: %transplant_39079_i8(127, 7) == 7 +; run: %transplant_39079_i8(127, 127) == 127 + +function %transplant_39079_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39079_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39079_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_39079_i64(-9223372036854775808, 0) == 0 +; run: %transplant_39079_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39079_i64(-6148914691236517206, 65) == 0 +; run: %transplant_39079_i64(-1, -1) == -1 +; run: %transplant_39079_i64(-1, 0) == 0 +; run: %transplant_39079_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39079_i64(0, -9223372036854775808) == 0 +; run: %transplant_39079_i64(0, -1) == 0 +; run: %transplant_39079_i64(0, 0) == 0 +; run: %transplant_39079_i64(0, 1) == 0 +; run: %transplant_39079_i64(0, 9223372036854775807) == 0 +; run: %transplant_39079_i64(1, 0) == 0 +; run: %transplant_39079_i64(1, 1) == 1 +; run: %transplant_39079_i64(1, 9223372036854775807) == 1 +; run: %transplant_39079_i64(2, 0) == 0 +; run: %transplant_39079_i64(2, 2) == 2 +; run: %transplant_39079_i64(13, 1) == 1 +; run: %transplant_39079_i64(13, 13) == 13 +; run: %transplant_39079_i64(42, -1) == 42 +; run: %transplant_39079_i64(42, 42) == 42 +; run: %transplant_39079_i64(63, 2) == 2 +; run: %transplant_39079_i64(63, 63) == 63 +; run: %transplant_39079_i64(64, 13) == 0 +; run: %transplant_39079_i64(64, 64) == 64 +; run: %transplant_39079_i64(65, 42) == 0 +; run: %transplant_39079_i64(65, 65) == 65 +; run: %transplant_39079_i64(6148914691236517205, 64) == 64 +; run: %transplant_39079_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39079_i64(9223372036854775807, 0) == 0 +; run: %transplant_39079_i64(9223372036854775807, 63) == 63 +; run: %transplant_39079_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39080_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39080_i8(-128, -128) == -128 +; run: %transplant_39080_i8(-128, -86) == -128 +; run: %transplant_39080_i8(-128, 0) == 0 +; run: %transplant_39080_i8(-86, -86) == -86 +; run: %transplant_39080_i8(-86, 9) == 8 +; run: %transplant_39080_i8(-1, -1) == -1 +; run: %transplant_39080_i8(-1, 0) == 0 +; run: %transplant_39080_i8(-1, 85) == 85 +; run: %transplant_39080_i8(0, -128) == 0 +; run: %transplant_39080_i8(0, -1) == 0 +; run: %transplant_39080_i8(0, 0) == 0 +; run: %transplant_39080_i8(0, 1) == 0 +; run: %transplant_39080_i8(0, 127) == 0 +; run: %transplant_39080_i8(1, 0) == 0 +; run: %transplant_39080_i8(1, 1) == 1 +; run: %transplant_39080_i8(1, 127) == 1 +; run: %transplant_39080_i8(2, 0) == 0 +; run: %transplant_39080_i8(2, 2) == 2 +; run: %transplant_39080_i8(7, 2) == 2 +; run: %transplant_39080_i8(7, 7) == 7 +; run: %transplant_39080_i8(8, 8) == 8 +; run: %transplant_39080_i8(8, 13) == 8 +; run: %transplant_39080_i8(9, 9) == 9 +; run: %transplant_39080_i8(9, 42) == 8 +; run: %transplant_39080_i8(13, 1) == 1 +; run: %transplant_39080_i8(13, 13) == 13 +; run: %transplant_39080_i8(42, -1) == 42 +; run: %transplant_39080_i8(42, 42) == 42 +; run: %transplant_39080_i8(85, 8) == 0 +; run: %transplant_39080_i8(85, 85) == 85 +; run: %transplant_39080_i8(127, 0) == 0 +; run: %transplant_39080_i8(127, 7) == 7 +; run: %transplant_39080_i8(127, 127) == 127 + +function %transplant_39080_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39080_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39080_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_39080_i64(-9223372036854775808, 0) == 0 +; run: %transplant_39080_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39080_i64(-6148914691236517206, 65) == 0 +; run: %transplant_39080_i64(-1, -1) == -1 +; run: %transplant_39080_i64(-1, 0) == 0 +; run: %transplant_39080_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39080_i64(0, -9223372036854775808) == 0 +; run: %transplant_39080_i64(0, -1) == 0 +; run: %transplant_39080_i64(0, 0) == 0 +; run: %transplant_39080_i64(0, 1) == 0 +; run: %transplant_39080_i64(0, 9223372036854775807) == 0 +; run: %transplant_39080_i64(1, 0) == 0 +; run: %transplant_39080_i64(1, 1) == 1 +; run: %transplant_39080_i64(1, 9223372036854775807) == 1 +; run: %transplant_39080_i64(2, 0) == 0 +; run: %transplant_39080_i64(2, 2) == 2 +; run: %transplant_39080_i64(13, 1) == 1 +; run: %transplant_39080_i64(13, 13) == 13 +; run: %transplant_39080_i64(42, -1) == 42 +; run: %transplant_39080_i64(42, 42) == 42 +; run: %transplant_39080_i64(63, 2) == 2 +; run: %transplant_39080_i64(63, 63) == 63 +; run: %transplant_39080_i64(64, 13) == 0 +; run: %transplant_39080_i64(64, 64) == 64 +; run: %transplant_39080_i64(65, 42) == 0 +; run: %transplant_39080_i64(65, 65) == 65 +; run: %transplant_39080_i64(6148914691236517205, 64) == 64 +; run: %transplant_39080_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39080_i64(9223372036854775807, 0) == 0 +; run: %transplant_39080_i64(9223372036854775807, 63) == 63 +; run: %transplant_39080_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39081_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39081_i8(-128, -128) == -128 +; run: %transplant_39081_i8(-128, -86) == -128 +; run: %transplant_39081_i8(-128, 0) == 0 +; run: %transplant_39081_i8(-86, -86) == -86 +; run: %transplant_39081_i8(-86, 9) == 8 +; run: %transplant_39081_i8(-1, -1) == -1 +; run: %transplant_39081_i8(-1, 0) == 0 +; run: %transplant_39081_i8(-1, 85) == 85 +; run: %transplant_39081_i8(0, -128) == 0 +; run: %transplant_39081_i8(0, -1) == 0 +; run: %transplant_39081_i8(0, 0) == 0 +; run: %transplant_39081_i8(0, 1) == 0 +; run: %transplant_39081_i8(0, 127) == 0 +; run: %transplant_39081_i8(1, 0) == 0 +; run: %transplant_39081_i8(1, 1) == 1 +; run: %transplant_39081_i8(1, 127) == 1 +; run: %transplant_39081_i8(2, 0) == 0 +; run: %transplant_39081_i8(2, 2) == 2 +; run: %transplant_39081_i8(7, 2) == 2 +; run: %transplant_39081_i8(7, 7) == 7 +; run: %transplant_39081_i8(8, 8) == 8 +; run: %transplant_39081_i8(8, 13) == 8 +; run: %transplant_39081_i8(9, 9) == 9 +; run: %transplant_39081_i8(9, 42) == 8 +; run: %transplant_39081_i8(13, 1) == 1 +; run: %transplant_39081_i8(13, 13) == 13 +; run: %transplant_39081_i8(42, -1) == 42 +; run: %transplant_39081_i8(42, 42) == 42 +; run: %transplant_39081_i8(85, 8) == 0 +; run: %transplant_39081_i8(85, 85) == 85 +; run: %transplant_39081_i8(127, 0) == 0 +; run: %transplant_39081_i8(127, 7) == 7 +; run: %transplant_39081_i8(127, 127) == 127 + +function %transplant_39081_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39081_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39081_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_39081_i64(-9223372036854775808, 0) == 0 +; run: %transplant_39081_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39081_i64(-6148914691236517206, 65) == 0 +; run: %transplant_39081_i64(-1, -1) == -1 +; run: %transplant_39081_i64(-1, 0) == 0 +; run: %transplant_39081_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39081_i64(0, -9223372036854775808) == 0 +; run: %transplant_39081_i64(0, -1) == 0 +; run: %transplant_39081_i64(0, 0) == 0 +; run: %transplant_39081_i64(0, 1) == 0 +; run: %transplant_39081_i64(0, 9223372036854775807) == 0 +; run: %transplant_39081_i64(1, 0) == 0 +; run: %transplant_39081_i64(1, 1) == 1 +; run: %transplant_39081_i64(1, 9223372036854775807) == 1 +; run: %transplant_39081_i64(2, 0) == 0 +; run: %transplant_39081_i64(2, 2) == 2 +; run: %transplant_39081_i64(13, 1) == 1 +; run: %transplant_39081_i64(13, 13) == 13 +; run: %transplant_39081_i64(42, -1) == 42 +; run: %transplant_39081_i64(42, 42) == 42 +; run: %transplant_39081_i64(63, 2) == 2 +; run: %transplant_39081_i64(63, 63) == 63 +; run: %transplant_39081_i64(64, 13) == 0 +; run: %transplant_39081_i64(64, 64) == 64 +; run: %transplant_39081_i64(65, 42) == 0 +; run: %transplant_39081_i64(65, 65) == 65 +; run: %transplant_39081_i64(6148914691236517205, 64) == 64 +; run: %transplant_39081_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39081_i64(9223372036854775807, 0) == 0 +; run: %transplant_39081_i64(9223372036854775807, 63) == 63 +; run: %transplant_39081_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40372_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40372_i8(-128, -128) == -128 +; run: %transplant_40372_i8(-128, -86) == -86 +; run: %transplant_40372_i8(-128, 0) == -128 +; run: %transplant_40372_i8(-86, -86) == -86 +; run: %transplant_40372_i8(-86, 9) == -85 +; run: %transplant_40372_i8(-1, -1) == -1 +; run: %transplant_40372_i8(-1, 0) == -1 +; run: %transplant_40372_i8(-1, 85) == -1 +; run: %transplant_40372_i8(0, -128) == -128 +; run: %transplant_40372_i8(0, -1) == -1 +; run: %transplant_40372_i8(0, 0) == 0 +; run: %transplant_40372_i8(0, 1) == 1 +; run: %transplant_40372_i8(0, 127) == 127 +; run: %transplant_40372_i8(1, 0) == 1 +; run: %transplant_40372_i8(1, 1) == 1 +; run: %transplant_40372_i8(1, 127) == 127 +; run: %transplant_40372_i8(2, 0) == 2 +; run: %transplant_40372_i8(2, 2) == 2 +; run: %transplant_40372_i8(7, 2) == 7 +; run: %transplant_40372_i8(7, 7) == 7 +; run: %transplant_40372_i8(8, 8) == 8 +; run: %transplant_40372_i8(8, 13) == 13 +; run: %transplant_40372_i8(9, 9) == 9 +; run: %transplant_40372_i8(9, 42) == 43 +; run: %transplant_40372_i8(13, 1) == 13 +; run: %transplant_40372_i8(13, 13) == 13 +; run: %transplant_40372_i8(42, -1) == -1 +; run: %transplant_40372_i8(42, 42) == 42 +; run: %transplant_40372_i8(85, 8) == 93 +; run: %transplant_40372_i8(85, 85) == 85 +; run: %transplant_40372_i8(127, 0) == 127 +; run: %transplant_40372_i8(127, 7) == 127 +; run: %transplant_40372_i8(127, 127) == 127 + +function %transplant_40372_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40372_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40372_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40372_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40372_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40372_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40372_i64(-1, -1) == -1 +; run: %transplant_40372_i64(-1, 0) == -1 +; run: %transplant_40372_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40372_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40372_i64(0, -1) == -1 +; run: %transplant_40372_i64(0, 0) == 0 +; run: %transplant_40372_i64(0, 1) == 1 +; run: %transplant_40372_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40372_i64(1, 0) == 1 +; run: %transplant_40372_i64(1, 1) == 1 +; run: %transplant_40372_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40372_i64(2, 0) == 2 +; run: %transplant_40372_i64(2, 2) == 2 +; run: %transplant_40372_i64(13, 1) == 13 +; run: %transplant_40372_i64(13, 13) == 13 +; run: %transplant_40372_i64(42, -1) == -1 +; run: %transplant_40372_i64(42, 42) == 42 +; run: %transplant_40372_i64(63, 2) == 63 +; run: %transplant_40372_i64(63, 63) == 63 +; run: %transplant_40372_i64(64, 13) == 77 +; run: %transplant_40372_i64(64, 64) == 64 +; run: %transplant_40372_i64(65, 42) == 107 +; run: %transplant_40372_i64(65, 65) == 65 +; run: %transplant_40372_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40372_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40372_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40372_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40372_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40373_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40373_i8(-128, -128) == -128 +; run: %transplant_40373_i8(-128, -86) == -86 +; run: %transplant_40373_i8(-128, 0) == -128 +; run: %transplant_40373_i8(-86, -86) == -86 +; run: %transplant_40373_i8(-86, 9) == -85 +; run: %transplant_40373_i8(-1, -1) == -1 +; run: %transplant_40373_i8(-1, 0) == -1 +; run: %transplant_40373_i8(-1, 85) == -1 +; run: %transplant_40373_i8(0, -128) == -128 +; run: %transplant_40373_i8(0, -1) == -1 +; run: %transplant_40373_i8(0, 0) == 0 +; run: %transplant_40373_i8(0, 1) == 1 +; run: %transplant_40373_i8(0, 127) == 127 +; run: %transplant_40373_i8(1, 0) == 1 +; run: %transplant_40373_i8(1, 1) == 1 +; run: %transplant_40373_i8(1, 127) == 127 +; run: %transplant_40373_i8(2, 0) == 2 +; run: %transplant_40373_i8(2, 2) == 2 +; run: %transplant_40373_i8(7, 2) == 7 +; run: %transplant_40373_i8(7, 7) == 7 +; run: %transplant_40373_i8(8, 8) == 8 +; run: %transplant_40373_i8(8, 13) == 13 +; run: %transplant_40373_i8(9, 9) == 9 +; run: %transplant_40373_i8(9, 42) == 43 +; run: %transplant_40373_i8(13, 1) == 13 +; run: %transplant_40373_i8(13, 13) == 13 +; run: %transplant_40373_i8(42, -1) == -1 +; run: %transplant_40373_i8(42, 42) == 42 +; run: %transplant_40373_i8(85, 8) == 93 +; run: %transplant_40373_i8(85, 85) == 85 +; run: %transplant_40373_i8(127, 0) == 127 +; run: %transplant_40373_i8(127, 7) == 127 +; run: %transplant_40373_i8(127, 127) == 127 + +function %transplant_40373_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40373_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40373_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40373_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40373_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40373_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40373_i64(-1, -1) == -1 +; run: %transplant_40373_i64(-1, 0) == -1 +; run: %transplant_40373_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40373_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40373_i64(0, -1) == -1 +; run: %transplant_40373_i64(0, 0) == 0 +; run: %transplant_40373_i64(0, 1) == 1 +; run: %transplant_40373_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40373_i64(1, 0) == 1 +; run: %transplant_40373_i64(1, 1) == 1 +; run: %transplant_40373_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40373_i64(2, 0) == 2 +; run: %transplant_40373_i64(2, 2) == 2 +; run: %transplant_40373_i64(13, 1) == 13 +; run: %transplant_40373_i64(13, 13) == 13 +; run: %transplant_40373_i64(42, -1) == -1 +; run: %transplant_40373_i64(42, 42) == 42 +; run: %transplant_40373_i64(63, 2) == 63 +; run: %transplant_40373_i64(63, 63) == 63 +; run: %transplant_40373_i64(64, 13) == 77 +; run: %transplant_40373_i64(64, 64) == 64 +; run: %transplant_40373_i64(65, 42) == 107 +; run: %transplant_40373_i64(65, 65) == 65 +; run: %transplant_40373_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40373_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40373_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40373_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40373_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40374_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40374_i8(-128, -128) == -128 +; run: %transplant_40374_i8(-128, -86) == -86 +; run: %transplant_40374_i8(-128, 0) == -128 +; run: %transplant_40374_i8(-86, -86) == -86 +; run: %transplant_40374_i8(-86, 9) == -85 +; run: %transplant_40374_i8(-1, -1) == -1 +; run: %transplant_40374_i8(-1, 0) == -1 +; run: %transplant_40374_i8(-1, 85) == -1 +; run: %transplant_40374_i8(0, -128) == -128 +; run: %transplant_40374_i8(0, -1) == -1 +; run: %transplant_40374_i8(0, 0) == 0 +; run: %transplant_40374_i8(0, 1) == 1 +; run: %transplant_40374_i8(0, 127) == 127 +; run: %transplant_40374_i8(1, 0) == 1 +; run: %transplant_40374_i8(1, 1) == 1 +; run: %transplant_40374_i8(1, 127) == 127 +; run: %transplant_40374_i8(2, 0) == 2 +; run: %transplant_40374_i8(2, 2) == 2 +; run: %transplant_40374_i8(7, 2) == 7 +; run: %transplant_40374_i8(7, 7) == 7 +; run: %transplant_40374_i8(8, 8) == 8 +; run: %transplant_40374_i8(8, 13) == 13 +; run: %transplant_40374_i8(9, 9) == 9 +; run: %transplant_40374_i8(9, 42) == 43 +; run: %transplant_40374_i8(13, 1) == 13 +; run: %transplant_40374_i8(13, 13) == 13 +; run: %transplant_40374_i8(42, -1) == -1 +; run: %transplant_40374_i8(42, 42) == 42 +; run: %transplant_40374_i8(85, 8) == 93 +; run: %transplant_40374_i8(85, 85) == 85 +; run: %transplant_40374_i8(127, 0) == 127 +; run: %transplant_40374_i8(127, 7) == 127 +; run: %transplant_40374_i8(127, 127) == 127 + +function %transplant_40374_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40374_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40374_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40374_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40374_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40374_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40374_i64(-1, -1) == -1 +; run: %transplant_40374_i64(-1, 0) == -1 +; run: %transplant_40374_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40374_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40374_i64(0, -1) == -1 +; run: %transplant_40374_i64(0, 0) == 0 +; run: %transplant_40374_i64(0, 1) == 1 +; run: %transplant_40374_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40374_i64(1, 0) == 1 +; run: %transplant_40374_i64(1, 1) == 1 +; run: %transplant_40374_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40374_i64(2, 0) == 2 +; run: %transplant_40374_i64(2, 2) == 2 +; run: %transplant_40374_i64(13, 1) == 13 +; run: %transplant_40374_i64(13, 13) == 13 +; run: %transplant_40374_i64(42, -1) == -1 +; run: %transplant_40374_i64(42, 42) == 42 +; run: %transplant_40374_i64(63, 2) == 63 +; run: %transplant_40374_i64(63, 63) == 63 +; run: %transplant_40374_i64(64, 13) == 77 +; run: %transplant_40374_i64(64, 64) == 64 +; run: %transplant_40374_i64(65, 42) == 107 +; run: %transplant_40374_i64(65, 65) == 65 +; run: %transplant_40374_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40374_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40374_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40374_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40374_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40375_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40375_i8(-128, -128) == -128 +; run: %transplant_40375_i8(-128, -86) == -86 +; run: %transplant_40375_i8(-128, 0) == -128 +; run: %transplant_40375_i8(-86, -86) == -86 +; run: %transplant_40375_i8(-86, 9) == -85 +; run: %transplant_40375_i8(-1, -1) == -1 +; run: %transplant_40375_i8(-1, 0) == -1 +; run: %transplant_40375_i8(-1, 85) == -1 +; run: %transplant_40375_i8(0, -128) == -128 +; run: %transplant_40375_i8(0, -1) == -1 +; run: %transplant_40375_i8(0, 0) == 0 +; run: %transplant_40375_i8(0, 1) == 1 +; run: %transplant_40375_i8(0, 127) == 127 +; run: %transplant_40375_i8(1, 0) == 1 +; run: %transplant_40375_i8(1, 1) == 1 +; run: %transplant_40375_i8(1, 127) == 127 +; run: %transplant_40375_i8(2, 0) == 2 +; run: %transplant_40375_i8(2, 2) == 2 +; run: %transplant_40375_i8(7, 2) == 7 +; run: %transplant_40375_i8(7, 7) == 7 +; run: %transplant_40375_i8(8, 8) == 8 +; run: %transplant_40375_i8(8, 13) == 13 +; run: %transplant_40375_i8(9, 9) == 9 +; run: %transplant_40375_i8(9, 42) == 43 +; run: %transplant_40375_i8(13, 1) == 13 +; run: %transplant_40375_i8(13, 13) == 13 +; run: %transplant_40375_i8(42, -1) == -1 +; run: %transplant_40375_i8(42, 42) == 42 +; run: %transplant_40375_i8(85, 8) == 93 +; run: %transplant_40375_i8(85, 85) == 85 +; run: %transplant_40375_i8(127, 0) == 127 +; run: %transplant_40375_i8(127, 7) == 127 +; run: %transplant_40375_i8(127, 127) == 127 + +function %transplant_40375_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40375_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40375_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40375_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40375_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40375_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40375_i64(-1, -1) == -1 +; run: %transplant_40375_i64(-1, 0) == -1 +; run: %transplant_40375_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40375_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40375_i64(0, -1) == -1 +; run: %transplant_40375_i64(0, 0) == 0 +; run: %transplant_40375_i64(0, 1) == 1 +; run: %transplant_40375_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40375_i64(1, 0) == 1 +; run: %transplant_40375_i64(1, 1) == 1 +; run: %transplant_40375_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40375_i64(2, 0) == 2 +; run: %transplant_40375_i64(2, 2) == 2 +; run: %transplant_40375_i64(13, 1) == 13 +; run: %transplant_40375_i64(13, 13) == 13 +; run: %transplant_40375_i64(42, -1) == -1 +; run: %transplant_40375_i64(42, 42) == 42 +; run: %transplant_40375_i64(63, 2) == 63 +; run: %transplant_40375_i64(63, 63) == 63 +; run: %transplant_40375_i64(64, 13) == 77 +; run: %transplant_40375_i64(64, 64) == 64 +; run: %transplant_40375_i64(65, 42) == 107 +; run: %transplant_40375_i64(65, 65) == 65 +; run: %transplant_40375_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40375_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40375_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40375_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40375_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40790_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40790_i8(-128, -128) == -128 +; run: %transplant_40790_i8(-128, -86) == -86 +; run: %transplant_40790_i8(-128, 0) == -128 +; run: %transplant_40790_i8(-86, -86) == -86 +; run: %transplant_40790_i8(-86, 9) == -85 +; run: %transplant_40790_i8(-1, -1) == -1 +; run: %transplant_40790_i8(-1, 0) == -1 +; run: %transplant_40790_i8(-1, 85) == -1 +; run: %transplant_40790_i8(0, -128) == -128 +; run: %transplant_40790_i8(0, -1) == -1 +; run: %transplant_40790_i8(0, 0) == 0 +; run: %transplant_40790_i8(0, 1) == 1 +; run: %transplant_40790_i8(0, 127) == 127 +; run: %transplant_40790_i8(1, 0) == 1 +; run: %transplant_40790_i8(1, 1) == 1 +; run: %transplant_40790_i8(1, 127) == 127 +; run: %transplant_40790_i8(2, 0) == 2 +; run: %transplant_40790_i8(2, 2) == 2 +; run: %transplant_40790_i8(7, 2) == 7 +; run: %transplant_40790_i8(7, 7) == 7 +; run: %transplant_40790_i8(8, 8) == 8 +; run: %transplant_40790_i8(8, 13) == 13 +; run: %transplant_40790_i8(9, 9) == 9 +; run: %transplant_40790_i8(9, 42) == 43 +; run: %transplant_40790_i8(13, 1) == 13 +; run: %transplant_40790_i8(13, 13) == 13 +; run: %transplant_40790_i8(42, -1) == -1 +; run: %transplant_40790_i8(42, 42) == 42 +; run: %transplant_40790_i8(85, 8) == 93 +; run: %transplant_40790_i8(85, 85) == 85 +; run: %transplant_40790_i8(127, 0) == 127 +; run: %transplant_40790_i8(127, 7) == 127 +; run: %transplant_40790_i8(127, 127) == 127 + +function %transplant_40790_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40790_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40790_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40790_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40790_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40790_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40790_i64(-1, -1) == -1 +; run: %transplant_40790_i64(-1, 0) == -1 +; run: %transplant_40790_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40790_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40790_i64(0, -1) == -1 +; run: %transplant_40790_i64(0, 0) == 0 +; run: %transplant_40790_i64(0, 1) == 1 +; run: %transplant_40790_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40790_i64(1, 0) == 1 +; run: %transplant_40790_i64(1, 1) == 1 +; run: %transplant_40790_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40790_i64(2, 0) == 2 +; run: %transplant_40790_i64(2, 2) == 2 +; run: %transplant_40790_i64(13, 1) == 13 +; run: %transplant_40790_i64(13, 13) == 13 +; run: %transplant_40790_i64(42, -1) == -1 +; run: %transplant_40790_i64(42, 42) == 42 +; run: %transplant_40790_i64(63, 2) == 63 +; run: %transplant_40790_i64(63, 63) == 63 +; run: %transplant_40790_i64(64, 13) == 77 +; run: %transplant_40790_i64(64, 64) == 64 +; run: %transplant_40790_i64(65, 42) == 107 +; run: %transplant_40790_i64(65, 65) == 65 +; run: %transplant_40790_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40790_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40790_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40790_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40790_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40791_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40791_i8(-128, -128) == -128 +; run: %transplant_40791_i8(-128, -86) == -86 +; run: %transplant_40791_i8(-128, 0) == -128 +; run: %transplant_40791_i8(-86, -86) == -86 +; run: %transplant_40791_i8(-86, 9) == -85 +; run: %transplant_40791_i8(-1, -1) == -1 +; run: %transplant_40791_i8(-1, 0) == -1 +; run: %transplant_40791_i8(-1, 85) == -1 +; run: %transplant_40791_i8(0, -128) == -128 +; run: %transplant_40791_i8(0, -1) == -1 +; run: %transplant_40791_i8(0, 0) == 0 +; run: %transplant_40791_i8(0, 1) == 1 +; run: %transplant_40791_i8(0, 127) == 127 +; run: %transplant_40791_i8(1, 0) == 1 +; run: %transplant_40791_i8(1, 1) == 1 +; run: %transplant_40791_i8(1, 127) == 127 +; run: %transplant_40791_i8(2, 0) == 2 +; run: %transplant_40791_i8(2, 2) == 2 +; run: %transplant_40791_i8(7, 2) == 7 +; run: %transplant_40791_i8(7, 7) == 7 +; run: %transplant_40791_i8(8, 8) == 8 +; run: %transplant_40791_i8(8, 13) == 13 +; run: %transplant_40791_i8(9, 9) == 9 +; run: %transplant_40791_i8(9, 42) == 43 +; run: %transplant_40791_i8(13, 1) == 13 +; run: %transplant_40791_i8(13, 13) == 13 +; run: %transplant_40791_i8(42, -1) == -1 +; run: %transplant_40791_i8(42, 42) == 42 +; run: %transplant_40791_i8(85, 8) == 93 +; run: %transplant_40791_i8(85, 85) == 85 +; run: %transplant_40791_i8(127, 0) == 127 +; run: %transplant_40791_i8(127, 7) == 127 +; run: %transplant_40791_i8(127, 127) == 127 + +function %transplant_40791_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40791_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40791_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40791_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40791_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40791_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40791_i64(-1, -1) == -1 +; run: %transplant_40791_i64(-1, 0) == -1 +; run: %transplant_40791_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40791_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40791_i64(0, -1) == -1 +; run: %transplant_40791_i64(0, 0) == 0 +; run: %transplant_40791_i64(0, 1) == 1 +; run: %transplant_40791_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40791_i64(1, 0) == 1 +; run: %transplant_40791_i64(1, 1) == 1 +; run: %transplant_40791_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40791_i64(2, 0) == 2 +; run: %transplant_40791_i64(2, 2) == 2 +; run: %transplant_40791_i64(13, 1) == 13 +; run: %transplant_40791_i64(13, 13) == 13 +; run: %transplant_40791_i64(42, -1) == -1 +; run: %transplant_40791_i64(42, 42) == 42 +; run: %transplant_40791_i64(63, 2) == 63 +; run: %transplant_40791_i64(63, 63) == 63 +; run: %transplant_40791_i64(64, 13) == 77 +; run: %transplant_40791_i64(64, 64) == 64 +; run: %transplant_40791_i64(65, 42) == 107 +; run: %transplant_40791_i64(65, 65) == 65 +; run: %transplant_40791_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40791_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40791_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40791_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40791_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40792_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40792_i8(-128, -128) == -128 +; run: %transplant_40792_i8(-128, -86) == -86 +; run: %transplant_40792_i8(-128, 0) == -128 +; run: %transplant_40792_i8(-86, -86) == -86 +; run: %transplant_40792_i8(-86, 9) == -85 +; run: %transplant_40792_i8(-1, -1) == -1 +; run: %transplant_40792_i8(-1, 0) == -1 +; run: %transplant_40792_i8(-1, 85) == -1 +; run: %transplant_40792_i8(0, -128) == -128 +; run: %transplant_40792_i8(0, -1) == -1 +; run: %transplant_40792_i8(0, 0) == 0 +; run: %transplant_40792_i8(0, 1) == 1 +; run: %transplant_40792_i8(0, 127) == 127 +; run: %transplant_40792_i8(1, 0) == 1 +; run: %transplant_40792_i8(1, 1) == 1 +; run: %transplant_40792_i8(1, 127) == 127 +; run: %transplant_40792_i8(2, 0) == 2 +; run: %transplant_40792_i8(2, 2) == 2 +; run: %transplant_40792_i8(7, 2) == 7 +; run: %transplant_40792_i8(7, 7) == 7 +; run: %transplant_40792_i8(8, 8) == 8 +; run: %transplant_40792_i8(8, 13) == 13 +; run: %transplant_40792_i8(9, 9) == 9 +; run: %transplant_40792_i8(9, 42) == 43 +; run: %transplant_40792_i8(13, 1) == 13 +; run: %transplant_40792_i8(13, 13) == 13 +; run: %transplant_40792_i8(42, -1) == -1 +; run: %transplant_40792_i8(42, 42) == 42 +; run: %transplant_40792_i8(85, 8) == 93 +; run: %transplant_40792_i8(85, 85) == 85 +; run: %transplant_40792_i8(127, 0) == 127 +; run: %transplant_40792_i8(127, 7) == 127 +; run: %transplant_40792_i8(127, 127) == 127 + +function %transplant_40792_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40792_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40792_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40792_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40792_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40792_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40792_i64(-1, -1) == -1 +; run: %transplant_40792_i64(-1, 0) == -1 +; run: %transplant_40792_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40792_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40792_i64(0, -1) == -1 +; run: %transplant_40792_i64(0, 0) == 0 +; run: %transplant_40792_i64(0, 1) == 1 +; run: %transplant_40792_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40792_i64(1, 0) == 1 +; run: %transplant_40792_i64(1, 1) == 1 +; run: %transplant_40792_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40792_i64(2, 0) == 2 +; run: %transplant_40792_i64(2, 2) == 2 +; run: %transplant_40792_i64(13, 1) == 13 +; run: %transplant_40792_i64(13, 13) == 13 +; run: %transplant_40792_i64(42, -1) == -1 +; run: %transplant_40792_i64(42, 42) == 42 +; run: %transplant_40792_i64(63, 2) == 63 +; run: %transplant_40792_i64(63, 63) == 63 +; run: %transplant_40792_i64(64, 13) == 77 +; run: %transplant_40792_i64(64, 64) == 64 +; run: %transplant_40792_i64(65, 42) == 107 +; run: %transplant_40792_i64(65, 65) == 65 +; run: %transplant_40792_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40792_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40792_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40792_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40792_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_40793_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40793_i8(-128, -128) == -128 +; run: %transplant_40793_i8(-128, -86) == -86 +; run: %transplant_40793_i8(-128, 0) == -128 +; run: %transplant_40793_i8(-86, -86) == -86 +; run: %transplant_40793_i8(-86, 9) == -85 +; run: %transplant_40793_i8(-1, -1) == -1 +; run: %transplant_40793_i8(-1, 0) == -1 +; run: %transplant_40793_i8(-1, 85) == -1 +; run: %transplant_40793_i8(0, -128) == -128 +; run: %transplant_40793_i8(0, -1) == -1 +; run: %transplant_40793_i8(0, 0) == 0 +; run: %transplant_40793_i8(0, 1) == 1 +; run: %transplant_40793_i8(0, 127) == 127 +; run: %transplant_40793_i8(1, 0) == 1 +; run: %transplant_40793_i8(1, 1) == 1 +; run: %transplant_40793_i8(1, 127) == 127 +; run: %transplant_40793_i8(2, 0) == 2 +; run: %transplant_40793_i8(2, 2) == 2 +; run: %transplant_40793_i8(7, 2) == 7 +; run: %transplant_40793_i8(7, 7) == 7 +; run: %transplant_40793_i8(8, 8) == 8 +; run: %transplant_40793_i8(8, 13) == 13 +; run: %transplant_40793_i8(9, 9) == 9 +; run: %transplant_40793_i8(9, 42) == 43 +; run: %transplant_40793_i8(13, 1) == 13 +; run: %transplant_40793_i8(13, 13) == 13 +; run: %transplant_40793_i8(42, -1) == -1 +; run: %transplant_40793_i8(42, 42) == 42 +; run: %transplant_40793_i8(85, 8) == 93 +; run: %transplant_40793_i8(85, 85) == 85 +; run: %transplant_40793_i8(127, 0) == 127 +; run: %transplant_40793_i8(127, 7) == 127 +; run: %transplant_40793_i8(127, 127) == 127 + +function %transplant_40793_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40793_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40793_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40793_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40793_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_40793_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_40793_i64(-1, -1) == -1 +; run: %transplant_40793_i64(-1, 0) == -1 +; run: %transplant_40793_i64(-1, 6148914691236517205) == -1 +; run: %transplant_40793_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40793_i64(0, -1) == -1 +; run: %transplant_40793_i64(0, 0) == 0 +; run: %transplant_40793_i64(0, 1) == 1 +; run: %transplant_40793_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40793_i64(1, 0) == 1 +; run: %transplant_40793_i64(1, 1) == 1 +; run: %transplant_40793_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40793_i64(2, 0) == 2 +; run: %transplant_40793_i64(2, 2) == 2 +; run: %transplant_40793_i64(13, 1) == 13 +; run: %transplant_40793_i64(13, 13) == 13 +; run: %transplant_40793_i64(42, -1) == -1 +; run: %transplant_40793_i64(42, 42) == 42 +; run: %transplant_40793_i64(63, 2) == 63 +; run: %transplant_40793_i64(63, 63) == 63 +; run: %transplant_40793_i64(64, 13) == 77 +; run: %transplant_40793_i64(64, 64) == 64 +; run: %transplant_40793_i64(65, 42) == 107 +; run: %transplant_40793_i64(65, 65) == 65 +; run: %transplant_40793_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_40793_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_40793_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40793_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_40793_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_41171_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41171_i8(-128, -128) == 0 +; run: %transplant_41171_i8(-128, -86) == 42 +; run: %transplant_41171_i8(-128, 0) == -128 +; run: %transplant_41171_i8(-86, -86) == 0 +; run: %transplant_41171_i8(-86, 9) == -93 +; run: %transplant_41171_i8(-1, -1) == 0 +; run: %transplant_41171_i8(-1, 0) == -1 +; run: %transplant_41171_i8(-1, 85) == -86 +; run: %transplant_41171_i8(0, -128) == -128 +; run: %transplant_41171_i8(0, -1) == -1 +; run: %transplant_41171_i8(0, 0) == 0 +; run: %transplant_41171_i8(0, 1) == 1 +; run: %transplant_41171_i8(0, 127) == 127 +; run: %transplant_41171_i8(1, 0) == 1 +; run: %transplant_41171_i8(1, 1) == 0 +; run: %transplant_41171_i8(1, 127) == 126 +; run: %transplant_41171_i8(2, 0) == 2 +; run: %transplant_41171_i8(2, 2) == 0 +; run: %transplant_41171_i8(7, 2) == 5 +; run: %transplant_41171_i8(7, 7) == 0 +; run: %transplant_41171_i8(8, 8) == 0 +; run: %transplant_41171_i8(8, 13) == 5 +; run: %transplant_41171_i8(9, 9) == 0 +; run: %transplant_41171_i8(9, 42) == 35 +; run: %transplant_41171_i8(13, 1) == 12 +; run: %transplant_41171_i8(13, 13) == 0 +; run: %transplant_41171_i8(42, -1) == -43 +; run: %transplant_41171_i8(42, 42) == 0 +; run: %transplant_41171_i8(85, 8) == 93 +; run: %transplant_41171_i8(85, 85) == 0 +; run: %transplant_41171_i8(127, 0) == 127 +; run: %transplant_41171_i8(127, 7) == 120 +; run: %transplant_41171_i8(127, 127) == 0 + +function %transplant_41171_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41171_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41171_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41171_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41171_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41171_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41171_i64(-1, -1) == 0 +; run: %transplant_41171_i64(-1, 0) == -1 +; run: %transplant_41171_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41171_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41171_i64(0, -1) == -1 +; run: %transplant_41171_i64(0, 0) == 0 +; run: %transplant_41171_i64(0, 1) == 1 +; run: %transplant_41171_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41171_i64(1, 0) == 1 +; run: %transplant_41171_i64(1, 1) == 0 +; run: %transplant_41171_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41171_i64(2, 0) == 2 +; run: %transplant_41171_i64(2, 2) == 0 +; run: %transplant_41171_i64(13, 1) == 12 +; run: %transplant_41171_i64(13, 13) == 0 +; run: %transplant_41171_i64(42, -1) == -43 +; run: %transplant_41171_i64(42, 42) == 0 +; run: %transplant_41171_i64(63, 2) == 61 +; run: %transplant_41171_i64(63, 63) == 0 +; run: %transplant_41171_i64(64, 13) == 77 +; run: %transplant_41171_i64(64, 64) == 0 +; run: %transplant_41171_i64(65, 42) == 107 +; run: %transplant_41171_i64(65, 65) == 0 +; run: %transplant_41171_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41171_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41171_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41171_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41171_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41172_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41172_i8(-128, -128) == 0 +; run: %transplant_41172_i8(-128, -86) == 42 +; run: %transplant_41172_i8(-128, 0) == -128 +; run: %transplant_41172_i8(-86, -86) == 0 +; run: %transplant_41172_i8(-86, 9) == -93 +; run: %transplant_41172_i8(-1, -1) == 0 +; run: %transplant_41172_i8(-1, 0) == -1 +; run: %transplant_41172_i8(-1, 85) == -86 +; run: %transplant_41172_i8(0, -128) == -128 +; run: %transplant_41172_i8(0, -1) == -1 +; run: %transplant_41172_i8(0, 0) == 0 +; run: %transplant_41172_i8(0, 1) == 1 +; run: %transplant_41172_i8(0, 127) == 127 +; run: %transplant_41172_i8(1, 0) == 1 +; run: %transplant_41172_i8(1, 1) == 0 +; run: %transplant_41172_i8(1, 127) == 126 +; run: %transplant_41172_i8(2, 0) == 2 +; run: %transplant_41172_i8(2, 2) == 0 +; run: %transplant_41172_i8(7, 2) == 5 +; run: %transplant_41172_i8(7, 7) == 0 +; run: %transplant_41172_i8(8, 8) == 0 +; run: %transplant_41172_i8(8, 13) == 5 +; run: %transplant_41172_i8(9, 9) == 0 +; run: %transplant_41172_i8(9, 42) == 35 +; run: %transplant_41172_i8(13, 1) == 12 +; run: %transplant_41172_i8(13, 13) == 0 +; run: %transplant_41172_i8(42, -1) == -43 +; run: %transplant_41172_i8(42, 42) == 0 +; run: %transplant_41172_i8(85, 8) == 93 +; run: %transplant_41172_i8(85, 85) == 0 +; run: %transplant_41172_i8(127, 0) == 127 +; run: %transplant_41172_i8(127, 7) == 120 +; run: %transplant_41172_i8(127, 127) == 0 + +function %transplant_41172_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smax v0, v1 + v3 = smin v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41172_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41172_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41172_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41172_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41172_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41172_i64(-1, -1) == 0 +; run: %transplant_41172_i64(-1, 0) == -1 +; run: %transplant_41172_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41172_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41172_i64(0, -1) == -1 +; run: %transplant_41172_i64(0, 0) == 0 +; run: %transplant_41172_i64(0, 1) == 1 +; run: %transplant_41172_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41172_i64(1, 0) == 1 +; run: %transplant_41172_i64(1, 1) == 0 +; run: %transplant_41172_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41172_i64(2, 0) == 2 +; run: %transplant_41172_i64(2, 2) == 0 +; run: %transplant_41172_i64(13, 1) == 12 +; run: %transplant_41172_i64(13, 13) == 0 +; run: %transplant_41172_i64(42, -1) == -43 +; run: %transplant_41172_i64(42, 42) == 0 +; run: %transplant_41172_i64(63, 2) == 61 +; run: %transplant_41172_i64(63, 63) == 0 +; run: %transplant_41172_i64(64, 13) == 77 +; run: %transplant_41172_i64(64, 64) == 0 +; run: %transplant_41172_i64(65, 42) == 107 +; run: %transplant_41172_i64(65, 65) == 0 +; run: %transplant_41172_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41172_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41172_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41172_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41172_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41173_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41173_i8(-128, -128) == 0 +; run: %transplant_41173_i8(-128, -86) == 42 +; run: %transplant_41173_i8(-128, 0) == -128 +; run: %transplant_41173_i8(-86, -86) == 0 +; run: %transplant_41173_i8(-86, 9) == -93 +; run: %transplant_41173_i8(-1, -1) == 0 +; run: %transplant_41173_i8(-1, 0) == -1 +; run: %transplant_41173_i8(-1, 85) == -86 +; run: %transplant_41173_i8(0, -128) == -128 +; run: %transplant_41173_i8(0, -1) == -1 +; run: %transplant_41173_i8(0, 0) == 0 +; run: %transplant_41173_i8(0, 1) == 1 +; run: %transplant_41173_i8(0, 127) == 127 +; run: %transplant_41173_i8(1, 0) == 1 +; run: %transplant_41173_i8(1, 1) == 0 +; run: %transplant_41173_i8(1, 127) == 126 +; run: %transplant_41173_i8(2, 0) == 2 +; run: %transplant_41173_i8(2, 2) == 0 +; run: %transplant_41173_i8(7, 2) == 5 +; run: %transplant_41173_i8(7, 7) == 0 +; run: %transplant_41173_i8(8, 8) == 0 +; run: %transplant_41173_i8(8, 13) == 5 +; run: %transplant_41173_i8(9, 9) == 0 +; run: %transplant_41173_i8(9, 42) == 35 +; run: %transplant_41173_i8(13, 1) == 12 +; run: %transplant_41173_i8(13, 13) == 0 +; run: %transplant_41173_i8(42, -1) == -43 +; run: %transplant_41173_i8(42, 42) == 0 +; run: %transplant_41173_i8(85, 8) == 93 +; run: %transplant_41173_i8(85, 85) == 0 +; run: %transplant_41173_i8(127, 0) == 127 +; run: %transplant_41173_i8(127, 7) == 120 +; run: %transplant_41173_i8(127, 127) == 0 + +function %transplant_41173_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41173_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41173_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41173_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41173_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41173_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41173_i64(-1, -1) == 0 +; run: %transplant_41173_i64(-1, 0) == -1 +; run: %transplant_41173_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41173_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41173_i64(0, -1) == -1 +; run: %transplant_41173_i64(0, 0) == 0 +; run: %transplant_41173_i64(0, 1) == 1 +; run: %transplant_41173_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41173_i64(1, 0) == 1 +; run: %transplant_41173_i64(1, 1) == 0 +; run: %transplant_41173_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41173_i64(2, 0) == 2 +; run: %transplant_41173_i64(2, 2) == 0 +; run: %transplant_41173_i64(13, 1) == 12 +; run: %transplant_41173_i64(13, 13) == 0 +; run: %transplant_41173_i64(42, -1) == -43 +; run: %transplant_41173_i64(42, 42) == 0 +; run: %transplant_41173_i64(63, 2) == 61 +; run: %transplant_41173_i64(63, 63) == 0 +; run: %transplant_41173_i64(64, 13) == 77 +; run: %transplant_41173_i64(64, 64) == 0 +; run: %transplant_41173_i64(65, 42) == 107 +; run: %transplant_41173_i64(65, 65) == 0 +; run: %transplant_41173_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41173_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41173_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41173_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41173_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41174_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41174_i8(-128, -128) == 0 +; run: %transplant_41174_i8(-128, -86) == 42 +; run: %transplant_41174_i8(-128, 0) == -128 +; run: %transplant_41174_i8(-86, -86) == 0 +; run: %transplant_41174_i8(-86, 9) == -93 +; run: %transplant_41174_i8(-1, -1) == 0 +; run: %transplant_41174_i8(-1, 0) == -1 +; run: %transplant_41174_i8(-1, 85) == -86 +; run: %transplant_41174_i8(0, -128) == -128 +; run: %transplant_41174_i8(0, -1) == -1 +; run: %transplant_41174_i8(0, 0) == 0 +; run: %transplant_41174_i8(0, 1) == 1 +; run: %transplant_41174_i8(0, 127) == 127 +; run: %transplant_41174_i8(1, 0) == 1 +; run: %transplant_41174_i8(1, 1) == 0 +; run: %transplant_41174_i8(1, 127) == 126 +; run: %transplant_41174_i8(2, 0) == 2 +; run: %transplant_41174_i8(2, 2) == 0 +; run: %transplant_41174_i8(7, 2) == 5 +; run: %transplant_41174_i8(7, 7) == 0 +; run: %transplant_41174_i8(8, 8) == 0 +; run: %transplant_41174_i8(8, 13) == 5 +; run: %transplant_41174_i8(9, 9) == 0 +; run: %transplant_41174_i8(9, 42) == 35 +; run: %transplant_41174_i8(13, 1) == 12 +; run: %transplant_41174_i8(13, 13) == 0 +; run: %transplant_41174_i8(42, -1) == -43 +; run: %transplant_41174_i8(42, 42) == 0 +; run: %transplant_41174_i8(85, 8) == 93 +; run: %transplant_41174_i8(85, 85) == 0 +; run: %transplant_41174_i8(127, 0) == 127 +; run: %transplant_41174_i8(127, 7) == 120 +; run: %transplant_41174_i8(127, 127) == 0 + +function %transplant_41174_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = smin v0, v1 + v3 = smax v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41174_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41174_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41174_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41174_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41174_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41174_i64(-1, -1) == 0 +; run: %transplant_41174_i64(-1, 0) == -1 +; run: %transplant_41174_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41174_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41174_i64(0, -1) == -1 +; run: %transplant_41174_i64(0, 0) == 0 +; run: %transplant_41174_i64(0, 1) == 1 +; run: %transplant_41174_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41174_i64(1, 0) == 1 +; run: %transplant_41174_i64(1, 1) == 0 +; run: %transplant_41174_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41174_i64(2, 0) == 2 +; run: %transplant_41174_i64(2, 2) == 0 +; run: %transplant_41174_i64(13, 1) == 12 +; run: %transplant_41174_i64(13, 13) == 0 +; run: %transplant_41174_i64(42, -1) == -43 +; run: %transplant_41174_i64(42, 42) == 0 +; run: %transplant_41174_i64(63, 2) == 61 +; run: %transplant_41174_i64(63, 63) == 0 +; run: %transplant_41174_i64(64, 13) == 77 +; run: %transplant_41174_i64(64, 64) == 0 +; run: %transplant_41174_i64(65, 42) == 107 +; run: %transplant_41174_i64(65, 65) == 0 +; run: %transplant_41174_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41174_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41174_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41174_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41174_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41251_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41251_i8(-128, -128) == 0 +; run: %transplant_41251_i8(-128, -86) == 42 +; run: %transplant_41251_i8(-128, 0) == -128 +; run: %transplant_41251_i8(-86, -86) == 0 +; run: %transplant_41251_i8(-86, 9) == -93 +; run: %transplant_41251_i8(-1, -1) == 0 +; run: %transplant_41251_i8(-1, 0) == -1 +; run: %transplant_41251_i8(-1, 85) == -86 +; run: %transplant_41251_i8(0, -128) == -128 +; run: %transplant_41251_i8(0, -1) == -1 +; run: %transplant_41251_i8(0, 0) == 0 +; run: %transplant_41251_i8(0, 1) == 1 +; run: %transplant_41251_i8(0, 127) == 127 +; run: %transplant_41251_i8(1, 0) == 1 +; run: %transplant_41251_i8(1, 1) == 0 +; run: %transplant_41251_i8(1, 127) == 126 +; run: %transplant_41251_i8(2, 0) == 2 +; run: %transplant_41251_i8(2, 2) == 0 +; run: %transplant_41251_i8(7, 2) == 5 +; run: %transplant_41251_i8(7, 7) == 0 +; run: %transplant_41251_i8(8, 8) == 0 +; run: %transplant_41251_i8(8, 13) == 5 +; run: %transplant_41251_i8(9, 9) == 0 +; run: %transplant_41251_i8(9, 42) == 35 +; run: %transplant_41251_i8(13, 1) == 12 +; run: %transplant_41251_i8(13, 13) == 0 +; run: %transplant_41251_i8(42, -1) == -43 +; run: %transplant_41251_i8(42, 42) == 0 +; run: %transplant_41251_i8(85, 8) == 93 +; run: %transplant_41251_i8(85, 85) == 0 +; run: %transplant_41251_i8(127, 0) == 127 +; run: %transplant_41251_i8(127, 7) == 120 +; run: %transplant_41251_i8(127, 127) == 0 + +function %transplant_41251_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41251_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41251_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41251_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41251_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41251_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41251_i64(-1, -1) == 0 +; run: %transplant_41251_i64(-1, 0) == -1 +; run: %transplant_41251_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41251_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41251_i64(0, -1) == -1 +; run: %transplant_41251_i64(0, 0) == 0 +; run: %transplant_41251_i64(0, 1) == 1 +; run: %transplant_41251_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41251_i64(1, 0) == 1 +; run: %transplant_41251_i64(1, 1) == 0 +; run: %transplant_41251_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41251_i64(2, 0) == 2 +; run: %transplant_41251_i64(2, 2) == 0 +; run: %transplant_41251_i64(13, 1) == 12 +; run: %transplant_41251_i64(13, 13) == 0 +; run: %transplant_41251_i64(42, -1) == -43 +; run: %transplant_41251_i64(42, 42) == 0 +; run: %transplant_41251_i64(63, 2) == 61 +; run: %transplant_41251_i64(63, 63) == 0 +; run: %transplant_41251_i64(64, 13) == 77 +; run: %transplant_41251_i64(64, 64) == 0 +; run: %transplant_41251_i64(65, 42) == 107 +; run: %transplant_41251_i64(65, 65) == 0 +; run: %transplant_41251_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41251_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41251_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41251_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41251_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41252_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41252_i8(-128, -128) == 0 +; run: %transplant_41252_i8(-128, -86) == 42 +; run: %transplant_41252_i8(-128, 0) == -128 +; run: %transplant_41252_i8(-86, -86) == 0 +; run: %transplant_41252_i8(-86, 9) == -93 +; run: %transplant_41252_i8(-1, -1) == 0 +; run: %transplant_41252_i8(-1, 0) == -1 +; run: %transplant_41252_i8(-1, 85) == -86 +; run: %transplant_41252_i8(0, -128) == -128 +; run: %transplant_41252_i8(0, -1) == -1 +; run: %transplant_41252_i8(0, 0) == 0 +; run: %transplant_41252_i8(0, 1) == 1 +; run: %transplant_41252_i8(0, 127) == 127 +; run: %transplant_41252_i8(1, 0) == 1 +; run: %transplant_41252_i8(1, 1) == 0 +; run: %transplant_41252_i8(1, 127) == 126 +; run: %transplant_41252_i8(2, 0) == 2 +; run: %transplant_41252_i8(2, 2) == 0 +; run: %transplant_41252_i8(7, 2) == 5 +; run: %transplant_41252_i8(7, 7) == 0 +; run: %transplant_41252_i8(8, 8) == 0 +; run: %transplant_41252_i8(8, 13) == 5 +; run: %transplant_41252_i8(9, 9) == 0 +; run: %transplant_41252_i8(9, 42) == 35 +; run: %transplant_41252_i8(13, 1) == 12 +; run: %transplant_41252_i8(13, 13) == 0 +; run: %transplant_41252_i8(42, -1) == -43 +; run: %transplant_41252_i8(42, 42) == 0 +; run: %transplant_41252_i8(85, 8) == 93 +; run: %transplant_41252_i8(85, 85) == 0 +; run: %transplant_41252_i8(127, 0) == 127 +; run: %transplant_41252_i8(127, 7) == 120 +; run: %transplant_41252_i8(127, 127) == 0 + +function %transplant_41252_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41252_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41252_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41252_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41252_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41252_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41252_i64(-1, -1) == 0 +; run: %transplant_41252_i64(-1, 0) == -1 +; run: %transplant_41252_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41252_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41252_i64(0, -1) == -1 +; run: %transplant_41252_i64(0, 0) == 0 +; run: %transplant_41252_i64(0, 1) == 1 +; run: %transplant_41252_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41252_i64(1, 0) == 1 +; run: %transplant_41252_i64(1, 1) == 0 +; run: %transplant_41252_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41252_i64(2, 0) == 2 +; run: %transplant_41252_i64(2, 2) == 0 +; run: %transplant_41252_i64(13, 1) == 12 +; run: %transplant_41252_i64(13, 13) == 0 +; run: %transplant_41252_i64(42, -1) == -43 +; run: %transplant_41252_i64(42, 42) == 0 +; run: %transplant_41252_i64(63, 2) == 61 +; run: %transplant_41252_i64(63, 63) == 0 +; run: %transplant_41252_i64(64, 13) == 77 +; run: %transplant_41252_i64(64, 64) == 0 +; run: %transplant_41252_i64(65, 42) == 107 +; run: %transplant_41252_i64(65, 65) == 0 +; run: %transplant_41252_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41252_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41252_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41252_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41252_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41253_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41253_i8(-128, -128) == 0 +; run: %transplant_41253_i8(-128, -86) == 42 +; run: %transplant_41253_i8(-128, 0) == -128 +; run: %transplant_41253_i8(-86, -86) == 0 +; run: %transplant_41253_i8(-86, 9) == -93 +; run: %transplant_41253_i8(-1, -1) == 0 +; run: %transplant_41253_i8(-1, 0) == -1 +; run: %transplant_41253_i8(-1, 85) == -86 +; run: %transplant_41253_i8(0, -128) == -128 +; run: %transplant_41253_i8(0, -1) == -1 +; run: %transplant_41253_i8(0, 0) == 0 +; run: %transplant_41253_i8(0, 1) == 1 +; run: %transplant_41253_i8(0, 127) == 127 +; run: %transplant_41253_i8(1, 0) == 1 +; run: %transplant_41253_i8(1, 1) == 0 +; run: %transplant_41253_i8(1, 127) == 126 +; run: %transplant_41253_i8(2, 0) == 2 +; run: %transplant_41253_i8(2, 2) == 0 +; run: %transplant_41253_i8(7, 2) == 5 +; run: %transplant_41253_i8(7, 7) == 0 +; run: %transplant_41253_i8(8, 8) == 0 +; run: %transplant_41253_i8(8, 13) == 5 +; run: %transplant_41253_i8(9, 9) == 0 +; run: %transplant_41253_i8(9, 42) == 35 +; run: %transplant_41253_i8(13, 1) == 12 +; run: %transplant_41253_i8(13, 13) == 0 +; run: %transplant_41253_i8(42, -1) == -43 +; run: %transplant_41253_i8(42, 42) == 0 +; run: %transplant_41253_i8(85, 8) == 93 +; run: %transplant_41253_i8(85, 85) == 0 +; run: %transplant_41253_i8(127, 0) == 127 +; run: %transplant_41253_i8(127, 7) == 120 +; run: %transplant_41253_i8(127, 127) == 0 + +function %transplant_41253_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41253_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41253_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41253_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41253_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41253_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41253_i64(-1, -1) == 0 +; run: %transplant_41253_i64(-1, 0) == -1 +; run: %transplant_41253_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41253_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41253_i64(0, -1) == -1 +; run: %transplant_41253_i64(0, 0) == 0 +; run: %transplant_41253_i64(0, 1) == 1 +; run: %transplant_41253_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41253_i64(1, 0) == 1 +; run: %transplant_41253_i64(1, 1) == 0 +; run: %transplant_41253_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41253_i64(2, 0) == 2 +; run: %transplant_41253_i64(2, 2) == 0 +; run: %transplant_41253_i64(13, 1) == 12 +; run: %transplant_41253_i64(13, 13) == 0 +; run: %transplant_41253_i64(42, -1) == -43 +; run: %transplant_41253_i64(42, 42) == 0 +; run: %transplant_41253_i64(63, 2) == 61 +; run: %transplant_41253_i64(63, 63) == 0 +; run: %transplant_41253_i64(64, 13) == 77 +; run: %transplant_41253_i64(64, 64) == 0 +; run: %transplant_41253_i64(65, 42) == 107 +; run: %transplant_41253_i64(65, 65) == 0 +; run: %transplant_41253_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41253_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41253_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41253_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41253_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41254_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41254_i8(-128, -128) == 0 +; run: %transplant_41254_i8(-128, -86) == 42 +; run: %transplant_41254_i8(-128, 0) == -128 +; run: %transplant_41254_i8(-86, -86) == 0 +; run: %transplant_41254_i8(-86, 9) == -93 +; run: %transplant_41254_i8(-1, -1) == 0 +; run: %transplant_41254_i8(-1, 0) == -1 +; run: %transplant_41254_i8(-1, 85) == -86 +; run: %transplant_41254_i8(0, -128) == -128 +; run: %transplant_41254_i8(0, -1) == -1 +; run: %transplant_41254_i8(0, 0) == 0 +; run: %transplant_41254_i8(0, 1) == 1 +; run: %transplant_41254_i8(0, 127) == 127 +; run: %transplant_41254_i8(1, 0) == 1 +; run: %transplant_41254_i8(1, 1) == 0 +; run: %transplant_41254_i8(1, 127) == 126 +; run: %transplant_41254_i8(2, 0) == 2 +; run: %transplant_41254_i8(2, 2) == 0 +; run: %transplant_41254_i8(7, 2) == 5 +; run: %transplant_41254_i8(7, 7) == 0 +; run: %transplant_41254_i8(8, 8) == 0 +; run: %transplant_41254_i8(8, 13) == 5 +; run: %transplant_41254_i8(9, 9) == 0 +; run: %transplant_41254_i8(9, 42) == 35 +; run: %transplant_41254_i8(13, 1) == 12 +; run: %transplant_41254_i8(13, 13) == 0 +; run: %transplant_41254_i8(42, -1) == -43 +; run: %transplant_41254_i8(42, 42) == 0 +; run: %transplant_41254_i8(85, 8) == 93 +; run: %transplant_41254_i8(85, 85) == 0 +; run: %transplant_41254_i8(127, 0) == 127 +; run: %transplant_41254_i8(127, 7) == 120 +; run: %transplant_41254_i8(127, 127) == 0 + +function %transplant_41254_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41254_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41254_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41254_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41254_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41254_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41254_i64(-1, -1) == 0 +; run: %transplant_41254_i64(-1, 0) == -1 +; run: %transplant_41254_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41254_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41254_i64(0, -1) == -1 +; run: %transplant_41254_i64(0, 0) == 0 +; run: %transplant_41254_i64(0, 1) == 1 +; run: %transplant_41254_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41254_i64(1, 0) == 1 +; run: %transplant_41254_i64(1, 1) == 0 +; run: %transplant_41254_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41254_i64(2, 0) == 2 +; run: %transplant_41254_i64(2, 2) == 0 +; run: %transplant_41254_i64(13, 1) == 12 +; run: %transplant_41254_i64(13, 13) == 0 +; run: %transplant_41254_i64(42, -1) == -43 +; run: %transplant_41254_i64(42, 42) == 0 +; run: %transplant_41254_i64(63, 2) == 61 +; run: %transplant_41254_i64(63, 63) == 0 +; run: %transplant_41254_i64(64, 13) == 77 +; run: %transplant_41254_i64(64, 64) == 0 +; run: %transplant_41254_i64(65, 42) == 107 +; run: %transplant_41254_i64(65, 65) == 0 +; run: %transplant_41254_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41254_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41254_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41254_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41254_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41053_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41053_i8(-128, -128) == 0 +; run: %transplant_41053_i8(-128, -86) == 42 +; run: %transplant_41053_i8(-128, 0) == -128 +; run: %transplant_41053_i8(-86, -86) == 0 +; run: %transplant_41053_i8(-86, 9) == -93 +; run: %transplant_41053_i8(-1, -1) == 0 +; run: %transplant_41053_i8(-1, 0) == -1 +; run: %transplant_41053_i8(-1, 85) == -86 +; run: %transplant_41053_i8(0, -128) == -128 +; run: %transplant_41053_i8(0, -1) == -1 +; run: %transplant_41053_i8(0, 0) == 0 +; run: %transplant_41053_i8(0, 1) == 1 +; run: %transplant_41053_i8(0, 127) == 127 +; run: %transplant_41053_i8(1, 0) == 1 +; run: %transplant_41053_i8(1, 1) == 0 +; run: %transplant_41053_i8(1, 127) == 126 +; run: %transplant_41053_i8(2, 0) == 2 +; run: %transplant_41053_i8(2, 2) == 0 +; run: %transplant_41053_i8(7, 2) == 5 +; run: %transplant_41053_i8(7, 7) == 0 +; run: %transplant_41053_i8(8, 8) == 0 +; run: %transplant_41053_i8(8, 13) == 5 +; run: %transplant_41053_i8(9, 9) == 0 +; run: %transplant_41053_i8(9, 42) == 35 +; run: %transplant_41053_i8(13, 1) == 12 +; run: %transplant_41053_i8(13, 13) == 0 +; run: %transplant_41053_i8(42, -1) == -43 +; run: %transplant_41053_i8(42, 42) == 0 +; run: %transplant_41053_i8(85, 8) == 93 +; run: %transplant_41053_i8(85, 85) == 0 +; run: %transplant_41053_i8(127, 0) == 127 +; run: %transplant_41053_i8(127, 7) == 120 +; run: %transplant_41053_i8(127, 127) == 0 + +function %transplant_41053_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41053_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41053_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41053_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41053_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41053_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41053_i64(-1, -1) == 0 +; run: %transplant_41053_i64(-1, 0) == -1 +; run: %transplant_41053_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41053_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41053_i64(0, -1) == -1 +; run: %transplant_41053_i64(0, 0) == 0 +; run: %transplant_41053_i64(0, 1) == 1 +; run: %transplant_41053_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41053_i64(1, 0) == 1 +; run: %transplant_41053_i64(1, 1) == 0 +; run: %transplant_41053_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41053_i64(2, 0) == 2 +; run: %transplant_41053_i64(2, 2) == 0 +; run: %transplant_41053_i64(13, 1) == 12 +; run: %transplant_41053_i64(13, 13) == 0 +; run: %transplant_41053_i64(42, -1) == -43 +; run: %transplant_41053_i64(42, 42) == 0 +; run: %transplant_41053_i64(63, 2) == 61 +; run: %transplant_41053_i64(63, 63) == 0 +; run: %transplant_41053_i64(64, 13) == 77 +; run: %transplant_41053_i64(64, 64) == 0 +; run: %transplant_41053_i64(65, 42) == 107 +; run: %transplant_41053_i64(65, 65) == 0 +; run: %transplant_41053_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41053_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41053_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41053_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41053_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41054_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41054_i8(-128, -128) == 0 +; run: %transplant_41054_i8(-128, -86) == 42 +; run: %transplant_41054_i8(-128, 0) == -128 +; run: %transplant_41054_i8(-86, -86) == 0 +; run: %transplant_41054_i8(-86, 9) == -93 +; run: %transplant_41054_i8(-1, -1) == 0 +; run: %transplant_41054_i8(-1, 0) == -1 +; run: %transplant_41054_i8(-1, 85) == -86 +; run: %transplant_41054_i8(0, -128) == -128 +; run: %transplant_41054_i8(0, -1) == -1 +; run: %transplant_41054_i8(0, 0) == 0 +; run: %transplant_41054_i8(0, 1) == 1 +; run: %transplant_41054_i8(0, 127) == 127 +; run: %transplant_41054_i8(1, 0) == 1 +; run: %transplant_41054_i8(1, 1) == 0 +; run: %transplant_41054_i8(1, 127) == 126 +; run: %transplant_41054_i8(2, 0) == 2 +; run: %transplant_41054_i8(2, 2) == 0 +; run: %transplant_41054_i8(7, 2) == 5 +; run: %transplant_41054_i8(7, 7) == 0 +; run: %transplant_41054_i8(8, 8) == 0 +; run: %transplant_41054_i8(8, 13) == 5 +; run: %transplant_41054_i8(9, 9) == 0 +; run: %transplant_41054_i8(9, 42) == 35 +; run: %transplant_41054_i8(13, 1) == 12 +; run: %transplant_41054_i8(13, 13) == 0 +; run: %transplant_41054_i8(42, -1) == -43 +; run: %transplant_41054_i8(42, 42) == 0 +; run: %transplant_41054_i8(85, 8) == 93 +; run: %transplant_41054_i8(85, 85) == 0 +; run: %transplant_41054_i8(127, 0) == 127 +; run: %transplant_41054_i8(127, 7) == 120 +; run: %transplant_41054_i8(127, 127) == 0 + +function %transplant_41054_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41054_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41054_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41054_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41054_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41054_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41054_i64(-1, -1) == 0 +; run: %transplant_41054_i64(-1, 0) == -1 +; run: %transplant_41054_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41054_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41054_i64(0, -1) == -1 +; run: %transplant_41054_i64(0, 0) == 0 +; run: %transplant_41054_i64(0, 1) == 1 +; run: %transplant_41054_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41054_i64(1, 0) == 1 +; run: %transplant_41054_i64(1, 1) == 0 +; run: %transplant_41054_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41054_i64(2, 0) == 2 +; run: %transplant_41054_i64(2, 2) == 0 +; run: %transplant_41054_i64(13, 1) == 12 +; run: %transplant_41054_i64(13, 13) == 0 +; run: %transplant_41054_i64(42, -1) == -43 +; run: %transplant_41054_i64(42, 42) == 0 +; run: %transplant_41054_i64(63, 2) == 61 +; run: %transplant_41054_i64(63, 63) == 0 +; run: %transplant_41054_i64(64, 13) == 77 +; run: %transplant_41054_i64(64, 64) == 0 +; run: %transplant_41054_i64(65, 42) == 107 +; run: %transplant_41054_i64(65, 65) == 0 +; run: %transplant_41054_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41054_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41054_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41054_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41054_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41060_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41060_i8(-128, -128) == 0 +; run: %transplant_41060_i8(-128, -86) == 42 +; run: %transplant_41060_i8(-128, 0) == -128 +; run: %transplant_41060_i8(-86, -86) == 0 +; run: %transplant_41060_i8(-86, 9) == -93 +; run: %transplant_41060_i8(-1, -1) == 0 +; run: %transplant_41060_i8(-1, 0) == -1 +; run: %transplant_41060_i8(-1, 85) == -86 +; run: %transplant_41060_i8(0, -128) == -128 +; run: %transplant_41060_i8(0, -1) == -1 +; run: %transplant_41060_i8(0, 0) == 0 +; run: %transplant_41060_i8(0, 1) == 1 +; run: %transplant_41060_i8(0, 127) == 127 +; run: %transplant_41060_i8(1, 0) == 1 +; run: %transplant_41060_i8(1, 1) == 0 +; run: %transplant_41060_i8(1, 127) == 126 +; run: %transplant_41060_i8(2, 0) == 2 +; run: %transplant_41060_i8(2, 2) == 0 +; run: %transplant_41060_i8(7, 2) == 5 +; run: %transplant_41060_i8(7, 7) == 0 +; run: %transplant_41060_i8(8, 8) == 0 +; run: %transplant_41060_i8(8, 13) == 5 +; run: %transplant_41060_i8(9, 9) == 0 +; run: %transplant_41060_i8(9, 42) == 35 +; run: %transplant_41060_i8(13, 1) == 12 +; run: %transplant_41060_i8(13, 13) == 0 +; run: %transplant_41060_i8(42, -1) == -43 +; run: %transplant_41060_i8(42, 42) == 0 +; run: %transplant_41060_i8(85, 8) == 93 +; run: %transplant_41060_i8(85, 85) == 0 +; run: %transplant_41060_i8(127, 0) == 127 +; run: %transplant_41060_i8(127, 7) == 120 +; run: %transplant_41060_i8(127, 127) == 0 + +function %transplant_41060_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41060_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41060_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41060_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41060_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41060_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41060_i64(-1, -1) == 0 +; run: %transplant_41060_i64(-1, 0) == -1 +; run: %transplant_41060_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41060_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41060_i64(0, -1) == -1 +; run: %transplant_41060_i64(0, 0) == 0 +; run: %transplant_41060_i64(0, 1) == 1 +; run: %transplant_41060_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41060_i64(1, 0) == 1 +; run: %transplant_41060_i64(1, 1) == 0 +; run: %transplant_41060_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41060_i64(2, 0) == 2 +; run: %transplant_41060_i64(2, 2) == 0 +; run: %transplant_41060_i64(13, 1) == 12 +; run: %transplant_41060_i64(13, 13) == 0 +; run: %transplant_41060_i64(42, -1) == -43 +; run: %transplant_41060_i64(42, 42) == 0 +; run: %transplant_41060_i64(63, 2) == 61 +; run: %transplant_41060_i64(63, 63) == 0 +; run: %transplant_41060_i64(64, 13) == 77 +; run: %transplant_41060_i64(64, 64) == 0 +; run: %transplant_41060_i64(65, 42) == 107 +; run: %transplant_41060_i64(65, 65) == 0 +; run: %transplant_41060_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41060_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41060_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41060_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41060_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41062_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41062_i8(-128, -128) == 0 +; run: %transplant_41062_i8(-128, -86) == 42 +; run: %transplant_41062_i8(-128, 0) == -128 +; run: %transplant_41062_i8(-86, -86) == 0 +; run: %transplant_41062_i8(-86, 9) == -93 +; run: %transplant_41062_i8(-1, -1) == 0 +; run: %transplant_41062_i8(-1, 0) == -1 +; run: %transplant_41062_i8(-1, 85) == -86 +; run: %transplant_41062_i8(0, -128) == -128 +; run: %transplant_41062_i8(0, -1) == -1 +; run: %transplant_41062_i8(0, 0) == 0 +; run: %transplant_41062_i8(0, 1) == 1 +; run: %transplant_41062_i8(0, 127) == 127 +; run: %transplant_41062_i8(1, 0) == 1 +; run: %transplant_41062_i8(1, 1) == 0 +; run: %transplant_41062_i8(1, 127) == 126 +; run: %transplant_41062_i8(2, 0) == 2 +; run: %transplant_41062_i8(2, 2) == 0 +; run: %transplant_41062_i8(7, 2) == 5 +; run: %transplant_41062_i8(7, 7) == 0 +; run: %transplant_41062_i8(8, 8) == 0 +; run: %transplant_41062_i8(8, 13) == 5 +; run: %transplant_41062_i8(9, 9) == 0 +; run: %transplant_41062_i8(9, 42) == 35 +; run: %transplant_41062_i8(13, 1) == 12 +; run: %transplant_41062_i8(13, 13) == 0 +; run: %transplant_41062_i8(42, -1) == -43 +; run: %transplant_41062_i8(42, 42) == 0 +; run: %transplant_41062_i8(85, 8) == 93 +; run: %transplant_41062_i8(85, 85) == 0 +; run: %transplant_41062_i8(127, 0) == 127 +; run: %transplant_41062_i8(127, 7) == 120 +; run: %transplant_41062_i8(127, 127) == 0 + +function %transplant_41062_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41062_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41062_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41062_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41062_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41062_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41062_i64(-1, -1) == 0 +; run: %transplant_41062_i64(-1, 0) == -1 +; run: %transplant_41062_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41062_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41062_i64(0, -1) == -1 +; run: %transplant_41062_i64(0, 0) == 0 +; run: %transplant_41062_i64(0, 1) == 1 +; run: %transplant_41062_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41062_i64(1, 0) == 1 +; run: %transplant_41062_i64(1, 1) == 0 +; run: %transplant_41062_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41062_i64(2, 0) == 2 +; run: %transplant_41062_i64(2, 2) == 0 +; run: %transplant_41062_i64(13, 1) == 12 +; run: %transplant_41062_i64(13, 13) == 0 +; run: %transplant_41062_i64(42, -1) == -43 +; run: %transplant_41062_i64(42, 42) == 0 +; run: %transplant_41062_i64(63, 2) == 61 +; run: %transplant_41062_i64(63, 63) == 0 +; run: %transplant_41062_i64(64, 13) == 77 +; run: %transplant_41062_i64(64, 64) == 0 +; run: %transplant_41062_i64(65, 42) == 107 +; run: %transplant_41062_i64(65, 65) == 0 +; run: %transplant_41062_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41062_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41062_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41062_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41062_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41026_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41026_i8(-128, -128) == 0 +; run: %transplant_41026_i8(-128, -86) == 42 +; run: %transplant_41026_i8(-128, 0) == -128 +; run: %transplant_41026_i8(-86, -86) == 0 +; run: %transplant_41026_i8(-86, 9) == -93 +; run: %transplant_41026_i8(-1, -1) == 0 +; run: %transplant_41026_i8(-1, 0) == -1 +; run: %transplant_41026_i8(-1, 85) == -86 +; run: %transplant_41026_i8(0, -128) == -128 +; run: %transplant_41026_i8(0, -1) == -1 +; run: %transplant_41026_i8(0, 0) == 0 +; run: %transplant_41026_i8(0, 1) == 1 +; run: %transplant_41026_i8(0, 127) == 127 +; run: %transplant_41026_i8(1, 0) == 1 +; run: %transplant_41026_i8(1, 1) == 0 +; run: %transplant_41026_i8(1, 127) == 126 +; run: %transplant_41026_i8(2, 0) == 2 +; run: %transplant_41026_i8(2, 2) == 0 +; run: %transplant_41026_i8(7, 2) == 5 +; run: %transplant_41026_i8(7, 7) == 0 +; run: %transplant_41026_i8(8, 8) == 0 +; run: %transplant_41026_i8(8, 13) == 5 +; run: %transplant_41026_i8(9, 9) == 0 +; run: %transplant_41026_i8(9, 42) == 35 +; run: %transplant_41026_i8(13, 1) == 12 +; run: %transplant_41026_i8(13, 13) == 0 +; run: %transplant_41026_i8(42, -1) == -43 +; run: %transplant_41026_i8(42, 42) == 0 +; run: %transplant_41026_i8(85, 8) == 93 +; run: %transplant_41026_i8(85, 85) == 0 +; run: %transplant_41026_i8(127, 0) == 127 +; run: %transplant_41026_i8(127, 7) == 120 +; run: %transplant_41026_i8(127, 127) == 0 + +function %transplant_41026_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41026_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41026_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41026_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41026_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41026_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41026_i64(-1, -1) == 0 +; run: %transplant_41026_i64(-1, 0) == -1 +; run: %transplant_41026_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41026_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41026_i64(0, -1) == -1 +; run: %transplant_41026_i64(0, 0) == 0 +; run: %transplant_41026_i64(0, 1) == 1 +; run: %transplant_41026_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41026_i64(1, 0) == 1 +; run: %transplant_41026_i64(1, 1) == 0 +; run: %transplant_41026_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41026_i64(2, 0) == 2 +; run: %transplant_41026_i64(2, 2) == 0 +; run: %transplant_41026_i64(13, 1) == 12 +; run: %transplant_41026_i64(13, 13) == 0 +; run: %transplant_41026_i64(42, -1) == -43 +; run: %transplant_41026_i64(42, 42) == 0 +; run: %transplant_41026_i64(63, 2) == 61 +; run: %transplant_41026_i64(63, 63) == 0 +; run: %transplant_41026_i64(64, 13) == 77 +; run: %transplant_41026_i64(64, 64) == 0 +; run: %transplant_41026_i64(65, 42) == 107 +; run: %transplant_41026_i64(65, 65) == 0 +; run: %transplant_41026_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41026_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41026_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41026_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41026_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41027_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41027_i8(-128, -128) == 0 +; run: %transplant_41027_i8(-128, -86) == 42 +; run: %transplant_41027_i8(-128, 0) == -128 +; run: %transplant_41027_i8(-86, -86) == 0 +; run: %transplant_41027_i8(-86, 9) == -93 +; run: %transplant_41027_i8(-1, -1) == 0 +; run: %transplant_41027_i8(-1, 0) == -1 +; run: %transplant_41027_i8(-1, 85) == -86 +; run: %transplant_41027_i8(0, -128) == -128 +; run: %transplant_41027_i8(0, -1) == -1 +; run: %transplant_41027_i8(0, 0) == 0 +; run: %transplant_41027_i8(0, 1) == 1 +; run: %transplant_41027_i8(0, 127) == 127 +; run: %transplant_41027_i8(1, 0) == 1 +; run: %transplant_41027_i8(1, 1) == 0 +; run: %transplant_41027_i8(1, 127) == 126 +; run: %transplant_41027_i8(2, 0) == 2 +; run: %transplant_41027_i8(2, 2) == 0 +; run: %transplant_41027_i8(7, 2) == 5 +; run: %transplant_41027_i8(7, 7) == 0 +; run: %transplant_41027_i8(8, 8) == 0 +; run: %transplant_41027_i8(8, 13) == 5 +; run: %transplant_41027_i8(9, 9) == 0 +; run: %transplant_41027_i8(9, 42) == 35 +; run: %transplant_41027_i8(13, 1) == 12 +; run: %transplant_41027_i8(13, 13) == 0 +; run: %transplant_41027_i8(42, -1) == -43 +; run: %transplant_41027_i8(42, 42) == 0 +; run: %transplant_41027_i8(85, 8) == 93 +; run: %transplant_41027_i8(85, 85) == 0 +; run: %transplant_41027_i8(127, 0) == 127 +; run: %transplant_41027_i8(127, 7) == 120 +; run: %transplant_41027_i8(127, 127) == 0 + +function %transplant_41027_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v0, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41027_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41027_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41027_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41027_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41027_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41027_i64(-1, -1) == 0 +; run: %transplant_41027_i64(-1, 0) == -1 +; run: %transplant_41027_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41027_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41027_i64(0, -1) == -1 +; run: %transplant_41027_i64(0, 0) == 0 +; run: %transplant_41027_i64(0, 1) == 1 +; run: %transplant_41027_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41027_i64(1, 0) == 1 +; run: %transplant_41027_i64(1, 1) == 0 +; run: %transplant_41027_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41027_i64(2, 0) == 2 +; run: %transplant_41027_i64(2, 2) == 0 +; run: %transplant_41027_i64(13, 1) == 12 +; run: %transplant_41027_i64(13, 13) == 0 +; run: %transplant_41027_i64(42, -1) == -43 +; run: %transplant_41027_i64(42, 42) == 0 +; run: %transplant_41027_i64(63, 2) == 61 +; run: %transplant_41027_i64(63, 63) == 0 +; run: %transplant_41027_i64(64, 13) == 77 +; run: %transplant_41027_i64(64, 64) == 0 +; run: %transplant_41027_i64(65, 42) == 107 +; run: %transplant_41027_i64(65, 65) == 0 +; run: %transplant_41027_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41027_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41027_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41027_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41027_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41031_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41031_i8(-128, -128) == 0 +; run: %transplant_41031_i8(-128, -86) == 42 +; run: %transplant_41031_i8(-128, 0) == -128 +; run: %transplant_41031_i8(-86, -86) == 0 +; run: %transplant_41031_i8(-86, 9) == -93 +; run: %transplant_41031_i8(-1, -1) == 0 +; run: %transplant_41031_i8(-1, 0) == -1 +; run: %transplant_41031_i8(-1, 85) == -86 +; run: %transplant_41031_i8(0, -128) == -128 +; run: %transplant_41031_i8(0, -1) == -1 +; run: %transplant_41031_i8(0, 0) == 0 +; run: %transplant_41031_i8(0, 1) == 1 +; run: %transplant_41031_i8(0, 127) == 127 +; run: %transplant_41031_i8(1, 0) == 1 +; run: %transplant_41031_i8(1, 1) == 0 +; run: %transplant_41031_i8(1, 127) == 126 +; run: %transplant_41031_i8(2, 0) == 2 +; run: %transplant_41031_i8(2, 2) == 0 +; run: %transplant_41031_i8(7, 2) == 5 +; run: %transplant_41031_i8(7, 7) == 0 +; run: %transplant_41031_i8(8, 8) == 0 +; run: %transplant_41031_i8(8, 13) == 5 +; run: %transplant_41031_i8(9, 9) == 0 +; run: %transplant_41031_i8(9, 42) == 35 +; run: %transplant_41031_i8(13, 1) == 12 +; run: %transplant_41031_i8(13, 13) == 0 +; run: %transplant_41031_i8(42, -1) == -43 +; run: %transplant_41031_i8(42, 42) == 0 +; run: %transplant_41031_i8(85, 8) == 93 +; run: %transplant_41031_i8(85, 85) == 0 +; run: %transplant_41031_i8(127, 0) == 127 +; run: %transplant_41031_i8(127, 7) == 120 +; run: %transplant_41031_i8(127, 127) == 0 + +function %transplant_41031_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v4, v1 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41031_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41031_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41031_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41031_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41031_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41031_i64(-1, -1) == 0 +; run: %transplant_41031_i64(-1, 0) == -1 +; run: %transplant_41031_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41031_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41031_i64(0, -1) == -1 +; run: %transplant_41031_i64(0, 0) == 0 +; run: %transplant_41031_i64(0, 1) == 1 +; run: %transplant_41031_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41031_i64(1, 0) == 1 +; run: %transplant_41031_i64(1, 1) == 0 +; run: %transplant_41031_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41031_i64(2, 0) == 2 +; run: %transplant_41031_i64(2, 2) == 0 +; run: %transplant_41031_i64(13, 1) == 12 +; run: %transplant_41031_i64(13, 13) == 0 +; run: %transplant_41031_i64(42, -1) == -43 +; run: %transplant_41031_i64(42, 42) == 0 +; run: %transplant_41031_i64(63, 2) == 61 +; run: %transplant_41031_i64(63, 63) == 0 +; run: %transplant_41031_i64(64, 13) == 77 +; run: %transplant_41031_i64(64, 64) == 0 +; run: %transplant_41031_i64(65, 42) == 107 +; run: %transplant_41031_i64(65, 65) == 0 +; run: %transplant_41031_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41031_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41031_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41031_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41031_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41032_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41032_i8(-128, -128) == 0 +; run: %transplant_41032_i8(-128, -86) == 42 +; run: %transplant_41032_i8(-128, 0) == -128 +; run: %transplant_41032_i8(-86, -86) == 0 +; run: %transplant_41032_i8(-86, 9) == -93 +; run: %transplant_41032_i8(-1, -1) == 0 +; run: %transplant_41032_i8(-1, 0) == -1 +; run: %transplant_41032_i8(-1, 85) == -86 +; run: %transplant_41032_i8(0, -128) == -128 +; run: %transplant_41032_i8(0, -1) == -1 +; run: %transplant_41032_i8(0, 0) == 0 +; run: %transplant_41032_i8(0, 1) == 1 +; run: %transplant_41032_i8(0, 127) == 127 +; run: %transplant_41032_i8(1, 0) == 1 +; run: %transplant_41032_i8(1, 1) == 0 +; run: %transplant_41032_i8(1, 127) == 126 +; run: %transplant_41032_i8(2, 0) == 2 +; run: %transplant_41032_i8(2, 2) == 0 +; run: %transplant_41032_i8(7, 2) == 5 +; run: %transplant_41032_i8(7, 7) == 0 +; run: %transplant_41032_i8(8, 8) == 0 +; run: %transplant_41032_i8(8, 13) == 5 +; run: %transplant_41032_i8(9, 9) == 0 +; run: %transplant_41032_i8(9, 42) == 35 +; run: %transplant_41032_i8(13, 1) == 12 +; run: %transplant_41032_i8(13, 13) == 0 +; run: %transplant_41032_i8(42, -1) == -43 +; run: %transplant_41032_i8(42, 42) == 0 +; run: %transplant_41032_i8(85, 8) == 93 +; run: %transplant_41032_i8(85, 85) == 0 +; run: %transplant_41032_i8(127, 0) == 127 +; run: %transplant_41032_i8(127, 7) == 120 +; run: %transplant_41032_i8(127, 127) == 0 + +function %transplant_41032_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = bnot v0 + v5 = band v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41032_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41032_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_41032_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_41032_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41032_i64(-6148914691236517206, 65) == -6148914691236517141 +; run: %transplant_41032_i64(-1, -1) == 0 +; run: %transplant_41032_i64(-1, 0) == -1 +; run: %transplant_41032_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_41032_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_41032_i64(0, -1) == -1 +; run: %transplant_41032_i64(0, 0) == 0 +; run: %transplant_41032_i64(0, 1) == 1 +; run: %transplant_41032_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_41032_i64(1, 0) == 1 +; run: %transplant_41032_i64(1, 1) == 0 +; run: %transplant_41032_i64(1, 9223372036854775807) == 9223372036854775806 +; run: %transplant_41032_i64(2, 0) == 2 +; run: %transplant_41032_i64(2, 2) == 0 +; run: %transplant_41032_i64(13, 1) == 12 +; run: %transplant_41032_i64(13, 13) == 0 +; run: %transplant_41032_i64(42, -1) == -43 +; run: %transplant_41032_i64(42, 42) == 0 +; run: %transplant_41032_i64(63, 2) == 61 +; run: %transplant_41032_i64(63, 63) == 0 +; run: %transplant_41032_i64(64, 13) == 77 +; run: %transplant_41032_i64(64, 64) == 0 +; run: %transplant_41032_i64(65, 42) == 107 +; run: %transplant_41032_i64(65, 65) == 0 +; run: %transplant_41032_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_41032_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41032_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_41032_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_41032_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_37458_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37458_i8(-128, -128) == -1 +; run: %transplant_37458_i8(-128, -86) == -43 +; run: %transplant_37458_i8(-128, 0) == 127 +; run: %transplant_37458_i8(-86, -86) == -1 +; run: %transplant_37458_i8(-86, 9) == 92 +; run: %transplant_37458_i8(-1, -1) == -1 +; run: %transplant_37458_i8(-1, 0) == 0 +; run: %transplant_37458_i8(-1, 85) == 85 +; run: %transplant_37458_i8(0, -128) == 127 +; run: %transplant_37458_i8(0, -1) == 0 +; run: %transplant_37458_i8(0, 0) == -1 +; run: %transplant_37458_i8(0, 1) == -2 +; run: %transplant_37458_i8(0, 127) == -128 +; run: %transplant_37458_i8(1, 0) == -2 +; run: %transplant_37458_i8(1, 1) == -1 +; run: %transplant_37458_i8(1, 127) == -127 +; run: %transplant_37458_i8(2, 0) == -3 +; run: %transplant_37458_i8(2, 2) == -1 +; run: %transplant_37458_i8(7, 2) == -6 +; run: %transplant_37458_i8(7, 7) == -1 +; run: %transplant_37458_i8(8, 8) == -1 +; run: %transplant_37458_i8(8, 13) == -6 +; run: %transplant_37458_i8(9, 9) == -1 +; run: %transplant_37458_i8(9, 42) == -36 +; run: %transplant_37458_i8(13, 1) == -13 +; run: %transplant_37458_i8(13, 13) == -1 +; run: %transplant_37458_i8(42, -1) == 42 +; run: %transplant_37458_i8(42, 42) == -1 +; run: %transplant_37458_i8(85, 8) == -94 +; run: %transplant_37458_i8(85, 85) == -1 +; run: %transplant_37458_i8(127, 0) == -128 +; run: %transplant_37458_i8(127, 7) == -121 +; run: %transplant_37458_i8(127, 127) == -1 + +function %transplant_37458_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37458_i64(-9223372036854775808, -9223372036854775808) == -1 +; run: %transplant_37458_i64(-9223372036854775808, -6148914691236517206) == -3074457345618258603 +; run: %transplant_37458_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_37458_i64(-6148914691236517206, -6148914691236517206) == -1 +; run: %transplant_37458_i64(-6148914691236517206, 65) == 6148914691236517140 +; run: %transplant_37458_i64(-1, -1) == -1 +; run: %transplant_37458_i64(-1, 0) == 0 +; run: %transplant_37458_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_37458_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_37458_i64(0, -1) == 0 +; run: %transplant_37458_i64(0, 0) == -1 +; run: %transplant_37458_i64(0, 1) == -2 +; run: %transplant_37458_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_37458_i64(1, 0) == -2 +; run: %transplant_37458_i64(1, 1) == -1 +; run: %transplant_37458_i64(1, 9223372036854775807) == -9223372036854775807 +; run: %transplant_37458_i64(2, 0) == -3 +; run: %transplant_37458_i64(2, 2) == -1 +; run: %transplant_37458_i64(13, 1) == -13 +; run: %transplant_37458_i64(13, 13) == -1 +; run: %transplant_37458_i64(42, -1) == 42 +; run: %transplant_37458_i64(42, 42) == -1 +; run: %transplant_37458_i64(63, 2) == -62 +; run: %transplant_37458_i64(63, 63) == -1 +; run: %transplant_37458_i64(64, 13) == -78 +; run: %transplant_37458_i64(64, 64) == -1 +; run: %transplant_37458_i64(65, 42) == -108 +; run: %transplant_37458_i64(65, 65) == -1 +; run: %transplant_37458_i64(6148914691236517205, 64) == -6148914691236517142 +; run: %transplant_37458_i64(6148914691236517205, 6148914691236517205) == -1 +; run: %transplant_37458_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_37458_i64(9223372036854775807, 63) == -9223372036854775745 +; run: %transplant_37458_i64(9223372036854775807, 9223372036854775807) == -1 + +function %transplant_37459_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37459_i8(-128, -128) == -1 +; run: %transplant_37459_i8(-128, -86) == -43 +; run: %transplant_37459_i8(-128, 0) == 127 +; run: %transplant_37459_i8(-86, -86) == -1 +; run: %transplant_37459_i8(-86, 9) == 92 +; run: %transplant_37459_i8(-1, -1) == -1 +; run: %transplant_37459_i8(-1, 0) == 0 +; run: %transplant_37459_i8(-1, 85) == 85 +; run: %transplant_37459_i8(0, -128) == 127 +; run: %transplant_37459_i8(0, -1) == 0 +; run: %transplant_37459_i8(0, 0) == -1 +; run: %transplant_37459_i8(0, 1) == -2 +; run: %transplant_37459_i8(0, 127) == -128 +; run: %transplant_37459_i8(1, 0) == -2 +; run: %transplant_37459_i8(1, 1) == -1 +; run: %transplant_37459_i8(1, 127) == -127 +; run: %transplant_37459_i8(2, 0) == -3 +; run: %transplant_37459_i8(2, 2) == -1 +; run: %transplant_37459_i8(7, 2) == -6 +; run: %transplant_37459_i8(7, 7) == -1 +; run: %transplant_37459_i8(8, 8) == -1 +; run: %transplant_37459_i8(8, 13) == -6 +; run: %transplant_37459_i8(9, 9) == -1 +; run: %transplant_37459_i8(9, 42) == -36 +; run: %transplant_37459_i8(13, 1) == -13 +; run: %transplant_37459_i8(13, 13) == -1 +; run: %transplant_37459_i8(42, -1) == 42 +; run: %transplant_37459_i8(42, 42) == -1 +; run: %transplant_37459_i8(85, 8) == -94 +; run: %transplant_37459_i8(85, 85) == -1 +; run: %transplant_37459_i8(127, 0) == -128 +; run: %transplant_37459_i8(127, 7) == -121 +; run: %transplant_37459_i8(127, 127) == -1 + +function %transplant_37459_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v0, v4 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37459_i64(-9223372036854775808, -9223372036854775808) == -1 +; run: %transplant_37459_i64(-9223372036854775808, -6148914691236517206) == -3074457345618258603 +; run: %transplant_37459_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_37459_i64(-6148914691236517206, -6148914691236517206) == -1 +; run: %transplant_37459_i64(-6148914691236517206, 65) == 6148914691236517140 +; run: %transplant_37459_i64(-1, -1) == -1 +; run: %transplant_37459_i64(-1, 0) == 0 +; run: %transplant_37459_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_37459_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_37459_i64(0, -1) == 0 +; run: %transplant_37459_i64(0, 0) == -1 +; run: %transplant_37459_i64(0, 1) == -2 +; run: %transplant_37459_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_37459_i64(1, 0) == -2 +; run: %transplant_37459_i64(1, 1) == -1 +; run: %transplant_37459_i64(1, 9223372036854775807) == -9223372036854775807 +; run: %transplant_37459_i64(2, 0) == -3 +; run: %transplant_37459_i64(2, 2) == -1 +; run: %transplant_37459_i64(13, 1) == -13 +; run: %transplant_37459_i64(13, 13) == -1 +; run: %transplant_37459_i64(42, -1) == 42 +; run: %transplant_37459_i64(42, 42) == -1 +; run: %transplant_37459_i64(63, 2) == -62 +; run: %transplant_37459_i64(63, 63) == -1 +; run: %transplant_37459_i64(64, 13) == -78 +; run: %transplant_37459_i64(64, 64) == -1 +; run: %transplant_37459_i64(65, 42) == -108 +; run: %transplant_37459_i64(65, 65) == -1 +; run: %transplant_37459_i64(6148914691236517205, 64) == -6148914691236517142 +; run: %transplant_37459_i64(6148914691236517205, 6148914691236517205) == -1 +; run: %transplant_37459_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_37459_i64(9223372036854775807, 63) == -9223372036854775745 +; run: %transplant_37459_i64(9223372036854775807, 9223372036854775807) == -1 + +function %transplant_37471_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37471_i8(-128, -128) == -1 +; run: %transplant_37471_i8(-128, -86) == -43 +; run: %transplant_37471_i8(-128, 0) == 127 +; run: %transplant_37471_i8(-86, -86) == -1 +; run: %transplant_37471_i8(-86, 9) == 92 +; run: %transplant_37471_i8(-1, -1) == -1 +; run: %transplant_37471_i8(-1, 0) == 0 +; run: %transplant_37471_i8(-1, 85) == 85 +; run: %transplant_37471_i8(0, -128) == 127 +; run: %transplant_37471_i8(0, -1) == 0 +; run: %transplant_37471_i8(0, 0) == -1 +; run: %transplant_37471_i8(0, 1) == -2 +; run: %transplant_37471_i8(0, 127) == -128 +; run: %transplant_37471_i8(1, 0) == -2 +; run: %transplant_37471_i8(1, 1) == -1 +; run: %transplant_37471_i8(1, 127) == -127 +; run: %transplant_37471_i8(2, 0) == -3 +; run: %transplant_37471_i8(2, 2) == -1 +; run: %transplant_37471_i8(7, 2) == -6 +; run: %transplant_37471_i8(7, 7) == -1 +; run: %transplant_37471_i8(8, 8) == -1 +; run: %transplant_37471_i8(8, 13) == -6 +; run: %transplant_37471_i8(9, 9) == -1 +; run: %transplant_37471_i8(9, 42) == -36 +; run: %transplant_37471_i8(13, 1) == -13 +; run: %transplant_37471_i8(13, 13) == -1 +; run: %transplant_37471_i8(42, -1) == 42 +; run: %transplant_37471_i8(42, 42) == -1 +; run: %transplant_37471_i8(85, 8) == -94 +; run: %transplant_37471_i8(85, 85) == -1 +; run: %transplant_37471_i8(127, 0) == -128 +; run: %transplant_37471_i8(127, 7) == -121 +; run: %transplant_37471_i8(127, 127) == -1 + +function %transplant_37471_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v4, v1 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37471_i64(-9223372036854775808, -9223372036854775808) == -1 +; run: %transplant_37471_i64(-9223372036854775808, -6148914691236517206) == -3074457345618258603 +; run: %transplant_37471_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_37471_i64(-6148914691236517206, -6148914691236517206) == -1 +; run: %transplant_37471_i64(-6148914691236517206, 65) == 6148914691236517140 +; run: %transplant_37471_i64(-1, -1) == -1 +; run: %transplant_37471_i64(-1, 0) == 0 +; run: %transplant_37471_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_37471_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_37471_i64(0, -1) == 0 +; run: %transplant_37471_i64(0, 0) == -1 +; run: %transplant_37471_i64(0, 1) == -2 +; run: %transplant_37471_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_37471_i64(1, 0) == -2 +; run: %transplant_37471_i64(1, 1) == -1 +; run: %transplant_37471_i64(1, 9223372036854775807) == -9223372036854775807 +; run: %transplant_37471_i64(2, 0) == -3 +; run: %transplant_37471_i64(2, 2) == -1 +; run: %transplant_37471_i64(13, 1) == -13 +; run: %transplant_37471_i64(13, 13) == -1 +; run: %transplant_37471_i64(42, -1) == 42 +; run: %transplant_37471_i64(42, 42) == -1 +; run: %transplant_37471_i64(63, 2) == -62 +; run: %transplant_37471_i64(63, 63) == -1 +; run: %transplant_37471_i64(64, 13) == -78 +; run: %transplant_37471_i64(64, 64) == -1 +; run: %transplant_37471_i64(65, 42) == -108 +; run: %transplant_37471_i64(65, 65) == -1 +; run: %transplant_37471_i64(6148914691236517205, 64) == -6148914691236517142 +; run: %transplant_37471_i64(6148914691236517205, 6148914691236517205) == -1 +; run: %transplant_37471_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_37471_i64(9223372036854775807, 63) == -9223372036854775745 +; run: %transplant_37471_i64(9223372036854775807, 9223372036854775807) == -1 + +function %transplant_37472_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37472_i8(-128, -128) == -1 +; run: %transplant_37472_i8(-128, -86) == -43 +; run: %transplant_37472_i8(-128, 0) == 127 +; run: %transplant_37472_i8(-86, -86) == -1 +; run: %transplant_37472_i8(-86, 9) == 92 +; run: %transplant_37472_i8(-1, -1) == -1 +; run: %transplant_37472_i8(-1, 0) == 0 +; run: %transplant_37472_i8(-1, 85) == 85 +; run: %transplant_37472_i8(0, -128) == 127 +; run: %transplant_37472_i8(0, -1) == 0 +; run: %transplant_37472_i8(0, 0) == -1 +; run: %transplant_37472_i8(0, 1) == -2 +; run: %transplant_37472_i8(0, 127) == -128 +; run: %transplant_37472_i8(1, 0) == -2 +; run: %transplant_37472_i8(1, 1) == -1 +; run: %transplant_37472_i8(1, 127) == -127 +; run: %transplant_37472_i8(2, 0) == -3 +; run: %transplant_37472_i8(2, 2) == -1 +; run: %transplant_37472_i8(7, 2) == -6 +; run: %transplant_37472_i8(7, 7) == -1 +; run: %transplant_37472_i8(8, 8) == -1 +; run: %transplant_37472_i8(8, 13) == -6 +; run: %transplant_37472_i8(9, 9) == -1 +; run: %transplant_37472_i8(9, 42) == -36 +; run: %transplant_37472_i8(13, 1) == -13 +; run: %transplant_37472_i8(13, 13) == -1 +; run: %transplant_37472_i8(42, -1) == 42 +; run: %transplant_37472_i8(42, 42) == -1 +; run: %transplant_37472_i8(85, 8) == -94 +; run: %transplant_37472_i8(85, 85) == -1 +; run: %transplant_37472_i8(127, 0) == -128 +; run: %transplant_37472_i8(127, 7) == -121 +; run: %transplant_37472_i8(127, 127) == -1 + +function %transplant_37472_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v0 + v5 = bor v1, v4 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37472_i64(-9223372036854775808, -9223372036854775808) == -1 +; run: %transplant_37472_i64(-9223372036854775808, -6148914691236517206) == -3074457345618258603 +; run: %transplant_37472_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_37472_i64(-6148914691236517206, -6148914691236517206) == -1 +; run: %transplant_37472_i64(-6148914691236517206, 65) == 6148914691236517140 +; run: %transplant_37472_i64(-1, -1) == -1 +; run: %transplant_37472_i64(-1, 0) == 0 +; run: %transplant_37472_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_37472_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_37472_i64(0, -1) == 0 +; run: %transplant_37472_i64(0, 0) == -1 +; run: %transplant_37472_i64(0, 1) == -2 +; run: %transplant_37472_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_37472_i64(1, 0) == -2 +; run: %transplant_37472_i64(1, 1) == -1 +; run: %transplant_37472_i64(1, 9223372036854775807) == -9223372036854775807 +; run: %transplant_37472_i64(2, 0) == -3 +; run: %transplant_37472_i64(2, 2) == -1 +; run: %transplant_37472_i64(13, 1) == -13 +; run: %transplant_37472_i64(13, 13) == -1 +; run: %transplant_37472_i64(42, -1) == 42 +; run: %transplant_37472_i64(42, 42) == -1 +; run: %transplant_37472_i64(63, 2) == -62 +; run: %transplant_37472_i64(63, 63) == -1 +; run: %transplant_37472_i64(64, 13) == -78 +; run: %transplant_37472_i64(64, 64) == -1 +; run: %transplant_37472_i64(65, 42) == -108 +; run: %transplant_37472_i64(65, 65) == -1 +; run: %transplant_37472_i64(6148914691236517205, 64) == -6148914691236517142 +; run: %transplant_37472_i64(6148914691236517205, 6148914691236517205) == -1 +; run: %transplant_37472_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_37472_i64(9223372036854775807, 63) == -9223372036854775745 +; run: %transplant_37472_i64(9223372036854775807, 9223372036854775807) == -1 + +function %transplant_40979_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = iadd v0, v1 + v3 = iconst.i8 -1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_40979_i8(-128) == 114 +; run: %transplant_40979_i8(-86) == 72 +; run: %transplant_40979_i8(-1) == -13 +; run: %transplant_40979_i8(0) == -14 +; run: %transplant_40979_i8(1) == -15 +; run: %transplant_40979_i8(2) == -16 +; run: %transplant_40979_i8(7) == -21 +; run: %transplant_40979_i8(8) == -22 +; run: %transplant_40979_i8(9) == -23 +; run: %transplant_40979_i8(13) == -27 +; run: %transplant_40979_i8(42) == -56 +; run: %transplant_40979_i8(85) == -99 +; run: %transplant_40979_i8(127) == 115 + +function %transplant_40979_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 13 + v2 = iadd v0, v1 + v3 = iconst.i64 -1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_40979_i64(-9223372036854775808) == 9223372036854775794 +; run: %transplant_40979_i64(-6148914691236517206) == 6148914691236517192 +; run: %transplant_40979_i64(-1) == -13 +; run: %transplant_40979_i64(0) == -14 +; run: %transplant_40979_i64(1) == -15 +; run: %transplant_40979_i64(2) == -16 +; run: %transplant_40979_i64(13) == -27 +; run: %transplant_40979_i64(42) == -56 +; run: %transplant_40979_i64(63) == -77 +; run: %transplant_40979_i64(64) == -78 +; run: %transplant_40979_i64(65) == -79 +; run: %transplant_40979_i64(6148914691236517205) == -6148914691236517219 +; run: %transplant_40979_i64(9223372036854775807) == 9223372036854775795 + +function %transplant_40923_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bor v2, v0 + v4 = iconst.i8 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40923_i8(-128, -128) == 0 +; run: %transplant_40923_i8(-128, -86) == 34 +; run: %transplant_40923_i8(-128, 0) == -128 +; run: %transplant_40923_i8(-86, -86) == 0 +; run: %transplant_40923_i8(-86, 9) == -94 +; run: %transplant_40923_i8(-1, -1) == 0 +; run: %transplant_40923_i8(-1, 0) == -14 +; run: %transplant_40923_i8(-1, 85) == -94 +; run: %transplant_40923_i8(0, -128) == -128 +; run: %transplant_40923_i8(0, -1) == -14 +; run: %transplant_40923_i8(0, 0) == 0 +; run: %transplant_40923_i8(0, 1) == 0 +; run: %transplant_40923_i8(0, 127) == 114 +; run: %transplant_40923_i8(1, 0) == 0 +; run: %transplant_40923_i8(1, 1) == 0 +; run: %transplant_40923_i8(1, 127) == 114 +; run: %transplant_40923_i8(2, 0) == 2 +; run: %transplant_40923_i8(2, 2) == 0 +; run: %transplant_40923_i8(7, 2) == 0 +; run: %transplant_40923_i8(7, 7) == 0 +; run: %transplant_40923_i8(8, 8) == 0 +; run: %transplant_40923_i8(8, 13) == 0 +; run: %transplant_40923_i8(9, 9) == 0 +; run: %transplant_40923_i8(9, 42) == 34 +; run: %transplant_40923_i8(13, 1) == 0 +; run: %transplant_40923_i8(13, 13) == 0 +; run: %transplant_40923_i8(42, -1) == -48 +; run: %transplant_40923_i8(42, 42) == 0 +; run: %transplant_40923_i8(85, 8) == 80 +; run: %transplant_40923_i8(85, 85) == 0 +; run: %transplant_40923_i8(127, 0) == 114 +; run: %transplant_40923_i8(127, 7) == 112 +; run: %transplant_40923_i8(127, 127) == 0 + +function %transplant_40923_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bor v2, v0 + v4 = iconst.i64 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40923_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_40923_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258594 +; run: %transplant_40923_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40923_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_40923_i64(-6148914691236517206, 65) == -6148914691236517150 +; run: %transplant_40923_i64(-1, -1) == 0 +; run: %transplant_40923_i64(-1, 0) == -14 +; run: %transplant_40923_i64(-1, 6148914691236517205) == -6148914691236517214 +; run: %transplant_40923_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40923_i64(0, -1) == -14 +; run: %transplant_40923_i64(0, 0) == 0 +; run: %transplant_40923_i64(0, 1) == 0 +; run: %transplant_40923_i64(0, 9223372036854775807) == 9223372036854775794 +; run: %transplant_40923_i64(1, 0) == 0 +; run: %transplant_40923_i64(1, 1) == 0 +; run: %transplant_40923_i64(1, 9223372036854775807) == 9223372036854775794 +; run: %transplant_40923_i64(2, 0) == 2 +; run: %transplant_40923_i64(2, 2) == 0 +; run: %transplant_40923_i64(13, 1) == 0 +; run: %transplant_40923_i64(13, 13) == 0 +; run: %transplant_40923_i64(42, -1) == -48 +; run: %transplant_40923_i64(42, 42) == 0 +; run: %transplant_40923_i64(63, 2) == 48 +; run: %transplant_40923_i64(63, 63) == 0 +; run: %transplant_40923_i64(64, 13) == 64 +; run: %transplant_40923_i64(64, 64) == 0 +; run: %transplant_40923_i64(65, 42) == 98 +; run: %transplant_40923_i64(65, 65) == 0 +; run: %transplant_40923_i64(6148914691236517205, 64) == 6148914691236517136 +; run: %transplant_40923_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_40923_i64(9223372036854775807, 0) == 9223372036854775794 +; run: %transplant_40923_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_40923_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_40933_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bor v0, v2 + v4 = iconst.i8 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40933_i8(-128, -128) == 0 +; run: %transplant_40933_i8(-128, -86) == 34 +; run: %transplant_40933_i8(-128, 0) == -128 +; run: %transplant_40933_i8(-86, -86) == 0 +; run: %transplant_40933_i8(-86, 9) == -94 +; run: %transplant_40933_i8(-1, -1) == 0 +; run: %transplant_40933_i8(-1, 0) == -14 +; run: %transplant_40933_i8(-1, 85) == -94 +; run: %transplant_40933_i8(0, -128) == -128 +; run: %transplant_40933_i8(0, -1) == -14 +; run: %transplant_40933_i8(0, 0) == 0 +; run: %transplant_40933_i8(0, 1) == 0 +; run: %transplant_40933_i8(0, 127) == 114 +; run: %transplant_40933_i8(1, 0) == 0 +; run: %transplant_40933_i8(1, 1) == 0 +; run: %transplant_40933_i8(1, 127) == 114 +; run: %transplant_40933_i8(2, 0) == 2 +; run: %transplant_40933_i8(2, 2) == 0 +; run: %transplant_40933_i8(7, 2) == 0 +; run: %transplant_40933_i8(7, 7) == 0 +; run: %transplant_40933_i8(8, 8) == 0 +; run: %transplant_40933_i8(8, 13) == 0 +; run: %transplant_40933_i8(9, 9) == 0 +; run: %transplant_40933_i8(9, 42) == 34 +; run: %transplant_40933_i8(13, 1) == 0 +; run: %transplant_40933_i8(13, 13) == 0 +; run: %transplant_40933_i8(42, -1) == -48 +; run: %transplant_40933_i8(42, 42) == 0 +; run: %transplant_40933_i8(85, 8) == 80 +; run: %transplant_40933_i8(85, 85) == 0 +; run: %transplant_40933_i8(127, 0) == 114 +; run: %transplant_40933_i8(127, 7) == 112 +; run: %transplant_40933_i8(127, 127) == 0 + +function %transplant_40933_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bor v0, v2 + v4 = iconst.i64 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40933_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_40933_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258594 +; run: %transplant_40933_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40933_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_40933_i64(-6148914691236517206, 65) == -6148914691236517150 +; run: %transplant_40933_i64(-1, -1) == 0 +; run: %transplant_40933_i64(-1, 0) == -14 +; run: %transplant_40933_i64(-1, 6148914691236517205) == -6148914691236517214 +; run: %transplant_40933_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40933_i64(0, -1) == -14 +; run: %transplant_40933_i64(0, 0) == 0 +; run: %transplant_40933_i64(0, 1) == 0 +; run: %transplant_40933_i64(0, 9223372036854775807) == 9223372036854775794 +; run: %transplant_40933_i64(1, 0) == 0 +; run: %transplant_40933_i64(1, 1) == 0 +; run: %transplant_40933_i64(1, 9223372036854775807) == 9223372036854775794 +; run: %transplant_40933_i64(2, 0) == 2 +; run: %transplant_40933_i64(2, 2) == 0 +; run: %transplant_40933_i64(13, 1) == 0 +; run: %transplant_40933_i64(13, 13) == 0 +; run: %transplant_40933_i64(42, -1) == -48 +; run: %transplant_40933_i64(42, 42) == 0 +; run: %transplant_40933_i64(63, 2) == 48 +; run: %transplant_40933_i64(63, 63) == 0 +; run: %transplant_40933_i64(64, 13) == 64 +; run: %transplant_40933_i64(64, 64) == 0 +; run: %transplant_40933_i64(65, 42) == 98 +; run: %transplant_40933_i64(65, 65) == 0 +; run: %transplant_40933_i64(6148914691236517205, 64) == 6148914691236517136 +; run: %transplant_40933_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_40933_i64(9223372036854775807, 0) == 9223372036854775794 +; run: %transplant_40933_i64(9223372036854775807, 63) == 9223372036854775744 +; run: %transplant_40933_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_40935_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bor v0, v2 + v4 = iconst.i8 13 + v5 = bxor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40935_i8(-128, -128) == 0 +; run: %transplant_40935_i8(-128, -86) == 42 +; run: %transplant_40935_i8(-128, 0) == -128 +; run: %transplant_40935_i8(-86, -86) == 8 +; run: %transplant_40935_i8(-86, 9) == -85 +; run: %transplant_40935_i8(-1, -1) == 13 +; run: %transplant_40935_i8(-1, 0) == -14 +; run: %transplant_40935_i8(-1, 85) == -89 +; run: %transplant_40935_i8(0, -128) == -128 +; run: %transplant_40935_i8(0, -1) == -1 +; run: %transplant_40935_i8(0, 0) == 0 +; run: %transplant_40935_i8(0, 1) == 1 +; run: %transplant_40935_i8(0, 127) == 127 +; run: %transplant_40935_i8(1, 0) == 0 +; run: %transplant_40935_i8(1, 1) == 1 +; run: %transplant_40935_i8(1, 127) == 127 +; run: %transplant_40935_i8(2, 0) == 2 +; run: %transplant_40935_i8(2, 2) == 0 +; run: %transplant_40935_i8(7, 2) == 0 +; run: %transplant_40935_i8(7, 7) == 5 +; run: %transplant_40935_i8(8, 8) == 8 +; run: %transplant_40935_i8(8, 13) == 13 +; run: %transplant_40935_i8(9, 9) == 9 +; run: %transplant_40935_i8(9, 42) == 42 +; run: %transplant_40935_i8(13, 1) == 1 +; run: %transplant_40935_i8(13, 13) == 13 +; run: %transplant_40935_i8(42, -1) == -35 +; run: %transplant_40935_i8(42, 42) == 8 +; run: %transplant_40935_i8(85, 8) == 88 +; run: %transplant_40935_i8(85, 85) == 5 +; run: %transplant_40935_i8(127, 0) == 114 +; run: %transplant_40935_i8(127, 7) == 117 +; run: %transplant_40935_i8(127, 127) == 13 + +function %transplant_40935_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bor v0, v2 + v4 = iconst.i64 13 + v5 = bxor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40935_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_40935_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258602 +; run: %transplant_40935_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40935_i64(-6148914691236517206, -6148914691236517206) == 8 +; run: %transplant_40935_i64(-6148914691236517206, 65) == -6148914691236517149 +; run: %transplant_40935_i64(-1, -1) == 13 +; run: %transplant_40935_i64(-1, 0) == -14 +; run: %transplant_40935_i64(-1, 6148914691236517205) == -6148914691236517209 +; run: %transplant_40935_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40935_i64(0, -1) == -1 +; run: %transplant_40935_i64(0, 0) == 0 +; run: %transplant_40935_i64(0, 1) == 1 +; run: %transplant_40935_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40935_i64(1, 0) == 0 +; run: %transplant_40935_i64(1, 1) == 1 +; run: %transplant_40935_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_40935_i64(2, 0) == 2 +; run: %transplant_40935_i64(2, 2) == 0 +; run: %transplant_40935_i64(13, 1) == 1 +; run: %transplant_40935_i64(13, 13) == 13 +; run: %transplant_40935_i64(42, -1) == -35 +; run: %transplant_40935_i64(42, 42) == 8 +; run: %transplant_40935_i64(63, 2) == 48 +; run: %transplant_40935_i64(63, 63) == 13 +; run: %transplant_40935_i64(64, 13) == 77 +; run: %transplant_40935_i64(64, 64) == 0 +; run: %transplant_40935_i64(65, 42) == 106 +; run: %transplant_40935_i64(65, 65) == 1 +; run: %transplant_40935_i64(6148914691236517205, 64) == 6148914691236517136 +; run: %transplant_40935_i64(6148914691236517205, 6148914691236517205) == 5 +; run: %transplant_40935_i64(9223372036854775807, 0) == 9223372036854775794 +; run: %transplant_40935_i64(9223372036854775807, 63) == 9223372036854775757 +; run: %transplant_40935_i64(9223372036854775807, 9223372036854775807) == 13 + +function %transplant_40950_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 13 + v3 = bxor v0, v2 + v4 = iconst.i8 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40950_i8(-128, -128) == 0 +; run: %transplant_40950_i8(-128, -86) == 34 +; run: %transplant_40950_i8(-128, 0) == -128 +; run: %transplant_40950_i8(-86, -86) == 8 +; run: %transplant_40950_i8(-86, 9) == -86 +; run: %transplant_40950_i8(-1, -1) == 13 +; run: %transplant_40950_i8(-1, 0) == -1 +; run: %transplant_40950_i8(-1, 85) == -81 +; run: %transplant_40950_i8(0, -128) == -128 +; run: %transplant_40950_i8(0, -1) == -14 +; run: %transplant_40950_i8(0, 0) == 0 +; run: %transplant_40950_i8(0, 1) == 0 +; run: %transplant_40950_i8(0, 127) == 114 +; run: %transplant_40950_i8(1, 0) == 1 +; run: %transplant_40950_i8(1, 1) == 1 +; run: %transplant_40950_i8(1, 127) == 115 +; run: %transplant_40950_i8(2, 0) == 2 +; run: %transplant_40950_i8(2, 2) == 0 +; run: %transplant_40950_i8(7, 2) == 5 +; run: %transplant_40950_i8(7, 7) == 5 +; run: %transplant_40950_i8(8, 8) == 8 +; run: %transplant_40950_i8(8, 13) == 8 +; run: %transplant_40950_i8(9, 9) == 9 +; run: %transplant_40950_i8(9, 42) == 43 +; run: %transplant_40950_i8(13, 1) == 13 +; run: %transplant_40950_i8(13, 13) == 13 +; run: %transplant_40950_i8(42, -1) == -40 +; run: %transplant_40950_i8(42, 42) == 8 +; run: %transplant_40950_i8(85, 8) == 85 +; run: %transplant_40950_i8(85, 85) == 5 +; run: %transplant_40950_i8(127, 0) == 127 +; run: %transplant_40950_i8(127, 7) == 125 +; run: %transplant_40950_i8(127, 127) == 13 + +function %transplant_40950_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 13 + v3 = bxor v0, v2 + v4 = iconst.i64 13 + v5 = bor v1, v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40950_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_40950_i64(-9223372036854775808, -6148914691236517206) == 3074457345618258594 +; run: %transplant_40950_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_40950_i64(-6148914691236517206, -6148914691236517206) == 8 +; run: %transplant_40950_i64(-6148914691236517206, 65) == -6148914691236517142 +; run: %transplant_40950_i64(-1, -1) == 13 +; run: %transplant_40950_i64(-1, 0) == -1 +; run: %transplant_40950_i64(-1, 6148914691236517205) == -6148914691236517201 +; run: %transplant_40950_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_40950_i64(0, -1) == -14 +; run: %transplant_40950_i64(0, 0) == 0 +; run: %transplant_40950_i64(0, 1) == 0 +; run: %transplant_40950_i64(0, 9223372036854775807) == 9223372036854775794 +; run: %transplant_40950_i64(1, 0) == 1 +; run: %transplant_40950_i64(1, 1) == 1 +; run: %transplant_40950_i64(1, 9223372036854775807) == 9223372036854775795 +; run: %transplant_40950_i64(2, 0) == 2 +; run: %transplant_40950_i64(2, 2) == 0 +; run: %transplant_40950_i64(13, 1) == 13 +; run: %transplant_40950_i64(13, 13) == 13 +; run: %transplant_40950_i64(42, -1) == -40 +; run: %transplant_40950_i64(42, 42) == 8 +; run: %transplant_40950_i64(63, 2) == 61 +; run: %transplant_40950_i64(63, 63) == 13 +; run: %transplant_40950_i64(64, 13) == 64 +; run: %transplant_40950_i64(64, 64) == 0 +; run: %transplant_40950_i64(65, 42) == 99 +; run: %transplant_40950_i64(65, 65) == 1 +; run: %transplant_40950_i64(6148914691236517205, 64) == 6148914691236517141 +; run: %transplant_40950_i64(6148914691236517205, 6148914691236517205) == 5 +; run: %transplant_40950_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_40950_i64(9223372036854775807, 63) == 9223372036854775757 +; run: %transplant_40950_i64(9223372036854775807, 9223372036854775807) == 13 + +function %transplant_39206_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39206_i8(-128, -128) == -128 +; run: %transplant_39206_i8(-128, -86) == -128 +; run: %transplant_39206_i8(-128, 0) == -128 +; run: %transplant_39206_i8(-86, -86) == -86 +; run: %transplant_39206_i8(-86, 9) == -86 +; run: %transplant_39206_i8(-1, -1) == -1 +; run: %transplant_39206_i8(-1, 0) == -1 +; run: %transplant_39206_i8(-1, 85) == -86 +; run: %transplant_39206_i8(0, -128) == 0 +; run: %transplant_39206_i8(0, -1) == 0 +; run: %transplant_39206_i8(0, 0) == -1 +; run: %transplant_39206_i8(0, 1) == -2 +; run: %transplant_39206_i8(0, 127) == -128 +; run: %transplant_39206_i8(1, 0) == -1 +; run: %transplant_39206_i8(1, 1) == -2 +; run: %transplant_39206_i8(1, 127) == -128 +; run: %transplant_39206_i8(2, 0) == -1 +; run: %transplant_39206_i8(2, 2) == -3 +; run: %transplant_39206_i8(7, 2) == -3 +; run: %transplant_39206_i8(7, 7) == -8 +; run: %transplant_39206_i8(8, 8) == -9 +; run: %transplant_39206_i8(8, 13) == -14 +; run: %transplant_39206_i8(9, 9) == -10 +; run: %transplant_39206_i8(9, 42) == -43 +; run: %transplant_39206_i8(13, 1) == -2 +; run: %transplant_39206_i8(13, 13) == -14 +; run: %transplant_39206_i8(42, -1) == 0 +; run: %transplant_39206_i8(42, 42) == -43 +; run: %transplant_39206_i8(85, 8) == -9 +; run: %transplant_39206_i8(85, 85) == -86 +; run: %transplant_39206_i8(127, 0) == -1 +; run: %transplant_39206_i8(127, 7) == -8 +; run: %transplant_39206_i8(127, 127) == -128 + +function %transplant_39206_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39206_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39206_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_39206_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_39206_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39206_i64(-6148914691236517206, 65) == -6148914691236517206 +; run: %transplant_39206_i64(-1, -1) == -1 +; run: %transplant_39206_i64(-1, 0) == -1 +; run: %transplant_39206_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39206_i64(0, -9223372036854775808) == 0 +; run: %transplant_39206_i64(0, -1) == 0 +; run: %transplant_39206_i64(0, 0) == -1 +; run: %transplant_39206_i64(0, 1) == -2 +; run: %transplant_39206_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_39206_i64(1, 0) == -1 +; run: %transplant_39206_i64(1, 1) == -2 +; run: %transplant_39206_i64(1, 9223372036854775807) == -9223372036854775808 +; run: %transplant_39206_i64(2, 0) == -1 +; run: %transplant_39206_i64(2, 2) == -3 +; run: %transplant_39206_i64(13, 1) == -2 +; run: %transplant_39206_i64(13, 13) == -14 +; run: %transplant_39206_i64(42, -1) == 0 +; run: %transplant_39206_i64(42, 42) == -43 +; run: %transplant_39206_i64(63, 2) == -3 +; run: %transplant_39206_i64(63, 63) == -64 +; run: %transplant_39206_i64(64, 13) == -14 +; run: %transplant_39206_i64(64, 64) == -65 +; run: %transplant_39206_i64(65, 42) == -43 +; run: %transplant_39206_i64(65, 65) == -66 +; run: %transplant_39206_i64(6148914691236517205, 64) == -65 +; run: %transplant_39206_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39206_i64(9223372036854775807, 0) == -1 +; run: %transplant_39206_i64(9223372036854775807, 63) == -64 +; run: %transplant_39206_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_39207_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = smax v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39207_i8(-128, -128) == -128 +; run: %transplant_39207_i8(-128, -86) == -86 +; run: %transplant_39207_i8(-128, 0) == 0 +; run: %transplant_39207_i8(-86, -86) == -86 +; run: %transplant_39207_i8(-86, 9) == 9 +; run: %transplant_39207_i8(-1, -1) == -1 +; run: %transplant_39207_i8(-1, 0) == 0 +; run: %transplant_39207_i8(-1, 85) == 0 +; run: %transplant_39207_i8(0, -128) == -128 +; run: %transplant_39207_i8(0, -1) == -1 +; run: %transplant_39207_i8(0, 0) == -1 +; run: %transplant_39207_i8(0, 1) == -1 +; run: %transplant_39207_i8(0, 127) == -1 +; run: %transplant_39207_i8(1, 0) == -2 +; run: %transplant_39207_i8(1, 1) == -2 +; run: %transplant_39207_i8(1, 127) == -2 +; run: %transplant_39207_i8(2, 0) == -3 +; run: %transplant_39207_i8(2, 2) == -3 +; run: %transplant_39207_i8(7, 2) == -8 +; run: %transplant_39207_i8(7, 7) == -8 +; run: %transplant_39207_i8(8, 8) == -9 +; run: %transplant_39207_i8(8, 13) == -9 +; run: %transplant_39207_i8(9, 9) == -10 +; run: %transplant_39207_i8(9, 42) == -10 +; run: %transplant_39207_i8(13, 1) == -14 +; run: %transplant_39207_i8(13, 13) == -14 +; run: %transplant_39207_i8(42, -1) == -43 +; run: %transplant_39207_i8(42, 42) == -43 +; run: %transplant_39207_i8(85, 8) == -86 +; run: %transplant_39207_i8(85, 85) == -86 +; run: %transplant_39207_i8(127, 0) == -128 +; run: %transplant_39207_i8(127, 7) == -128 +; run: %transplant_39207_i8(127, 127) == -128 + +function %transplant_39207_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = smax v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39207_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39207_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39207_i64(-9223372036854775808, 0) == 0 +; run: %transplant_39207_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39207_i64(-6148914691236517206, 65) == 65 +; run: %transplant_39207_i64(-1, -1) == -1 +; run: %transplant_39207_i64(-1, 0) == 0 +; run: %transplant_39207_i64(-1, 6148914691236517205) == 0 +; run: %transplant_39207_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39207_i64(0, -1) == -1 +; run: %transplant_39207_i64(0, 0) == -1 +; run: %transplant_39207_i64(0, 1) == -1 +; run: %transplant_39207_i64(0, 9223372036854775807) == -1 +; run: %transplant_39207_i64(1, 0) == -2 +; run: %transplant_39207_i64(1, 1) == -2 +; run: %transplant_39207_i64(1, 9223372036854775807) == -2 +; run: %transplant_39207_i64(2, 0) == -3 +; run: %transplant_39207_i64(2, 2) == -3 +; run: %transplant_39207_i64(13, 1) == -14 +; run: %transplant_39207_i64(13, 13) == -14 +; run: %transplant_39207_i64(42, -1) == -43 +; run: %transplant_39207_i64(42, 42) == -43 +; run: %transplant_39207_i64(63, 2) == -64 +; run: %transplant_39207_i64(63, 63) == -64 +; run: %transplant_39207_i64(64, 13) == -65 +; run: %transplant_39207_i64(64, 64) == -65 +; run: %transplant_39207_i64(65, 42) == -66 +; run: %transplant_39207_i64(65, 65) == -66 +; run: %transplant_39207_i64(6148914691236517205, 64) == -6148914691236517206 +; run: %transplant_39207_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39207_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_39207_i64(9223372036854775807, 63) == -9223372036854775808 +; run: %transplant_39207_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_39214_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39214_i8(-128, -128) == 127 +; run: %transplant_39214_i8(-128, -86) == 85 +; run: %transplant_39214_i8(-128, 0) == -128 +; run: %transplant_39214_i8(-86, -86) == 85 +; run: %transplant_39214_i8(-86, 9) == -86 +; run: %transplant_39214_i8(-1, -1) == 0 +; run: %transplant_39214_i8(-1, 0) == -1 +; run: %transplant_39214_i8(-1, 85) == -86 +; run: %transplant_39214_i8(0, -128) == 0 +; run: %transplant_39214_i8(0, -1) == 0 +; run: %transplant_39214_i8(0, 0) == 0 +; run: %transplant_39214_i8(0, 1) == 0 +; run: %transplant_39214_i8(0, 127) == 0 +; run: %transplant_39214_i8(1, 0) == 1 +; run: %transplant_39214_i8(1, 1) == 1 +; run: %transplant_39214_i8(1, 127) == 1 +; run: %transplant_39214_i8(2, 0) == 2 +; run: %transplant_39214_i8(2, 2) == 2 +; run: %transplant_39214_i8(7, 2) == 7 +; run: %transplant_39214_i8(7, 7) == 7 +; run: %transplant_39214_i8(8, 8) == 8 +; run: %transplant_39214_i8(8, 13) == 8 +; run: %transplant_39214_i8(9, 9) == 9 +; run: %transplant_39214_i8(9, 42) == 9 +; run: %transplant_39214_i8(13, 1) == 13 +; run: %transplant_39214_i8(13, 13) == 13 +; run: %transplant_39214_i8(42, -1) == 0 +; run: %transplant_39214_i8(42, 42) == 42 +; run: %transplant_39214_i8(85, 8) == 85 +; run: %transplant_39214_i8(85, 85) == 85 +; run: %transplant_39214_i8(127, 0) == 127 +; run: %transplant_39214_i8(127, 7) == 127 +; run: %transplant_39214_i8(127, 127) == 127 + +function %transplant_39214_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39214_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_39214_i64(-9223372036854775808, -6148914691236517206) == 6148914691236517205 +; run: %transplant_39214_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_39214_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_39214_i64(-6148914691236517206, 65) == -6148914691236517206 +; run: %transplant_39214_i64(-1, -1) == 0 +; run: %transplant_39214_i64(-1, 0) == -1 +; run: %transplant_39214_i64(-1, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39214_i64(0, -9223372036854775808) == 0 +; run: %transplant_39214_i64(0, -1) == 0 +; run: %transplant_39214_i64(0, 0) == 0 +; run: %transplant_39214_i64(0, 1) == 0 +; run: %transplant_39214_i64(0, 9223372036854775807) == 0 +; run: %transplant_39214_i64(1, 0) == 1 +; run: %transplant_39214_i64(1, 1) == 1 +; run: %transplant_39214_i64(1, 9223372036854775807) == 1 +; run: %transplant_39214_i64(2, 0) == 2 +; run: %transplant_39214_i64(2, 2) == 2 +; run: %transplant_39214_i64(13, 1) == 13 +; run: %transplant_39214_i64(13, 13) == 13 +; run: %transplant_39214_i64(42, -1) == 0 +; run: %transplant_39214_i64(42, 42) == 42 +; run: %transplant_39214_i64(63, 2) == 63 +; run: %transplant_39214_i64(63, 63) == 63 +; run: %transplant_39214_i64(64, 13) == 64 +; run: %transplant_39214_i64(64, 64) == 64 +; run: %transplant_39214_i64(65, 42) == 65 +; run: %transplant_39214_i64(65, 65) == 65 +; run: %transplant_39214_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_39214_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39214_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_39214_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_39214_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39215_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = umax v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39215_i8(-128, -128) == 127 +; run: %transplant_39215_i8(-128, -86) == 127 +; run: %transplant_39215_i8(-128, 0) == 0 +; run: %transplant_39215_i8(-86, -86) == 85 +; run: %transplant_39215_i8(-86, 9) == 9 +; run: %transplant_39215_i8(-1, -1) == 0 +; run: %transplant_39215_i8(-1, 0) == 0 +; run: %transplant_39215_i8(-1, 85) == 0 +; run: %transplant_39215_i8(0, -128) == -128 +; run: %transplant_39215_i8(0, -1) == -1 +; run: %transplant_39215_i8(0, 0) == 0 +; run: %transplant_39215_i8(0, 1) == 1 +; run: %transplant_39215_i8(0, 127) == 127 +; run: %transplant_39215_i8(1, 0) == 0 +; run: %transplant_39215_i8(1, 1) == 1 +; run: %transplant_39215_i8(1, 127) == 127 +; run: %transplant_39215_i8(2, 0) == 0 +; run: %transplant_39215_i8(2, 2) == 2 +; run: %transplant_39215_i8(7, 2) == 2 +; run: %transplant_39215_i8(7, 7) == 7 +; run: %transplant_39215_i8(8, 8) == 8 +; run: %transplant_39215_i8(8, 13) == 13 +; run: %transplant_39215_i8(9, 9) == 9 +; run: %transplant_39215_i8(9, 42) == 42 +; run: %transplant_39215_i8(13, 1) == 1 +; run: %transplant_39215_i8(13, 13) == 13 +; run: %transplant_39215_i8(42, -1) == -43 +; run: %transplant_39215_i8(42, 42) == 42 +; run: %transplant_39215_i8(85, 8) == 8 +; run: %transplant_39215_i8(85, 85) == 85 +; run: %transplant_39215_i8(127, 0) == 0 +; run: %transplant_39215_i8(127, 7) == 7 +; run: %transplant_39215_i8(127, 127) == 127 + +function %transplant_39215_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = umax v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39215_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_39215_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_39215_i64(-9223372036854775808, 0) == 0 +; run: %transplant_39215_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_39215_i64(-6148914691236517206, 65) == 65 +; run: %transplant_39215_i64(-1, -1) == 0 +; run: %transplant_39215_i64(-1, 0) == 0 +; run: %transplant_39215_i64(-1, 6148914691236517205) == 0 +; run: %transplant_39215_i64(0, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39215_i64(0, -1) == -1 +; run: %transplant_39215_i64(0, 0) == 0 +; run: %transplant_39215_i64(0, 1) == 1 +; run: %transplant_39215_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_39215_i64(1, 0) == 0 +; run: %transplant_39215_i64(1, 1) == 1 +; run: %transplant_39215_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_39215_i64(2, 0) == 0 +; run: %transplant_39215_i64(2, 2) == 2 +; run: %transplant_39215_i64(13, 1) == 1 +; run: %transplant_39215_i64(13, 13) == 13 +; run: %transplant_39215_i64(42, -1) == -43 +; run: %transplant_39215_i64(42, 42) == 42 +; run: %transplant_39215_i64(63, 2) == 2 +; run: %transplant_39215_i64(63, 63) == 63 +; run: %transplant_39215_i64(64, 13) == 13 +; run: %transplant_39215_i64(64, 64) == 64 +; run: %transplant_39215_i64(65, 42) == 42 +; run: %transplant_39215_i64(65, 65) == 65 +; run: %transplant_39215_i64(6148914691236517205, 64) == 64 +; run: %transplant_39215_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39215_i64(9223372036854775807, 0) == 0 +; run: %transplant_39215_i64(9223372036854775807, 63) == 63 +; run: %transplant_39215_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39208_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39208_i8(-128, -128) == 127 +; run: %transplant_39208_i8(-128, -86) == 85 +; run: %transplant_39208_i8(-128, 0) == -1 +; run: %transplant_39208_i8(-86, -86) == 85 +; run: %transplant_39208_i8(-86, 9) == -10 +; run: %transplant_39208_i8(-1, -1) == 0 +; run: %transplant_39208_i8(-1, 0) == -1 +; run: %transplant_39208_i8(-1, 85) == -1 +; run: %transplant_39208_i8(0, -128) == 127 +; run: %transplant_39208_i8(0, -1) == 0 +; run: %transplant_39208_i8(0, 0) == 0 +; run: %transplant_39208_i8(0, 1) == 0 +; run: %transplant_39208_i8(0, 127) == 0 +; run: %transplant_39208_i8(1, 0) == 1 +; run: %transplant_39208_i8(1, 1) == 1 +; run: %transplant_39208_i8(1, 127) == 1 +; run: %transplant_39208_i8(2, 0) == 2 +; run: %transplant_39208_i8(2, 2) == 2 +; run: %transplant_39208_i8(7, 2) == 7 +; run: %transplant_39208_i8(7, 7) == 7 +; run: %transplant_39208_i8(8, 8) == 8 +; run: %transplant_39208_i8(8, 13) == 8 +; run: %transplant_39208_i8(9, 9) == 9 +; run: %transplant_39208_i8(9, 42) == 9 +; run: %transplant_39208_i8(13, 1) == 13 +; run: %transplant_39208_i8(13, 13) == 13 +; run: %transplant_39208_i8(42, -1) == 42 +; run: %transplant_39208_i8(42, 42) == 42 +; run: %transplant_39208_i8(85, 8) == 85 +; run: %transplant_39208_i8(85, 85) == 85 +; run: %transplant_39208_i8(127, 0) == 127 +; run: %transplant_39208_i8(127, 7) == 127 +; run: %transplant_39208_i8(127, 127) == 127 + +function %transplant_39208_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39208_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_39208_i64(-9223372036854775808, -6148914691236517206) == 6148914691236517205 +; run: %transplant_39208_i64(-9223372036854775808, 0) == -1 +; run: %transplant_39208_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_39208_i64(-6148914691236517206, 65) == -66 +; run: %transplant_39208_i64(-1, -1) == 0 +; run: %transplant_39208_i64(-1, 0) == -1 +; run: %transplant_39208_i64(-1, 6148914691236517205) == -1 +; run: %transplant_39208_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_39208_i64(0, -1) == 0 +; run: %transplant_39208_i64(0, 0) == 0 +; run: %transplant_39208_i64(0, 1) == 0 +; run: %transplant_39208_i64(0, 9223372036854775807) == 0 +; run: %transplant_39208_i64(1, 0) == 1 +; run: %transplant_39208_i64(1, 1) == 1 +; run: %transplant_39208_i64(1, 9223372036854775807) == 1 +; run: %transplant_39208_i64(2, 0) == 2 +; run: %transplant_39208_i64(2, 2) == 2 +; run: %transplant_39208_i64(13, 1) == 13 +; run: %transplant_39208_i64(13, 13) == 13 +; run: %transplant_39208_i64(42, -1) == 42 +; run: %transplant_39208_i64(42, 42) == 42 +; run: %transplant_39208_i64(63, 2) == 63 +; run: %transplant_39208_i64(63, 63) == 63 +; run: %transplant_39208_i64(64, 13) == 64 +; run: %transplant_39208_i64(64, 64) == 64 +; run: %transplant_39208_i64(65, 42) == 65 +; run: %transplant_39208_i64(65, 65) == 65 +; run: %transplant_39208_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_39208_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39208_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_39208_i64(9223372036854775807, 63) == 9223372036854775807 +; run: %transplant_39208_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39209_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = smin v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39209_i8(-128, -128) == 127 +; run: %transplant_39209_i8(-128, -86) == 127 +; run: %transplant_39209_i8(-128, 0) == 127 +; run: %transplant_39209_i8(-86, -86) == 85 +; run: %transplant_39209_i8(-86, 9) == 85 +; run: %transplant_39209_i8(-1, -1) == 0 +; run: %transplant_39209_i8(-1, 0) == 0 +; run: %transplant_39209_i8(-1, 85) == 85 +; run: %transplant_39209_i8(0, -128) == -1 +; run: %transplant_39209_i8(0, -1) == -1 +; run: %transplant_39209_i8(0, 0) == 0 +; run: %transplant_39209_i8(0, 1) == 1 +; run: %transplant_39209_i8(0, 127) == 127 +; run: %transplant_39209_i8(1, 0) == 0 +; run: %transplant_39209_i8(1, 1) == 1 +; run: %transplant_39209_i8(1, 127) == 127 +; run: %transplant_39209_i8(2, 0) == 0 +; run: %transplant_39209_i8(2, 2) == 2 +; run: %transplant_39209_i8(7, 2) == 2 +; run: %transplant_39209_i8(7, 7) == 7 +; run: %transplant_39209_i8(8, 8) == 8 +; run: %transplant_39209_i8(8, 13) == 13 +; run: %transplant_39209_i8(9, 9) == 9 +; run: %transplant_39209_i8(9, 42) == 42 +; run: %transplant_39209_i8(13, 1) == 1 +; run: %transplant_39209_i8(13, 13) == 13 +; run: %transplant_39209_i8(42, -1) == -1 +; run: %transplant_39209_i8(42, 42) == 42 +; run: %transplant_39209_i8(85, 8) == 8 +; run: %transplant_39209_i8(85, 85) == 85 +; run: %transplant_39209_i8(127, 0) == 0 +; run: %transplant_39209_i8(127, 7) == 7 +; run: %transplant_39209_i8(127, 127) == 127 + +function %transplant_39209_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = smin v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39209_i64(-9223372036854775808, -9223372036854775808) == 9223372036854775807 +; run: %transplant_39209_i64(-9223372036854775808, -6148914691236517206) == 9223372036854775807 +; run: %transplant_39209_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_39209_i64(-6148914691236517206, -6148914691236517206) == 6148914691236517205 +; run: %transplant_39209_i64(-6148914691236517206, 65) == 6148914691236517205 +; run: %transplant_39209_i64(-1, -1) == 0 +; run: %transplant_39209_i64(-1, 0) == 0 +; run: %transplant_39209_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39209_i64(0, -9223372036854775808) == -1 +; run: %transplant_39209_i64(0, -1) == -1 +; run: %transplant_39209_i64(0, 0) == 0 +; run: %transplant_39209_i64(0, 1) == 1 +; run: %transplant_39209_i64(0, 9223372036854775807) == 9223372036854775807 +; run: %transplant_39209_i64(1, 0) == 0 +; run: %transplant_39209_i64(1, 1) == 1 +; run: %transplant_39209_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_39209_i64(2, 0) == 0 +; run: %transplant_39209_i64(2, 2) == 2 +; run: %transplant_39209_i64(13, 1) == 1 +; run: %transplant_39209_i64(13, 13) == 13 +; run: %transplant_39209_i64(42, -1) == -1 +; run: %transplant_39209_i64(42, 42) == 42 +; run: %transplant_39209_i64(63, 2) == 2 +; run: %transplant_39209_i64(63, 63) == 63 +; run: %transplant_39209_i64(64, 13) == 13 +; run: %transplant_39209_i64(64, 64) == 64 +; run: %transplant_39209_i64(65, 42) == 42 +; run: %transplant_39209_i64(65, 65) == 65 +; run: %transplant_39209_i64(6148914691236517205, 64) == 64 +; run: %transplant_39209_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39209_i64(9223372036854775807, 0) == 0 +; run: %transplant_39209_i64(9223372036854775807, 63) == 63 +; run: %transplant_39209_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_39216_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39216_i8(-128, -128) == -128 +; run: %transplant_39216_i8(-128, -86) == -128 +; run: %transplant_39216_i8(-128, 0) == -1 +; run: %transplant_39216_i8(-86, -86) == -86 +; run: %transplant_39216_i8(-86, 9) == -10 +; run: %transplant_39216_i8(-1, -1) == -1 +; run: %transplant_39216_i8(-1, 0) == -1 +; run: %transplant_39216_i8(-1, 85) == -1 +; run: %transplant_39216_i8(0, -128) == 127 +; run: %transplant_39216_i8(0, -1) == 0 +; run: %transplant_39216_i8(0, 0) == -1 +; run: %transplant_39216_i8(0, 1) == -2 +; run: %transplant_39216_i8(0, 127) == -128 +; run: %transplant_39216_i8(1, 0) == -1 +; run: %transplant_39216_i8(1, 1) == -2 +; run: %transplant_39216_i8(1, 127) == -128 +; run: %transplant_39216_i8(2, 0) == -1 +; run: %transplant_39216_i8(2, 2) == -3 +; run: %transplant_39216_i8(7, 2) == -3 +; run: %transplant_39216_i8(7, 7) == -8 +; run: %transplant_39216_i8(8, 8) == -9 +; run: %transplant_39216_i8(8, 13) == -14 +; run: %transplant_39216_i8(9, 9) == -10 +; run: %transplant_39216_i8(9, 42) == -43 +; run: %transplant_39216_i8(13, 1) == -2 +; run: %transplant_39216_i8(13, 13) == -14 +; run: %transplant_39216_i8(42, -1) == 42 +; run: %transplant_39216_i8(42, 42) == -43 +; run: %transplant_39216_i8(85, 8) == -9 +; run: %transplant_39216_i8(85, 85) == -86 +; run: %transplant_39216_i8(127, 0) == -1 +; run: %transplant_39216_i8(127, 7) == -8 +; run: %transplant_39216_i8(127, 127) == -128 + +function %transplant_39216_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39216_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39216_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_39216_i64(-9223372036854775808, 0) == -1 +; run: %transplant_39216_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39216_i64(-6148914691236517206, 65) == -66 +; run: %transplant_39216_i64(-1, -1) == -1 +; run: %transplant_39216_i64(-1, 0) == -1 +; run: %transplant_39216_i64(-1, 6148914691236517205) == -1 +; run: %transplant_39216_i64(0, -9223372036854775808) == 9223372036854775807 +; run: %transplant_39216_i64(0, -1) == 0 +; run: %transplant_39216_i64(0, 0) == -1 +; run: %transplant_39216_i64(0, 1) == -2 +; run: %transplant_39216_i64(0, 9223372036854775807) == -9223372036854775808 +; run: %transplant_39216_i64(1, 0) == -1 +; run: %transplant_39216_i64(1, 1) == -2 +; run: %transplant_39216_i64(1, 9223372036854775807) == -9223372036854775808 +; run: %transplant_39216_i64(2, 0) == -1 +; run: %transplant_39216_i64(2, 2) == -3 +; run: %transplant_39216_i64(13, 1) == -2 +; run: %transplant_39216_i64(13, 13) == -14 +; run: %transplant_39216_i64(42, -1) == 42 +; run: %transplant_39216_i64(42, 42) == -43 +; run: %transplant_39216_i64(63, 2) == -3 +; run: %transplant_39216_i64(63, 63) == -64 +; run: %transplant_39216_i64(64, 13) == -14 +; run: %transplant_39216_i64(64, 64) == -65 +; run: %transplant_39216_i64(65, 42) == -43 +; run: %transplant_39216_i64(65, 65) == -66 +; run: %transplant_39216_i64(6148914691236517205, 64) == -65 +; run: %transplant_39216_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39216_i64(9223372036854775807, 0) == -1 +; run: %transplant_39216_i64(9223372036854775807, 63) == -64 +; run: %transplant_39216_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 + +function %transplant_39217_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = umin v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39217_i8(-128, -128) == -128 +; run: %transplant_39217_i8(-128, -86) == -86 +; run: %transplant_39217_i8(-128, 0) == 127 +; run: %transplant_39217_i8(-86, -86) == -86 +; run: %transplant_39217_i8(-86, 9) == 85 +; run: %transplant_39217_i8(-1, -1) == -1 +; run: %transplant_39217_i8(-1, 0) == 0 +; run: %transplant_39217_i8(-1, 85) == 85 +; run: %transplant_39217_i8(0, -128) == -1 +; run: %transplant_39217_i8(0, -1) == -1 +; run: %transplant_39217_i8(0, 0) == -1 +; run: %transplant_39217_i8(0, 1) == -1 +; run: %transplant_39217_i8(0, 127) == -1 +; run: %transplant_39217_i8(1, 0) == -2 +; run: %transplant_39217_i8(1, 1) == -2 +; run: %transplant_39217_i8(1, 127) == -2 +; run: %transplant_39217_i8(2, 0) == -3 +; run: %transplant_39217_i8(2, 2) == -3 +; run: %transplant_39217_i8(7, 2) == -8 +; run: %transplant_39217_i8(7, 7) == -8 +; run: %transplant_39217_i8(8, 8) == -9 +; run: %transplant_39217_i8(8, 13) == -9 +; run: %transplant_39217_i8(9, 9) == -10 +; run: %transplant_39217_i8(9, 42) == -10 +; run: %transplant_39217_i8(13, 1) == -14 +; run: %transplant_39217_i8(13, 13) == -14 +; run: %transplant_39217_i8(42, -1) == -1 +; run: %transplant_39217_i8(42, 42) == -43 +; run: %transplant_39217_i8(85, 8) == -86 +; run: %transplant_39217_i8(85, 85) == -86 +; run: %transplant_39217_i8(127, 0) == -128 +; run: %transplant_39217_i8(127, 7) == -128 +; run: %transplant_39217_i8(127, 127) == -128 + +function %transplant_39217_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = umin v0, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39217_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39217_i64(-9223372036854775808, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39217_i64(-9223372036854775808, 0) == 9223372036854775807 +; run: %transplant_39217_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39217_i64(-6148914691236517206, 65) == 6148914691236517205 +; run: %transplant_39217_i64(-1, -1) == -1 +; run: %transplant_39217_i64(-1, 0) == 0 +; run: %transplant_39217_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_39217_i64(0, -9223372036854775808) == -1 +; run: %transplant_39217_i64(0, -1) == -1 +; run: %transplant_39217_i64(0, 0) == -1 +; run: %transplant_39217_i64(0, 1) == -1 +; run: %transplant_39217_i64(0, 9223372036854775807) == -1 +; run: %transplant_39217_i64(1, 0) == -2 +; run: %transplant_39217_i64(1, 1) == -2 +; run: %transplant_39217_i64(1, 9223372036854775807) == -2 +; run: %transplant_39217_i64(2, 0) == -3 +; run: %transplant_39217_i64(2, 2) == -3 +; run: %transplant_39217_i64(13, 1) == -14 +; run: %transplant_39217_i64(13, 13) == -14 +; run: %transplant_39217_i64(42, -1) == -1 +; run: %transplant_39217_i64(42, 42) == -43 +; run: %transplant_39217_i64(63, 2) == -64 +; run: %transplant_39217_i64(63, 63) == -64 +; run: %transplant_39217_i64(64, 13) == -65 +; run: %transplant_39217_i64(64, 64) == -65 +; run: %transplant_39217_i64(65, 42) == -66 +; run: %transplant_39217_i64(65, 65) == -66 +; run: %transplant_39217_i64(6148914691236517205, 64) == -6148914691236517206 +; run: %transplant_39217_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39217_i64(9223372036854775807, 0) == -9223372036854775808 +; run: %transplant_39217_i64(9223372036854775807, 63) == -9223372036854775808 +; run: %transplant_39217_i64(9223372036854775807, 9223372036854775807) == -9223372036854775808 diff --git a/cranelift/filetests/filetests/runtests/i128-bitops.clif b/cranelift/filetests/filetests/runtests/i128-bitops.clif index 430aa9c99f90..6be73cc57c3b 100644 --- a/cranelift/filetests/filetests/runtests/i128-bitops.clif +++ b/cranelift/filetests/filetests/runtests/i128-bitops.clif @@ -95,3 +95,1804 @@ block0(v0: i128): ; run: %bnot_xor_constant_i128_guard(-1) == 85 ; run: %bnot_xor_constant_i128_guard(0x80000000000000000000000000000000) == 0x7fffffffffffffffffffffffffffffaa ; run: %bnot_xor_constant_i128_guard(0x7fffffffffffffffffffffffffffffff) == -170141183460469231731687303715884105643 + +function %transplant_41834_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} +; run: %transplant_41834_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41834_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41834_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_41834_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41834_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070614 +; run: %transplant_41834_i128(-1, -1) == 0 +; run: %transplant_41834_i128(-1, 0) == -1 +; run: %transplant_41834_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41834_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41834_i128(0, -1) == 0 +; run: %transplant_41834_i128(0, 0) == 0 +; run: %transplant_41834_i128(0, 1) == 0 +; run: %transplant_41834_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41834_i128(1, 0) == 1 +; run: %transplant_41834_i128(1, 1) == 0 +; run: %transplant_41834_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41834_i128(2, 0) == 2 +; run: %transplant_41834_i128(2, 2) == 0 +; run: %transplant_41834_i128(13, 1) == 12 +; run: %transplant_41834_i128(13, 13) == 0 +; run: %transplant_41834_i128(42, -1) == 0 +; run: %transplant_41834_i128(42, 42) == 0 +; run: %transplant_41834_i128(127, 2) == 125 +; run: %transplant_41834_i128(127, 127) == 0 +; run: %transplant_41834_i128(128, 13) == 128 +; run: %transplant_41834_i128(128, 128) == 0 +; run: %transplant_41834_i128(129, 42) == 129 +; run: %transplant_41834_i128(129, 129) == 0 +; run: %transplant_41834_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070485 +; run: %transplant_41834_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41834_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_41834_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_41834_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41772_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41772_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41772_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035242 +; run: %transplant_41772_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_41772_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41772_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070613 +; run: %transplant_41772_i128(-1, -1) == 0 +; run: %transplant_41772_i128(-1, 0) == -1 +; run: %transplant_41772_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41772_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_41772_i128(0, -1) == -1 +; run: %transplant_41772_i128(0, 0) == 0 +; run: %transplant_41772_i128(0, 1) == 1 +; run: %transplant_41772_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_41772_i128(1, 0) == 1 +; run: %transplant_41772_i128(1, 1) == 0 +; run: %transplant_41772_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105726 +; run: %transplant_41772_i128(2, 0) == 2 +; run: %transplant_41772_i128(2, 2) == 0 +; run: %transplant_41772_i128(13, 1) == 12 +; run: %transplant_41772_i128(13, 13) == 0 +; run: %transplant_41772_i128(42, -1) == -43 +; run: %transplant_41772_i128(42, 42) == 0 +; run: %transplant_41772_i128(127, 2) == 125 +; run: %transplant_41772_i128(127, 127) == 0 +; run: %transplant_41772_i128(128, 13) == 141 +; run: %transplant_41772_i128(128, 128) == 0 +; run: %transplant_41772_i128(129, 42) == 171 +; run: %transplant_41772_i128(129, 129) == 0 +; run: %transplant_41772_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_41772_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41772_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_41772_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_41772_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_44291_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} +; run: %transplant_44291_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_44291_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 170141183460469231731687303715884105727 +; run: %transplant_44291_i128(-170141183460469231731687303715884105728, 0) == 170141183460469231731687303715884105727 +; run: %transplant_44291_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_44291_i128(-113427455640312821154458202477256070486, 129) == 113427455640312821154458202477256070485 +; run: %transplant_44291_i128(-1, -1) == 0 +; run: %transplant_44291_i128(-1, 0) == 0 +; run: %transplant_44291_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_44291_i128(0, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_44291_i128(0, -1) == 0 +; run: %transplant_44291_i128(0, 0) == -1 +; run: %transplant_44291_i128(0, 1) == -1 +; run: %transplant_44291_i128(0, 170141183460469231731687303715884105727) == -1 +; run: %transplant_44291_i128(1, 0) == -1 +; run: %transplant_44291_i128(1, 1) == -2 +; run: %transplant_44291_i128(1, 170141183460469231731687303715884105727) == -2 +; run: %transplant_44291_i128(2, 0) == -1 +; run: %transplant_44291_i128(2, 2) == -3 +; run: %transplant_44291_i128(13, 1) == -2 +; run: %transplant_44291_i128(13, 13) == -14 +; run: %transplant_44291_i128(42, -1) == 0 +; run: %transplant_44291_i128(42, 42) == -43 +; run: %transplant_44291_i128(127, 2) == -3 +; run: %transplant_44291_i128(127, 127) == -128 +; run: %transplant_44291_i128(128, 13) == -14 +; run: %transplant_44291_i128(128, 128) == -129 +; run: %transplant_44291_i128(129, 42) == -43 +; run: %transplant_44291_i128(129, 129) == -130 +; run: %transplant_44291_i128(113427455640312821154458202477256070485, 128) == -129 +; run: %transplant_44291_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_44291_i128(170141183460469231731687303715884105727, 0) == -1 +; run: %transplant_44291_i128(170141183460469231731687303715884105727, 127) == -128 +; run: %transplant_44291_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_45214_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} +; run: %transplant_45214_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_45214_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 170141183460469231731687303715884105727 +; run: %transplant_45214_i128(-170141183460469231731687303715884105728, 0) == -1 +; run: %transplant_45214_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_45214_i128(-113427455640312821154458202477256070486, 129) == -130 +; run: %transplant_45214_i128(-1, -1) == 0 +; run: %transplant_45214_i128(-1, 0) == -1 +; run: %transplant_45214_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_45214_i128(0, -170141183460469231731687303715884105728) == -1 +; run: %transplant_45214_i128(0, -1) == -1 +; run: %transplant_45214_i128(0, 0) == -1 +; run: %transplant_45214_i128(0, 1) == -1 +; run: %transplant_45214_i128(0, 170141183460469231731687303715884105727) == -1 +; run: %transplant_45214_i128(1, 0) == -1 +; run: %transplant_45214_i128(1, 1) == -2 +; run: %transplant_45214_i128(1, 170141183460469231731687303715884105727) == -2 +; run: %transplant_45214_i128(2, 0) == -1 +; run: %transplant_45214_i128(2, 2) == -3 +; run: %transplant_45214_i128(13, 1) == -2 +; run: %transplant_45214_i128(13, 13) == -14 +; run: %transplant_45214_i128(42, -1) == -43 +; run: %transplant_45214_i128(42, 42) == -43 +; run: %transplant_45214_i128(127, 2) == -3 +; run: %transplant_45214_i128(127, 127) == -128 +; run: %transplant_45214_i128(128, 13) == -14 +; run: %transplant_45214_i128(128, 128) == -129 +; run: %transplant_45214_i128(129, 42) == -43 +; run: %transplant_45214_i128(129, 129) == -130 +; run: %transplant_45214_i128(113427455640312821154458202477256070485, 128) == -129 +; run: %transplant_45214_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_45214_i128(170141183460469231731687303715884105727, 0) == -1 +; run: %transplant_45214_i128(170141183460469231731687303715884105727, 127) == -128 +; run: %transplant_45214_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_44346_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} +; run: %transplant_44346_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_44346_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_44346_i128(-170141183460469231731687303715884105728, 0) == -1 +; run: %transplant_44346_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_44346_i128(-113427455640312821154458202477256070486, 129) == -130 +; run: %transplant_44346_i128(-1, -1) == 0 +; run: %transplant_44346_i128(-1, 0) == -1 +; run: %transplant_44346_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_44346_i128(0, -170141183460469231731687303715884105728) == -1 +; run: %transplant_44346_i128(0, -1) == -1 +; run: %transplant_44346_i128(0, 0) == -1 +; run: %transplant_44346_i128(0, 1) == -2 +; run: %transplant_44346_i128(0, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_44346_i128(1, 0) == -2 +; run: %transplant_44346_i128(1, 1) == -2 +; run: %transplant_44346_i128(1, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_44346_i128(2, 0) == -3 +; run: %transplant_44346_i128(2, 2) == -3 +; run: %transplant_44346_i128(13, 1) == -14 +; run: %transplant_44346_i128(13, 13) == -14 +; run: %transplant_44346_i128(42, -1) == -43 +; run: %transplant_44346_i128(42, 42) == -43 +; run: %transplant_44346_i128(127, 2) == -128 +; run: %transplant_44346_i128(127, 127) == -128 +; run: %transplant_44346_i128(128, 13) == -129 +; run: %transplant_44346_i128(128, 128) == -129 +; run: %transplant_44346_i128(129, 42) == -130 +; run: %transplant_44346_i128(129, 129) == -130 +; run: %transplant_44346_i128(113427455640312821154458202477256070485, 128) == -113427455640312821154458202477256070486 +; run: %transplant_44346_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_44346_i128(170141183460469231731687303715884105727, 0) == -170141183460469231731687303715884105728 +; run: %transplant_44346_i128(170141183460469231731687303715884105727, 127) == -170141183460469231731687303715884105728 +; run: %transplant_44346_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_45269_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} +; run: %transplant_45269_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_45269_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_45269_i128(-170141183460469231731687303715884105728, 0) == 170141183460469231731687303715884105727 +; run: %transplant_45269_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_45269_i128(-113427455640312821154458202477256070486, 129) == 113427455640312821154458202477256070485 +; run: %transplant_45269_i128(-1, -1) == 0 +; run: %transplant_45269_i128(-1, 0) == 0 +; run: %transplant_45269_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_45269_i128(0, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_45269_i128(0, -1) == 0 +; run: %transplant_45269_i128(0, 0) == -1 +; run: %transplant_45269_i128(0, 1) == -2 +; run: %transplant_45269_i128(0, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_45269_i128(1, 0) == -2 +; run: %transplant_45269_i128(1, 1) == -2 +; run: %transplant_45269_i128(1, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_45269_i128(2, 0) == -3 +; run: %transplant_45269_i128(2, 2) == -3 +; run: %transplant_45269_i128(13, 1) == -14 +; run: %transplant_45269_i128(13, 13) == -14 +; run: %transplant_45269_i128(42, -1) == 0 +; run: %transplant_45269_i128(42, 42) == -43 +; run: %transplant_45269_i128(127, 2) == -128 +; run: %transplant_45269_i128(127, 127) == -128 +; run: %transplant_45269_i128(128, 13) == -129 +; run: %transplant_45269_i128(128, 128) == -129 +; run: %transplant_45269_i128(129, 42) == -130 +; run: %transplant_45269_i128(129, 129) == -130 +; run: %transplant_45269_i128(113427455640312821154458202477256070485, 128) == -113427455640312821154458202477256070486 +; run: %transplant_45269_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_45269_i128(170141183460469231731687303715884105727, 0) == -170141183460469231731687303715884105728 +; run: %transplant_45269_i128(170141183460469231731687303715884105727, 127) == -170141183460469231731687303715884105728 +; run: %transplant_45269_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_42334_i128(i128) -> i128 { +block0(v0: i128): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} +; run: %transplant_42334_i128(-170141183460469231731687303715884105728) == 1 +; run: %transplant_42334_i128(-113427455640312821154458202477256070486) == 1 +; run: %transplant_42334_i128(-1) == 1 +; run: %transplant_42334_i128(0) == 1 +; run: %transplant_42334_i128(1) == 1 +; run: %transplant_42334_i128(2) == 1 +; run: %transplant_42334_i128(13) == 1 +; run: %transplant_42334_i128(42) == 1 +; run: %transplant_42334_i128(127) == 1 +; run: %transplant_42334_i128(128) == 1 +; run: %transplant_42334_i128(129) == 1 +; run: %transplant_42334_i128(113427455640312821154458202477256070485) == 1 +; run: %transplant_42334_i128(170141183460469231731687303715884105727) == 1 + +function %transplant_41604_i128(i128) -> i128 { +block0(v0: i128): + v1 = bnot v0 + v2 = iconst.i64 13 + v3 = sextend.i128 v2 + v4 = iadd v1, v3 + return v4 +} +; run: %transplant_41604_i128(-170141183460469231731687303715884105728) == -170141183460469231731687303715884105716 +; run: %transplant_41604_i128(-113427455640312821154458202477256070486) == 113427455640312821154458202477256070498 +; run: %transplant_41604_i128(-1) == 13 +; run: %transplant_41604_i128(0) == 12 +; run: %transplant_41604_i128(1) == 11 +; run: %transplant_41604_i128(2) == 10 +; run: %transplant_41604_i128(13) == -1 +; run: %transplant_41604_i128(42) == -30 +; run: %transplant_41604_i128(127) == -115 +; run: %transplant_41604_i128(128) == -116 +; run: %transplant_41604_i128(129) == -117 +; run: %transplant_41604_i128(113427455640312821154458202477256070485) == -113427455640312821154458202477256070473 +; run: %transplant_41604_i128(170141183460469231731687303715884105727) == -170141183460469231731687303715884105715 + +function %transplant_42176_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = bor v0, v2 + v4 = iconst.i64 13 + v5 = sextend.i128 v4 + v6 = isub v3, v5 + return v6 +} +; run: %transplant_42176_i128(-170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_42176_i128(-113427455640312821154458202477256070486) == -113427455640312821154458202477256070494 +; run: %transplant_42176_i128(-1) == -14 +; run: %transplant_42176_i128(0) == 0 +; run: %transplant_42176_i128(1) == 0 +; run: %transplant_42176_i128(2) == 2 +; run: %transplant_42176_i128(13) == 0 +; run: %transplant_42176_i128(42) == 34 +; run: %transplant_42176_i128(127) == 114 +; run: %transplant_42176_i128(128) == 128 +; run: %transplant_42176_i128(129) == 128 +; run: %transplant_42176_i128(113427455640312821154458202477256070485) == 113427455640312821154458202477256070480 +; run: %transplant_42176_i128(170141183460469231731687303715884105727) == 170141183460469231731687303715884105714 + +function %transplant_41951_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = iconst.i64 13 + v4 = sextend.i128 v3 + v5 = imul v2, v4 + return v5 +} +; run: %transplant_41951_i128(-170141183460469231731687303715884105728) == 0 +; run: %transplant_41951_i128(-113427455640312821154458202477256070486) == 113427455640312821154458202477256070468 +; run: %transplant_41951_i128(-1) == -26 +; run: %transplant_41951_i128(0) == 0 +; run: %transplant_41951_i128(1) == 26 +; run: %transplant_41951_i128(2) == 52 +; run: %transplant_41951_i128(13) == 338 +; run: %transplant_41951_i128(42) == 1092 +; run: %transplant_41951_i128(127) == 3302 +; run: %transplant_41951_i128(128) == 3328 +; run: %transplant_41951_i128(129) == 3354 +; run: %transplant_41951_i128(113427455640312821154458202477256070485) == -113427455640312821154458202477256070494 +; run: %transplant_41951_i128(170141183460469231731687303715884105727) == -26 + +function %transplant_41059_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} +; run: %transplant_41059_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_41059_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 170141183460469231731687303715884105727 +; run: %transplant_41059_i128(-170141183460469231731687303715884105728, 0) == -1 +; run: %transplant_41059_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_41059_i128(-113427455640312821154458202477256070486, 129) == -129 +; run: %transplant_41059_i128(-1, -1) == 0 +; run: %transplant_41059_i128(-1, 0) == -1 +; run: %transplant_41059_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41059_i128(0, -170141183460469231731687303715884105728) == -1 +; run: %transplant_41059_i128(0, -1) == -1 +; run: %transplant_41059_i128(0, 0) == -1 +; run: %transplant_41059_i128(0, 1) == -1 +; run: %transplant_41059_i128(0, 170141183460469231731687303715884105727) == -1 +; run: %transplant_41059_i128(1, 0) == -1 +; run: %transplant_41059_i128(1, 1) == -2 +; run: %transplant_41059_i128(1, 170141183460469231731687303715884105727) == -2 +; run: %transplant_41059_i128(2, 0) == -1 +; run: %transplant_41059_i128(2, 2) == -3 +; run: %transplant_41059_i128(13, 1) == -2 +; run: %transplant_41059_i128(13, 13) == -14 +; run: %transplant_41059_i128(42, -1) == -43 +; run: %transplant_41059_i128(42, 42) == -43 +; run: %transplant_41059_i128(127, 2) == -3 +; run: %transplant_41059_i128(127, 127) == -128 +; run: %transplant_41059_i128(128, 13) == -1 +; run: %transplant_41059_i128(128, 128) == -129 +; run: %transplant_41059_i128(129, 42) == -1 +; run: %transplant_41059_i128(129, 129) == -130 +; run: %transplant_41059_i128(113427455640312821154458202477256070485, 128) == -1 +; run: %transplant_41059_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41059_i128(170141183460469231731687303715884105727, 0) == -1 +; run: %transplant_41059_i128(170141183460469231731687303715884105727, 127) == -128 +; run: %transplant_41059_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_38578_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38578_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_38578_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -170141183460469231731687303715884105728 +; run: %transplant_38578_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_38578_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_38578_i128(-113427455640312821154458202477256070486, 129) == 128 +; run: %transplant_38578_i128(-1, -1) == -1 +; run: %transplant_38578_i128(-1, 0) == 0 +; run: %transplant_38578_i128(-1, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_38578_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_38578_i128(0, -1) == 0 +; run: %transplant_38578_i128(0, 0) == 0 +; run: %transplant_38578_i128(0, 1) == 0 +; run: %transplant_38578_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_38578_i128(1, 0) == 0 +; run: %transplant_38578_i128(1, 1) == 1 +; run: %transplant_38578_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_38578_i128(2, 0) == 0 +; run: %transplant_38578_i128(2, 2) == 2 +; run: %transplant_38578_i128(13, 1) == 1 +; run: %transplant_38578_i128(13, 13) == 13 +; run: %transplant_38578_i128(42, -1) == 42 +; run: %transplant_38578_i128(42, 42) == 42 +; run: %transplant_38578_i128(127, 2) == 2 +; run: %transplant_38578_i128(127, 127) == 127 +; run: %transplant_38578_i128(128, 13) == 0 +; run: %transplant_38578_i128(128, 128) == 128 +; run: %transplant_38578_i128(129, 42) == 0 +; run: %transplant_38578_i128(129, 129) == 129 +; run: %transplant_38578_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_38578_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_38578_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_38578_i128(170141183460469231731687303715884105727, 127) == 127 +; run: %transplant_38578_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_39078_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39078_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_39078_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -170141183460469231731687303715884105728 +; run: %transplant_39078_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_39078_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_39078_i128(-113427455640312821154458202477256070486, 129) == 128 +; run: %transplant_39078_i128(-1, -1) == -1 +; run: %transplant_39078_i128(-1, 0) == 0 +; run: %transplant_39078_i128(-1, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_39078_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_39078_i128(0, -1) == 0 +; run: %transplant_39078_i128(0, 0) == 0 +; run: %transplant_39078_i128(0, 1) == 0 +; run: %transplant_39078_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_39078_i128(1, 0) == 0 +; run: %transplant_39078_i128(1, 1) == 1 +; run: %transplant_39078_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_39078_i128(2, 0) == 0 +; run: %transplant_39078_i128(2, 2) == 2 +; run: %transplant_39078_i128(13, 1) == 1 +; run: %transplant_39078_i128(13, 13) == 13 +; run: %transplant_39078_i128(42, -1) == 42 +; run: %transplant_39078_i128(42, 42) == 42 +; run: %transplant_39078_i128(127, 2) == 2 +; run: %transplant_39078_i128(127, 127) == 127 +; run: %transplant_39078_i128(128, 13) == 0 +; run: %transplant_39078_i128(128, 128) == 128 +; run: %transplant_39078_i128(129, 42) == 0 +; run: %transplant_39078_i128(129, 129) == 129 +; run: %transplant_39078_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_39078_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_39078_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_39078_i128(170141183460469231731687303715884105727, 127) == 127 +; run: %transplant_39078_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_40372_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40372_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_40372_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_40372_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_40372_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_40372_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070485 +; run: %transplant_40372_i128(-1, -1) == -1 +; run: %transplant_40372_i128(-1, 0) == -1 +; run: %transplant_40372_i128(-1, 113427455640312821154458202477256070485) == -1 +; run: %transplant_40372_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_40372_i128(0, -1) == -1 +; run: %transplant_40372_i128(0, 0) == 0 +; run: %transplant_40372_i128(0, 1) == 1 +; run: %transplant_40372_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_40372_i128(1, 0) == 1 +; run: %transplant_40372_i128(1, 1) == 1 +; run: %transplant_40372_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_40372_i128(2, 0) == 2 +; run: %transplant_40372_i128(2, 2) == 2 +; run: %transplant_40372_i128(13, 1) == 13 +; run: %transplant_40372_i128(13, 13) == 13 +; run: %transplant_40372_i128(42, -1) == -1 +; run: %transplant_40372_i128(42, 42) == 42 +; run: %transplant_40372_i128(127, 2) == 127 +; run: %transplant_40372_i128(127, 127) == 127 +; run: %transplant_40372_i128(128, 13) == 141 +; run: %transplant_40372_i128(128, 128) == 128 +; run: %transplant_40372_i128(129, 42) == 171 +; run: %transplant_40372_i128(129, 129) == 129 +; run: %transplant_40372_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_40372_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_40372_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_40372_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105727 +; run: %transplant_40372_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_40790_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40790_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_40790_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_40790_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_40790_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_40790_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070485 +; run: %transplant_40790_i128(-1, -1) == -1 +; run: %transplant_40790_i128(-1, 0) == -1 +; run: %transplant_40790_i128(-1, 113427455640312821154458202477256070485) == -1 +; run: %transplant_40790_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_40790_i128(0, -1) == -1 +; run: %transplant_40790_i128(0, 0) == 0 +; run: %transplant_40790_i128(0, 1) == 1 +; run: %transplant_40790_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_40790_i128(1, 0) == 1 +; run: %transplant_40790_i128(1, 1) == 1 +; run: %transplant_40790_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_40790_i128(2, 0) == 2 +; run: %transplant_40790_i128(2, 2) == 2 +; run: %transplant_40790_i128(13, 1) == 13 +; run: %transplant_40790_i128(13, 13) == 13 +; run: %transplant_40790_i128(42, -1) == -1 +; run: %transplant_40790_i128(42, 42) == 42 +; run: %transplant_40790_i128(127, 2) == 127 +; run: %transplant_40790_i128(127, 127) == 127 +; run: %transplant_40790_i128(128, 13) == 141 +; run: %transplant_40790_i128(128, 128) == 128 +; run: %transplant_40790_i128(129, 42) == 171 +; run: %transplant_40790_i128(129, 129) == 129 +; run: %transplant_40790_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_40790_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_40790_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_40790_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105727 +; run: %transplant_40790_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_41171_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41171_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41171_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035242 +; run: %transplant_41171_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_41171_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41171_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070613 +; run: %transplant_41171_i128(-1, -1) == 0 +; run: %transplant_41171_i128(-1, 0) == -1 +; run: %transplant_41171_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41171_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_41171_i128(0, -1) == -1 +; run: %transplant_41171_i128(0, 0) == 0 +; run: %transplant_41171_i128(0, 1) == 1 +; run: %transplant_41171_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_41171_i128(1, 0) == 1 +; run: %transplant_41171_i128(1, 1) == 0 +; run: %transplant_41171_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105726 +; run: %transplant_41171_i128(2, 0) == 2 +; run: %transplant_41171_i128(2, 2) == 0 +; run: %transplant_41171_i128(13, 1) == 12 +; run: %transplant_41171_i128(13, 13) == 0 +; run: %transplant_41171_i128(42, -1) == -43 +; run: %transplant_41171_i128(42, 42) == 0 +; run: %transplant_41171_i128(127, 2) == 125 +; run: %transplant_41171_i128(127, 127) == 0 +; run: %transplant_41171_i128(128, 13) == 141 +; run: %transplant_41171_i128(128, 128) == 0 +; run: %transplant_41171_i128(129, 42) == 171 +; run: %transplant_41171_i128(129, 129) == 0 +; run: %transplant_41171_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_41171_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41171_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_41171_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_41171_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41251_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41251_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41251_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035242 +; run: %transplant_41251_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_41251_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41251_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070613 +; run: %transplant_41251_i128(-1, -1) == 0 +; run: %transplant_41251_i128(-1, 0) == -1 +; run: %transplant_41251_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41251_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_41251_i128(0, -1) == -1 +; run: %transplant_41251_i128(0, 0) == 0 +; run: %transplant_41251_i128(0, 1) == 1 +; run: %transplant_41251_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_41251_i128(1, 0) == 1 +; run: %transplant_41251_i128(1, 1) == 0 +; run: %transplant_41251_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105726 +; run: %transplant_41251_i128(2, 0) == 2 +; run: %transplant_41251_i128(2, 2) == 0 +; run: %transplant_41251_i128(13, 1) == 12 +; run: %transplant_41251_i128(13, 13) == 0 +; run: %transplant_41251_i128(42, -1) == -43 +; run: %transplant_41251_i128(42, 42) == 0 +; run: %transplant_41251_i128(127, 2) == 125 +; run: %transplant_41251_i128(127, 127) == 0 +; run: %transplant_41251_i128(128, 13) == 141 +; run: %transplant_41251_i128(128, 128) == 0 +; run: %transplant_41251_i128(129, 42) == 171 +; run: %transplant_41251_i128(129, 129) == 0 +; run: %transplant_41251_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_41251_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41251_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_41251_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_41251_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41053_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41053_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41053_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035242 +; run: %transplant_41053_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_41053_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41053_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070613 +; run: %transplant_41053_i128(-1, -1) == 0 +; run: %transplant_41053_i128(-1, 0) == -1 +; run: %transplant_41053_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41053_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_41053_i128(0, -1) == -1 +; run: %transplant_41053_i128(0, 0) == 0 +; run: %transplant_41053_i128(0, 1) == 1 +; run: %transplant_41053_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_41053_i128(1, 0) == 1 +; run: %transplant_41053_i128(1, 1) == 0 +; run: %transplant_41053_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105726 +; run: %transplant_41053_i128(2, 0) == 2 +; run: %transplant_41053_i128(2, 2) == 0 +; run: %transplant_41053_i128(13, 1) == 12 +; run: %transplant_41053_i128(13, 13) == 0 +; run: %transplant_41053_i128(42, -1) == -43 +; run: %transplant_41053_i128(42, 42) == 0 +; run: %transplant_41053_i128(127, 2) == 125 +; run: %transplant_41053_i128(127, 127) == 0 +; run: %transplant_41053_i128(128, 13) == 141 +; run: %transplant_41053_i128(128, 128) == 0 +; run: %transplant_41053_i128(129, 42) == 171 +; run: %transplant_41053_i128(129, 129) == 0 +; run: %transplant_41053_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_41053_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41053_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_41053_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_41053_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41026_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41026_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41026_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035242 +; run: %transplant_41026_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_41026_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41026_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070613 +; run: %transplant_41026_i128(-1, -1) == 0 +; run: %transplant_41026_i128(-1, 0) == -1 +; run: %transplant_41026_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_41026_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_41026_i128(0, -1) == -1 +; run: %transplant_41026_i128(0, 0) == 0 +; run: %transplant_41026_i128(0, 1) == 1 +; run: %transplant_41026_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_41026_i128(1, 0) == 1 +; run: %transplant_41026_i128(1, 1) == 0 +; run: %transplant_41026_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105726 +; run: %transplant_41026_i128(2, 0) == 2 +; run: %transplant_41026_i128(2, 2) == 0 +; run: %transplant_41026_i128(13, 1) == 12 +; run: %transplant_41026_i128(13, 13) == 0 +; run: %transplant_41026_i128(42, -1) == -43 +; run: %transplant_41026_i128(42, 42) == 0 +; run: %transplant_41026_i128(127, 2) == 125 +; run: %transplant_41026_i128(127, 127) == 0 +; run: %transplant_41026_i128(128, 13) == 141 +; run: %transplant_41026_i128(128, 128) == 0 +; run: %transplant_41026_i128(129, 42) == 171 +; run: %transplant_41026_i128(129, 129) == 0 +; run: %transplant_41026_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070613 +; run: %transplant_41026_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41026_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_41026_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_41026_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_37458_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37458_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -1 +; run: %transplant_37458_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -56713727820156410577229101238628035243 +; run: %transplant_37458_i128(-170141183460469231731687303715884105728, 0) == 170141183460469231731687303715884105727 +; run: %transplant_37458_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -1 +; run: %transplant_37458_i128(-113427455640312821154458202477256070486, 129) == 113427455640312821154458202477256070612 +; run: %transplant_37458_i128(-1, -1) == -1 +; run: %transplant_37458_i128(-1, 0) == 0 +; run: %transplant_37458_i128(-1, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_37458_i128(0, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_37458_i128(0, -1) == 0 +; run: %transplant_37458_i128(0, 0) == -1 +; run: %transplant_37458_i128(0, 1) == -2 +; run: %transplant_37458_i128(0, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_37458_i128(1, 0) == -2 +; run: %transplant_37458_i128(1, 1) == -1 +; run: %transplant_37458_i128(1, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105727 +; run: %transplant_37458_i128(2, 0) == -3 +; run: %transplant_37458_i128(2, 2) == -1 +; run: %transplant_37458_i128(13, 1) == -13 +; run: %transplant_37458_i128(13, 13) == -1 +; run: %transplant_37458_i128(42, -1) == 42 +; run: %transplant_37458_i128(42, 42) == -1 +; run: %transplant_37458_i128(127, 2) == -126 +; run: %transplant_37458_i128(127, 127) == -1 +; run: %transplant_37458_i128(128, 13) == -142 +; run: %transplant_37458_i128(128, 128) == -1 +; run: %transplant_37458_i128(129, 42) == -172 +; run: %transplant_37458_i128(129, 129) == -1 +; run: %transplant_37458_i128(113427455640312821154458202477256070485, 128) == -113427455640312821154458202477256070614 +; run: %transplant_37458_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -1 +; run: %transplant_37458_i128(170141183460469231731687303715884105727, 0) == -170141183460469231731687303715884105728 +; run: %transplant_37458_i128(170141183460469231731687303715884105727, 127) == -170141183460469231731687303715884105601 +; run: %transplant_37458_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -1 + +function %transplant_40979_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = iadd v0, v2 + v4 = iconst.i64 -1 + v5 = sextend.i128 v4 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_40979_i128(-170141183460469231731687303715884105728) == 170141183460469231731687303715884105714 +; run: %transplant_40979_i128(-113427455640312821154458202477256070486) == 113427455640312821154458202477256070472 +; run: %transplant_40979_i128(-1) == -13 +; run: %transplant_40979_i128(0) == -14 +; run: %transplant_40979_i128(1) == -15 +; run: %transplant_40979_i128(2) == -16 +; run: %transplant_40979_i128(13) == -27 +; run: %transplant_40979_i128(42) == -56 +; run: %transplant_40979_i128(127) == -141 +; run: %transplant_40979_i128(128) == -142 +; run: %transplant_40979_i128(129) == -143 +; run: %transplant_40979_i128(113427455640312821154458202477256070485) == -113427455640312821154458202477256070499 +; run: %transplant_40979_i128(170141183460469231731687303715884105727) == 170141183460469231731687303715884105715 + +function %transplant_40923_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 13 + v3 = sextend.i128 v2 + v4 = bor v3, v0 + v5 = iconst.i64 13 + v6 = sextend.i128 v5 + v7 = bor v1, v6 + v8 = bxor v4, v7 + return v8 +} +; run: %transplant_40923_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_40923_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035234 +; run: %transplant_40923_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_40923_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_40923_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070622 +; run: %transplant_40923_i128(-1, -1) == 0 +; run: %transplant_40923_i128(-1, 0) == -14 +; run: %transplant_40923_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070494 +; run: %transplant_40923_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_40923_i128(0, -1) == -14 +; run: %transplant_40923_i128(0, 0) == 0 +; run: %transplant_40923_i128(0, 1) == 0 +; run: %transplant_40923_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105714 +; run: %transplant_40923_i128(1, 0) == 0 +; run: %transplant_40923_i128(1, 1) == 0 +; run: %transplant_40923_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105714 +; run: %transplant_40923_i128(2, 0) == 2 +; run: %transplant_40923_i128(2, 2) == 0 +; run: %transplant_40923_i128(13, 1) == 0 +; run: %transplant_40923_i128(13, 13) == 0 +; run: %transplant_40923_i128(42, -1) == -48 +; run: %transplant_40923_i128(42, 42) == 0 +; run: %transplant_40923_i128(127, 2) == 112 +; run: %transplant_40923_i128(127, 127) == 0 +; run: %transplant_40923_i128(128, 13) == 128 +; run: %transplant_40923_i128(128, 128) == 0 +; run: %transplant_40923_i128(129, 42) == 162 +; run: %transplant_40923_i128(129, 129) == 0 +; run: %transplant_40923_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070608 +; run: %transplant_40923_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_40923_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105714 +; run: %transplant_40923_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105600 +; run: %transplant_40923_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_40935_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 13 + v3 = sextend.i128 v2 + v4 = bor v0, v3 + v5 = iconst.i64 13 + v6 = sextend.i128 v5 + v7 = bxor v1, v6 + v8 = bxor v4, v7 + return v8 +} +; run: %transplant_40935_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_40935_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 56713727820156410577229101238628035242 +; run: %transplant_40935_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_40935_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 8 +; run: %transplant_40935_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070621 +; run: %transplant_40935_i128(-1, -1) == 13 +; run: %transplant_40935_i128(-1, 0) == -14 +; run: %transplant_40935_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070489 +; run: %transplant_40935_i128(0, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_40935_i128(0, -1) == -1 +; run: %transplant_40935_i128(0, 0) == 0 +; run: %transplant_40935_i128(0, 1) == 1 +; run: %transplant_40935_i128(0, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_40935_i128(1, 0) == 0 +; run: %transplant_40935_i128(1, 1) == 1 +; run: %transplant_40935_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_40935_i128(2, 0) == 2 +; run: %transplant_40935_i128(2, 2) == 0 +; run: %transplant_40935_i128(13, 1) == 1 +; run: %transplant_40935_i128(13, 13) == 13 +; run: %transplant_40935_i128(42, -1) == -35 +; run: %transplant_40935_i128(42, 42) == 8 +; run: %transplant_40935_i128(127, 2) == 112 +; run: %transplant_40935_i128(127, 127) == 13 +; run: %transplant_40935_i128(128, 13) == 141 +; run: %transplant_40935_i128(128, 128) == 0 +; run: %transplant_40935_i128(129, 42) == 170 +; run: %transplant_40935_i128(129, 129) == 1 +; run: %transplant_40935_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070608 +; run: %transplant_40935_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 5 +; run: %transplant_40935_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105714 +; run: %transplant_40935_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105613 +; run: %transplant_40935_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 13 + +function %transplant_39206_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39206_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_39206_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -170141183460469231731687303715884105728 +; run: %transplant_39206_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_39206_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_39206_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070486 +; run: %transplant_39206_i128(-1, -1) == -1 +; run: %transplant_39206_i128(-1, 0) == -1 +; run: %transplant_39206_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_39206_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_39206_i128(0, -1) == 0 +; run: %transplant_39206_i128(0, 0) == -1 +; run: %transplant_39206_i128(0, 1) == -2 +; run: %transplant_39206_i128(0, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_39206_i128(1, 0) == -1 +; run: %transplant_39206_i128(1, 1) == -2 +; run: %transplant_39206_i128(1, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_39206_i128(2, 0) == -1 +; run: %transplant_39206_i128(2, 2) == -3 +; run: %transplant_39206_i128(13, 1) == -2 +; run: %transplant_39206_i128(13, 13) == -14 +; run: %transplant_39206_i128(42, -1) == 0 +; run: %transplant_39206_i128(42, 42) == -43 +; run: %transplant_39206_i128(127, 2) == -3 +; run: %transplant_39206_i128(127, 127) == -128 +; run: %transplant_39206_i128(128, 13) == -14 +; run: %transplant_39206_i128(128, 128) == -129 +; run: %transplant_39206_i128(129, 42) == -43 +; run: %transplant_39206_i128(129, 129) == -130 +; run: %transplant_39206_i128(113427455640312821154458202477256070485, 128) == -129 +; run: %transplant_39206_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_39206_i128(170141183460469231731687303715884105727, 0) == -1 +; run: %transplant_39206_i128(170141183460469231731687303715884105727, 127) == -128 +; run: %transplant_39206_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_39214_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39214_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_39214_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_39214_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_39214_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_39214_i128(-113427455640312821154458202477256070486, 129) == -113427455640312821154458202477256070486 +; run: %transplant_39214_i128(-1, -1) == 0 +; run: %transplant_39214_i128(-1, 0) == -1 +; run: %transplant_39214_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_39214_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_39214_i128(0, -1) == 0 +; run: %transplant_39214_i128(0, 0) == 0 +; run: %transplant_39214_i128(0, 1) == 0 +; run: %transplant_39214_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_39214_i128(1, 0) == 1 +; run: %transplant_39214_i128(1, 1) == 1 +; run: %transplant_39214_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_39214_i128(2, 0) == 2 +; run: %transplant_39214_i128(2, 2) == 2 +; run: %transplant_39214_i128(13, 1) == 13 +; run: %transplant_39214_i128(13, 13) == 13 +; run: %transplant_39214_i128(42, -1) == 0 +; run: %transplant_39214_i128(42, 42) == 42 +; run: %transplant_39214_i128(127, 2) == 127 +; run: %transplant_39214_i128(127, 127) == 127 +; run: %transplant_39214_i128(128, 13) == 128 +; run: %transplant_39214_i128(128, 128) == 128 +; run: %transplant_39214_i128(129, 42) == 129 +; run: %transplant_39214_i128(129, 129) == 129 +; run: %transplant_39214_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070485 +; run: %transplant_39214_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_39214_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_39214_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105727 +; run: %transplant_39214_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_39208_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39208_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_39208_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_39208_i128(-170141183460469231731687303715884105728, 0) == -1 +; run: %transplant_39208_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 113427455640312821154458202477256070485 +; run: %transplant_39208_i128(-113427455640312821154458202477256070486, 129) == -130 +; run: %transplant_39208_i128(-1, -1) == 0 +; run: %transplant_39208_i128(-1, 0) == -1 +; run: %transplant_39208_i128(-1, 113427455640312821154458202477256070485) == -1 +; run: %transplant_39208_i128(0, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_39208_i128(0, -1) == 0 +; run: %transplant_39208_i128(0, 0) == 0 +; run: %transplant_39208_i128(0, 1) == 0 +; run: %transplant_39208_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_39208_i128(1, 0) == 1 +; run: %transplant_39208_i128(1, 1) == 1 +; run: %transplant_39208_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_39208_i128(2, 0) == 2 +; run: %transplant_39208_i128(2, 2) == 2 +; run: %transplant_39208_i128(13, 1) == 13 +; run: %transplant_39208_i128(13, 13) == 13 +; run: %transplant_39208_i128(42, -1) == 42 +; run: %transplant_39208_i128(42, 42) == 42 +; run: %transplant_39208_i128(127, 2) == 127 +; run: %transplant_39208_i128(127, 127) == 127 +; run: %transplant_39208_i128(128, 13) == 128 +; run: %transplant_39208_i128(128, 128) == 128 +; run: %transplant_39208_i128(129, 42) == 129 +; run: %transplant_39208_i128(129, 129) == 129 +; run: %transplant_39208_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070485 +; run: %transplant_39208_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_39208_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_39208_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105727 +; run: %transplant_39208_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_39216_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39216_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_39216_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -170141183460469231731687303715884105728 +; run: %transplant_39216_i128(-170141183460469231731687303715884105728, 0) == -1 +; run: %transplant_39216_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_39216_i128(-113427455640312821154458202477256070486, 129) == -130 +; run: %transplant_39216_i128(-1, -1) == -1 +; run: %transplant_39216_i128(-1, 0) == -1 +; run: %transplant_39216_i128(-1, 113427455640312821154458202477256070485) == -1 +; run: %transplant_39216_i128(0, -170141183460469231731687303715884105728) == 170141183460469231731687303715884105727 +; run: %transplant_39216_i128(0, -1) == 0 +; run: %transplant_39216_i128(0, 0) == -1 +; run: %transplant_39216_i128(0, 1) == -2 +; run: %transplant_39216_i128(0, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_39216_i128(1, 0) == -1 +; run: %transplant_39216_i128(1, 1) == -2 +; run: %transplant_39216_i128(1, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_39216_i128(2, 0) == -1 +; run: %transplant_39216_i128(2, 2) == -3 +; run: %transplant_39216_i128(13, 1) == -2 +; run: %transplant_39216_i128(13, 13) == -14 +; run: %transplant_39216_i128(42, -1) == 42 +; run: %transplant_39216_i128(42, 42) == -43 +; run: %transplant_39216_i128(127, 2) == -3 +; run: %transplant_39216_i128(127, 127) == -128 +; run: %transplant_39216_i128(128, 13) == -14 +; run: %transplant_39216_i128(128, 128) == -129 +; run: %transplant_39216_i128(129, 42) == -43 +; run: %transplant_39216_i128(129, 129) == -130 +; run: %transplant_39216_i128(113427455640312821154458202477256070485, 128) == -129 +; run: %transplant_39216_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_39216_i128(170141183460469231731687303715884105727, 0) == -1 +; run: %transplant_39216_i128(170141183460469231731687303715884105727, 127) == -128 +; run: %transplant_39216_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 + +function %transplant_41371_i128(i128) -> i8 { +block0(v0: i128): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41371_i128(-170141183460469231731687303715884105728) == 0 +; run: %transplant_41371_i128(-113427455640312821154458202477256070486) == 0 +; run: %transplant_41371_i128(-1) == 0 +; run: %transplant_41371_i128(0) == 1 +; run: %transplant_41371_i128(1) == 0 +; run: %transplant_41371_i128(2) == 0 +; run: %transplant_41371_i128(13) == 0 +; run: %transplant_41371_i128(42) == 0 +; run: %transplant_41371_i128(127) == 0 +; run: %transplant_41371_i128(128) == 0 +; run: %transplant_41371_i128(129) == 0 +; run: %transplant_41371_i128(113427455640312821154458202477256070485) == 0 +; run: %transplant_41371_i128(170141183460469231731687303715884105727) == 0 + +function %transplant_41468_i128(i128) -> i8 { +block0(v0: i128): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41468_i128(-170141183460469231731687303715884105728) == 0 +; run: %transplant_41468_i128(-113427455640312821154458202477256070486) == 0 +; run: %transplant_41468_i128(-1) == 0 +; run: %transplant_41468_i128(0) == 1 +; run: %transplant_41468_i128(1) == 0 +; run: %transplant_41468_i128(2) == 0 +; run: %transplant_41468_i128(13) == 0 +; run: %transplant_41468_i128(42) == 0 +; run: %transplant_41468_i128(127) == 0 +; run: %transplant_41468_i128(128) == 0 +; run: %transplant_41468_i128(129) == 0 +; run: %transplant_41468_i128(113427455640312821154458202477256070485) == 0 +; run: %transplant_41468_i128(170141183460469231731687303715884105727) == 0 + +function %transplant_41309_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} +; run: %transplant_41309_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41309_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41309_i128(-170141183460469231731687303715884105728, 0) == 1 +; run: %transplant_41309_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41309_i128(-113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_41309_i128(-1, -1) == 0 +; run: %transplant_41309_i128(-1, 0) == 1 +; run: %transplant_41309_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41309_i128(0, -170141183460469231731687303715884105728) == 1 +; run: %transplant_41309_i128(0, -1) == 1 +; run: %transplant_41309_i128(0, 0) == 1 +; run: %transplant_41309_i128(0, 1) == 1 +; run: %transplant_41309_i128(0, 170141183460469231731687303715884105727) == 1 +; run: %transplant_41309_i128(1, 0) == 1 +; run: %transplant_41309_i128(1, 1) == 0 +; run: %transplant_41309_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41309_i128(2, 0) == 1 +; run: %transplant_41309_i128(2, 2) == 0 +; run: %transplant_41309_i128(13, 1) == 0 +; run: %transplant_41309_i128(13, 13) == 0 +; run: %transplant_41309_i128(42, -1) == 0 +; run: %transplant_41309_i128(42, 42) == 0 +; run: %transplant_41309_i128(127, 2) == 0 +; run: %transplant_41309_i128(127, 127) == 0 +; run: %transplant_41309_i128(128, 13) == 1 +; run: %transplant_41309_i128(128, 128) == 0 +; run: %transplant_41309_i128(129, 42) == 1 +; run: %transplant_41309_i128(129, 129) == 0 +; run: %transplant_41309_i128(113427455640312821154458202477256070485, 128) == 1 +; run: %transplant_41309_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41309_i128(170141183460469231731687303715884105727, 0) == 1 +; run: %transplant_41309_i128(170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_41309_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41459_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = sextend.i128 v3 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41459_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41459_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41459_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_41459_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41459_i128(-113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_41459_i128(-1, -1) == 0 +; run: %transplant_41459_i128(-1, 0) == 0 +; run: %transplant_41459_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41459_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41459_i128(0, -1) == 0 +; run: %transplant_41459_i128(0, 0) == 1 +; run: %transplant_41459_i128(0, 1) == 0 +; run: %transplant_41459_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41459_i128(1, 0) == 0 +; run: %transplant_41459_i128(1, 1) == 0 +; run: %transplant_41459_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41459_i128(2, 0) == 0 +; run: %transplant_41459_i128(2, 2) == 0 +; run: %transplant_41459_i128(13, 1) == 0 +; run: %transplant_41459_i128(13, 13) == 0 +; run: %transplant_41459_i128(42, -1) == 0 +; run: %transplant_41459_i128(42, 42) == 0 +; run: %transplant_41459_i128(127, 2) == 0 +; run: %transplant_41459_i128(127, 127) == 0 +; run: %transplant_41459_i128(128, 13) == 0 +; run: %transplant_41459_i128(128, 128) == 0 +; run: %transplant_41459_i128(129, 42) == 0 +; run: %transplant_41459_i128(129, 129) == 0 +; run: %transplant_41459_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_41459_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41459_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_41459_i128(170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_41459_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_42478_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = sextend.i128 v3 + v5 = icmp ne v2, v4 + return v5 +} +; run: %transplant_42478_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 1 +; run: %transplant_42478_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 1 +; run: %transplant_42478_i128(-170141183460469231731687303715884105728, 0) == 1 +; run: %transplant_42478_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 1 +; run: %transplant_42478_i128(-113427455640312821154458202477256070486, 129) == 1 +; run: %transplant_42478_i128(-1, -1) == 1 +; run: %transplant_42478_i128(-1, 0) == 1 +; run: %transplant_42478_i128(-1, 113427455640312821154458202477256070485) == 1 +; run: %transplant_42478_i128(0, -170141183460469231731687303715884105728) == 1 +; run: %transplant_42478_i128(0, -1) == 1 +; run: %transplant_42478_i128(0, 0) == 0 +; run: %transplant_42478_i128(0, 1) == 1 +; run: %transplant_42478_i128(0, 170141183460469231731687303715884105727) == 1 +; run: %transplant_42478_i128(1, 0) == 1 +; run: %transplant_42478_i128(1, 1) == 1 +; run: %transplant_42478_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_42478_i128(2, 0) == 1 +; run: %transplant_42478_i128(2, 2) == 1 +; run: %transplant_42478_i128(13, 1) == 1 +; run: %transplant_42478_i128(13, 13) == 1 +; run: %transplant_42478_i128(42, -1) == 1 +; run: %transplant_42478_i128(42, 42) == 1 +; run: %transplant_42478_i128(127, 2) == 1 +; run: %transplant_42478_i128(127, 127) == 1 +; run: %transplant_42478_i128(128, 13) == 1 +; run: %transplant_42478_i128(128, 128) == 1 +; run: %transplant_42478_i128(129, 42) == 1 +; run: %transplant_42478_i128(129, 129) == 1 +; run: %transplant_42478_i128(113427455640312821154458202477256070485, 128) == 1 +; run: %transplant_42478_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 1 +; run: %transplant_42478_i128(170141183460469231731687303715884105727, 0) == 1 +; run: %transplant_42478_i128(170141183460469231731687303715884105727, 127) == 1 +; run: %transplant_42478_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 + +function %transplant_41460_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41460_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 1 +; run: %transplant_41460_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41460_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_41460_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 1 +; run: %transplant_41460_i128(-113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_41460_i128(-1, -1) == 1 +; run: %transplant_41460_i128(-1, 0) == 0 +; run: %transplant_41460_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41460_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41460_i128(0, -1) == 0 +; run: %transplant_41460_i128(0, 0) == 1 +; run: %transplant_41460_i128(0, 1) == 0 +; run: %transplant_41460_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41460_i128(1, 0) == 0 +; run: %transplant_41460_i128(1, 1) == 1 +; run: %transplant_41460_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41460_i128(2, 0) == 0 +; run: %transplant_41460_i128(2, 2) == 1 +; run: %transplant_41460_i128(13, 1) == 0 +; run: %transplant_41460_i128(13, 13) == 1 +; run: %transplant_41460_i128(42, -1) == 0 +; run: %transplant_41460_i128(42, 42) == 1 +; run: %transplant_41460_i128(127, 2) == 0 +; run: %transplant_41460_i128(127, 127) == 1 +; run: %transplant_41460_i128(128, 13) == 0 +; run: %transplant_41460_i128(128, 128) == 1 +; run: %transplant_41460_i128(129, 42) == 0 +; run: %transplant_41460_i128(129, 129) == 1 +; run: %transplant_41460_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_41460_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 1 +; run: %transplant_41460_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_41460_i128(170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_41460_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 + +function %transplant_42479_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42479_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42479_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 1 +; run: %transplant_42479_i128(-170141183460469231731687303715884105728, 0) == 1 +; run: %transplant_42479_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_42479_i128(-113427455640312821154458202477256070486, 129) == 1 +; run: %transplant_42479_i128(-1, -1) == 0 +; run: %transplant_42479_i128(-1, 0) == 1 +; run: %transplant_42479_i128(-1, 113427455640312821154458202477256070485) == 1 +; run: %transplant_42479_i128(0, -170141183460469231731687303715884105728) == 1 +; run: %transplant_42479_i128(0, -1) == 1 +; run: %transplant_42479_i128(0, 0) == 0 +; run: %transplant_42479_i128(0, 1) == 1 +; run: %transplant_42479_i128(0, 170141183460469231731687303715884105727) == 1 +; run: %transplant_42479_i128(1, 0) == 1 +; run: %transplant_42479_i128(1, 1) == 0 +; run: %transplant_42479_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_42479_i128(2, 0) == 1 +; run: %transplant_42479_i128(2, 2) == 0 +; run: %transplant_42479_i128(13, 1) == 1 +; run: %transplant_42479_i128(13, 13) == 0 +; run: %transplant_42479_i128(42, -1) == 1 +; run: %transplant_42479_i128(42, 42) == 0 +; run: %transplant_42479_i128(127, 2) == 1 +; run: %transplant_42479_i128(127, 127) == 0 +; run: %transplant_42479_i128(128, 13) == 1 +; run: %transplant_42479_i128(128, 128) == 0 +; run: %transplant_42479_i128(129, 42) == 1 +; run: %transplant_42479_i128(129, 129) == 0 +; run: %transplant_42479_i128(113427455640312821154458202477256070485, 128) == 1 +; run: %transplant_42479_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_42479_i128(170141183460469231731687303715884105727, 0) == 1 +; run: %transplant_42479_i128(170141183460469231731687303715884105727, 127) == 1 +; run: %transplant_42479_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41327_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41327_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41327_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41327_i128(-170141183460469231731687303715884105728, 0) == 1 +; run: %transplant_41327_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41327_i128(-113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_41327_i128(-1, -1) == 0 +; run: %transplant_41327_i128(-1, 0) == 1 +; run: %transplant_41327_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41327_i128(0, -170141183460469231731687303715884105728) == 1 +; run: %transplant_41327_i128(0, -1) == 1 +; run: %transplant_41327_i128(0, 0) == 1 +; run: %transplant_41327_i128(0, 1) == 1 +; run: %transplant_41327_i128(0, 170141183460469231731687303715884105727) == 1 +; run: %transplant_41327_i128(1, 0) == 1 +; run: %transplant_41327_i128(1, 1) == 0 +; run: %transplant_41327_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41327_i128(2, 0) == 1 +; run: %transplant_41327_i128(2, 2) == 0 +; run: %transplant_41327_i128(13, 1) == 0 +; run: %transplant_41327_i128(13, 13) == 0 +; run: %transplant_41327_i128(42, -1) == 0 +; run: %transplant_41327_i128(42, 42) == 0 +; run: %transplant_41327_i128(127, 2) == 0 +; run: %transplant_41327_i128(127, 127) == 0 +; run: %transplant_41327_i128(128, 13) == 1 +; run: %transplant_41327_i128(128, 128) == 0 +; run: %transplant_41327_i128(129, 42) == 1 +; run: %transplant_41327_i128(129, 129) == 0 +; run: %transplant_41327_i128(113427455640312821154458202477256070485, 128) == 1 +; run: %transplant_41327_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41327_i128(170141183460469231731687303715884105727, 0) == 1 +; run: %transplant_41327_i128(170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_41327_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 0 + +function %transplant_41425_i128(i8, i128, i128) -> i8 { +block0(v0: i8, v1: i128, v2: i128): + v3 = select v0, v1, v2 + v4 = select v0, v2, v1 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41425_i128(-128, 13, 1) == 0 +; run: %transplant_41425_i128(-128, 128, 128) == 1 +; run: %transplant_41425_i128(-127, 42, -1) == 0 +; run: %transplant_41425_i128(-127, 129, 129) == 1 +; run: %transplant_41425_i128(-86, -113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 1 +; run: %transplant_41425_i128(-86, 129, 42) == 0 +; run: %transplant_41425_i128(-1, -1, -1) == 1 +; run: %transplant_41425_i128(-1, 0, 0) == 1 +; run: %transplant_41425_i128(-1, 127, 2) == 0 +; run: %transplant_41425_i128(-1, 113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_41425_i128(-1, 170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 +; run: %transplant_41425_i128(0, -170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 1 +; run: %transplant_41425_i128(0, -170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_41425_i128(0, -170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_41425_i128(0, -113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_41425_i128(0, -1, 0) == 0 +; run: %transplant_41425_i128(0, 0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41425_i128(0, 0, -1) == 0 +; run: %transplant_41425_i128(0, 0, 0) == 1 +; run: %transplant_41425_i128(0, 0, 1) == 0 +; run: %transplant_41425_i128(0, 0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41425_i128(0, 1, 0) == 0 +; run: %transplant_41425_i128(0, 170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_41425_i128(1, 0, 0) == 1 +; run: %transplant_41425_i128(1, 1, 1) == 1 +; run: %transplant_41425_i128(1, 170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_41425_i128(2, 0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_41425_i128(2, 2, 2) == 1 +; run: %transplant_41425_i128(13, 1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_41425_i128(13, 13, 13) == 1 +; run: %transplant_41425_i128(42, -1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_41425_i128(42, 42, 42) == 1 +; run: %transplant_41425_i128(85, 128, 13) == 0 +; run: %transplant_41425_i128(85, 113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 1 +; run: %transplant_41425_i128(127, 2, 0) == 0 +; run: %transplant_41425_i128(127, 127, 127) == 1 + +function %transplant_38178_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38178_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 1 +; run: %transplant_38178_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_38178_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_38178_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 1 +; run: %transplant_38178_i128(-113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_38178_i128(-1, -1) == 1 +; run: %transplant_38178_i128(-1, 0) == 0 +; run: %transplant_38178_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_38178_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_38178_i128(0, -1) == 0 +; run: %transplant_38178_i128(0, 0) == 1 +; run: %transplant_38178_i128(0, 1) == 0 +; run: %transplant_38178_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_38178_i128(1, 0) == 0 +; run: %transplant_38178_i128(1, 1) == 1 +; run: %transplant_38178_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_38178_i128(2, 0) == 0 +; run: %transplant_38178_i128(2, 2) == 1 +; run: %transplant_38178_i128(13, 1) == 0 +; run: %transplant_38178_i128(13, 13) == 1 +; run: %transplant_38178_i128(42, -1) == 0 +; run: %transplant_38178_i128(42, 42) == 1 +; run: %transplant_38178_i128(127, 2) == 0 +; run: %transplant_38178_i128(127, 127) == 1 +; run: %transplant_38178_i128(128, 13) == 0 +; run: %transplant_38178_i128(128, 128) == 1 +; run: %transplant_38178_i128(129, 42) == 0 +; run: %transplant_38178_i128(129, 129) == 1 +; run: %transplant_38178_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_38178_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 1 +; run: %transplant_38178_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_38178_i128(170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_38178_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 + +function %transplant_38685_i128(i128, i128) -> i8 { +block0(v0: i128, v1: i128): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38685_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 1 +; run: %transplant_38685_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_38685_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_38685_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == 1 +; run: %transplant_38685_i128(-113427455640312821154458202477256070486, 129) == 0 +; run: %transplant_38685_i128(-1, -1) == 1 +; run: %transplant_38685_i128(-1, 0) == 0 +; run: %transplant_38685_i128(-1, 113427455640312821154458202477256070485) == 0 +; run: %transplant_38685_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_38685_i128(0, -1) == 0 +; run: %transplant_38685_i128(0, 0) == 1 +; run: %transplant_38685_i128(0, 1) == 0 +; run: %transplant_38685_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_38685_i128(1, 0) == 0 +; run: %transplant_38685_i128(1, 1) == 1 +; run: %transplant_38685_i128(1, 170141183460469231731687303715884105727) == 0 +; run: %transplant_38685_i128(2, 0) == 0 +; run: %transplant_38685_i128(2, 2) == 1 +; run: %transplant_38685_i128(13, 1) == 0 +; run: %transplant_38685_i128(13, 13) == 1 +; run: %transplant_38685_i128(42, -1) == 0 +; run: %transplant_38685_i128(42, 42) == 1 +; run: %transplant_38685_i128(127, 2) == 0 +; run: %transplant_38685_i128(127, 127) == 1 +; run: %transplant_38685_i128(128, 13) == 0 +; run: %transplant_38685_i128(128, 128) == 1 +; run: %transplant_38685_i128(129, 42) == 0 +; run: %transplant_38685_i128(129, 129) == 1 +; run: %transplant_38685_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_38685_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 1 +; run: %transplant_38685_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_38685_i128(170141183460469231731687303715884105727, 127) == 0 +; run: %transplant_38685_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 + +function %transplant_42865_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 0 + v2 = sextend.i128 v1 + v3 = icmp eq v0, v2 + v4 = ineg v0 + v5 = select v3, v4, v0 + return v5 +} +; run: %transplant_42865_i128(-170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_42865_i128(-113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_42865_i128(-1) == -1 +; run: %transplant_42865_i128(0) == 0 +; run: %transplant_42865_i128(1) == 1 +; run: %transplant_42865_i128(2) == 2 +; run: %transplant_42865_i128(13) == 13 +; run: %transplant_42865_i128(42) == 42 +; run: %transplant_42865_i128(127) == 127 +; run: %transplant_42865_i128(128) == 128 +; run: %transplant_42865_i128(129) == 129 +; run: %transplant_42865_i128(113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_42865_i128(170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_43009_i128(i128) -> i128 { +block0(v0: i128): + v1 = iconst.i64 0 + v2 = sextend.i128 v1 + v3 = icmp ne v0, v2 + v4 = ineg v0 + v5 = select v3, v0, v4 + return v5 +} +; run: %transplant_43009_i128(-170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_43009_i128(-113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_43009_i128(-1) == -1 +; run: %transplant_43009_i128(0) == 0 +; run: %transplant_43009_i128(1) == 1 +; run: %transplant_43009_i128(2) == 2 +; run: %transplant_43009_i128(13) == 13 +; run: %transplant_43009_i128(42) == 42 +; run: %transplant_43009_i128(127) == 127 +; run: %transplant_43009_i128(128) == 128 +; run: %transplant_43009_i128(129) == 129 +; run: %transplant_43009_i128(113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_43009_i128(170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_39182_i128(i8) -> i128 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = iconst.i64 42 + v4 = sextend.i128 v3 + v5 = select v0, v2, v4 + v6 = bnot v5 + return v6 +} +; run: %transplant_39182_i128(-128) == -14 +; run: %transplant_39182_i128(-127) == -14 +; run: %transplant_39182_i128(-86) == -14 +; run: %transplant_39182_i128(-1) == -14 +; run: %transplant_39182_i128(0) == -43 +; run: %transplant_39182_i128(1) == -14 +; run: %transplant_39182_i128(2) == -14 +; run: %transplant_39182_i128(13) == -14 +; run: %transplant_39182_i128(42) == -14 +; run: %transplant_39182_i128(85) == -14 +; run: %transplant_39182_i128(127) == -14 + +function %transplant_42061_i128(i8) -> i128 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = sextend.i128 v1 + v3 = iconst.i64 42 + v4 = sextend.i128 v3 + v5 = select v0, v2, v4 + v6 = ineg v5 + return v6 +} +; run: %transplant_42061_i128(-128) == -13 +; run: %transplant_42061_i128(-127) == -13 +; run: %transplant_42061_i128(-86) == -13 +; run: %transplant_42061_i128(-1) == -13 +; run: %transplant_42061_i128(0) == -42 +; run: %transplant_42061_i128(1) == -13 +; run: %transplant_42061_i128(2) == -13 +; run: %transplant_42061_i128(13) == -13 +; run: %transplant_42061_i128(42) == -13 +; run: %transplant_42061_i128(85) == -13 +; run: %transplant_42061_i128(127) == -13 + +function %transplant_42859_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp eq v0, v3 + v5 = iconst.i64 0 + v6 = sextend.i128 v5 + v7 = band v0, v1 + v8 = select v4, v6, v7 + return v8 +} +; run: %transplant_42859_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_42859_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -170141183460469231731687303715884105728 +; run: %transplant_42859_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_42859_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_42859_i128(-113427455640312821154458202477256070486, 129) == 128 +; run: %transplant_42859_i128(-1, -1) == -1 +; run: %transplant_42859_i128(-1, 0) == 0 +; run: %transplant_42859_i128(-1, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_42859_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42859_i128(0, -1) == 0 +; run: %transplant_42859_i128(0, 0) == 0 +; run: %transplant_42859_i128(0, 1) == 0 +; run: %transplant_42859_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_42859_i128(1, 0) == 0 +; run: %transplant_42859_i128(1, 1) == 1 +; run: %transplant_42859_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_42859_i128(2, 0) == 0 +; run: %transplant_42859_i128(2, 2) == 2 +; run: %transplant_42859_i128(13, 1) == 1 +; run: %transplant_42859_i128(13, 13) == 13 +; run: %transplant_42859_i128(42, -1) == 42 +; run: %transplant_42859_i128(42, 42) == 42 +; run: %transplant_42859_i128(127, 2) == 2 +; run: %transplant_42859_i128(127, 127) == 127 +; run: %transplant_42859_i128(128, 13) == 0 +; run: %transplant_42859_i128(128, 128) == 128 +; run: %transplant_42859_i128(129, 42) == 0 +; run: %transplant_42859_i128(129, 129) == 129 +; run: %transplant_42859_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_42859_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_42859_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_42859_i128(170141183460469231731687303715884105727, 127) == 127 +; run: %transplant_42859_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_42992_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp ne v0, v3 + v5 = band v0, v1 + v6 = iconst.i64 0 + v7 = sextend.i128 v6 + v8 = select v4, v5, v7 + return v8 +} +; run: %transplant_42992_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_42992_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == -170141183460469231731687303715884105728 +; run: %transplant_42992_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_42992_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_42992_i128(-113427455640312821154458202477256070486, 129) == 128 +; run: %transplant_42992_i128(-1, -1) == -1 +; run: %transplant_42992_i128(-1, 0) == 0 +; run: %transplant_42992_i128(-1, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_42992_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42992_i128(0, -1) == 0 +; run: %transplant_42992_i128(0, 0) == 0 +; run: %transplant_42992_i128(0, 1) == 0 +; run: %transplant_42992_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_42992_i128(1, 0) == 0 +; run: %transplant_42992_i128(1, 1) == 1 +; run: %transplant_42992_i128(1, 170141183460469231731687303715884105727) == 1 +; run: %transplant_42992_i128(2, 0) == 0 +; run: %transplant_42992_i128(2, 2) == 2 +; run: %transplant_42992_i128(13, 1) == 1 +; run: %transplant_42992_i128(13, 13) == 13 +; run: %transplant_42992_i128(42, -1) == 42 +; run: %transplant_42992_i128(42, 42) == 42 +; run: %transplant_42992_i128(127, 2) == 2 +; run: %transplant_42992_i128(127, 127) == 127 +; run: %transplant_42992_i128(128, 13) == 0 +; run: %transplant_42992_i128(128, 128) == 128 +; run: %transplant_42992_i128(129, 42) == 0 +; run: %transplant_42992_i128(129, 129) == 129 +; run: %transplant_42992_i128(113427455640312821154458202477256070485, 128) == 0 +; run: %transplant_42992_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 113427455640312821154458202477256070485 +; run: %transplant_42992_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_42992_i128(170141183460469231731687303715884105727, 127) == 127 +; run: %transplant_42992_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 + +function %transplant_42861_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp eq v0, v3 + v5 = iconst.i64 0 + v6 = sextend.i128 v5 + v7 = imul v0, v1 + v8 = select v4, v6, v7 + return v8 +} +; run: %transplant_42861_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42861_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_42861_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_42861_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -37809151880104273718152734159085356828 +; run: %transplant_42861_i128(-113427455640312821154458202477256070486, 129) == -86 +; run: %transplant_42861_i128(-1, -1) == 1 +; run: %transplant_42861_i128(-1, 0) == 0 +; run: %transplant_42861_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070485 +; run: %transplant_42861_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42861_i128(0, -1) == 0 +; run: %transplant_42861_i128(0, 0) == 0 +; run: %transplant_42861_i128(0, 1) == 0 +; run: %transplant_42861_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_42861_i128(1, 0) == 0 +; run: %transplant_42861_i128(1, 1) == 1 +; run: %transplant_42861_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_42861_i128(2, 0) == 0 +; run: %transplant_42861_i128(2, 2) == 4 +; run: %transplant_42861_i128(13, 1) == 13 +; run: %transplant_42861_i128(13, 13) == 169 +; run: %transplant_42861_i128(42, -1) == -42 +; run: %transplant_42861_i128(42, 42) == 1764 +; run: %transplant_42861_i128(127, 2) == 254 +; run: %transplant_42861_i128(127, 127) == 16129 +; run: %transplant_42861_i128(128, 13) == 1664 +; run: %transplant_42861_i128(128, 128) == 16384 +; run: %transplant_42861_i128(129, 42) == 5418 +; run: %transplant_42861_i128(129, 129) == 16641 +; run: %transplant_42861_i128(113427455640312821154458202477256070485, 128) == -113427455640312821154458202477256070528 +; run: %transplant_42861_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 75618303760208547436305468318170713657 +; run: %transplant_42861_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_42861_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105601 +; run: %transplant_42861_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 + +function %transplant_42996_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = iconst.i64 0 + v3 = sextend.i128 v2 + v4 = icmp ne v0, v3 + v5 = imul v0, v1 + v6 = iconst.i64 0 + v7 = sextend.i128 v6 + v8 = select v4, v5, v7 + return v8 +} +; run: %transplant_42996_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42996_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 0 +; run: %transplant_42996_i128(-170141183460469231731687303715884105728, 0) == 0 +; run: %transplant_42996_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -37809151880104273718152734159085356828 +; run: %transplant_42996_i128(-113427455640312821154458202477256070486, 129) == -86 +; run: %transplant_42996_i128(-1, -1) == 1 +; run: %transplant_42996_i128(-1, 0) == 0 +; run: %transplant_42996_i128(-1, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070485 +; run: %transplant_42996_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_42996_i128(0, -1) == 0 +; run: %transplant_42996_i128(0, 0) == 0 +; run: %transplant_42996_i128(0, 1) == 0 +; run: %transplant_42996_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_42996_i128(1, 0) == 0 +; run: %transplant_42996_i128(1, 1) == 1 +; run: %transplant_42996_i128(1, 170141183460469231731687303715884105727) == 170141183460469231731687303715884105727 +; run: %transplant_42996_i128(2, 0) == 0 +; run: %transplant_42996_i128(2, 2) == 4 +; run: %transplant_42996_i128(13, 1) == 13 +; run: %transplant_42996_i128(13, 13) == 169 +; run: %transplant_42996_i128(42, -1) == -42 +; run: %transplant_42996_i128(42, 42) == 1764 +; run: %transplant_42996_i128(127, 2) == 254 +; run: %transplant_42996_i128(127, 127) == 16129 +; run: %transplant_42996_i128(128, 13) == 1664 +; run: %transplant_42996_i128(128, 128) == 16384 +; run: %transplant_42996_i128(129, 42) == 5418 +; run: %transplant_42996_i128(129, 129) == 16641 +; run: %transplant_42996_i128(113427455640312821154458202477256070485, 128) == -113427455640312821154458202477256070528 +; run: %transplant_42996_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == 75618303760208547436305468318170713657 +; run: %transplant_42996_i128(170141183460469231731687303715884105727, 0) == 0 +; run: %transplant_42996_i128(170141183460469231731687303715884105727, 127) == 170141183460469231731687303715884105601 +; run: %transplant_42996_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == 1 + +function %transplant_39204_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = rotl v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39204_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_39204_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 2199023255552 +; run: %transplant_39204_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_39204_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_39204_i128(-113427455640312821154458202477256070486, 129) == 113427455640312821154458202477256070485 +; run: %transplant_39204_i128(-1, -1) == -1 +; run: %transplant_39204_i128(-1, 0) == -1 +; run: %transplant_39204_i128(-1, 113427455640312821154458202477256070485) == -1 +; run: %transplant_39204_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_39204_i128(0, -1) == 0 +; run: %transplant_39204_i128(0, 0) == 0 +; run: %transplant_39204_i128(0, 1) == 0 +; run: %transplant_39204_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_39204_i128(1, 0) == 1 +; run: %transplant_39204_i128(1, 1) == 2 +; run: %transplant_39204_i128(1, 170141183460469231731687303715884105727) == -170141183460469231731687303715884105728 +; run: %transplant_39204_i128(2, 0) == 2 +; run: %transplant_39204_i128(2, 2) == 8 +; run: %transplant_39204_i128(13, 1) == 26 +; run: %transplant_39204_i128(13, 13) == 106496 +; run: %transplant_39204_i128(42, -1) == 21 +; run: %transplant_39204_i128(42, 42) == 184717953466368 +; run: %transplant_39204_i128(127, 2) == 508 +; run: %transplant_39204_i128(127, 127) == -170141183460469231731687303715884105665 +; run: %transplant_39204_i128(128, 13) == 1048576 +; run: %transplant_39204_i128(128, 128) == 128 +; run: %transplant_39204_i128(129, 42) == 567347999932416 +; run: %transplant_39204_i128(129, 129) == 258 +; run: %transplant_39204_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070485 +; run: %transplant_39204_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_39204_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_39204_i128(170141183460469231731687303715884105727, 127) == -85070591730234615865843651857942052865 +; run: %transplant_39204_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -85070591730234615865843651857942052865 + +function %transplant_39205_i128(i128, i128) -> i128 { +block0(v0: i128, v1: i128): + v2 = bnot v0 + v3 = rotr v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39205_i128(-170141183460469231731687303715884105728, -170141183460469231731687303715884105728) == -170141183460469231731687303715884105728 +; run: %transplant_39205_i128(-170141183460469231731687303715884105728, -113427455640312821154458202477256070486) == 38685626227668133590597632 +; run: %transplant_39205_i128(-170141183460469231731687303715884105728, 0) == -170141183460469231731687303715884105728 +; run: %transplant_39205_i128(-113427455640312821154458202477256070486, -113427455640312821154458202477256070486) == -113427455640312821154458202477256070486 +; run: %transplant_39205_i128(-113427455640312821154458202477256070486, 129) == 113427455640312821154458202477256070485 +; run: %transplant_39205_i128(-1, -1) == -1 +; run: %transplant_39205_i128(-1, 0) == -1 +; run: %transplant_39205_i128(-1, 113427455640312821154458202477256070485) == -1 +; run: %transplant_39205_i128(0, -170141183460469231731687303715884105728) == 0 +; run: %transplant_39205_i128(0, -1) == 0 +; run: %transplant_39205_i128(0, 0) == 0 +; run: %transplant_39205_i128(0, 1) == 0 +; run: %transplant_39205_i128(0, 170141183460469231731687303715884105727) == 0 +; run: %transplant_39205_i128(1, 0) == 1 +; run: %transplant_39205_i128(1, 1) == -170141183460469231731687303715884105728 +; run: %transplant_39205_i128(1, 170141183460469231731687303715884105727) == 2 +; run: %transplant_39205_i128(2, 0) == 2 +; run: %transplant_39205_i128(2, 2) == -170141183460469231731687303715884105728 +; run: %transplant_39205_i128(13, 1) == -170141183460469231731687303715884105722 +; run: %transplant_39205_i128(13, 13) == 539998873287622073367171618238889984 +; run: %transplant_39205_i128(42, -1) == 84 +; run: %transplant_39205_i128(42, 42) == 3249592603124123221610201088 +; run: %transplant_39205_i128(127, 2) == -85070591730234615865843651857942052833 +; run: %transplant_39205_i128(127, 127) == 254 +; run: %transplant_39205_i128(128, 13) == 5316911983139663491615228241121378304 +; run: %transplant_39205_i128(128, 128) == 128 +; run: %transplant_39205_i128(129, 42) == 9980891566738378466374189056 +; run: %transplant_39205_i128(129, 129) == -170141183460469231731687303715884105664 +; run: %transplant_39205_i128(113427455640312821154458202477256070485, 128) == 113427455640312821154458202477256070485 +; run: %transplant_39205_i128(113427455640312821154458202477256070485, 113427455640312821154458202477256070485) == -113427455640312821154458202477256070486 +; run: %transplant_39205_i128(170141183460469231731687303715884105727, 0) == 170141183460469231731687303715884105727 +; run: %transplant_39205_i128(170141183460469231731687303715884105727, 127) == -2 +; run: %transplant_39205_i128(170141183460469231731687303715884105727, 170141183460469231731687303715884105727) == -2 diff --git a/cranelift/filetests/filetests/runtests/icmp.clif b/cranelift/filetests/filetests/runtests/icmp.clif index df09e489adcf..d5a7bc53c856 100644 --- a/cranelift/filetests/filetests/runtests/icmp.clif +++ b/cranelift/filetests/filetests/runtests/icmp.clif @@ -563,3 +563,2401 @@ block0(v0: i32, v1: i32): ; run: %band_eq_zero_i32(-1, -1) == 0 ; run: %band_eq_zero_i32(-2147483648, 2147483647) == 0 ; run: %band_eq_zero_i32(1431655765, 0xaaaaaaaa) == 0 + +function %transplant_41371_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41371_i8(-128) == 0 +; run: %transplant_41371_i8(-86) == 0 +; run: %transplant_41371_i8(-1) == 0 +; run: %transplant_41371_i8(0) == 1 +; run: %transplant_41371_i8(1) == 0 +; run: %transplant_41371_i8(2) == 0 +; run: %transplant_41371_i8(7) == 0 +; run: %transplant_41371_i8(8) == 0 +; run: %transplant_41371_i8(9) == 0 +; run: %transplant_41371_i8(13) == 0 +; run: %transplant_41371_i8(42) == 0 +; run: %transplant_41371_i8(85) == 0 +; run: %transplant_41371_i8(127) == 0 + +function %transplant_41371_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41371_i64(-9223372036854775808) == 0 +; run: %transplant_41371_i64(-6148914691236517206) == 0 +; run: %transplant_41371_i64(-1) == 0 +; run: %transplant_41371_i64(0) == 1 +; run: %transplant_41371_i64(1) == 0 +; run: %transplant_41371_i64(2) == 0 +; run: %transplant_41371_i64(13) == 0 +; run: %transplant_41371_i64(42) == 0 +; run: %transplant_41371_i64(63) == 0 +; run: %transplant_41371_i64(64) == 0 +; run: %transplant_41371_i64(65) == 0 +; run: %transplant_41371_i64(6148914691236517205) == 0 +; run: %transplant_41371_i64(9223372036854775807) == 0 + +function %transplant_41481_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v0, v2 + return v3 +} +; run: %transplant_41481_i8(-128) == 0 +; run: %transplant_41481_i8(-86) == 0 +; run: %transplant_41481_i8(-1) == 0 +; run: %transplant_41481_i8(0) == 1 +; run: %transplant_41481_i8(1) == 0 +; run: %transplant_41481_i8(2) == 0 +; run: %transplant_41481_i8(7) == 0 +; run: %transplant_41481_i8(8) == 0 +; run: %transplant_41481_i8(9) == 0 +; run: %transplant_41481_i8(13) == 0 +; run: %transplant_41481_i8(42) == 0 +; run: %transplant_41481_i8(85) == 0 +; run: %transplant_41481_i8(127) == 0 + +function %transplant_41481_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v0, v2 + return v3 +} +; run: %transplant_41481_i64(-9223372036854775808) == 0 +; run: %transplant_41481_i64(-6148914691236517206) == 0 +; run: %transplant_41481_i64(-1) == 0 +; run: %transplant_41481_i64(0) == 1 +; run: %transplant_41481_i64(1) == 0 +; run: %transplant_41481_i64(2) == 0 +; run: %transplant_41481_i64(13) == 0 +; run: %transplant_41481_i64(42) == 0 +; run: %transplant_41481_i64(63) == 0 +; run: %transplant_41481_i64(64) == 0 +; run: %transplant_41481_i64(65) == 0 +; run: %transplant_41481_i64(6148914691236517205) == 0 +; run: %transplant_41481_i64(9223372036854775807) == 0 + +function %transplant_41468_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41468_i8(-128) == 0 +; run: %transplant_41468_i8(-86) == 0 +; run: %transplant_41468_i8(-1) == 0 +; run: %transplant_41468_i8(0) == 1 +; run: %transplant_41468_i8(1) == 0 +; run: %transplant_41468_i8(2) == 0 +; run: %transplant_41468_i8(7) == 0 +; run: %transplant_41468_i8(8) == 0 +; run: %transplant_41468_i8(9) == 0 +; run: %transplant_41468_i8(13) == 0 +; run: %transplant_41468_i8(42) == 0 +; run: %transplant_41468_i8(85) == 0 +; run: %transplant_41468_i8(127) == 0 + +function %transplant_41468_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41468_i64(-9223372036854775808) == 0 +; run: %transplant_41468_i64(-6148914691236517206) == 0 +; run: %transplant_41468_i64(-1) == 0 +; run: %transplant_41468_i64(0) == 1 +; run: %transplant_41468_i64(1) == 0 +; run: %transplant_41468_i64(2) == 0 +; run: %transplant_41468_i64(13) == 0 +; run: %transplant_41468_i64(42) == 0 +; run: %transplant_41468_i64(63) == 0 +; run: %transplant_41468_i64(64) == 0 +; run: %transplant_41468_i64(65) == 0 +; run: %transplant_41468_i64(6148914691236517205) == 0 +; run: %transplant_41468_i64(9223372036854775807) == 0 + +function %transplant_41521_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v0, v2 + return v3 +} +; run: %transplant_41521_i8(-128) == 0 +; run: %transplant_41521_i8(-86) == 0 +; run: %transplant_41521_i8(-1) == 0 +; run: %transplant_41521_i8(0) == 1 +; run: %transplant_41521_i8(1) == 0 +; run: %transplant_41521_i8(2) == 0 +; run: %transplant_41521_i8(7) == 0 +; run: %transplant_41521_i8(8) == 0 +; run: %transplant_41521_i8(9) == 0 +; run: %transplant_41521_i8(13) == 0 +; run: %transplant_41521_i8(42) == 0 +; run: %transplant_41521_i8(85) == 0 +; run: %transplant_41521_i8(127) == 0 + +function %transplant_41521_i64(i64) -> i8 { +block0(v0: i64): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v0, v2 + return v3 +} +; run: %transplant_41521_i64(-9223372036854775808) == 0 +; run: %transplant_41521_i64(-6148914691236517206) == 0 +; run: %transplant_41521_i64(-1) == 0 +; run: %transplant_41521_i64(0) == 1 +; run: %transplant_41521_i64(1) == 0 +; run: %transplant_41521_i64(2) == 0 +; run: %transplant_41521_i64(13) == 0 +; run: %transplant_41521_i64(42) == 0 +; run: %transplant_41521_i64(63) == 0 +; run: %transplant_41521_i64(64) == 0 +; run: %transplant_41521_i64(65) == 0 +; run: %transplant_41521_i64(6148914691236517205) == 0 +; run: %transplant_41521_i64(9223372036854775807) == 0 + +function %transplant_41309_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} +; run: %transplant_41309_i8(-128, -128) == 0 +; run: %transplant_41309_i8(-128, -86) == 0 +; run: %transplant_41309_i8(-128, 0) == 1 +; run: %transplant_41309_i8(-86, -86) == 0 +; run: %transplant_41309_i8(-86, 9) == 0 +; run: %transplant_41309_i8(-1, -1) == 0 +; run: %transplant_41309_i8(-1, 0) == 1 +; run: %transplant_41309_i8(-1, 85) == 0 +; run: %transplant_41309_i8(0, -128) == 1 +; run: %transplant_41309_i8(0, -1) == 1 +; run: %transplant_41309_i8(0, 0) == 1 +; run: %transplant_41309_i8(0, 1) == 1 +; run: %transplant_41309_i8(0, 127) == 1 +; run: %transplant_41309_i8(1, 0) == 1 +; run: %transplant_41309_i8(1, 1) == 0 +; run: %transplant_41309_i8(1, 127) == 0 +; run: %transplant_41309_i8(2, 0) == 1 +; run: %transplant_41309_i8(2, 2) == 0 +; run: %transplant_41309_i8(7, 2) == 0 +; run: %transplant_41309_i8(7, 7) == 0 +; run: %transplant_41309_i8(8, 8) == 0 +; run: %transplant_41309_i8(8, 13) == 0 +; run: %transplant_41309_i8(9, 9) == 0 +; run: %transplant_41309_i8(9, 42) == 0 +; run: %transplant_41309_i8(13, 1) == 0 +; run: %transplant_41309_i8(13, 13) == 0 +; run: %transplant_41309_i8(42, -1) == 0 +; run: %transplant_41309_i8(42, 42) == 0 +; run: %transplant_41309_i8(85, 8) == 1 +; run: %transplant_41309_i8(85, 85) == 0 +; run: %transplant_41309_i8(127, 0) == 1 +; run: %transplant_41309_i8(127, 7) == 0 +; run: %transplant_41309_i8(127, 127) == 0 + +function %transplant_41309_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} +; run: %transplant_41309_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41309_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41309_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41309_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41309_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41309_i64(-1, -1) == 0 +; run: %transplant_41309_i64(-1, 0) == 1 +; run: %transplant_41309_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41309_i64(0, -9223372036854775808) == 1 +; run: %transplant_41309_i64(0, -1) == 1 +; run: %transplant_41309_i64(0, 0) == 1 +; run: %transplant_41309_i64(0, 1) == 1 +; run: %transplant_41309_i64(0, 9223372036854775807) == 1 +; run: %transplant_41309_i64(1, 0) == 1 +; run: %transplant_41309_i64(1, 1) == 0 +; run: %transplant_41309_i64(1, 9223372036854775807) == 0 +; run: %transplant_41309_i64(2, 0) == 1 +; run: %transplant_41309_i64(2, 2) == 0 +; run: %transplant_41309_i64(13, 1) == 0 +; run: %transplant_41309_i64(13, 13) == 0 +; run: %transplant_41309_i64(42, -1) == 0 +; run: %transplant_41309_i64(42, 42) == 0 +; run: %transplant_41309_i64(63, 2) == 0 +; run: %transplant_41309_i64(63, 63) == 0 +; run: %transplant_41309_i64(64, 13) == 1 +; run: %transplant_41309_i64(64, 64) == 0 +; run: %transplant_41309_i64(65, 42) == 1 +; run: %transplant_41309_i64(65, 65) == 0 +; run: %transplant_41309_i64(6148914691236517205, 64) == 0 +; run: %transplant_41309_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41309_i64(9223372036854775807, 0) == 1 +; run: %transplant_41309_i64(9223372036854775807, 63) == 0 +; run: %transplant_41309_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41318_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v3, v0 + return v4 +} +; run: %transplant_41318_i8(-128, -128) == 0 +; run: %transplant_41318_i8(-128, -86) == 0 +; run: %transplant_41318_i8(-128, 0) == 1 +; run: %transplant_41318_i8(-86, -86) == 0 +; run: %transplant_41318_i8(-86, 9) == 0 +; run: %transplant_41318_i8(-1, -1) == 0 +; run: %transplant_41318_i8(-1, 0) == 1 +; run: %transplant_41318_i8(-1, 85) == 0 +; run: %transplant_41318_i8(0, -128) == 1 +; run: %transplant_41318_i8(0, -1) == 1 +; run: %transplant_41318_i8(0, 0) == 1 +; run: %transplant_41318_i8(0, 1) == 1 +; run: %transplant_41318_i8(0, 127) == 1 +; run: %transplant_41318_i8(1, 0) == 1 +; run: %transplant_41318_i8(1, 1) == 0 +; run: %transplant_41318_i8(1, 127) == 0 +; run: %transplant_41318_i8(2, 0) == 1 +; run: %transplant_41318_i8(2, 2) == 0 +; run: %transplant_41318_i8(7, 2) == 0 +; run: %transplant_41318_i8(7, 7) == 0 +; run: %transplant_41318_i8(8, 8) == 0 +; run: %transplant_41318_i8(8, 13) == 0 +; run: %transplant_41318_i8(9, 9) == 0 +; run: %transplant_41318_i8(9, 42) == 0 +; run: %transplant_41318_i8(13, 1) == 0 +; run: %transplant_41318_i8(13, 13) == 0 +; run: %transplant_41318_i8(42, -1) == 0 +; run: %transplant_41318_i8(42, 42) == 0 +; run: %transplant_41318_i8(85, 8) == 1 +; run: %transplant_41318_i8(85, 85) == 0 +; run: %transplant_41318_i8(127, 0) == 1 +; run: %transplant_41318_i8(127, 7) == 0 +; run: %transplant_41318_i8(127, 127) == 0 + +function %transplant_41318_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v3, v0 + return v4 +} +; run: %transplant_41318_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41318_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41318_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41318_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41318_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41318_i64(-1, -1) == 0 +; run: %transplant_41318_i64(-1, 0) == 1 +; run: %transplant_41318_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41318_i64(0, -9223372036854775808) == 1 +; run: %transplant_41318_i64(0, -1) == 1 +; run: %transplant_41318_i64(0, 0) == 1 +; run: %transplant_41318_i64(0, 1) == 1 +; run: %transplant_41318_i64(0, 9223372036854775807) == 1 +; run: %transplant_41318_i64(1, 0) == 1 +; run: %transplant_41318_i64(1, 1) == 0 +; run: %transplant_41318_i64(1, 9223372036854775807) == 0 +; run: %transplant_41318_i64(2, 0) == 1 +; run: %transplant_41318_i64(2, 2) == 0 +; run: %transplant_41318_i64(13, 1) == 0 +; run: %transplant_41318_i64(13, 13) == 0 +; run: %transplant_41318_i64(42, -1) == 0 +; run: %transplant_41318_i64(42, 42) == 0 +; run: %transplant_41318_i64(63, 2) == 0 +; run: %transplant_41318_i64(63, 63) == 0 +; run: %transplant_41318_i64(64, 13) == 1 +; run: %transplant_41318_i64(64, 64) == 0 +; run: %transplant_41318_i64(65, 42) == 1 +; run: %transplant_41318_i64(65, 65) == 0 +; run: %transplant_41318_i64(6148914691236517205, 64) == 0 +; run: %transplant_41318_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41318_i64(9223372036854775807, 0) == 1 +; run: %transplant_41318_i64(9223372036854775807, 63) == 0 +; run: %transplant_41318_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41469_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v2, v0 + v4 = icmp eq v0, v3 + return v4 +} +; run: %transplant_41469_i8(-128, -128) == 0 +; run: %transplant_41469_i8(-128, -86) == 0 +; run: %transplant_41469_i8(-128, 0) == 1 +; run: %transplant_41469_i8(-86, -86) == 0 +; run: %transplant_41469_i8(-86, 9) == 0 +; run: %transplant_41469_i8(-1, -1) == 0 +; run: %transplant_41469_i8(-1, 0) == 1 +; run: %transplant_41469_i8(-1, 85) == 0 +; run: %transplant_41469_i8(0, -128) == 1 +; run: %transplant_41469_i8(0, -1) == 1 +; run: %transplant_41469_i8(0, 0) == 1 +; run: %transplant_41469_i8(0, 1) == 1 +; run: %transplant_41469_i8(0, 127) == 1 +; run: %transplant_41469_i8(1, 0) == 1 +; run: %transplant_41469_i8(1, 1) == 0 +; run: %transplant_41469_i8(1, 127) == 0 +; run: %transplant_41469_i8(2, 0) == 1 +; run: %transplant_41469_i8(2, 2) == 0 +; run: %transplant_41469_i8(7, 2) == 0 +; run: %transplant_41469_i8(7, 7) == 0 +; run: %transplant_41469_i8(8, 8) == 0 +; run: %transplant_41469_i8(8, 13) == 0 +; run: %transplant_41469_i8(9, 9) == 0 +; run: %transplant_41469_i8(9, 42) == 0 +; run: %transplant_41469_i8(13, 1) == 0 +; run: %transplant_41469_i8(13, 13) == 0 +; run: %transplant_41469_i8(42, -1) == 0 +; run: %transplant_41469_i8(42, 42) == 0 +; run: %transplant_41469_i8(85, 8) == 1 +; run: %transplant_41469_i8(85, 85) == 0 +; run: %transplant_41469_i8(127, 0) == 1 +; run: %transplant_41469_i8(127, 7) == 0 +; run: %transplant_41469_i8(127, 127) == 0 + +function %transplant_41469_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v2, v0 + v4 = icmp eq v0, v3 + return v4 +} +; run: %transplant_41469_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41469_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41469_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41469_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41469_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41469_i64(-1, -1) == 0 +; run: %transplant_41469_i64(-1, 0) == 1 +; run: %transplant_41469_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41469_i64(0, -9223372036854775808) == 1 +; run: %transplant_41469_i64(0, -1) == 1 +; run: %transplant_41469_i64(0, 0) == 1 +; run: %transplant_41469_i64(0, 1) == 1 +; run: %transplant_41469_i64(0, 9223372036854775807) == 1 +; run: %transplant_41469_i64(1, 0) == 1 +; run: %transplant_41469_i64(1, 1) == 0 +; run: %transplant_41469_i64(1, 9223372036854775807) == 0 +; run: %transplant_41469_i64(2, 0) == 1 +; run: %transplant_41469_i64(2, 2) == 0 +; run: %transplant_41469_i64(13, 1) == 0 +; run: %transplant_41469_i64(13, 13) == 0 +; run: %transplant_41469_i64(42, -1) == 0 +; run: %transplant_41469_i64(42, 42) == 0 +; run: %transplant_41469_i64(63, 2) == 0 +; run: %transplant_41469_i64(63, 63) == 0 +; run: %transplant_41469_i64(64, 13) == 1 +; run: %transplant_41469_i64(64, 64) == 0 +; run: %transplant_41469_i64(65, 42) == 1 +; run: %transplant_41469_i64(65, 65) == 0 +; run: %transplant_41469_i64(6148914691236517205, 64) == 0 +; run: %transplant_41469_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41469_i64(9223372036854775807, 0) == 1 +; run: %transplant_41469_i64(9223372036854775807, 63) == 0 +; run: %transplant_41469_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41472_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v0, v3 + return v4 +} +; run: %transplant_41472_i8(-128, -128) == 0 +; run: %transplant_41472_i8(-128, -86) == 0 +; run: %transplant_41472_i8(-128, 0) == 1 +; run: %transplant_41472_i8(-86, -86) == 0 +; run: %transplant_41472_i8(-86, 9) == 0 +; run: %transplant_41472_i8(-1, -1) == 0 +; run: %transplant_41472_i8(-1, 0) == 1 +; run: %transplant_41472_i8(-1, 85) == 0 +; run: %transplant_41472_i8(0, -128) == 1 +; run: %transplant_41472_i8(0, -1) == 1 +; run: %transplant_41472_i8(0, 0) == 1 +; run: %transplant_41472_i8(0, 1) == 1 +; run: %transplant_41472_i8(0, 127) == 1 +; run: %transplant_41472_i8(1, 0) == 1 +; run: %transplant_41472_i8(1, 1) == 0 +; run: %transplant_41472_i8(1, 127) == 0 +; run: %transplant_41472_i8(2, 0) == 1 +; run: %transplant_41472_i8(2, 2) == 0 +; run: %transplant_41472_i8(7, 2) == 0 +; run: %transplant_41472_i8(7, 7) == 0 +; run: %transplant_41472_i8(8, 8) == 0 +; run: %transplant_41472_i8(8, 13) == 0 +; run: %transplant_41472_i8(9, 9) == 0 +; run: %transplant_41472_i8(9, 42) == 0 +; run: %transplant_41472_i8(13, 1) == 0 +; run: %transplant_41472_i8(13, 13) == 0 +; run: %transplant_41472_i8(42, -1) == 0 +; run: %transplant_41472_i8(42, 42) == 0 +; run: %transplant_41472_i8(85, 8) == 1 +; run: %transplant_41472_i8(85, 85) == 0 +; run: %transplant_41472_i8(127, 0) == 1 +; run: %transplant_41472_i8(127, 7) == 0 +; run: %transplant_41472_i8(127, 127) == 0 + +function %transplant_41472_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = band v0, v2 + v4 = icmp eq v0, v3 + return v4 +} +; run: %transplant_41472_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41472_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41472_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41472_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41472_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41472_i64(-1, -1) == 0 +; run: %transplant_41472_i64(-1, 0) == 1 +; run: %transplant_41472_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41472_i64(0, -9223372036854775808) == 1 +; run: %transplant_41472_i64(0, -1) == 1 +; run: %transplant_41472_i64(0, 0) == 1 +; run: %transplant_41472_i64(0, 1) == 1 +; run: %transplant_41472_i64(0, 9223372036854775807) == 1 +; run: %transplant_41472_i64(1, 0) == 1 +; run: %transplant_41472_i64(1, 1) == 0 +; run: %transplant_41472_i64(1, 9223372036854775807) == 0 +; run: %transplant_41472_i64(2, 0) == 1 +; run: %transplant_41472_i64(2, 2) == 0 +; run: %transplant_41472_i64(13, 1) == 0 +; run: %transplant_41472_i64(13, 13) == 0 +; run: %transplant_41472_i64(42, -1) == 0 +; run: %transplant_41472_i64(42, 42) == 0 +; run: %transplant_41472_i64(63, 2) == 0 +; run: %transplant_41472_i64(63, 63) == 0 +; run: %transplant_41472_i64(64, 13) == 1 +; run: %transplant_41472_i64(64, 64) == 0 +; run: %transplant_41472_i64(65, 42) == 1 +; run: %transplant_41472_i64(65, 65) == 0 +; run: %transplant_41472_i64(6148914691236517205, 64) == 0 +; run: %transplant_41472_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41472_i64(9223372036854775807, 0) == 1 +; run: %transplant_41472_i64(9223372036854775807, 63) == 0 +; run: %transplant_41472_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41459_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = iconst.i8 0 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41459_i8(-128, -128) == 0 +; run: %transplant_41459_i8(-128, -86) == 0 +; run: %transplant_41459_i8(-128, 0) == 0 +; run: %transplant_41459_i8(-86, -86) == 0 +; run: %transplant_41459_i8(-86, 9) == 0 +; run: %transplant_41459_i8(-1, -1) == 0 +; run: %transplant_41459_i8(-1, 0) == 0 +; run: %transplant_41459_i8(-1, 85) == 0 +; run: %transplant_41459_i8(0, -128) == 0 +; run: %transplant_41459_i8(0, -1) == 0 +; run: %transplant_41459_i8(0, 0) == 1 +; run: %transplant_41459_i8(0, 1) == 0 +; run: %transplant_41459_i8(0, 127) == 0 +; run: %transplant_41459_i8(1, 0) == 0 +; run: %transplant_41459_i8(1, 1) == 0 +; run: %transplant_41459_i8(1, 127) == 0 +; run: %transplant_41459_i8(2, 0) == 0 +; run: %transplant_41459_i8(2, 2) == 0 +; run: %transplant_41459_i8(7, 2) == 0 +; run: %transplant_41459_i8(7, 7) == 0 +; run: %transplant_41459_i8(8, 8) == 0 +; run: %transplant_41459_i8(8, 13) == 0 +; run: %transplant_41459_i8(9, 9) == 0 +; run: %transplant_41459_i8(9, 42) == 0 +; run: %transplant_41459_i8(13, 1) == 0 +; run: %transplant_41459_i8(13, 13) == 0 +; run: %transplant_41459_i8(42, -1) == 0 +; run: %transplant_41459_i8(42, 42) == 0 +; run: %transplant_41459_i8(85, 8) == 0 +; run: %transplant_41459_i8(85, 85) == 0 +; run: %transplant_41459_i8(127, 0) == 0 +; run: %transplant_41459_i8(127, 7) == 0 +; run: %transplant_41459_i8(127, 127) == 0 + +function %transplant_41459_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41459_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41459_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41459_i64(-9223372036854775808, 0) == 0 +; run: %transplant_41459_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41459_i64(-6148914691236517206, 65) == 0 +; run: %transplant_41459_i64(-1, -1) == 0 +; run: %transplant_41459_i64(-1, 0) == 0 +; run: %transplant_41459_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41459_i64(0, -9223372036854775808) == 0 +; run: %transplant_41459_i64(0, -1) == 0 +; run: %transplant_41459_i64(0, 0) == 1 +; run: %transplant_41459_i64(0, 1) == 0 +; run: %transplant_41459_i64(0, 9223372036854775807) == 0 +; run: %transplant_41459_i64(1, 0) == 0 +; run: %transplant_41459_i64(1, 1) == 0 +; run: %transplant_41459_i64(1, 9223372036854775807) == 0 +; run: %transplant_41459_i64(2, 0) == 0 +; run: %transplant_41459_i64(2, 2) == 0 +; run: %transplant_41459_i64(13, 1) == 0 +; run: %transplant_41459_i64(13, 13) == 0 +; run: %transplant_41459_i64(42, -1) == 0 +; run: %transplant_41459_i64(42, 42) == 0 +; run: %transplant_41459_i64(63, 2) == 0 +; run: %transplant_41459_i64(63, 63) == 0 +; run: %transplant_41459_i64(64, 13) == 0 +; run: %transplant_41459_i64(64, 64) == 0 +; run: %transplant_41459_i64(65, 42) == 0 +; run: %transplant_41459_i64(65, 65) == 0 +; run: %transplant_41459_i64(6148914691236517205, 64) == 0 +; run: %transplant_41459_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41459_i64(9223372036854775807, 0) == 0 +; run: %transplant_41459_i64(9223372036854775807, 63) == 0 +; run: %transplant_41459_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_42478_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = iconst.i8 0 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42478_i8(-128, -128) == 1 +; run: %transplant_42478_i8(-128, -86) == 1 +; run: %transplant_42478_i8(-128, 0) == 1 +; run: %transplant_42478_i8(-86, -86) == 1 +; run: %transplant_42478_i8(-86, 9) == 1 +; run: %transplant_42478_i8(-1, -1) == 1 +; run: %transplant_42478_i8(-1, 0) == 1 +; run: %transplant_42478_i8(-1, 85) == 1 +; run: %transplant_42478_i8(0, -128) == 1 +; run: %transplant_42478_i8(0, -1) == 1 +; run: %transplant_42478_i8(0, 0) == 0 +; run: %transplant_42478_i8(0, 1) == 1 +; run: %transplant_42478_i8(0, 127) == 1 +; run: %transplant_42478_i8(1, 0) == 1 +; run: %transplant_42478_i8(1, 1) == 1 +; run: %transplant_42478_i8(1, 127) == 1 +; run: %transplant_42478_i8(2, 0) == 1 +; run: %transplant_42478_i8(2, 2) == 1 +; run: %transplant_42478_i8(7, 2) == 1 +; run: %transplant_42478_i8(7, 7) == 1 +; run: %transplant_42478_i8(8, 8) == 1 +; run: %transplant_42478_i8(8, 13) == 1 +; run: %transplant_42478_i8(9, 9) == 1 +; run: %transplant_42478_i8(9, 42) == 1 +; run: %transplant_42478_i8(13, 1) == 1 +; run: %transplant_42478_i8(13, 13) == 1 +; run: %transplant_42478_i8(42, -1) == 1 +; run: %transplant_42478_i8(42, 42) == 1 +; run: %transplant_42478_i8(85, 8) == 1 +; run: %transplant_42478_i8(85, 85) == 1 +; run: %transplant_42478_i8(127, 0) == 1 +; run: %transplant_42478_i8(127, 7) == 1 +; run: %transplant_42478_i8(127, 127) == 1 + +function %transplant_42478_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = iconst.i64 0 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42478_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_42478_i64(-9223372036854775808, -6148914691236517206) == 1 +; run: %transplant_42478_i64(-9223372036854775808, 0) == 1 +; run: %transplant_42478_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_42478_i64(-6148914691236517206, 65) == 1 +; run: %transplant_42478_i64(-1, -1) == 1 +; run: %transplant_42478_i64(-1, 0) == 1 +; run: %transplant_42478_i64(-1, 6148914691236517205) == 1 +; run: %transplant_42478_i64(0, -9223372036854775808) == 1 +; run: %transplant_42478_i64(0, -1) == 1 +; run: %transplant_42478_i64(0, 0) == 0 +; run: %transplant_42478_i64(0, 1) == 1 +; run: %transplant_42478_i64(0, 9223372036854775807) == 1 +; run: %transplant_42478_i64(1, 0) == 1 +; run: %transplant_42478_i64(1, 1) == 1 +; run: %transplant_42478_i64(1, 9223372036854775807) == 1 +; run: %transplant_42478_i64(2, 0) == 1 +; run: %transplant_42478_i64(2, 2) == 1 +; run: %transplant_42478_i64(13, 1) == 1 +; run: %transplant_42478_i64(13, 13) == 1 +; run: %transplant_42478_i64(42, -1) == 1 +; run: %transplant_42478_i64(42, 42) == 1 +; run: %transplant_42478_i64(63, 2) == 1 +; run: %transplant_42478_i64(63, 63) == 1 +; run: %transplant_42478_i64(64, 13) == 1 +; run: %transplant_42478_i64(64, 64) == 1 +; run: %transplant_42478_i64(65, 42) == 1 +; run: %transplant_42478_i64(65, 65) == 1 +; run: %transplant_42478_i64(6148914691236517205, 64) == 1 +; run: %transplant_42478_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_42478_i64(9223372036854775807, 0) == 1 +; run: %transplant_42478_i64(9223372036854775807, 63) == 1 +; run: %transplant_42478_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_41460_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41460_i8(-128, -128) == 1 +; run: %transplant_41460_i8(-128, -86) == 0 +; run: %transplant_41460_i8(-128, 0) == 0 +; run: %transplant_41460_i8(-86, -86) == 1 +; run: %transplant_41460_i8(-86, 9) == 0 +; run: %transplant_41460_i8(-1, -1) == 1 +; run: %transplant_41460_i8(-1, 0) == 0 +; run: %transplant_41460_i8(-1, 85) == 0 +; run: %transplant_41460_i8(0, -128) == 0 +; run: %transplant_41460_i8(0, -1) == 0 +; run: %transplant_41460_i8(0, 0) == 1 +; run: %transplant_41460_i8(0, 1) == 0 +; run: %transplant_41460_i8(0, 127) == 0 +; run: %transplant_41460_i8(1, 0) == 0 +; run: %transplant_41460_i8(1, 1) == 1 +; run: %transplant_41460_i8(1, 127) == 0 +; run: %transplant_41460_i8(2, 0) == 0 +; run: %transplant_41460_i8(2, 2) == 1 +; run: %transplant_41460_i8(7, 2) == 0 +; run: %transplant_41460_i8(7, 7) == 1 +; run: %transplant_41460_i8(8, 8) == 1 +; run: %transplant_41460_i8(8, 13) == 0 +; run: %transplant_41460_i8(9, 9) == 1 +; run: %transplant_41460_i8(9, 42) == 0 +; run: %transplant_41460_i8(13, 1) == 0 +; run: %transplant_41460_i8(13, 13) == 1 +; run: %transplant_41460_i8(42, -1) == 0 +; run: %transplant_41460_i8(42, 42) == 1 +; run: %transplant_41460_i8(85, 8) == 0 +; run: %transplant_41460_i8(85, 85) == 1 +; run: %transplant_41460_i8(127, 0) == 0 +; run: %transplant_41460_i8(127, 7) == 0 +; run: %transplant_41460_i8(127, 127) == 1 + +function %transplant_41460_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41460_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_41460_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41460_i64(-9223372036854775808, 0) == 0 +; run: %transplant_41460_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_41460_i64(-6148914691236517206, 65) == 0 +; run: %transplant_41460_i64(-1, -1) == 1 +; run: %transplant_41460_i64(-1, 0) == 0 +; run: %transplant_41460_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41460_i64(0, -9223372036854775808) == 0 +; run: %transplant_41460_i64(0, -1) == 0 +; run: %transplant_41460_i64(0, 0) == 1 +; run: %transplant_41460_i64(0, 1) == 0 +; run: %transplant_41460_i64(0, 9223372036854775807) == 0 +; run: %transplant_41460_i64(1, 0) == 0 +; run: %transplant_41460_i64(1, 1) == 1 +; run: %transplant_41460_i64(1, 9223372036854775807) == 0 +; run: %transplant_41460_i64(2, 0) == 0 +; run: %transplant_41460_i64(2, 2) == 1 +; run: %transplant_41460_i64(13, 1) == 0 +; run: %transplant_41460_i64(13, 13) == 1 +; run: %transplant_41460_i64(42, -1) == 0 +; run: %transplant_41460_i64(42, 42) == 1 +; run: %transplant_41460_i64(63, 2) == 0 +; run: %transplant_41460_i64(63, 63) == 1 +; run: %transplant_41460_i64(64, 13) == 0 +; run: %transplant_41460_i64(64, 64) == 1 +; run: %transplant_41460_i64(65, 42) == 0 +; run: %transplant_41460_i64(65, 65) == 1 +; run: %transplant_41460_i64(6148914691236517205, 64) == 0 +; run: %transplant_41460_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_41460_i64(9223372036854775807, 0) == 0 +; run: %transplant_41460_i64(9223372036854775807, 63) == 0 +; run: %transplant_41460_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_41461_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41461_i8(-128, -128) == 1 +; run: %transplant_41461_i8(-128, -86) == 0 +; run: %transplant_41461_i8(-128, 0) == 0 +; run: %transplant_41461_i8(-86, -86) == 1 +; run: %transplant_41461_i8(-86, 9) == 0 +; run: %transplant_41461_i8(-1, -1) == 1 +; run: %transplant_41461_i8(-1, 0) == 0 +; run: %transplant_41461_i8(-1, 85) == 0 +; run: %transplant_41461_i8(0, -128) == 0 +; run: %transplant_41461_i8(0, -1) == 0 +; run: %transplant_41461_i8(0, 0) == 1 +; run: %transplant_41461_i8(0, 1) == 0 +; run: %transplant_41461_i8(0, 127) == 0 +; run: %transplant_41461_i8(1, 0) == 0 +; run: %transplant_41461_i8(1, 1) == 1 +; run: %transplant_41461_i8(1, 127) == 0 +; run: %transplant_41461_i8(2, 0) == 0 +; run: %transplant_41461_i8(2, 2) == 1 +; run: %transplant_41461_i8(7, 2) == 0 +; run: %transplant_41461_i8(7, 7) == 1 +; run: %transplant_41461_i8(8, 8) == 1 +; run: %transplant_41461_i8(8, 13) == 0 +; run: %transplant_41461_i8(9, 9) == 1 +; run: %transplant_41461_i8(9, 42) == 0 +; run: %transplant_41461_i8(13, 1) == 0 +; run: %transplant_41461_i8(13, 13) == 1 +; run: %transplant_41461_i8(42, -1) == 0 +; run: %transplant_41461_i8(42, 42) == 1 +; run: %transplant_41461_i8(85, 8) == 0 +; run: %transplant_41461_i8(85, 85) == 1 +; run: %transplant_41461_i8(127, 0) == 0 +; run: %transplant_41461_i8(127, 7) == 0 +; run: %transplant_41461_i8(127, 127) == 1 + +function %transplant_41461_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41461_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_41461_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41461_i64(-9223372036854775808, 0) == 0 +; run: %transplant_41461_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_41461_i64(-6148914691236517206, 65) == 0 +; run: %transplant_41461_i64(-1, -1) == 1 +; run: %transplant_41461_i64(-1, 0) == 0 +; run: %transplant_41461_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41461_i64(0, -9223372036854775808) == 0 +; run: %transplant_41461_i64(0, -1) == 0 +; run: %transplant_41461_i64(0, 0) == 1 +; run: %transplant_41461_i64(0, 1) == 0 +; run: %transplant_41461_i64(0, 9223372036854775807) == 0 +; run: %transplant_41461_i64(1, 0) == 0 +; run: %transplant_41461_i64(1, 1) == 1 +; run: %transplant_41461_i64(1, 9223372036854775807) == 0 +; run: %transplant_41461_i64(2, 0) == 0 +; run: %transplant_41461_i64(2, 2) == 1 +; run: %transplant_41461_i64(13, 1) == 0 +; run: %transplant_41461_i64(13, 13) == 1 +; run: %transplant_41461_i64(42, -1) == 0 +; run: %transplant_41461_i64(42, 42) == 1 +; run: %transplant_41461_i64(63, 2) == 0 +; run: %transplant_41461_i64(63, 63) == 1 +; run: %transplant_41461_i64(64, 13) == 0 +; run: %transplant_41461_i64(64, 64) == 1 +; run: %transplant_41461_i64(65, 42) == 0 +; run: %transplant_41461_i64(65, 65) == 1 +; run: %transplant_41461_i64(6148914691236517205, 64) == 0 +; run: %transplant_41461_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_41461_i64(9223372036854775807, 0) == 0 +; run: %transplant_41461_i64(9223372036854775807, 63) == 0 +; run: %transplant_41461_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_41464_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41464_i8(-128, -128) == 1 +; run: %transplant_41464_i8(-128, -86) == 0 +; run: %transplant_41464_i8(-128, 0) == 0 +; run: %transplant_41464_i8(-86, -86) == 1 +; run: %transplant_41464_i8(-86, 9) == 0 +; run: %transplant_41464_i8(-1, -1) == 1 +; run: %transplant_41464_i8(-1, 0) == 0 +; run: %transplant_41464_i8(-1, 85) == 0 +; run: %transplant_41464_i8(0, -128) == 0 +; run: %transplant_41464_i8(0, -1) == 0 +; run: %transplant_41464_i8(0, 0) == 1 +; run: %transplant_41464_i8(0, 1) == 0 +; run: %transplant_41464_i8(0, 127) == 0 +; run: %transplant_41464_i8(1, 0) == 0 +; run: %transplant_41464_i8(1, 1) == 1 +; run: %transplant_41464_i8(1, 127) == 0 +; run: %transplant_41464_i8(2, 0) == 0 +; run: %transplant_41464_i8(2, 2) == 1 +; run: %transplant_41464_i8(7, 2) == 0 +; run: %transplant_41464_i8(7, 7) == 1 +; run: %transplant_41464_i8(8, 8) == 1 +; run: %transplant_41464_i8(8, 13) == 0 +; run: %transplant_41464_i8(9, 9) == 1 +; run: %transplant_41464_i8(9, 42) == 0 +; run: %transplant_41464_i8(13, 1) == 0 +; run: %transplant_41464_i8(13, 13) == 1 +; run: %transplant_41464_i8(42, -1) == 0 +; run: %transplant_41464_i8(42, 42) == 1 +; run: %transplant_41464_i8(85, 8) == 0 +; run: %transplant_41464_i8(85, 85) == 1 +; run: %transplant_41464_i8(127, 0) == 0 +; run: %transplant_41464_i8(127, 7) == 0 +; run: %transplant_41464_i8(127, 127) == 1 + +function %transplant_41464_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41464_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_41464_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41464_i64(-9223372036854775808, 0) == 0 +; run: %transplant_41464_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_41464_i64(-6148914691236517206, 65) == 0 +; run: %transplant_41464_i64(-1, -1) == 1 +; run: %transplant_41464_i64(-1, 0) == 0 +; run: %transplant_41464_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41464_i64(0, -9223372036854775808) == 0 +; run: %transplant_41464_i64(0, -1) == 0 +; run: %transplant_41464_i64(0, 0) == 1 +; run: %transplant_41464_i64(0, 1) == 0 +; run: %transplant_41464_i64(0, 9223372036854775807) == 0 +; run: %transplant_41464_i64(1, 0) == 0 +; run: %transplant_41464_i64(1, 1) == 1 +; run: %transplant_41464_i64(1, 9223372036854775807) == 0 +; run: %transplant_41464_i64(2, 0) == 0 +; run: %transplant_41464_i64(2, 2) == 1 +; run: %transplant_41464_i64(13, 1) == 0 +; run: %transplant_41464_i64(13, 13) == 1 +; run: %transplant_41464_i64(42, -1) == 0 +; run: %transplant_41464_i64(42, 42) == 1 +; run: %transplant_41464_i64(63, 2) == 0 +; run: %transplant_41464_i64(63, 63) == 1 +; run: %transplant_41464_i64(64, 13) == 0 +; run: %transplant_41464_i64(64, 64) == 1 +; run: %transplant_41464_i64(65, 42) == 0 +; run: %transplant_41464_i64(65, 65) == 1 +; run: %transplant_41464_i64(6148914691236517205, 64) == 0 +; run: %transplant_41464_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_41464_i64(9223372036854775807, 0) == 0 +; run: %transplant_41464_i64(9223372036854775807, 63) == 0 +; run: %transplant_41464_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_41465_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41465_i8(-128, -128) == 1 +; run: %transplant_41465_i8(-128, -86) == 0 +; run: %transplant_41465_i8(-128, 0) == 0 +; run: %transplant_41465_i8(-86, -86) == 1 +; run: %transplant_41465_i8(-86, 9) == 0 +; run: %transplant_41465_i8(-1, -1) == 1 +; run: %transplant_41465_i8(-1, 0) == 0 +; run: %transplant_41465_i8(-1, 85) == 0 +; run: %transplant_41465_i8(0, -128) == 0 +; run: %transplant_41465_i8(0, -1) == 0 +; run: %transplant_41465_i8(0, 0) == 1 +; run: %transplant_41465_i8(0, 1) == 0 +; run: %transplant_41465_i8(0, 127) == 0 +; run: %transplant_41465_i8(1, 0) == 0 +; run: %transplant_41465_i8(1, 1) == 1 +; run: %transplant_41465_i8(1, 127) == 0 +; run: %transplant_41465_i8(2, 0) == 0 +; run: %transplant_41465_i8(2, 2) == 1 +; run: %transplant_41465_i8(7, 2) == 0 +; run: %transplant_41465_i8(7, 7) == 1 +; run: %transplant_41465_i8(8, 8) == 1 +; run: %transplant_41465_i8(8, 13) == 0 +; run: %transplant_41465_i8(9, 9) == 1 +; run: %transplant_41465_i8(9, 42) == 0 +; run: %transplant_41465_i8(13, 1) == 0 +; run: %transplant_41465_i8(13, 13) == 1 +; run: %transplant_41465_i8(42, -1) == 0 +; run: %transplant_41465_i8(42, 42) == 1 +; run: %transplant_41465_i8(85, 8) == 0 +; run: %transplant_41465_i8(85, 85) == 1 +; run: %transplant_41465_i8(127, 0) == 0 +; run: %transplant_41465_i8(127, 7) == 0 +; run: %transplant_41465_i8(127, 127) == 1 + +function %transplant_41465_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41465_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_41465_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41465_i64(-9223372036854775808, 0) == 0 +; run: %transplant_41465_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_41465_i64(-6148914691236517206, 65) == 0 +; run: %transplant_41465_i64(-1, -1) == 1 +; run: %transplant_41465_i64(-1, 0) == 0 +; run: %transplant_41465_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41465_i64(0, -9223372036854775808) == 0 +; run: %transplant_41465_i64(0, -1) == 0 +; run: %transplant_41465_i64(0, 0) == 1 +; run: %transplant_41465_i64(0, 1) == 0 +; run: %transplant_41465_i64(0, 9223372036854775807) == 0 +; run: %transplant_41465_i64(1, 0) == 0 +; run: %transplant_41465_i64(1, 1) == 1 +; run: %transplant_41465_i64(1, 9223372036854775807) == 0 +; run: %transplant_41465_i64(2, 0) == 0 +; run: %transplant_41465_i64(2, 2) == 1 +; run: %transplant_41465_i64(13, 1) == 0 +; run: %transplant_41465_i64(13, 13) == 1 +; run: %transplant_41465_i64(42, -1) == 0 +; run: %transplant_41465_i64(42, 42) == 1 +; run: %transplant_41465_i64(63, 2) == 0 +; run: %transplant_41465_i64(63, 63) == 1 +; run: %transplant_41465_i64(64, 13) == 0 +; run: %transplant_41465_i64(64, 64) == 1 +; run: %transplant_41465_i64(65, 42) == 0 +; run: %transplant_41465_i64(65, 65) == 1 +; run: %transplant_41465_i64(6148914691236517205, 64) == 0 +; run: %transplant_41465_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_41465_i64(9223372036854775807, 0) == 0 +; run: %transplant_41465_i64(9223372036854775807, 63) == 0 +; run: %transplant_41465_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_42479_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42479_i8(-128, -128) == 0 +; run: %transplant_42479_i8(-128, -86) == 1 +; run: %transplant_42479_i8(-128, 0) == 1 +; run: %transplant_42479_i8(-86, -86) == 0 +; run: %transplant_42479_i8(-86, 9) == 1 +; run: %transplant_42479_i8(-1, -1) == 0 +; run: %transplant_42479_i8(-1, 0) == 1 +; run: %transplant_42479_i8(-1, 85) == 1 +; run: %transplant_42479_i8(0, -128) == 1 +; run: %transplant_42479_i8(0, -1) == 1 +; run: %transplant_42479_i8(0, 0) == 0 +; run: %transplant_42479_i8(0, 1) == 1 +; run: %transplant_42479_i8(0, 127) == 1 +; run: %transplant_42479_i8(1, 0) == 1 +; run: %transplant_42479_i8(1, 1) == 0 +; run: %transplant_42479_i8(1, 127) == 1 +; run: %transplant_42479_i8(2, 0) == 1 +; run: %transplant_42479_i8(2, 2) == 0 +; run: %transplant_42479_i8(7, 2) == 1 +; run: %transplant_42479_i8(7, 7) == 0 +; run: %transplant_42479_i8(8, 8) == 0 +; run: %transplant_42479_i8(8, 13) == 1 +; run: %transplant_42479_i8(9, 9) == 0 +; run: %transplant_42479_i8(9, 42) == 1 +; run: %transplant_42479_i8(13, 1) == 1 +; run: %transplant_42479_i8(13, 13) == 0 +; run: %transplant_42479_i8(42, -1) == 1 +; run: %transplant_42479_i8(42, 42) == 0 +; run: %transplant_42479_i8(85, 8) == 1 +; run: %transplant_42479_i8(85, 85) == 0 +; run: %transplant_42479_i8(127, 0) == 1 +; run: %transplant_42479_i8(127, 7) == 1 +; run: %transplant_42479_i8(127, 127) == 0 + +function %transplant_42479_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42479_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42479_i64(-9223372036854775808, -6148914691236517206) == 1 +; run: %transplant_42479_i64(-9223372036854775808, 0) == 1 +; run: %transplant_42479_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_42479_i64(-6148914691236517206, 65) == 1 +; run: %transplant_42479_i64(-1, -1) == 0 +; run: %transplant_42479_i64(-1, 0) == 1 +; run: %transplant_42479_i64(-1, 6148914691236517205) == 1 +; run: %transplant_42479_i64(0, -9223372036854775808) == 1 +; run: %transplant_42479_i64(0, -1) == 1 +; run: %transplant_42479_i64(0, 0) == 0 +; run: %transplant_42479_i64(0, 1) == 1 +; run: %transplant_42479_i64(0, 9223372036854775807) == 1 +; run: %transplant_42479_i64(1, 0) == 1 +; run: %transplant_42479_i64(1, 1) == 0 +; run: %transplant_42479_i64(1, 9223372036854775807) == 1 +; run: %transplant_42479_i64(2, 0) == 1 +; run: %transplant_42479_i64(2, 2) == 0 +; run: %transplant_42479_i64(13, 1) == 1 +; run: %transplant_42479_i64(13, 13) == 0 +; run: %transplant_42479_i64(42, -1) == 1 +; run: %transplant_42479_i64(42, 42) == 0 +; run: %transplant_42479_i64(63, 2) == 1 +; run: %transplant_42479_i64(63, 63) == 0 +; run: %transplant_42479_i64(64, 13) == 1 +; run: %transplant_42479_i64(64, 64) == 0 +; run: %transplant_42479_i64(65, 42) == 1 +; run: %transplant_42479_i64(65, 65) == 0 +; run: %transplant_42479_i64(6148914691236517205, 64) == 1 +; run: %transplant_42479_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_42479_i64(9223372036854775807, 0) == 1 +; run: %transplant_42479_i64(9223372036854775807, 63) == 1 +; run: %transplant_42479_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_42480_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42480_i8(-128, -128) == 0 +; run: %transplant_42480_i8(-128, -86) == 1 +; run: %transplant_42480_i8(-128, 0) == 1 +; run: %transplant_42480_i8(-86, -86) == 0 +; run: %transplant_42480_i8(-86, 9) == 1 +; run: %transplant_42480_i8(-1, -1) == 0 +; run: %transplant_42480_i8(-1, 0) == 1 +; run: %transplant_42480_i8(-1, 85) == 1 +; run: %transplant_42480_i8(0, -128) == 1 +; run: %transplant_42480_i8(0, -1) == 1 +; run: %transplant_42480_i8(0, 0) == 0 +; run: %transplant_42480_i8(0, 1) == 1 +; run: %transplant_42480_i8(0, 127) == 1 +; run: %transplant_42480_i8(1, 0) == 1 +; run: %transplant_42480_i8(1, 1) == 0 +; run: %transplant_42480_i8(1, 127) == 1 +; run: %transplant_42480_i8(2, 0) == 1 +; run: %transplant_42480_i8(2, 2) == 0 +; run: %transplant_42480_i8(7, 2) == 1 +; run: %transplant_42480_i8(7, 7) == 0 +; run: %transplant_42480_i8(8, 8) == 0 +; run: %transplant_42480_i8(8, 13) == 1 +; run: %transplant_42480_i8(9, 9) == 0 +; run: %transplant_42480_i8(9, 42) == 1 +; run: %transplant_42480_i8(13, 1) == 1 +; run: %transplant_42480_i8(13, 13) == 0 +; run: %transplant_42480_i8(42, -1) == 1 +; run: %transplant_42480_i8(42, 42) == 0 +; run: %transplant_42480_i8(85, 8) == 1 +; run: %transplant_42480_i8(85, 85) == 0 +; run: %transplant_42480_i8(127, 0) == 1 +; run: %transplant_42480_i8(127, 7) == 1 +; run: %transplant_42480_i8(127, 127) == 0 + +function %transplant_42480_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umax v0, v1 + v3 = umin v1, v0 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42480_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42480_i64(-9223372036854775808, -6148914691236517206) == 1 +; run: %transplant_42480_i64(-9223372036854775808, 0) == 1 +; run: %transplant_42480_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_42480_i64(-6148914691236517206, 65) == 1 +; run: %transplant_42480_i64(-1, -1) == 0 +; run: %transplant_42480_i64(-1, 0) == 1 +; run: %transplant_42480_i64(-1, 6148914691236517205) == 1 +; run: %transplant_42480_i64(0, -9223372036854775808) == 1 +; run: %transplant_42480_i64(0, -1) == 1 +; run: %transplant_42480_i64(0, 0) == 0 +; run: %transplant_42480_i64(0, 1) == 1 +; run: %transplant_42480_i64(0, 9223372036854775807) == 1 +; run: %transplant_42480_i64(1, 0) == 1 +; run: %transplant_42480_i64(1, 1) == 0 +; run: %transplant_42480_i64(1, 9223372036854775807) == 1 +; run: %transplant_42480_i64(2, 0) == 1 +; run: %transplant_42480_i64(2, 2) == 0 +; run: %transplant_42480_i64(13, 1) == 1 +; run: %transplant_42480_i64(13, 13) == 0 +; run: %transplant_42480_i64(42, -1) == 1 +; run: %transplant_42480_i64(42, 42) == 0 +; run: %transplant_42480_i64(63, 2) == 1 +; run: %transplant_42480_i64(63, 63) == 0 +; run: %transplant_42480_i64(64, 13) == 1 +; run: %transplant_42480_i64(64, 64) == 0 +; run: %transplant_42480_i64(65, 42) == 1 +; run: %transplant_42480_i64(65, 65) == 0 +; run: %transplant_42480_i64(6148914691236517205, 64) == 1 +; run: %transplant_42480_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_42480_i64(9223372036854775807, 0) == 1 +; run: %transplant_42480_i64(9223372036854775807, 63) == 1 +; run: %transplant_42480_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_42483_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42483_i8(-128, -128) == 0 +; run: %transplant_42483_i8(-128, -86) == 1 +; run: %transplant_42483_i8(-128, 0) == 1 +; run: %transplant_42483_i8(-86, -86) == 0 +; run: %transplant_42483_i8(-86, 9) == 1 +; run: %transplant_42483_i8(-1, -1) == 0 +; run: %transplant_42483_i8(-1, 0) == 1 +; run: %transplant_42483_i8(-1, 85) == 1 +; run: %transplant_42483_i8(0, -128) == 1 +; run: %transplant_42483_i8(0, -1) == 1 +; run: %transplant_42483_i8(0, 0) == 0 +; run: %transplant_42483_i8(0, 1) == 1 +; run: %transplant_42483_i8(0, 127) == 1 +; run: %transplant_42483_i8(1, 0) == 1 +; run: %transplant_42483_i8(1, 1) == 0 +; run: %transplant_42483_i8(1, 127) == 1 +; run: %transplant_42483_i8(2, 0) == 1 +; run: %transplant_42483_i8(2, 2) == 0 +; run: %transplant_42483_i8(7, 2) == 1 +; run: %transplant_42483_i8(7, 7) == 0 +; run: %transplant_42483_i8(8, 8) == 0 +; run: %transplant_42483_i8(8, 13) == 1 +; run: %transplant_42483_i8(9, 9) == 0 +; run: %transplant_42483_i8(9, 42) == 1 +; run: %transplant_42483_i8(13, 1) == 1 +; run: %transplant_42483_i8(13, 13) == 0 +; run: %transplant_42483_i8(42, -1) == 1 +; run: %transplant_42483_i8(42, 42) == 0 +; run: %transplant_42483_i8(85, 8) == 1 +; run: %transplant_42483_i8(85, 85) == 0 +; run: %transplant_42483_i8(127, 0) == 1 +; run: %transplant_42483_i8(127, 7) == 1 +; run: %transplant_42483_i8(127, 127) == 0 + +function %transplant_42483_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v0, v1 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42483_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42483_i64(-9223372036854775808, -6148914691236517206) == 1 +; run: %transplant_42483_i64(-9223372036854775808, 0) == 1 +; run: %transplant_42483_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_42483_i64(-6148914691236517206, 65) == 1 +; run: %transplant_42483_i64(-1, -1) == 0 +; run: %transplant_42483_i64(-1, 0) == 1 +; run: %transplant_42483_i64(-1, 6148914691236517205) == 1 +; run: %transplant_42483_i64(0, -9223372036854775808) == 1 +; run: %transplant_42483_i64(0, -1) == 1 +; run: %transplant_42483_i64(0, 0) == 0 +; run: %transplant_42483_i64(0, 1) == 1 +; run: %transplant_42483_i64(0, 9223372036854775807) == 1 +; run: %transplant_42483_i64(1, 0) == 1 +; run: %transplant_42483_i64(1, 1) == 0 +; run: %transplant_42483_i64(1, 9223372036854775807) == 1 +; run: %transplant_42483_i64(2, 0) == 1 +; run: %transplant_42483_i64(2, 2) == 0 +; run: %transplant_42483_i64(13, 1) == 1 +; run: %transplant_42483_i64(13, 13) == 0 +; run: %transplant_42483_i64(42, -1) == 1 +; run: %transplant_42483_i64(42, 42) == 0 +; run: %transplant_42483_i64(63, 2) == 1 +; run: %transplant_42483_i64(63, 63) == 0 +; run: %transplant_42483_i64(64, 13) == 1 +; run: %transplant_42483_i64(64, 64) == 0 +; run: %transplant_42483_i64(65, 42) == 1 +; run: %transplant_42483_i64(65, 65) == 0 +; run: %transplant_42483_i64(6148914691236517205, 64) == 1 +; run: %transplant_42483_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_42483_i64(9223372036854775807, 0) == 1 +; run: %transplant_42483_i64(9223372036854775807, 63) == 1 +; run: %transplant_42483_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_42484_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42484_i8(-128, -128) == 0 +; run: %transplant_42484_i8(-128, -86) == 1 +; run: %transplant_42484_i8(-128, 0) == 1 +; run: %transplant_42484_i8(-86, -86) == 0 +; run: %transplant_42484_i8(-86, 9) == 1 +; run: %transplant_42484_i8(-1, -1) == 0 +; run: %transplant_42484_i8(-1, 0) == 1 +; run: %transplant_42484_i8(-1, 85) == 1 +; run: %transplant_42484_i8(0, -128) == 1 +; run: %transplant_42484_i8(0, -1) == 1 +; run: %transplant_42484_i8(0, 0) == 0 +; run: %transplant_42484_i8(0, 1) == 1 +; run: %transplant_42484_i8(0, 127) == 1 +; run: %transplant_42484_i8(1, 0) == 1 +; run: %transplant_42484_i8(1, 1) == 0 +; run: %transplant_42484_i8(1, 127) == 1 +; run: %transplant_42484_i8(2, 0) == 1 +; run: %transplant_42484_i8(2, 2) == 0 +; run: %transplant_42484_i8(7, 2) == 1 +; run: %transplant_42484_i8(7, 7) == 0 +; run: %transplant_42484_i8(8, 8) == 0 +; run: %transplant_42484_i8(8, 13) == 1 +; run: %transplant_42484_i8(9, 9) == 0 +; run: %transplant_42484_i8(9, 42) == 1 +; run: %transplant_42484_i8(13, 1) == 1 +; run: %transplant_42484_i8(13, 13) == 0 +; run: %transplant_42484_i8(42, -1) == 1 +; run: %transplant_42484_i8(42, 42) == 0 +; run: %transplant_42484_i8(85, 8) == 1 +; run: %transplant_42484_i8(85, 85) == 0 +; run: %transplant_42484_i8(127, 0) == 1 +; run: %transplant_42484_i8(127, 7) == 1 +; run: %transplant_42484_i8(127, 127) == 0 + +function %transplant_42484_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = umin v0, v1 + v3 = umax v1, v0 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42484_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42484_i64(-9223372036854775808, -6148914691236517206) == 1 +; run: %transplant_42484_i64(-9223372036854775808, 0) == 1 +; run: %transplant_42484_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_42484_i64(-6148914691236517206, 65) == 1 +; run: %transplant_42484_i64(-1, -1) == 0 +; run: %transplant_42484_i64(-1, 0) == 1 +; run: %transplant_42484_i64(-1, 6148914691236517205) == 1 +; run: %transplant_42484_i64(0, -9223372036854775808) == 1 +; run: %transplant_42484_i64(0, -1) == 1 +; run: %transplant_42484_i64(0, 0) == 0 +; run: %transplant_42484_i64(0, 1) == 1 +; run: %transplant_42484_i64(0, 9223372036854775807) == 1 +; run: %transplant_42484_i64(1, 0) == 1 +; run: %transplant_42484_i64(1, 1) == 0 +; run: %transplant_42484_i64(1, 9223372036854775807) == 1 +; run: %transplant_42484_i64(2, 0) == 1 +; run: %transplant_42484_i64(2, 2) == 0 +; run: %transplant_42484_i64(13, 1) == 1 +; run: %transplant_42484_i64(13, 13) == 0 +; run: %transplant_42484_i64(42, -1) == 1 +; run: %transplant_42484_i64(42, 42) == 0 +; run: %transplant_42484_i64(63, 2) == 1 +; run: %transplant_42484_i64(63, 63) == 0 +; run: %transplant_42484_i64(64, 13) == 1 +; run: %transplant_42484_i64(64, 64) == 0 +; run: %transplant_42484_i64(65, 42) == 1 +; run: %transplant_42484_i64(65, 65) == 0 +; run: %transplant_42484_i64(6148914691236517205, 64) == 1 +; run: %transplant_42484_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_42484_i64(9223372036854775807, 0) == 1 +; run: %transplant_42484_i64(9223372036854775807, 63) == 1 +; run: %transplant_42484_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41327_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41327_i8(-128, -128) == 0 +; run: %transplant_41327_i8(-128, -86) == 0 +; run: %transplant_41327_i8(-128, 0) == 1 +; run: %transplant_41327_i8(-86, -86) == 0 +; run: %transplant_41327_i8(-86, 9) == 0 +; run: %transplant_41327_i8(-1, -1) == 0 +; run: %transplant_41327_i8(-1, 0) == 1 +; run: %transplant_41327_i8(-1, 85) == 0 +; run: %transplant_41327_i8(0, -128) == 1 +; run: %transplant_41327_i8(0, -1) == 1 +; run: %transplant_41327_i8(0, 0) == 1 +; run: %transplant_41327_i8(0, 1) == 1 +; run: %transplant_41327_i8(0, 127) == 1 +; run: %transplant_41327_i8(1, 0) == 1 +; run: %transplant_41327_i8(1, 1) == 0 +; run: %transplant_41327_i8(1, 127) == 0 +; run: %transplant_41327_i8(2, 0) == 1 +; run: %transplant_41327_i8(2, 2) == 0 +; run: %transplant_41327_i8(7, 2) == 0 +; run: %transplant_41327_i8(7, 7) == 0 +; run: %transplant_41327_i8(8, 8) == 0 +; run: %transplant_41327_i8(8, 13) == 0 +; run: %transplant_41327_i8(9, 9) == 0 +; run: %transplant_41327_i8(9, 42) == 0 +; run: %transplant_41327_i8(13, 1) == 0 +; run: %transplant_41327_i8(13, 13) == 0 +; run: %transplant_41327_i8(42, -1) == 0 +; run: %transplant_41327_i8(42, 42) == 0 +; run: %transplant_41327_i8(85, 8) == 1 +; run: %transplant_41327_i8(85, 85) == 0 +; run: %transplant_41327_i8(127, 0) == 1 +; run: %transplant_41327_i8(127, 7) == 0 +; run: %transplant_41327_i8(127, 127) == 0 + +function %transplant_41327_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41327_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41327_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41327_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41327_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41327_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41327_i64(-1, -1) == 0 +; run: %transplant_41327_i64(-1, 0) == 1 +; run: %transplant_41327_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41327_i64(0, -9223372036854775808) == 1 +; run: %transplant_41327_i64(0, -1) == 1 +; run: %transplant_41327_i64(0, 0) == 1 +; run: %transplant_41327_i64(0, 1) == 1 +; run: %transplant_41327_i64(0, 9223372036854775807) == 1 +; run: %transplant_41327_i64(1, 0) == 1 +; run: %transplant_41327_i64(1, 1) == 0 +; run: %transplant_41327_i64(1, 9223372036854775807) == 0 +; run: %transplant_41327_i64(2, 0) == 1 +; run: %transplant_41327_i64(2, 2) == 0 +; run: %transplant_41327_i64(13, 1) == 0 +; run: %transplant_41327_i64(13, 13) == 0 +; run: %transplant_41327_i64(42, -1) == 0 +; run: %transplant_41327_i64(42, 42) == 0 +; run: %transplant_41327_i64(63, 2) == 0 +; run: %transplant_41327_i64(63, 63) == 0 +; run: %transplant_41327_i64(64, 13) == 1 +; run: %transplant_41327_i64(64, 64) == 0 +; run: %transplant_41327_i64(65, 42) == 1 +; run: %transplant_41327_i64(65, 65) == 0 +; run: %transplant_41327_i64(6148914691236517205, 64) == 0 +; run: %transplant_41327_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41327_i64(9223372036854775807, 0) == 1 +; run: %transplant_41327_i64(9223372036854775807, 63) == 0 +; run: %transplant_41327_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41328_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v1, v3 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41328_i8(-128, -128) == 0 +; run: %transplant_41328_i8(-128, -86) == 0 +; run: %transplant_41328_i8(-128, 0) == 1 +; run: %transplant_41328_i8(-86, -86) == 0 +; run: %transplant_41328_i8(-86, 9) == 0 +; run: %transplant_41328_i8(-1, -1) == 0 +; run: %transplant_41328_i8(-1, 0) == 1 +; run: %transplant_41328_i8(-1, 85) == 0 +; run: %transplant_41328_i8(0, -128) == 1 +; run: %transplant_41328_i8(0, -1) == 1 +; run: %transplant_41328_i8(0, 0) == 1 +; run: %transplant_41328_i8(0, 1) == 1 +; run: %transplant_41328_i8(0, 127) == 1 +; run: %transplant_41328_i8(1, 0) == 1 +; run: %transplant_41328_i8(1, 1) == 0 +; run: %transplant_41328_i8(1, 127) == 0 +; run: %transplant_41328_i8(2, 0) == 1 +; run: %transplant_41328_i8(2, 2) == 0 +; run: %transplant_41328_i8(7, 2) == 0 +; run: %transplant_41328_i8(7, 7) == 0 +; run: %transplant_41328_i8(8, 8) == 0 +; run: %transplant_41328_i8(8, 13) == 0 +; run: %transplant_41328_i8(9, 9) == 0 +; run: %transplant_41328_i8(9, 42) == 0 +; run: %transplant_41328_i8(13, 1) == 0 +; run: %transplant_41328_i8(13, 13) == 0 +; run: %transplant_41328_i8(42, -1) == 0 +; run: %transplant_41328_i8(42, 42) == 0 +; run: %transplant_41328_i8(85, 8) == 1 +; run: %transplant_41328_i8(85, 85) == 0 +; run: %transplant_41328_i8(127, 0) == 1 +; run: %transplant_41328_i8(127, 7) == 0 +; run: %transplant_41328_i8(127, 127) == 0 + +function %transplant_41328_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v1, v3 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41328_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41328_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41328_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41328_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41328_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41328_i64(-1, -1) == 0 +; run: %transplant_41328_i64(-1, 0) == 1 +; run: %transplant_41328_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41328_i64(0, -9223372036854775808) == 1 +; run: %transplant_41328_i64(0, -1) == 1 +; run: %transplant_41328_i64(0, 0) == 1 +; run: %transplant_41328_i64(0, 1) == 1 +; run: %transplant_41328_i64(0, 9223372036854775807) == 1 +; run: %transplant_41328_i64(1, 0) == 1 +; run: %transplant_41328_i64(1, 1) == 0 +; run: %transplant_41328_i64(1, 9223372036854775807) == 0 +; run: %transplant_41328_i64(2, 0) == 1 +; run: %transplant_41328_i64(2, 2) == 0 +; run: %transplant_41328_i64(13, 1) == 0 +; run: %transplant_41328_i64(13, 13) == 0 +; run: %transplant_41328_i64(42, -1) == 0 +; run: %transplant_41328_i64(42, 42) == 0 +; run: %transplant_41328_i64(63, 2) == 0 +; run: %transplant_41328_i64(63, 63) == 0 +; run: %transplant_41328_i64(64, 13) == 1 +; run: %transplant_41328_i64(64, 64) == 0 +; run: %transplant_41328_i64(65, 42) == 1 +; run: %transplant_41328_i64(65, 65) == 0 +; run: %transplant_41328_i64(6148914691236517205, 64) == 0 +; run: %transplant_41328_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41328_i64(9223372036854775807, 0) == 1 +; run: %transplant_41328_i64(9223372036854775807, 63) == 0 +; run: %transplant_41328_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41330_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v0 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41330_i8(-128, -128) == 0 +; run: %transplant_41330_i8(-128, -86) == 0 +; run: %transplant_41330_i8(-128, 0) == 1 +; run: %transplant_41330_i8(-86, -86) == 0 +; run: %transplant_41330_i8(-86, 9) == 0 +; run: %transplant_41330_i8(-1, -1) == 0 +; run: %transplant_41330_i8(-1, 0) == 1 +; run: %transplant_41330_i8(-1, 85) == 0 +; run: %transplant_41330_i8(0, -128) == 1 +; run: %transplant_41330_i8(0, -1) == 1 +; run: %transplant_41330_i8(0, 0) == 1 +; run: %transplant_41330_i8(0, 1) == 1 +; run: %transplant_41330_i8(0, 127) == 1 +; run: %transplant_41330_i8(1, 0) == 1 +; run: %transplant_41330_i8(1, 1) == 0 +; run: %transplant_41330_i8(1, 127) == 0 +; run: %transplant_41330_i8(2, 0) == 1 +; run: %transplant_41330_i8(2, 2) == 0 +; run: %transplant_41330_i8(7, 2) == 0 +; run: %transplant_41330_i8(7, 7) == 0 +; run: %transplant_41330_i8(8, 8) == 0 +; run: %transplant_41330_i8(8, 13) == 0 +; run: %transplant_41330_i8(9, 9) == 0 +; run: %transplant_41330_i8(9, 42) == 0 +; run: %transplant_41330_i8(13, 1) == 0 +; run: %transplant_41330_i8(13, 13) == 0 +; run: %transplant_41330_i8(42, -1) == 0 +; run: %transplant_41330_i8(42, 42) == 0 +; run: %transplant_41330_i8(85, 8) == 1 +; run: %transplant_41330_i8(85, 85) == 0 +; run: %transplant_41330_i8(127, 0) == 1 +; run: %transplant_41330_i8(127, 7) == 0 +; run: %transplant_41330_i8(127, 127) == 0 + +function %transplant_41330_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v0 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41330_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41330_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41330_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41330_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41330_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41330_i64(-1, -1) == 0 +; run: %transplant_41330_i64(-1, 0) == 1 +; run: %transplant_41330_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41330_i64(0, -9223372036854775808) == 1 +; run: %transplant_41330_i64(0, -1) == 1 +; run: %transplant_41330_i64(0, 0) == 1 +; run: %transplant_41330_i64(0, 1) == 1 +; run: %transplant_41330_i64(0, 9223372036854775807) == 1 +; run: %transplant_41330_i64(1, 0) == 1 +; run: %transplant_41330_i64(1, 1) == 0 +; run: %transplant_41330_i64(1, 9223372036854775807) == 0 +; run: %transplant_41330_i64(2, 0) == 1 +; run: %transplant_41330_i64(2, 2) == 0 +; run: %transplant_41330_i64(13, 1) == 0 +; run: %transplant_41330_i64(13, 13) == 0 +; run: %transplant_41330_i64(42, -1) == 0 +; run: %transplant_41330_i64(42, 42) == 0 +; run: %transplant_41330_i64(63, 2) == 0 +; run: %transplant_41330_i64(63, 63) == 0 +; run: %transplant_41330_i64(64, 13) == 1 +; run: %transplant_41330_i64(64, 64) == 0 +; run: %transplant_41330_i64(65, 42) == 1 +; run: %transplant_41330_i64(65, 65) == 0 +; run: %transplant_41330_i64(6148914691236517205, 64) == 0 +; run: %transplant_41330_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41330_i64(9223372036854775807, 0) == 1 +; run: %transplant_41330_i64(9223372036854775807, 63) == 0 +; run: %transplant_41330_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41334_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v1 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41334_i8(-128, -128) == 0 +; run: %transplant_41334_i8(-128, -86) == 0 +; run: %transplant_41334_i8(-128, 0) == 1 +; run: %transplant_41334_i8(-86, -86) == 0 +; run: %transplant_41334_i8(-86, 9) == 0 +; run: %transplant_41334_i8(-1, -1) == 0 +; run: %transplant_41334_i8(-1, 0) == 1 +; run: %transplant_41334_i8(-1, 85) == 0 +; run: %transplant_41334_i8(0, -128) == 1 +; run: %transplant_41334_i8(0, -1) == 1 +; run: %transplant_41334_i8(0, 0) == 1 +; run: %transplant_41334_i8(0, 1) == 1 +; run: %transplant_41334_i8(0, 127) == 1 +; run: %transplant_41334_i8(1, 0) == 1 +; run: %transplant_41334_i8(1, 1) == 0 +; run: %transplant_41334_i8(1, 127) == 0 +; run: %transplant_41334_i8(2, 0) == 1 +; run: %transplant_41334_i8(2, 2) == 0 +; run: %transplant_41334_i8(7, 2) == 0 +; run: %transplant_41334_i8(7, 7) == 0 +; run: %transplant_41334_i8(8, 8) == 0 +; run: %transplant_41334_i8(8, 13) == 0 +; run: %transplant_41334_i8(9, 9) == 0 +; run: %transplant_41334_i8(9, 42) == 0 +; run: %transplant_41334_i8(13, 1) == 0 +; run: %transplant_41334_i8(13, 13) == 0 +; run: %transplant_41334_i8(42, -1) == 0 +; run: %transplant_41334_i8(42, 42) == 0 +; run: %transplant_41334_i8(85, 8) == 1 +; run: %transplant_41334_i8(85, 85) == 0 +; run: %transplant_41334_i8(127, 0) == 1 +; run: %transplant_41334_i8(127, 7) == 0 +; run: %transplant_41334_i8(127, 127) == 0 + +function %transplant_41334_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = bnot v1 + v3 = bor v0, v2 + v4 = bnot v1 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41334_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_41334_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41334_i64(-9223372036854775808, 0) == 1 +; run: %transplant_41334_i64(-6148914691236517206, -6148914691236517206) == 0 +; run: %transplant_41334_i64(-6148914691236517206, 65) == 1 +; run: %transplant_41334_i64(-1, -1) == 0 +; run: %transplant_41334_i64(-1, 0) == 1 +; run: %transplant_41334_i64(-1, 6148914691236517205) == 0 +; run: %transplant_41334_i64(0, -9223372036854775808) == 1 +; run: %transplant_41334_i64(0, -1) == 1 +; run: %transplant_41334_i64(0, 0) == 1 +; run: %transplant_41334_i64(0, 1) == 1 +; run: %transplant_41334_i64(0, 9223372036854775807) == 1 +; run: %transplant_41334_i64(1, 0) == 1 +; run: %transplant_41334_i64(1, 1) == 0 +; run: %transplant_41334_i64(1, 9223372036854775807) == 0 +; run: %transplant_41334_i64(2, 0) == 1 +; run: %transplant_41334_i64(2, 2) == 0 +; run: %transplant_41334_i64(13, 1) == 0 +; run: %transplant_41334_i64(13, 13) == 0 +; run: %transplant_41334_i64(42, -1) == 0 +; run: %transplant_41334_i64(42, 42) == 0 +; run: %transplant_41334_i64(63, 2) == 0 +; run: %transplant_41334_i64(63, 63) == 0 +; run: %transplant_41334_i64(64, 13) == 1 +; run: %transplant_41334_i64(64, 64) == 0 +; run: %transplant_41334_i64(65, 42) == 1 +; run: %transplant_41334_i64(65, 65) == 0 +; run: %transplant_41334_i64(6148914691236517205, 64) == 0 +; run: %transplant_41334_i64(6148914691236517205, 6148914691236517205) == 0 +; run: %transplant_41334_i64(9223372036854775807, 0) == 1 +; run: %transplant_41334_i64(9223372036854775807, 63) == 0 +; run: %transplant_41334_i64(9223372036854775807, 9223372036854775807) == 0 + +function %transplant_41425_i8(i8, i8, i8) -> i8 { +block0(v0: i8, v1: i8, v2: i8): + v3 = select v0, v1, v2 + v4 = select v0, v2, v1 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41425_i8(-128, -128, -128) == 1 +; run: %transplant_41425_i8(-128, -86, 9) == 0 +; run: %transplant_41425_i8(-128, 0, 0) == 1 +; run: %transplant_41425_i8(-86, -86, -86) == 1 +; run: %transplant_41425_i8(-86, 9, 42) == 0 +; run: %transplant_41425_i8(-1, -1, -1) == 1 +; run: %transplant_41425_i8(-1, 0, 0) == 1 +; run: %transplant_41425_i8(-1, 85, 8) == 0 +; run: %transplant_41425_i8(0, -128, -86) == 0 +; run: %transplant_41425_i8(0, -128, 0) == 0 +; run: %transplant_41425_i8(0, -1, 0) == 0 +; run: %transplant_41425_i8(0, 0, -128) == 0 +; run: %transplant_41425_i8(0, 0, -1) == 0 +; run: %transplant_41425_i8(0, 0, 0) == 1 +; run: %transplant_41425_i8(0, 0, 1) == 0 +; run: %transplant_41425_i8(0, 0, 127) == 0 +; run: %transplant_41425_i8(0, 1, 0) == 0 +; run: %transplant_41425_i8(0, 127, 0) == 0 +; run: %transplant_41425_i8(1, 0, 0) == 1 +; run: %transplant_41425_i8(1, 1, 1) == 1 +; run: %transplant_41425_i8(1, 127, 7) == 0 +; run: %transplant_41425_i8(2, 0, -128) == 0 +; run: %transplant_41425_i8(2, 2, 2) == 1 +; run: %transplant_41425_i8(7, 2, 0) == 0 +; run: %transplant_41425_i8(7, 7, 7) == 1 +; run: %transplant_41425_i8(8, 8, 8) == 1 +; run: %transplant_41425_i8(8, 13, 1) == 0 +; run: %transplant_41425_i8(9, 9, 9) == 1 +; run: %transplant_41425_i8(9, 42, -1) == 0 +; run: %transplant_41425_i8(13, 1, 127) == 0 +; run: %transplant_41425_i8(13, 13, 13) == 1 +; run: %transplant_41425_i8(42, -1, 85) == 0 +; run: %transplant_41425_i8(42, 42, 42) == 1 +; run: %transplant_41425_i8(85, 8, 13) == 0 +; run: %transplant_41425_i8(85, 85, 85) == 1 +; run: %transplant_41425_i8(127, 0, 0) == 1 +; run: %transplant_41425_i8(127, 7, 2) == 0 +; run: %transplant_41425_i8(127, 127, 127) == 1 + +function %transplant_41425_i64(i8, i64, i64) -> i8 { +block0(v0: i8, v1: i64, v2: i64): + v3 = select v0, v1, v2 + v4 = select v0, v2, v1 + v5 = icmp eq v3, v4 + return v5 +} +; run: %transplant_41425_i64(-86, -6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_41425_i64(-86, 65, 42) == 0 +; run: %transplant_41425_i64(-1, -1, -1) == 1 +; run: %transplant_41425_i64(-1, 0, 0) == 1 +; run: %transplant_41425_i64(-1, 63, 2) == 0 +; run: %transplant_41425_i64(-1, 6148914691236517205, 64) == 0 +; run: %transplant_41425_i64(-1, 9223372036854775807, 9223372036854775807) == 1 +; run: %transplant_41425_i64(0, -9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_41425_i64(0, -9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_41425_i64(0, -9223372036854775808, 0) == 0 +; run: %transplant_41425_i64(0, -6148914691236517206, 65) == 0 +; run: %transplant_41425_i64(0, -1, 0) == 0 +; run: %transplant_41425_i64(0, 0, -9223372036854775808) == 0 +; run: %transplant_41425_i64(0, 0, -1) == 0 +; run: %transplant_41425_i64(0, 0, 0) == 1 +; run: %transplant_41425_i64(0, 0, 1) == 0 +; run: %transplant_41425_i64(0, 0, 9223372036854775807) == 0 +; run: %transplant_41425_i64(0, 1, 0) == 0 +; run: %transplant_41425_i64(0, 9223372036854775807, 0) == 0 +; run: %transplant_41425_i64(1, 0, 0) == 1 +; run: %transplant_41425_i64(1, 1, 1) == 1 +; run: %transplant_41425_i64(1, 9223372036854775807, 63) == 0 +; run: %transplant_41425_i64(2, 0, -9223372036854775808) == 0 +; run: %transplant_41425_i64(2, 2, 2) == 1 +; run: %transplant_41425_i64(13, 1, 9223372036854775807) == 0 +; run: %transplant_41425_i64(13, 13, 13) == 1 +; run: %transplant_41425_i64(42, -1, 6148914691236517205) == 0 +; run: %transplant_41425_i64(42, 42, 42) == 1 +; run: %transplant_41425_i64(63, 2, 0) == 0 +; run: %transplant_41425_i64(63, 63, 63) == 1 +; run: %transplant_41425_i64(64, 13, 1) == 0 +; run: %transplant_41425_i64(64, 64, 64) == 1 +; run: %transplant_41425_i64(65, 42, -1) == 0 +; run: %transplant_41425_i64(65, 65, 65) == 1 +; run: %transplant_41425_i64(85, 64, 13) == 0 +; run: %transplant_41425_i64(85, 6148914691236517205, 6148914691236517205) == 1 + +function %transplant_38178_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38178_i8(-128, -128) == 1 +; run: %transplant_38178_i8(-128, -86) == 0 +; run: %transplant_38178_i8(-128, 0) == 0 +; run: %transplant_38178_i8(-86, -86) == 1 +; run: %transplant_38178_i8(-86, 9) == 0 +; run: %transplant_38178_i8(-1, -1) == 1 +; run: %transplant_38178_i8(-1, 0) == 0 +; run: %transplant_38178_i8(-1, 85) == 0 +; run: %transplant_38178_i8(0, -128) == 0 +; run: %transplant_38178_i8(0, -1) == 0 +; run: %transplant_38178_i8(0, 0) == 1 +; run: %transplant_38178_i8(0, 1) == 0 +; run: %transplant_38178_i8(0, 127) == 0 +; run: %transplant_38178_i8(1, 0) == 0 +; run: %transplant_38178_i8(1, 1) == 1 +; run: %transplant_38178_i8(1, 127) == 0 +; run: %transplant_38178_i8(2, 0) == 0 +; run: %transplant_38178_i8(2, 2) == 1 +; run: %transplant_38178_i8(7, 2) == 0 +; run: %transplant_38178_i8(7, 7) == 1 +; run: %transplant_38178_i8(8, 8) == 1 +; run: %transplant_38178_i8(8, 13) == 0 +; run: %transplant_38178_i8(9, 9) == 1 +; run: %transplant_38178_i8(9, 42) == 0 +; run: %transplant_38178_i8(13, 1) == 0 +; run: %transplant_38178_i8(13, 13) == 1 +; run: %transplant_38178_i8(42, -1) == 0 +; run: %transplant_38178_i8(42, 42) == 1 +; run: %transplant_38178_i8(85, 8) == 0 +; run: %transplant_38178_i8(85, 85) == 1 +; run: %transplant_38178_i8(127, 0) == 0 +; run: %transplant_38178_i8(127, 7) == 0 +; run: %transplant_38178_i8(127, 127) == 1 + +function %transplant_38178_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38178_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38178_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38178_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38178_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38178_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38178_i64(-1, -1) == 1 +; run: %transplant_38178_i64(-1, 0) == 0 +; run: %transplant_38178_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38178_i64(0, -9223372036854775808) == 0 +; run: %transplant_38178_i64(0, -1) == 0 +; run: %transplant_38178_i64(0, 0) == 1 +; run: %transplant_38178_i64(0, 1) == 0 +; run: %transplant_38178_i64(0, 9223372036854775807) == 0 +; run: %transplant_38178_i64(1, 0) == 0 +; run: %transplant_38178_i64(1, 1) == 1 +; run: %transplant_38178_i64(1, 9223372036854775807) == 0 +; run: %transplant_38178_i64(2, 0) == 0 +; run: %transplant_38178_i64(2, 2) == 1 +; run: %transplant_38178_i64(13, 1) == 0 +; run: %transplant_38178_i64(13, 13) == 1 +; run: %transplant_38178_i64(42, -1) == 0 +; run: %transplant_38178_i64(42, 42) == 1 +; run: %transplant_38178_i64(63, 2) == 0 +; run: %transplant_38178_i64(63, 63) == 1 +; run: %transplant_38178_i64(64, 13) == 0 +; run: %transplant_38178_i64(64, 64) == 1 +; run: %transplant_38178_i64(65, 42) == 0 +; run: %transplant_38178_i64(65, 65) == 1 +; run: %transplant_38178_i64(6148914691236517205, 64) == 0 +; run: %transplant_38178_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38178_i64(9223372036854775807, 0) == 0 +; run: %transplant_38178_i64(9223372036854775807, 63) == 0 +; run: %transplant_38178_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38180_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sge v0, v1 + v3 = icmp sle v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38180_i8(-128, -128) == 1 +; run: %transplant_38180_i8(-128, -86) == 0 +; run: %transplant_38180_i8(-128, 0) == 0 +; run: %transplant_38180_i8(-86, -86) == 1 +; run: %transplant_38180_i8(-86, 9) == 0 +; run: %transplant_38180_i8(-1, -1) == 1 +; run: %transplant_38180_i8(-1, 0) == 0 +; run: %transplant_38180_i8(-1, 85) == 0 +; run: %transplant_38180_i8(0, -128) == 0 +; run: %transplant_38180_i8(0, -1) == 0 +; run: %transplant_38180_i8(0, 0) == 1 +; run: %transplant_38180_i8(0, 1) == 0 +; run: %transplant_38180_i8(0, 127) == 0 +; run: %transplant_38180_i8(1, 0) == 0 +; run: %transplant_38180_i8(1, 1) == 1 +; run: %transplant_38180_i8(1, 127) == 0 +; run: %transplant_38180_i8(2, 0) == 0 +; run: %transplant_38180_i8(2, 2) == 1 +; run: %transplant_38180_i8(7, 2) == 0 +; run: %transplant_38180_i8(7, 7) == 1 +; run: %transplant_38180_i8(8, 8) == 1 +; run: %transplant_38180_i8(8, 13) == 0 +; run: %transplant_38180_i8(9, 9) == 1 +; run: %transplant_38180_i8(9, 42) == 0 +; run: %transplant_38180_i8(13, 1) == 0 +; run: %transplant_38180_i8(13, 13) == 1 +; run: %transplant_38180_i8(42, -1) == 0 +; run: %transplant_38180_i8(42, 42) == 1 +; run: %transplant_38180_i8(85, 8) == 0 +; run: %transplant_38180_i8(85, 85) == 1 +; run: %transplant_38180_i8(127, 0) == 0 +; run: %transplant_38180_i8(127, 7) == 0 +; run: %transplant_38180_i8(127, 127) == 1 + +function %transplant_38180_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sge v0, v1 + v3 = icmp sle v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38180_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38180_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38180_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38180_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38180_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38180_i64(-1, -1) == 1 +; run: %transplant_38180_i64(-1, 0) == 0 +; run: %transplant_38180_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38180_i64(0, -9223372036854775808) == 0 +; run: %transplant_38180_i64(0, -1) == 0 +; run: %transplant_38180_i64(0, 0) == 1 +; run: %transplant_38180_i64(0, 1) == 0 +; run: %transplant_38180_i64(0, 9223372036854775807) == 0 +; run: %transplant_38180_i64(1, 0) == 0 +; run: %transplant_38180_i64(1, 1) == 1 +; run: %transplant_38180_i64(1, 9223372036854775807) == 0 +; run: %transplant_38180_i64(2, 0) == 0 +; run: %transplant_38180_i64(2, 2) == 1 +; run: %transplant_38180_i64(13, 1) == 0 +; run: %transplant_38180_i64(13, 13) == 1 +; run: %transplant_38180_i64(42, -1) == 0 +; run: %transplant_38180_i64(42, 42) == 1 +; run: %transplant_38180_i64(63, 2) == 0 +; run: %transplant_38180_i64(63, 63) == 1 +; run: %transplant_38180_i64(64, 13) == 0 +; run: %transplant_38180_i64(64, 64) == 1 +; run: %transplant_38180_i64(65, 42) == 0 +; run: %transplant_38180_i64(65, 65) == 1 +; run: %transplant_38180_i64(6148914691236517205, 64) == 0 +; run: %transplant_38180_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38180_i64(9223372036854775807, 0) == 0 +; run: %transplant_38180_i64(9223372036854775807, 63) == 0 +; run: %transplant_38180_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38418_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sle v0, v1 + v3 = icmp sge v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38418_i8(-128, -128) == 1 +; run: %transplant_38418_i8(-128, -86) == 0 +; run: %transplant_38418_i8(-128, 0) == 0 +; run: %transplant_38418_i8(-86, -86) == 1 +; run: %transplant_38418_i8(-86, 9) == 0 +; run: %transplant_38418_i8(-1, -1) == 1 +; run: %transplant_38418_i8(-1, 0) == 0 +; run: %transplant_38418_i8(-1, 85) == 0 +; run: %transplant_38418_i8(0, -128) == 0 +; run: %transplant_38418_i8(0, -1) == 0 +; run: %transplant_38418_i8(0, 0) == 1 +; run: %transplant_38418_i8(0, 1) == 0 +; run: %transplant_38418_i8(0, 127) == 0 +; run: %transplant_38418_i8(1, 0) == 0 +; run: %transplant_38418_i8(1, 1) == 1 +; run: %transplant_38418_i8(1, 127) == 0 +; run: %transplant_38418_i8(2, 0) == 0 +; run: %transplant_38418_i8(2, 2) == 1 +; run: %transplant_38418_i8(7, 2) == 0 +; run: %transplant_38418_i8(7, 7) == 1 +; run: %transplant_38418_i8(8, 8) == 1 +; run: %transplant_38418_i8(8, 13) == 0 +; run: %transplant_38418_i8(9, 9) == 1 +; run: %transplant_38418_i8(9, 42) == 0 +; run: %transplant_38418_i8(13, 1) == 0 +; run: %transplant_38418_i8(13, 13) == 1 +; run: %transplant_38418_i8(42, -1) == 0 +; run: %transplant_38418_i8(42, 42) == 1 +; run: %transplant_38418_i8(85, 8) == 0 +; run: %transplant_38418_i8(85, 85) == 1 +; run: %transplant_38418_i8(127, 0) == 0 +; run: %transplant_38418_i8(127, 7) == 0 +; run: %transplant_38418_i8(127, 127) == 1 + +function %transplant_38418_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sle v0, v1 + v3 = icmp sge v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38418_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38418_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38418_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38418_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38418_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38418_i64(-1, -1) == 1 +; run: %transplant_38418_i64(-1, 0) == 0 +; run: %transplant_38418_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38418_i64(0, -9223372036854775808) == 0 +; run: %transplant_38418_i64(0, -1) == 0 +; run: %transplant_38418_i64(0, 0) == 1 +; run: %transplant_38418_i64(0, 1) == 0 +; run: %transplant_38418_i64(0, 9223372036854775807) == 0 +; run: %transplant_38418_i64(1, 0) == 0 +; run: %transplant_38418_i64(1, 1) == 1 +; run: %transplant_38418_i64(1, 9223372036854775807) == 0 +; run: %transplant_38418_i64(2, 0) == 0 +; run: %transplant_38418_i64(2, 2) == 1 +; run: %transplant_38418_i64(13, 1) == 0 +; run: %transplant_38418_i64(13, 13) == 1 +; run: %transplant_38418_i64(42, -1) == 0 +; run: %transplant_38418_i64(42, 42) == 1 +; run: %transplant_38418_i64(63, 2) == 0 +; run: %transplant_38418_i64(63, 63) == 1 +; run: %transplant_38418_i64(64, 13) == 0 +; run: %transplant_38418_i64(64, 64) == 1 +; run: %transplant_38418_i64(65, 42) == 0 +; run: %transplant_38418_i64(65, 65) == 1 +; run: %transplant_38418_i64(6148914691236517205, 64) == 0 +; run: %transplant_38418_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38418_i64(9223372036854775807, 0) == 0 +; run: %transplant_38418_i64(9223372036854775807, 63) == 0 +; run: %transplant_38418_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38422_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp sle v0, v1 + v3 = icmp sle v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38422_i8(-128, -128) == 1 +; run: %transplant_38422_i8(-128, -86) == 0 +; run: %transplant_38422_i8(-128, 0) == 0 +; run: %transplant_38422_i8(-86, -86) == 1 +; run: %transplant_38422_i8(-86, 9) == 0 +; run: %transplant_38422_i8(-1, -1) == 1 +; run: %transplant_38422_i8(-1, 0) == 0 +; run: %transplant_38422_i8(-1, 85) == 0 +; run: %transplant_38422_i8(0, -128) == 0 +; run: %transplant_38422_i8(0, -1) == 0 +; run: %transplant_38422_i8(0, 0) == 1 +; run: %transplant_38422_i8(0, 1) == 0 +; run: %transplant_38422_i8(0, 127) == 0 +; run: %transplant_38422_i8(1, 0) == 0 +; run: %transplant_38422_i8(1, 1) == 1 +; run: %transplant_38422_i8(1, 127) == 0 +; run: %transplant_38422_i8(2, 0) == 0 +; run: %transplant_38422_i8(2, 2) == 1 +; run: %transplant_38422_i8(7, 2) == 0 +; run: %transplant_38422_i8(7, 7) == 1 +; run: %transplant_38422_i8(8, 8) == 1 +; run: %transplant_38422_i8(8, 13) == 0 +; run: %transplant_38422_i8(9, 9) == 1 +; run: %transplant_38422_i8(9, 42) == 0 +; run: %transplant_38422_i8(13, 1) == 0 +; run: %transplant_38422_i8(13, 13) == 1 +; run: %transplant_38422_i8(42, -1) == 0 +; run: %transplant_38422_i8(42, 42) == 1 +; run: %transplant_38422_i8(85, 8) == 0 +; run: %transplant_38422_i8(85, 85) == 1 +; run: %transplant_38422_i8(127, 0) == 0 +; run: %transplant_38422_i8(127, 7) == 0 +; run: %transplant_38422_i8(127, 127) == 1 + +function %transplant_38422_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp sle v0, v1 + v3 = icmp sle v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38422_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38422_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38422_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38422_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38422_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38422_i64(-1, -1) == 1 +; run: %transplant_38422_i64(-1, 0) == 0 +; run: %transplant_38422_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38422_i64(0, -9223372036854775808) == 0 +; run: %transplant_38422_i64(0, -1) == 0 +; run: %transplant_38422_i64(0, 0) == 1 +; run: %transplant_38422_i64(0, 1) == 0 +; run: %transplant_38422_i64(0, 9223372036854775807) == 0 +; run: %transplant_38422_i64(1, 0) == 0 +; run: %transplant_38422_i64(1, 1) == 1 +; run: %transplant_38422_i64(1, 9223372036854775807) == 0 +; run: %transplant_38422_i64(2, 0) == 0 +; run: %transplant_38422_i64(2, 2) == 1 +; run: %transplant_38422_i64(13, 1) == 0 +; run: %transplant_38422_i64(13, 13) == 1 +; run: %transplant_38422_i64(42, -1) == 0 +; run: %transplant_38422_i64(42, 42) == 1 +; run: %transplant_38422_i64(63, 2) == 0 +; run: %transplant_38422_i64(63, 63) == 1 +; run: %transplant_38422_i64(64, 13) == 0 +; run: %transplant_38422_i64(64, 64) == 1 +; run: %transplant_38422_i64(65, 42) == 0 +; run: %transplant_38422_i64(65, 65) == 1 +; run: %transplant_38422_i64(6148914691236517205, 64) == 0 +; run: %transplant_38422_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38422_i64(9223372036854775807, 0) == 0 +; run: %transplant_38422_i64(9223372036854775807, 63) == 0 +; run: %transplant_38422_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38685_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38685_i8(-128, -128) == 1 +; run: %transplant_38685_i8(-128, -86) == 0 +; run: %transplant_38685_i8(-128, 0) == 0 +; run: %transplant_38685_i8(-86, -86) == 1 +; run: %transplant_38685_i8(-86, 9) == 0 +; run: %transplant_38685_i8(-1, -1) == 1 +; run: %transplant_38685_i8(-1, 0) == 0 +; run: %transplant_38685_i8(-1, 85) == 0 +; run: %transplant_38685_i8(0, -128) == 0 +; run: %transplant_38685_i8(0, -1) == 0 +; run: %transplant_38685_i8(0, 0) == 1 +; run: %transplant_38685_i8(0, 1) == 0 +; run: %transplant_38685_i8(0, 127) == 0 +; run: %transplant_38685_i8(1, 0) == 0 +; run: %transplant_38685_i8(1, 1) == 1 +; run: %transplant_38685_i8(1, 127) == 0 +; run: %transplant_38685_i8(2, 0) == 0 +; run: %transplant_38685_i8(2, 2) == 1 +; run: %transplant_38685_i8(7, 2) == 0 +; run: %transplant_38685_i8(7, 7) == 1 +; run: %transplant_38685_i8(8, 8) == 1 +; run: %transplant_38685_i8(8, 13) == 0 +; run: %transplant_38685_i8(9, 9) == 1 +; run: %transplant_38685_i8(9, 42) == 0 +; run: %transplant_38685_i8(13, 1) == 0 +; run: %transplant_38685_i8(13, 13) == 1 +; run: %transplant_38685_i8(42, -1) == 0 +; run: %transplant_38685_i8(42, 42) == 1 +; run: %transplant_38685_i8(85, 8) == 0 +; run: %transplant_38685_i8(85, 85) == 1 +; run: %transplant_38685_i8(127, 0) == 0 +; run: %transplant_38685_i8(127, 7) == 0 +; run: %transplant_38685_i8(127, 127) == 1 + +function %transplant_38685_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38685_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38685_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38685_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38685_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38685_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38685_i64(-1, -1) == 1 +; run: %transplant_38685_i64(-1, 0) == 0 +; run: %transplant_38685_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38685_i64(0, -9223372036854775808) == 0 +; run: %transplant_38685_i64(0, -1) == 0 +; run: %transplant_38685_i64(0, 0) == 1 +; run: %transplant_38685_i64(0, 1) == 0 +; run: %transplant_38685_i64(0, 9223372036854775807) == 0 +; run: %transplant_38685_i64(1, 0) == 0 +; run: %transplant_38685_i64(1, 1) == 1 +; run: %transplant_38685_i64(1, 9223372036854775807) == 0 +; run: %transplant_38685_i64(2, 0) == 0 +; run: %transplant_38685_i64(2, 2) == 1 +; run: %transplant_38685_i64(13, 1) == 0 +; run: %transplant_38685_i64(13, 13) == 1 +; run: %transplant_38685_i64(42, -1) == 0 +; run: %transplant_38685_i64(42, 42) == 1 +; run: %transplant_38685_i64(63, 2) == 0 +; run: %transplant_38685_i64(63, 63) == 1 +; run: %transplant_38685_i64(64, 13) == 0 +; run: %transplant_38685_i64(64, 64) == 1 +; run: %transplant_38685_i64(65, 42) == 0 +; run: %transplant_38685_i64(65, 65) == 1 +; run: %transplant_38685_i64(6148914691236517205, 64) == 0 +; run: %transplant_38685_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38685_i64(9223372036854775807, 0) == 0 +; run: %transplant_38685_i64(9223372036854775807, 63) == 0 +; run: %transplant_38685_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38687_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp uge v0, v1 + v3 = icmp ule v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38687_i8(-128, -128) == 1 +; run: %transplant_38687_i8(-128, -86) == 0 +; run: %transplant_38687_i8(-128, 0) == 0 +; run: %transplant_38687_i8(-86, -86) == 1 +; run: %transplant_38687_i8(-86, 9) == 0 +; run: %transplant_38687_i8(-1, -1) == 1 +; run: %transplant_38687_i8(-1, 0) == 0 +; run: %transplant_38687_i8(-1, 85) == 0 +; run: %transplant_38687_i8(0, -128) == 0 +; run: %transplant_38687_i8(0, -1) == 0 +; run: %transplant_38687_i8(0, 0) == 1 +; run: %transplant_38687_i8(0, 1) == 0 +; run: %transplant_38687_i8(0, 127) == 0 +; run: %transplant_38687_i8(1, 0) == 0 +; run: %transplant_38687_i8(1, 1) == 1 +; run: %transplant_38687_i8(1, 127) == 0 +; run: %transplant_38687_i8(2, 0) == 0 +; run: %transplant_38687_i8(2, 2) == 1 +; run: %transplant_38687_i8(7, 2) == 0 +; run: %transplant_38687_i8(7, 7) == 1 +; run: %transplant_38687_i8(8, 8) == 1 +; run: %transplant_38687_i8(8, 13) == 0 +; run: %transplant_38687_i8(9, 9) == 1 +; run: %transplant_38687_i8(9, 42) == 0 +; run: %transplant_38687_i8(13, 1) == 0 +; run: %transplant_38687_i8(13, 13) == 1 +; run: %transplant_38687_i8(42, -1) == 0 +; run: %transplant_38687_i8(42, 42) == 1 +; run: %transplant_38687_i8(85, 8) == 0 +; run: %transplant_38687_i8(85, 85) == 1 +; run: %transplant_38687_i8(127, 0) == 0 +; run: %transplant_38687_i8(127, 7) == 0 +; run: %transplant_38687_i8(127, 127) == 1 + +function %transplant_38687_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp uge v0, v1 + v3 = icmp ule v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38687_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38687_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38687_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38687_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38687_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38687_i64(-1, -1) == 1 +; run: %transplant_38687_i64(-1, 0) == 0 +; run: %transplant_38687_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38687_i64(0, -9223372036854775808) == 0 +; run: %transplant_38687_i64(0, -1) == 0 +; run: %transplant_38687_i64(0, 0) == 1 +; run: %transplant_38687_i64(0, 1) == 0 +; run: %transplant_38687_i64(0, 9223372036854775807) == 0 +; run: %transplant_38687_i64(1, 0) == 0 +; run: %transplant_38687_i64(1, 1) == 1 +; run: %transplant_38687_i64(1, 9223372036854775807) == 0 +; run: %transplant_38687_i64(2, 0) == 0 +; run: %transplant_38687_i64(2, 2) == 1 +; run: %transplant_38687_i64(13, 1) == 0 +; run: %transplant_38687_i64(13, 13) == 1 +; run: %transplant_38687_i64(42, -1) == 0 +; run: %transplant_38687_i64(42, 42) == 1 +; run: %transplant_38687_i64(63, 2) == 0 +; run: %transplant_38687_i64(63, 63) == 1 +; run: %transplant_38687_i64(64, 13) == 0 +; run: %transplant_38687_i64(64, 64) == 1 +; run: %transplant_38687_i64(65, 42) == 0 +; run: %transplant_38687_i64(65, 65) == 1 +; run: %transplant_38687_i64(6148914691236517205, 64) == 0 +; run: %transplant_38687_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38687_i64(9223372036854775807, 0) == 0 +; run: %transplant_38687_i64(9223372036854775807, 63) == 0 +; run: %transplant_38687_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38925_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp ule v0, v1 + v3 = icmp uge v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38925_i8(-128, -128) == 1 +; run: %transplant_38925_i8(-128, -86) == 0 +; run: %transplant_38925_i8(-128, 0) == 0 +; run: %transplant_38925_i8(-86, -86) == 1 +; run: %transplant_38925_i8(-86, 9) == 0 +; run: %transplant_38925_i8(-1, -1) == 1 +; run: %transplant_38925_i8(-1, 0) == 0 +; run: %transplant_38925_i8(-1, 85) == 0 +; run: %transplant_38925_i8(0, -128) == 0 +; run: %transplant_38925_i8(0, -1) == 0 +; run: %transplant_38925_i8(0, 0) == 1 +; run: %transplant_38925_i8(0, 1) == 0 +; run: %transplant_38925_i8(0, 127) == 0 +; run: %transplant_38925_i8(1, 0) == 0 +; run: %transplant_38925_i8(1, 1) == 1 +; run: %transplant_38925_i8(1, 127) == 0 +; run: %transplant_38925_i8(2, 0) == 0 +; run: %transplant_38925_i8(2, 2) == 1 +; run: %transplant_38925_i8(7, 2) == 0 +; run: %transplant_38925_i8(7, 7) == 1 +; run: %transplant_38925_i8(8, 8) == 1 +; run: %transplant_38925_i8(8, 13) == 0 +; run: %transplant_38925_i8(9, 9) == 1 +; run: %transplant_38925_i8(9, 42) == 0 +; run: %transplant_38925_i8(13, 1) == 0 +; run: %transplant_38925_i8(13, 13) == 1 +; run: %transplant_38925_i8(42, -1) == 0 +; run: %transplant_38925_i8(42, 42) == 1 +; run: %transplant_38925_i8(85, 8) == 0 +; run: %transplant_38925_i8(85, 85) == 1 +; run: %transplant_38925_i8(127, 0) == 0 +; run: %transplant_38925_i8(127, 7) == 0 +; run: %transplant_38925_i8(127, 127) == 1 + +function %transplant_38925_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp ule v0, v1 + v3 = icmp uge v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38925_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38925_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38925_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38925_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38925_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38925_i64(-1, -1) == 1 +; run: %transplant_38925_i64(-1, 0) == 0 +; run: %transplant_38925_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38925_i64(0, -9223372036854775808) == 0 +; run: %transplant_38925_i64(0, -1) == 0 +; run: %transplant_38925_i64(0, 0) == 1 +; run: %transplant_38925_i64(0, 1) == 0 +; run: %transplant_38925_i64(0, 9223372036854775807) == 0 +; run: %transplant_38925_i64(1, 0) == 0 +; run: %transplant_38925_i64(1, 1) == 1 +; run: %transplant_38925_i64(1, 9223372036854775807) == 0 +; run: %transplant_38925_i64(2, 0) == 0 +; run: %transplant_38925_i64(2, 2) == 1 +; run: %transplant_38925_i64(13, 1) == 0 +; run: %transplant_38925_i64(13, 13) == 1 +; run: %transplant_38925_i64(42, -1) == 0 +; run: %transplant_38925_i64(42, 42) == 1 +; run: %transplant_38925_i64(63, 2) == 0 +; run: %transplant_38925_i64(63, 63) == 1 +; run: %transplant_38925_i64(64, 13) == 0 +; run: %transplant_38925_i64(64, 64) == 1 +; run: %transplant_38925_i64(65, 42) == 0 +; run: %transplant_38925_i64(65, 65) == 1 +; run: %transplant_38925_i64(6148914691236517205, 64) == 0 +; run: %transplant_38925_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38925_i64(9223372036854775807, 0) == 0 +; run: %transplant_38925_i64(9223372036854775807, 63) == 0 +; run: %transplant_38925_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_38931_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = icmp ule v0, v1 + v3 = icmp ule v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38931_i8(-128, -128) == 1 +; run: %transplant_38931_i8(-128, -86) == 0 +; run: %transplant_38931_i8(-128, 0) == 0 +; run: %transplant_38931_i8(-86, -86) == 1 +; run: %transplant_38931_i8(-86, 9) == 0 +; run: %transplant_38931_i8(-1, -1) == 1 +; run: %transplant_38931_i8(-1, 0) == 0 +; run: %transplant_38931_i8(-1, 85) == 0 +; run: %transplant_38931_i8(0, -128) == 0 +; run: %transplant_38931_i8(0, -1) == 0 +; run: %transplant_38931_i8(0, 0) == 1 +; run: %transplant_38931_i8(0, 1) == 0 +; run: %transplant_38931_i8(0, 127) == 0 +; run: %transplant_38931_i8(1, 0) == 0 +; run: %transplant_38931_i8(1, 1) == 1 +; run: %transplant_38931_i8(1, 127) == 0 +; run: %transplant_38931_i8(2, 0) == 0 +; run: %transplant_38931_i8(2, 2) == 1 +; run: %transplant_38931_i8(7, 2) == 0 +; run: %transplant_38931_i8(7, 7) == 1 +; run: %transplant_38931_i8(8, 8) == 1 +; run: %transplant_38931_i8(8, 13) == 0 +; run: %transplant_38931_i8(9, 9) == 1 +; run: %transplant_38931_i8(9, 42) == 0 +; run: %transplant_38931_i8(13, 1) == 0 +; run: %transplant_38931_i8(13, 13) == 1 +; run: %transplant_38931_i8(42, -1) == 0 +; run: %transplant_38931_i8(42, 42) == 1 +; run: %transplant_38931_i8(85, 8) == 0 +; run: %transplant_38931_i8(85, 85) == 1 +; run: %transplant_38931_i8(127, 0) == 0 +; run: %transplant_38931_i8(127, 7) == 0 +; run: %transplant_38931_i8(127, 127) == 1 + +function %transplant_38931_i64(i64, i64) -> i8 { +block0(v0: i64, v1: i64): + v2 = icmp ule v0, v1 + v3 = icmp ule v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38931_i64(-9223372036854775808, -9223372036854775808) == 1 +; run: %transplant_38931_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_38931_i64(-9223372036854775808, 0) == 0 +; run: %transplant_38931_i64(-6148914691236517206, -6148914691236517206) == 1 +; run: %transplant_38931_i64(-6148914691236517206, 65) == 0 +; run: %transplant_38931_i64(-1, -1) == 1 +; run: %transplant_38931_i64(-1, 0) == 0 +; run: %transplant_38931_i64(-1, 6148914691236517205) == 0 +; run: %transplant_38931_i64(0, -9223372036854775808) == 0 +; run: %transplant_38931_i64(0, -1) == 0 +; run: %transplant_38931_i64(0, 0) == 1 +; run: %transplant_38931_i64(0, 1) == 0 +; run: %transplant_38931_i64(0, 9223372036854775807) == 0 +; run: %transplant_38931_i64(1, 0) == 0 +; run: %transplant_38931_i64(1, 1) == 1 +; run: %transplant_38931_i64(1, 9223372036854775807) == 0 +; run: %transplant_38931_i64(2, 0) == 0 +; run: %transplant_38931_i64(2, 2) == 1 +; run: %transplant_38931_i64(13, 1) == 0 +; run: %transplant_38931_i64(13, 13) == 1 +; run: %transplant_38931_i64(42, -1) == 0 +; run: %transplant_38931_i64(42, 42) == 1 +; run: %transplant_38931_i64(63, 2) == 0 +; run: %transplant_38931_i64(63, 63) == 1 +; run: %transplant_38931_i64(64, 13) == 0 +; run: %transplant_38931_i64(64, 64) == 1 +; run: %transplant_38931_i64(65, 42) == 0 +; run: %transplant_38931_i64(65, 65) == 1 +; run: %transplant_38931_i64(6148914691236517205, 64) == 0 +; run: %transplant_38931_i64(6148914691236517205, 6148914691236517205) == 1 +; run: %transplant_38931_i64(9223372036854775807, 0) == 0 +; run: %transplant_38931_i64(9223372036854775807, 63) == 0 +; run: %transplant_38931_i64(9223372036854775807, 9223372036854775807) == 1 diff --git a/cranelift/filetests/filetests/runtests/select.clif b/cranelift/filetests/filetests/runtests/select.clif index 0c5af919a7cb..aa6e462397e1 100644 --- a/cranelift/filetests/filetests/runtests/select.clif +++ b/cranelift/filetests/filetests/runtests/select.clif @@ -1431,3 +1431,863 @@ block0(v0: i8, v1: i64): ; run: %bor_select_nonconstant_branch_i64(0, 128) == 133 ; run: %bor_select_nonconstant_branch_i64(1, 0) == 21 ; run: %bor_select_nonconstant_branch_i64(-1, 128) == 21 + +function %transplant_42865_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 0 + v2 = icmp eq v0, v1 + v3 = ineg v0 + v4 = select v2, v3, v0 + return v4 +} +; run: %transplant_42865_i8(-128) == -128 +; run: %transplant_42865_i8(-86) == -86 +; run: %transplant_42865_i8(-1) == -1 +; run: %transplant_42865_i8(0) == 0 +; run: %transplant_42865_i8(1) == 1 +; run: %transplant_42865_i8(2) == 2 +; run: %transplant_42865_i8(7) == 7 +; run: %transplant_42865_i8(8) == 8 +; run: %transplant_42865_i8(9) == 9 +; run: %transplant_42865_i8(13) == 13 +; run: %transplant_42865_i8(42) == 42 +; run: %transplant_42865_i8(85) == 85 +; run: %transplant_42865_i8(127) == 127 + +function %transplant_42865_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 0 + v2 = icmp eq v0, v1 + v3 = ineg v0 + v4 = select v2, v3, v0 + return v4 +} +; run: %transplant_42865_i64(-9223372036854775808) == -9223372036854775808 +; run: %transplant_42865_i64(-6148914691236517206) == -6148914691236517206 +; run: %transplant_42865_i64(-1) == -1 +; run: %transplant_42865_i64(0) == 0 +; run: %transplant_42865_i64(1) == 1 +; run: %transplant_42865_i64(2) == 2 +; run: %transplant_42865_i64(13) == 13 +; run: %transplant_42865_i64(42) == 42 +; run: %transplant_42865_i64(63) == 63 +; run: %transplant_42865_i64(64) == 64 +; run: %transplant_42865_i64(65) == 65 +; run: %transplant_42865_i64(6148914691236517205) == 6148914691236517205 +; run: %transplant_42865_i64(9223372036854775807) == 9223372036854775807 + +function %transplant_43009_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 0 + v2 = icmp ne v0, v1 + v3 = ineg v0 + v4 = select v2, v0, v3 + return v4 +} +; run: %transplant_43009_i8(-128) == -128 +; run: %transplant_43009_i8(-86) == -86 +; run: %transplant_43009_i8(-1) == -1 +; run: %transplant_43009_i8(0) == 0 +; run: %transplant_43009_i8(1) == 1 +; run: %transplant_43009_i8(2) == 2 +; run: %transplant_43009_i8(7) == 7 +; run: %transplant_43009_i8(8) == 8 +; run: %transplant_43009_i8(9) == 9 +; run: %transplant_43009_i8(13) == 13 +; run: %transplant_43009_i8(42) == 42 +; run: %transplant_43009_i8(85) == 85 +; run: %transplant_43009_i8(127) == 127 + +function %transplant_43009_i64(i64) -> i64 { +block0(v0: i64): + v1 = iconst.i64 0 + v2 = icmp ne v0, v1 + v3 = ineg v0 + v4 = select v2, v0, v3 + return v4 +} +; run: %transplant_43009_i64(-9223372036854775808) == -9223372036854775808 +; run: %transplant_43009_i64(-6148914691236517206) == -6148914691236517206 +; run: %transplant_43009_i64(-1) == -1 +; run: %transplant_43009_i64(0) == 0 +; run: %transplant_43009_i64(1) == 1 +; run: %transplant_43009_i64(2) == 2 +; run: %transplant_43009_i64(13) == 13 +; run: %transplant_43009_i64(42) == 42 +; run: %transplant_43009_i64(63) == 63 +; run: %transplant_43009_i64(64) == 64 +; run: %transplant_43009_i64(65) == 65 +; run: %transplant_43009_i64(6148914691236517205) == 6148914691236517205 +; run: %transplant_43009_i64(9223372036854775807) == 9223372036854775807 + +function %transplant_39182_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = iconst.i8 42 + v3 = select v0, v1, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39182_i8(-128) == -14 +; run: %transplant_39182_i8(-86) == -14 +; run: %transplant_39182_i8(-1) == -14 +; run: %transplant_39182_i8(0) == -43 +; run: %transplant_39182_i8(1) == -14 +; run: %transplant_39182_i8(2) == -14 +; run: %transplant_39182_i8(7) == -14 +; run: %transplant_39182_i8(8) == -14 +; run: %transplant_39182_i8(9) == -14 +; run: %transplant_39182_i8(13) == -14 +; run: %transplant_39182_i8(42) == -14 +; run: %transplant_39182_i8(85) == -14 +; run: %transplant_39182_i8(127) == -14 + +function %transplant_39182_i64(i8) -> i64 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = iconst.i64 42 + v3 = select v0, v1, v2 + v4 = bnot v3 + return v4 +} +; run: %transplant_39182_i64(-86) == -14 +; run: %transplant_39182_i64(-1) == -14 +; run: %transplant_39182_i64(0) == -43 +; run: %transplant_39182_i64(1) == -14 +; run: %transplant_39182_i64(2) == -14 +; run: %transplant_39182_i64(13) == -14 +; run: %transplant_39182_i64(42) == -14 +; run: %transplant_39182_i64(63) == -14 +; run: %transplant_39182_i64(64) == -14 +; run: %transplant_39182_i64(65) == -14 +; run: %transplant_39182_i64(85) == -14 + +function %transplant_42061_i8(i8) -> i8 { +block0(v0: i8): + v1 = iconst.i8 13 + v2 = iconst.i8 42 + v3 = select v0, v1, v2 + v4 = ineg v3 + return v4 +} +; run: %transplant_42061_i8(-128) == -13 +; run: %transplant_42061_i8(-86) == -13 +; run: %transplant_42061_i8(-1) == -13 +; run: %transplant_42061_i8(0) == -42 +; run: %transplant_42061_i8(1) == -13 +; run: %transplant_42061_i8(2) == -13 +; run: %transplant_42061_i8(7) == -13 +; run: %transplant_42061_i8(8) == -13 +; run: %transplant_42061_i8(9) == -13 +; run: %transplant_42061_i8(13) == -13 +; run: %transplant_42061_i8(42) == -13 +; run: %transplant_42061_i8(85) == -13 +; run: %transplant_42061_i8(127) == -13 + +function %transplant_42061_i64(i8) -> i64 { +block0(v0: i8): + v1 = iconst.i64 13 + v2 = iconst.i64 42 + v3 = select v0, v1, v2 + v4 = ineg v3 + return v4 +} +; run: %transplant_42061_i64(-86) == -13 +; run: %transplant_42061_i64(-1) == -13 +; run: %transplant_42061_i64(0) == -42 +; run: %transplant_42061_i64(1) == -13 +; run: %transplant_42061_i64(2) == -13 +; run: %transplant_42061_i64(13) == -13 +; run: %transplant_42061_i64(42) == -13 +; run: %transplant_42061_i64(63) == -13 +; run: %transplant_42061_i64(64) == -13 +; run: %transplant_42061_i64(65) == -13 +; run: %transplant_42061_i64(85) == -13 + +function %transplant_42859_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = band v0, v1 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42859_i8(-128, -128) == -128 +; run: %transplant_42859_i8(-128, -86) == -128 +; run: %transplant_42859_i8(-128, 0) == 0 +; run: %transplant_42859_i8(-86, -86) == -86 +; run: %transplant_42859_i8(-86, 9) == 8 +; run: %transplant_42859_i8(-1, -1) == -1 +; run: %transplant_42859_i8(-1, 0) == 0 +; run: %transplant_42859_i8(-1, 85) == 85 +; run: %transplant_42859_i8(0, -128) == 0 +; run: %transplant_42859_i8(0, -1) == 0 +; run: %transplant_42859_i8(0, 0) == 0 +; run: %transplant_42859_i8(0, 1) == 0 +; run: %transplant_42859_i8(0, 127) == 0 +; run: %transplant_42859_i8(1, 0) == 0 +; run: %transplant_42859_i8(1, 1) == 1 +; run: %transplant_42859_i8(1, 127) == 1 +; run: %transplant_42859_i8(2, 0) == 0 +; run: %transplant_42859_i8(2, 2) == 2 +; run: %transplant_42859_i8(7, 2) == 2 +; run: %transplant_42859_i8(7, 7) == 7 +; run: %transplant_42859_i8(8, 8) == 8 +; run: %transplant_42859_i8(8, 13) == 8 +; run: %transplant_42859_i8(9, 9) == 9 +; run: %transplant_42859_i8(9, 42) == 8 +; run: %transplant_42859_i8(13, 1) == 1 +; run: %transplant_42859_i8(13, 13) == 13 +; run: %transplant_42859_i8(42, -1) == 42 +; run: %transplant_42859_i8(42, 42) == 42 +; run: %transplant_42859_i8(85, 8) == 0 +; run: %transplant_42859_i8(85, 85) == 85 +; run: %transplant_42859_i8(127, 0) == 0 +; run: %transplant_42859_i8(127, 7) == 7 +; run: %transplant_42859_i8(127, 127) == 127 + +function %transplant_42859_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = band v0, v1 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42859_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_42859_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_42859_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42859_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_42859_i64(-6148914691236517206, 65) == 0 +; run: %transplant_42859_i64(-1, -1) == -1 +; run: %transplant_42859_i64(-1, 0) == 0 +; run: %transplant_42859_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42859_i64(0, -9223372036854775808) == 0 +; run: %transplant_42859_i64(0, -1) == 0 +; run: %transplant_42859_i64(0, 0) == 0 +; run: %transplant_42859_i64(0, 1) == 0 +; run: %transplant_42859_i64(0, 9223372036854775807) == 0 +; run: %transplant_42859_i64(1, 0) == 0 +; run: %transplant_42859_i64(1, 1) == 1 +; run: %transplant_42859_i64(1, 9223372036854775807) == 1 +; run: %transplant_42859_i64(2, 0) == 0 +; run: %transplant_42859_i64(2, 2) == 2 +; run: %transplant_42859_i64(13, 1) == 1 +; run: %transplant_42859_i64(13, 13) == 13 +; run: %transplant_42859_i64(42, -1) == 42 +; run: %transplant_42859_i64(42, 42) == 42 +; run: %transplant_42859_i64(63, 2) == 2 +; run: %transplant_42859_i64(63, 63) == 63 +; run: %transplant_42859_i64(64, 13) == 0 +; run: %transplant_42859_i64(64, 64) == 64 +; run: %transplant_42859_i64(65, 42) == 0 +; run: %transplant_42859_i64(65, 65) == 65 +; run: %transplant_42859_i64(6148914691236517205, 64) == 64 +; run: %transplant_42859_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42859_i64(9223372036854775807, 0) == 0 +; run: %transplant_42859_i64(9223372036854775807, 63) == 63 +; run: %transplant_42859_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_42860_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = band v1, v0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42860_i8(-128, -128) == -128 +; run: %transplant_42860_i8(-128, -86) == -128 +; run: %transplant_42860_i8(-128, 0) == 0 +; run: %transplant_42860_i8(-86, -86) == -86 +; run: %transplant_42860_i8(-86, 9) == 8 +; run: %transplant_42860_i8(-1, -1) == -1 +; run: %transplant_42860_i8(-1, 0) == 0 +; run: %transplant_42860_i8(-1, 85) == 85 +; run: %transplant_42860_i8(0, -128) == 0 +; run: %transplant_42860_i8(0, -1) == 0 +; run: %transplant_42860_i8(0, 0) == 0 +; run: %transplant_42860_i8(0, 1) == 0 +; run: %transplant_42860_i8(0, 127) == 0 +; run: %transplant_42860_i8(1, 0) == 0 +; run: %transplant_42860_i8(1, 1) == 1 +; run: %transplant_42860_i8(1, 127) == 1 +; run: %transplant_42860_i8(2, 0) == 0 +; run: %transplant_42860_i8(2, 2) == 2 +; run: %transplant_42860_i8(7, 2) == 2 +; run: %transplant_42860_i8(7, 7) == 7 +; run: %transplant_42860_i8(8, 8) == 8 +; run: %transplant_42860_i8(8, 13) == 8 +; run: %transplant_42860_i8(9, 9) == 9 +; run: %transplant_42860_i8(9, 42) == 8 +; run: %transplant_42860_i8(13, 1) == 1 +; run: %transplant_42860_i8(13, 13) == 13 +; run: %transplant_42860_i8(42, -1) == 42 +; run: %transplant_42860_i8(42, 42) == 42 +; run: %transplant_42860_i8(85, 8) == 0 +; run: %transplant_42860_i8(85, 85) == 85 +; run: %transplant_42860_i8(127, 0) == 0 +; run: %transplant_42860_i8(127, 7) == 7 +; run: %transplant_42860_i8(127, 127) == 127 + +function %transplant_42860_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = band v1, v0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42860_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_42860_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_42860_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42860_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_42860_i64(-6148914691236517206, 65) == 0 +; run: %transplant_42860_i64(-1, -1) == -1 +; run: %transplant_42860_i64(-1, 0) == 0 +; run: %transplant_42860_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42860_i64(0, -9223372036854775808) == 0 +; run: %transplant_42860_i64(0, -1) == 0 +; run: %transplant_42860_i64(0, 0) == 0 +; run: %transplant_42860_i64(0, 1) == 0 +; run: %transplant_42860_i64(0, 9223372036854775807) == 0 +; run: %transplant_42860_i64(1, 0) == 0 +; run: %transplant_42860_i64(1, 1) == 1 +; run: %transplant_42860_i64(1, 9223372036854775807) == 1 +; run: %transplant_42860_i64(2, 0) == 0 +; run: %transplant_42860_i64(2, 2) == 2 +; run: %transplant_42860_i64(13, 1) == 1 +; run: %transplant_42860_i64(13, 13) == 13 +; run: %transplant_42860_i64(42, -1) == 42 +; run: %transplant_42860_i64(42, 42) == 42 +; run: %transplant_42860_i64(63, 2) == 2 +; run: %transplant_42860_i64(63, 63) == 63 +; run: %transplant_42860_i64(64, 13) == 0 +; run: %transplant_42860_i64(64, 64) == 64 +; run: %transplant_42860_i64(65, 42) == 0 +; run: %transplant_42860_i64(65, 65) == 65 +; run: %transplant_42860_i64(6148914691236517205, 64) == 64 +; run: %transplant_42860_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42860_i64(9223372036854775807, 0) == 0 +; run: %transplant_42860_i64(9223372036854775807, 63) == 63 +; run: %transplant_42860_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_42992_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = band v0, v1 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42992_i8(-128, -128) == -128 +; run: %transplant_42992_i8(-128, -86) == -128 +; run: %transplant_42992_i8(-128, 0) == 0 +; run: %transplant_42992_i8(-86, -86) == -86 +; run: %transplant_42992_i8(-86, 9) == 8 +; run: %transplant_42992_i8(-1, -1) == -1 +; run: %transplant_42992_i8(-1, 0) == 0 +; run: %transplant_42992_i8(-1, 85) == 85 +; run: %transplant_42992_i8(0, -128) == 0 +; run: %transplant_42992_i8(0, -1) == 0 +; run: %transplant_42992_i8(0, 0) == 0 +; run: %transplant_42992_i8(0, 1) == 0 +; run: %transplant_42992_i8(0, 127) == 0 +; run: %transplant_42992_i8(1, 0) == 0 +; run: %transplant_42992_i8(1, 1) == 1 +; run: %transplant_42992_i8(1, 127) == 1 +; run: %transplant_42992_i8(2, 0) == 0 +; run: %transplant_42992_i8(2, 2) == 2 +; run: %transplant_42992_i8(7, 2) == 2 +; run: %transplant_42992_i8(7, 7) == 7 +; run: %transplant_42992_i8(8, 8) == 8 +; run: %transplant_42992_i8(8, 13) == 8 +; run: %transplant_42992_i8(9, 9) == 9 +; run: %transplant_42992_i8(9, 42) == 8 +; run: %transplant_42992_i8(13, 1) == 1 +; run: %transplant_42992_i8(13, 13) == 13 +; run: %transplant_42992_i8(42, -1) == 42 +; run: %transplant_42992_i8(42, 42) == 42 +; run: %transplant_42992_i8(85, 8) == 0 +; run: %transplant_42992_i8(85, 85) == 85 +; run: %transplant_42992_i8(127, 0) == 0 +; run: %transplant_42992_i8(127, 7) == 7 +; run: %transplant_42992_i8(127, 127) == 127 + +function %transplant_42992_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = band v0, v1 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42992_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_42992_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_42992_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42992_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_42992_i64(-6148914691236517206, 65) == 0 +; run: %transplant_42992_i64(-1, -1) == -1 +; run: %transplant_42992_i64(-1, 0) == 0 +; run: %transplant_42992_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42992_i64(0, -9223372036854775808) == 0 +; run: %transplant_42992_i64(0, -1) == 0 +; run: %transplant_42992_i64(0, 0) == 0 +; run: %transplant_42992_i64(0, 1) == 0 +; run: %transplant_42992_i64(0, 9223372036854775807) == 0 +; run: %transplant_42992_i64(1, 0) == 0 +; run: %transplant_42992_i64(1, 1) == 1 +; run: %transplant_42992_i64(1, 9223372036854775807) == 1 +; run: %transplant_42992_i64(2, 0) == 0 +; run: %transplant_42992_i64(2, 2) == 2 +; run: %transplant_42992_i64(13, 1) == 1 +; run: %transplant_42992_i64(13, 13) == 13 +; run: %transplant_42992_i64(42, -1) == 42 +; run: %transplant_42992_i64(42, 42) == 42 +; run: %transplant_42992_i64(63, 2) == 2 +; run: %transplant_42992_i64(63, 63) == 63 +; run: %transplant_42992_i64(64, 13) == 0 +; run: %transplant_42992_i64(64, 64) == 64 +; run: %transplant_42992_i64(65, 42) == 0 +; run: %transplant_42992_i64(65, 65) == 65 +; run: %transplant_42992_i64(6148914691236517205, 64) == 64 +; run: %transplant_42992_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42992_i64(9223372036854775807, 0) == 0 +; run: %transplant_42992_i64(9223372036854775807, 63) == 63 +; run: %transplant_42992_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_42993_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = band v1, v0 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42993_i8(-128, -128) == -128 +; run: %transplant_42993_i8(-128, -86) == -128 +; run: %transplant_42993_i8(-128, 0) == 0 +; run: %transplant_42993_i8(-86, -86) == -86 +; run: %transplant_42993_i8(-86, 9) == 8 +; run: %transplant_42993_i8(-1, -1) == -1 +; run: %transplant_42993_i8(-1, 0) == 0 +; run: %transplant_42993_i8(-1, 85) == 85 +; run: %transplant_42993_i8(0, -128) == 0 +; run: %transplant_42993_i8(0, -1) == 0 +; run: %transplant_42993_i8(0, 0) == 0 +; run: %transplant_42993_i8(0, 1) == 0 +; run: %transplant_42993_i8(0, 127) == 0 +; run: %transplant_42993_i8(1, 0) == 0 +; run: %transplant_42993_i8(1, 1) == 1 +; run: %transplant_42993_i8(1, 127) == 1 +; run: %transplant_42993_i8(2, 0) == 0 +; run: %transplant_42993_i8(2, 2) == 2 +; run: %transplant_42993_i8(7, 2) == 2 +; run: %transplant_42993_i8(7, 7) == 7 +; run: %transplant_42993_i8(8, 8) == 8 +; run: %transplant_42993_i8(8, 13) == 8 +; run: %transplant_42993_i8(9, 9) == 9 +; run: %transplant_42993_i8(9, 42) == 8 +; run: %transplant_42993_i8(13, 1) == 1 +; run: %transplant_42993_i8(13, 13) == 13 +; run: %transplant_42993_i8(42, -1) == 42 +; run: %transplant_42993_i8(42, 42) == 42 +; run: %transplant_42993_i8(85, 8) == 0 +; run: %transplant_42993_i8(85, 85) == 85 +; run: %transplant_42993_i8(127, 0) == 0 +; run: %transplant_42993_i8(127, 7) == 7 +; run: %transplant_42993_i8(127, 127) == 127 + +function %transplant_42993_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = band v1, v0 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42993_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_42993_i64(-9223372036854775808, -6148914691236517206) == -9223372036854775808 +; run: %transplant_42993_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42993_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_42993_i64(-6148914691236517206, 65) == 0 +; run: %transplant_42993_i64(-1, -1) == -1 +; run: %transplant_42993_i64(-1, 0) == 0 +; run: %transplant_42993_i64(-1, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42993_i64(0, -9223372036854775808) == 0 +; run: %transplant_42993_i64(0, -1) == 0 +; run: %transplant_42993_i64(0, 0) == 0 +; run: %transplant_42993_i64(0, 1) == 0 +; run: %transplant_42993_i64(0, 9223372036854775807) == 0 +; run: %transplant_42993_i64(1, 0) == 0 +; run: %transplant_42993_i64(1, 1) == 1 +; run: %transplant_42993_i64(1, 9223372036854775807) == 1 +; run: %transplant_42993_i64(2, 0) == 0 +; run: %transplant_42993_i64(2, 2) == 2 +; run: %transplant_42993_i64(13, 1) == 1 +; run: %transplant_42993_i64(13, 13) == 13 +; run: %transplant_42993_i64(42, -1) == 42 +; run: %transplant_42993_i64(42, 42) == 42 +; run: %transplant_42993_i64(63, 2) == 2 +; run: %transplant_42993_i64(63, 63) == 63 +; run: %transplant_42993_i64(64, 13) == 0 +; run: %transplant_42993_i64(64, 64) == 64 +; run: %transplant_42993_i64(65, 42) == 0 +; run: %transplant_42993_i64(65, 65) == 65 +; run: %transplant_42993_i64(6148914691236517205, 64) == 64 +; run: %transplant_42993_i64(6148914691236517205, 6148914691236517205) == 6148914691236517205 +; run: %transplant_42993_i64(9223372036854775807, 0) == 0 +; run: %transplant_42993_i64(9223372036854775807, 63) == 63 +; run: %transplant_42993_i64(9223372036854775807, 9223372036854775807) == 9223372036854775807 + +function %transplant_42861_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = imul v0, v1 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42861_i8(-128, -128) == 0 +; run: %transplant_42861_i8(-128, -86) == 0 +; run: %transplant_42861_i8(-128, 0) == 0 +; run: %transplant_42861_i8(-86, -86) == -28 +; run: %transplant_42861_i8(-86, 9) == -6 +; run: %transplant_42861_i8(-1, -1) == 1 +; run: %transplant_42861_i8(-1, 0) == 0 +; run: %transplant_42861_i8(-1, 85) == -85 +; run: %transplant_42861_i8(0, -128) == 0 +; run: %transplant_42861_i8(0, -1) == 0 +; run: %transplant_42861_i8(0, 0) == 0 +; run: %transplant_42861_i8(0, 1) == 0 +; run: %transplant_42861_i8(0, 127) == 0 +; run: %transplant_42861_i8(1, 0) == 0 +; run: %transplant_42861_i8(1, 1) == 1 +; run: %transplant_42861_i8(1, 127) == 127 +; run: %transplant_42861_i8(2, 0) == 0 +; run: %transplant_42861_i8(2, 2) == 4 +; run: %transplant_42861_i8(7, 2) == 14 +; run: %transplant_42861_i8(7, 7) == 49 +; run: %transplant_42861_i8(8, 8) == 64 +; run: %transplant_42861_i8(8, 13) == 104 +; run: %transplant_42861_i8(9, 9) == 81 +; run: %transplant_42861_i8(9, 42) == 122 +; run: %transplant_42861_i8(13, 1) == 13 +; run: %transplant_42861_i8(13, 13) == -87 +; run: %transplant_42861_i8(42, -1) == -42 +; run: %transplant_42861_i8(42, 42) == -28 +; run: %transplant_42861_i8(85, 8) == -88 +; run: %transplant_42861_i8(85, 85) == 57 +; run: %transplant_42861_i8(127, 0) == 0 +; run: %transplant_42861_i8(127, 7) == 121 +; run: %transplant_42861_i8(127, 127) == 1 + +function %transplant_42861_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = imul v0, v1 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42861_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42861_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_42861_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42861_i64(-6148914691236517206, -6148914691236517206) == 4099276460824344804 +; run: %transplant_42861_i64(-6148914691236517206, 65) == 6148914691236517162 +; run: %transplant_42861_i64(-1, -1) == 1 +; run: %transplant_42861_i64(-1, 0) == 0 +; run: %transplant_42861_i64(-1, 6148914691236517205) == -6148914691236517205 +; run: %transplant_42861_i64(0, -9223372036854775808) == 0 +; run: %transplant_42861_i64(0, -1) == 0 +; run: %transplant_42861_i64(0, 0) == 0 +; run: %transplant_42861_i64(0, 1) == 0 +; run: %transplant_42861_i64(0, 9223372036854775807) == 0 +; run: %transplant_42861_i64(1, 0) == 0 +; run: %transplant_42861_i64(1, 1) == 1 +; run: %transplant_42861_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_42861_i64(2, 0) == 0 +; run: %transplant_42861_i64(2, 2) == 4 +; run: %transplant_42861_i64(13, 1) == 13 +; run: %transplant_42861_i64(13, 13) == 169 +; run: %transplant_42861_i64(42, -1) == -42 +; run: %transplant_42861_i64(42, 42) == 1764 +; run: %transplant_42861_i64(63, 2) == 126 +; run: %transplant_42861_i64(63, 63) == 3969 +; run: %transplant_42861_i64(64, 13) == 832 +; run: %transplant_42861_i64(64, 64) == 4096 +; run: %transplant_42861_i64(65, 42) == 2730 +; run: %transplant_42861_i64(65, 65) == 4225 +; run: %transplant_42861_i64(6148914691236517205, 64) == 6148914691236517184 +; run: %transplant_42861_i64(6148914691236517205, 6148914691236517205) == -8198552921648689607 +; run: %transplant_42861_i64(9223372036854775807, 0) == 0 +; run: %transplant_42861_i64(9223372036854775807, 63) == 9223372036854775745 +; run: %transplant_42861_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_42862_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp eq v0, v2 + v4 = iconst.i8 0 + v5 = imul v1, v0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42862_i8(-128, -128) == 0 +; run: %transplant_42862_i8(-128, -86) == 0 +; run: %transplant_42862_i8(-128, 0) == 0 +; run: %transplant_42862_i8(-86, -86) == -28 +; run: %transplant_42862_i8(-86, 9) == -6 +; run: %transplant_42862_i8(-1, -1) == 1 +; run: %transplant_42862_i8(-1, 0) == 0 +; run: %transplant_42862_i8(-1, 85) == -85 +; run: %transplant_42862_i8(0, -128) == 0 +; run: %transplant_42862_i8(0, -1) == 0 +; run: %transplant_42862_i8(0, 0) == 0 +; run: %transplant_42862_i8(0, 1) == 0 +; run: %transplant_42862_i8(0, 127) == 0 +; run: %transplant_42862_i8(1, 0) == 0 +; run: %transplant_42862_i8(1, 1) == 1 +; run: %transplant_42862_i8(1, 127) == 127 +; run: %transplant_42862_i8(2, 0) == 0 +; run: %transplant_42862_i8(2, 2) == 4 +; run: %transplant_42862_i8(7, 2) == 14 +; run: %transplant_42862_i8(7, 7) == 49 +; run: %transplant_42862_i8(8, 8) == 64 +; run: %transplant_42862_i8(8, 13) == 104 +; run: %transplant_42862_i8(9, 9) == 81 +; run: %transplant_42862_i8(9, 42) == 122 +; run: %transplant_42862_i8(13, 1) == 13 +; run: %transplant_42862_i8(13, 13) == -87 +; run: %transplant_42862_i8(42, -1) == -42 +; run: %transplant_42862_i8(42, 42) == -28 +; run: %transplant_42862_i8(85, 8) == -88 +; run: %transplant_42862_i8(85, 85) == 57 +; run: %transplant_42862_i8(127, 0) == 0 +; run: %transplant_42862_i8(127, 7) == 121 +; run: %transplant_42862_i8(127, 127) == 1 + +function %transplant_42862_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp eq v0, v2 + v4 = iconst.i64 0 + v5 = imul v1, v0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42862_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42862_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_42862_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42862_i64(-6148914691236517206, -6148914691236517206) == 4099276460824344804 +; run: %transplant_42862_i64(-6148914691236517206, 65) == 6148914691236517162 +; run: %transplant_42862_i64(-1, -1) == 1 +; run: %transplant_42862_i64(-1, 0) == 0 +; run: %transplant_42862_i64(-1, 6148914691236517205) == -6148914691236517205 +; run: %transplant_42862_i64(0, -9223372036854775808) == 0 +; run: %transplant_42862_i64(0, -1) == 0 +; run: %transplant_42862_i64(0, 0) == 0 +; run: %transplant_42862_i64(0, 1) == 0 +; run: %transplant_42862_i64(0, 9223372036854775807) == 0 +; run: %transplant_42862_i64(1, 0) == 0 +; run: %transplant_42862_i64(1, 1) == 1 +; run: %transplant_42862_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_42862_i64(2, 0) == 0 +; run: %transplant_42862_i64(2, 2) == 4 +; run: %transplant_42862_i64(13, 1) == 13 +; run: %transplant_42862_i64(13, 13) == 169 +; run: %transplant_42862_i64(42, -1) == -42 +; run: %transplant_42862_i64(42, 42) == 1764 +; run: %transplant_42862_i64(63, 2) == 126 +; run: %transplant_42862_i64(63, 63) == 3969 +; run: %transplant_42862_i64(64, 13) == 832 +; run: %transplant_42862_i64(64, 64) == 4096 +; run: %transplant_42862_i64(65, 42) == 2730 +; run: %transplant_42862_i64(65, 65) == 4225 +; run: %transplant_42862_i64(6148914691236517205, 64) == 6148914691236517184 +; run: %transplant_42862_i64(6148914691236517205, 6148914691236517205) == -8198552921648689607 +; run: %transplant_42862_i64(9223372036854775807, 0) == 0 +; run: %transplant_42862_i64(9223372036854775807, 63) == 9223372036854775745 +; run: %transplant_42862_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_42996_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = imul v0, v1 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42996_i8(-128, -128) == 0 +; run: %transplant_42996_i8(-128, -86) == 0 +; run: %transplant_42996_i8(-128, 0) == 0 +; run: %transplant_42996_i8(-86, -86) == -28 +; run: %transplant_42996_i8(-86, 9) == -6 +; run: %transplant_42996_i8(-1, -1) == 1 +; run: %transplant_42996_i8(-1, 0) == 0 +; run: %transplant_42996_i8(-1, 85) == -85 +; run: %transplant_42996_i8(0, -128) == 0 +; run: %transplant_42996_i8(0, -1) == 0 +; run: %transplant_42996_i8(0, 0) == 0 +; run: %transplant_42996_i8(0, 1) == 0 +; run: %transplant_42996_i8(0, 127) == 0 +; run: %transplant_42996_i8(1, 0) == 0 +; run: %transplant_42996_i8(1, 1) == 1 +; run: %transplant_42996_i8(1, 127) == 127 +; run: %transplant_42996_i8(2, 0) == 0 +; run: %transplant_42996_i8(2, 2) == 4 +; run: %transplant_42996_i8(7, 2) == 14 +; run: %transplant_42996_i8(7, 7) == 49 +; run: %transplant_42996_i8(8, 8) == 64 +; run: %transplant_42996_i8(8, 13) == 104 +; run: %transplant_42996_i8(9, 9) == 81 +; run: %transplant_42996_i8(9, 42) == 122 +; run: %transplant_42996_i8(13, 1) == 13 +; run: %transplant_42996_i8(13, 13) == -87 +; run: %transplant_42996_i8(42, -1) == -42 +; run: %transplant_42996_i8(42, 42) == -28 +; run: %transplant_42996_i8(85, 8) == -88 +; run: %transplant_42996_i8(85, 85) == 57 +; run: %transplant_42996_i8(127, 0) == 0 +; run: %transplant_42996_i8(127, 7) == 121 +; run: %transplant_42996_i8(127, 127) == 1 + +function %transplant_42996_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = imul v0, v1 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42996_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42996_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_42996_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42996_i64(-6148914691236517206, -6148914691236517206) == 4099276460824344804 +; run: %transplant_42996_i64(-6148914691236517206, 65) == 6148914691236517162 +; run: %transplant_42996_i64(-1, -1) == 1 +; run: %transplant_42996_i64(-1, 0) == 0 +; run: %transplant_42996_i64(-1, 6148914691236517205) == -6148914691236517205 +; run: %transplant_42996_i64(0, -9223372036854775808) == 0 +; run: %transplant_42996_i64(0, -1) == 0 +; run: %transplant_42996_i64(0, 0) == 0 +; run: %transplant_42996_i64(0, 1) == 0 +; run: %transplant_42996_i64(0, 9223372036854775807) == 0 +; run: %transplant_42996_i64(1, 0) == 0 +; run: %transplant_42996_i64(1, 1) == 1 +; run: %transplant_42996_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_42996_i64(2, 0) == 0 +; run: %transplant_42996_i64(2, 2) == 4 +; run: %transplant_42996_i64(13, 1) == 13 +; run: %transplant_42996_i64(13, 13) == 169 +; run: %transplant_42996_i64(42, -1) == -42 +; run: %transplant_42996_i64(42, 42) == 1764 +; run: %transplant_42996_i64(63, 2) == 126 +; run: %transplant_42996_i64(63, 63) == 3969 +; run: %transplant_42996_i64(64, 13) == 832 +; run: %transplant_42996_i64(64, 64) == 4096 +; run: %transplant_42996_i64(65, 42) == 2730 +; run: %transplant_42996_i64(65, 65) == 4225 +; run: %transplant_42996_i64(6148914691236517205, 64) == 6148914691236517184 +; run: %transplant_42996_i64(6148914691236517205, 6148914691236517205) == -8198552921648689607 +; run: %transplant_42996_i64(9223372036854775807, 0) == 0 +; run: %transplant_42996_i64(9223372036854775807, 63) == 9223372036854775745 +; run: %transplant_42996_i64(9223372036854775807, 9223372036854775807) == 1 + +function %transplant_42997_i8(i8, i8) -> i8 { +block0(v0: i8, v1: i8): + v2 = iconst.i8 0 + v3 = icmp ne v0, v2 + v4 = imul v1, v0 + v5 = iconst.i8 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42997_i8(-128, -128) == 0 +; run: %transplant_42997_i8(-128, -86) == 0 +; run: %transplant_42997_i8(-128, 0) == 0 +; run: %transplant_42997_i8(-86, -86) == -28 +; run: %transplant_42997_i8(-86, 9) == -6 +; run: %transplant_42997_i8(-1, -1) == 1 +; run: %transplant_42997_i8(-1, 0) == 0 +; run: %transplant_42997_i8(-1, 85) == -85 +; run: %transplant_42997_i8(0, -128) == 0 +; run: %transplant_42997_i8(0, -1) == 0 +; run: %transplant_42997_i8(0, 0) == 0 +; run: %transplant_42997_i8(0, 1) == 0 +; run: %transplant_42997_i8(0, 127) == 0 +; run: %transplant_42997_i8(1, 0) == 0 +; run: %transplant_42997_i8(1, 1) == 1 +; run: %transplant_42997_i8(1, 127) == 127 +; run: %transplant_42997_i8(2, 0) == 0 +; run: %transplant_42997_i8(2, 2) == 4 +; run: %transplant_42997_i8(7, 2) == 14 +; run: %transplant_42997_i8(7, 7) == 49 +; run: %transplant_42997_i8(8, 8) == 64 +; run: %transplant_42997_i8(8, 13) == 104 +; run: %transplant_42997_i8(9, 9) == 81 +; run: %transplant_42997_i8(9, 42) == 122 +; run: %transplant_42997_i8(13, 1) == 13 +; run: %transplant_42997_i8(13, 13) == -87 +; run: %transplant_42997_i8(42, -1) == -42 +; run: %transplant_42997_i8(42, 42) == -28 +; run: %transplant_42997_i8(85, 8) == -88 +; run: %transplant_42997_i8(85, 85) == 57 +; run: %transplant_42997_i8(127, 0) == 0 +; run: %transplant_42997_i8(127, 7) == 121 +; run: %transplant_42997_i8(127, 127) == 1 + +function %transplant_42997_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = iconst.i64 0 + v3 = icmp ne v0, v2 + v4 = imul v1, v0 + v5 = iconst.i64 0 + v6 = select v3, v4, v5 + return v6 +} +; run: %transplant_42997_i64(-9223372036854775808, -9223372036854775808) == 0 +; run: %transplant_42997_i64(-9223372036854775808, -6148914691236517206) == 0 +; run: %transplant_42997_i64(-9223372036854775808, 0) == 0 +; run: %transplant_42997_i64(-6148914691236517206, -6148914691236517206) == 4099276460824344804 +; run: %transplant_42997_i64(-6148914691236517206, 65) == 6148914691236517162 +; run: %transplant_42997_i64(-1, -1) == 1 +; run: %transplant_42997_i64(-1, 0) == 0 +; run: %transplant_42997_i64(-1, 6148914691236517205) == -6148914691236517205 +; run: %transplant_42997_i64(0, -9223372036854775808) == 0 +; run: %transplant_42997_i64(0, -1) == 0 +; run: %transplant_42997_i64(0, 0) == 0 +; run: %transplant_42997_i64(0, 1) == 0 +; run: %transplant_42997_i64(0, 9223372036854775807) == 0 +; run: %transplant_42997_i64(1, 0) == 0 +; run: %transplant_42997_i64(1, 1) == 1 +; run: %transplant_42997_i64(1, 9223372036854775807) == 9223372036854775807 +; run: %transplant_42997_i64(2, 0) == 0 +; run: %transplant_42997_i64(2, 2) == 4 +; run: %transplant_42997_i64(13, 1) == 13 +; run: %transplant_42997_i64(13, 13) == 169 +; run: %transplant_42997_i64(42, -1) == -42 +; run: %transplant_42997_i64(42, 42) == 1764 +; run: %transplant_42997_i64(63, 2) == 126 +; run: %transplant_42997_i64(63, 63) == 3969 +; run: %transplant_42997_i64(64, 13) == 832 +; run: %transplant_42997_i64(64, 64) == 4096 +; run: %transplant_42997_i64(65, 42) == 2730 +; run: %transplant_42997_i64(65, 65) == 4225 +; run: %transplant_42997_i64(6148914691236517205, 64) == 6148914691236517184 +; run: %transplant_42997_i64(6148914691236517205, 6148914691236517205) == -8198552921648689607 +; run: %transplant_42997_i64(9223372036854775807, 0) == 0 +; run: %transplant_42997_i64(9223372036854775807, 63) == 9223372036854775745 +; run: %transplant_42997_i64(9223372036854775807, 9223372036854775807) == 1 diff --git a/cranelift/filetests/filetests/runtests/shifts.clif b/cranelift/filetests/filetests/runtests/shifts.clif index 167486337290..b540d2283aa8 100644 --- a/cranelift/filetests/filetests/runtests/shifts.clif +++ b/cranelift/filetests/filetests/runtests/shifts.clif @@ -1464,3 +1464,167 @@ block0(v0: i32, v1: i8): ; run: %masked_ishl_noncontiguous_mask_i32(-1, 32) == 5 ; run: %masked_ishl_noncontiguous_mask_i32(-1, 33) == 0 ; run: %masked_ishl_noncontiguous_mask_i32(-1, -1) == 0 + +function %transplant_39204_i32(i32, i32) -> i32 { +block0(v0: i32, v1: i32): + v2 = bnot v0 + v3 = rotl v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39204_i32(-2147483648, -2147483648) == -2147483648 +; run: %transplant_39204_i32(-2147483648, -1431655766) == 512 +; run: %transplant_39204_i32(-2147483648, 0) == -2147483648 +; run: %transplant_39204_i32(-1431655766, -1431655766) == -1431655766 +; run: %transplant_39204_i32(-1431655766, 33) == 1431655765 +; run: %transplant_39204_i32(-1, -1) == -1 +; run: %transplant_39204_i32(-1, 0) == -1 +; run: %transplant_39204_i32(-1, 1431655765) == -1 +; run: %transplant_39204_i32(0, -2147483648) == 0 +; run: %transplant_39204_i32(0, -1) == 0 +; run: %transplant_39204_i32(0, 0) == 0 +; run: %transplant_39204_i32(0, 1) == 0 +; run: %transplant_39204_i32(0, 2147483647) == 0 +; run: %transplant_39204_i32(1, 0) == 1 +; run: %transplant_39204_i32(1, 1) == 2 +; run: %transplant_39204_i32(1, 2147483647) == -2147483648 +; run: %transplant_39204_i32(2, 0) == 2 +; run: %transplant_39204_i32(2, 2) == 8 +; run: %transplant_39204_i32(13, 1) == 26 +; run: %transplant_39204_i32(13, 13) == 106496 +; run: %transplant_39204_i32(31, 2) == 124 +; run: %transplant_39204_i32(31, 31) == -2147483633 +; run: %transplant_39204_i32(32, 13) == 262144 +; run: %transplant_39204_i32(32, 32) == 32 +; run: %transplant_39204_i32(33, 33) == 66 +; run: %transplant_39204_i32(33, 42) == 33792 +; run: %transplant_39204_i32(42, -1) == 21 +; run: %transplant_39204_i32(42, 42) == 43008 +; run: %transplant_39204_i32(1431655765, 32) == 1431655765 +; run: %transplant_39204_i32(1431655765, 1431655765) == -1431655766 +; run: %transplant_39204_i32(2147483647, 0) == 2147483647 +; run: %transplant_39204_i32(2147483647, 31) == -1073741825 +; run: %transplant_39204_i32(2147483647, 2147483647) == -1073741825 + +function %transplant_39204_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = rotl v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39204_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39204_i64(-9223372036854775808, -6148914691236517206) == 2199023255552 +; run: %transplant_39204_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_39204_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39204_i64(-6148914691236517206, 65) == 6148914691236517205 +; run: %transplant_39204_i64(-1, -1) == -1 +; run: %transplant_39204_i64(-1, 0) == -1 +; run: %transplant_39204_i64(-1, 6148914691236517205) == -1 +; run: %transplant_39204_i64(0, -9223372036854775808) == 0 +; run: %transplant_39204_i64(0, -1) == 0 +; run: %transplant_39204_i64(0, 0) == 0 +; run: %transplant_39204_i64(0, 1) == 0 +; run: %transplant_39204_i64(0, 9223372036854775807) == 0 +; run: %transplant_39204_i64(1, 0) == 1 +; run: %transplant_39204_i64(1, 1) == 2 +; run: %transplant_39204_i64(1, 9223372036854775807) == -9223372036854775808 +; run: %transplant_39204_i64(2, 0) == 2 +; run: %transplant_39204_i64(2, 2) == 8 +; run: %transplant_39204_i64(13, 1) == 26 +; run: %transplant_39204_i64(13, 13) == 106496 +; run: %transplant_39204_i64(42, -1) == 21 +; run: %transplant_39204_i64(42, 42) == 184717953466368 +; run: %transplant_39204_i64(63, 2) == 252 +; run: %transplant_39204_i64(63, 63) == -9223372036854775777 +; run: %transplant_39204_i64(64, 13) == 524288 +; run: %transplant_39204_i64(64, 64) == 64 +; run: %transplant_39204_i64(65, 42) == 285873023221760 +; run: %transplant_39204_i64(65, 65) == 130 +; run: %transplant_39204_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_39204_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39204_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_39204_i64(9223372036854775807, 63) == -4611686018427387905 +; run: %transplant_39204_i64(9223372036854775807, 9223372036854775807) == -4611686018427387905 + +function %transplant_39205_i32(i32, i32) -> i32 { +block0(v0: i32, v1: i32): + v2 = bnot v0 + v3 = rotr v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39205_i32(-2147483648, -2147483648) == -2147483648 +; run: %transplant_39205_i32(-2147483648, -1431655766) == 2097152 +; run: %transplant_39205_i32(-2147483648, 0) == -2147483648 +; run: %transplant_39205_i32(-1431655766, -1431655766) == -1431655766 +; run: %transplant_39205_i32(-1431655766, 33) == 1431655765 +; run: %transplant_39205_i32(-1, -1) == -1 +; run: %transplant_39205_i32(-1, 0) == -1 +; run: %transplant_39205_i32(-1, 1431655765) == -1 +; run: %transplant_39205_i32(0, -2147483648) == 0 +; run: %transplant_39205_i32(0, -1) == 0 +; run: %transplant_39205_i32(0, 0) == 0 +; run: %transplant_39205_i32(0, 1) == 0 +; run: %transplant_39205_i32(0, 2147483647) == 0 +; run: %transplant_39205_i32(1, 0) == 1 +; run: %transplant_39205_i32(1, 1) == -2147483648 +; run: %transplant_39205_i32(1, 2147483647) == 2 +; run: %transplant_39205_i32(2, 0) == 2 +; run: %transplant_39205_i32(2, 2) == -2147483648 +; run: %transplant_39205_i32(13, 1) == -2147483642 +; run: %transplant_39205_i32(13, 13) == 6815744 +; run: %transplant_39205_i32(31, 2) == -1073741817 +; run: %transplant_39205_i32(31, 31) == 62 +; run: %transplant_39205_i32(32, 13) == 16777216 +; run: %transplant_39205_i32(32, 32) == 32 +; run: %transplant_39205_i32(33, 33) == -2147483632 +; run: %transplant_39205_i32(33, 42) == 138412032 +; run: %transplant_39205_i32(42, -1) == 84 +; run: %transplant_39205_i32(42, 42) == 176160768 +; run: %transplant_39205_i32(1431655765, 32) == 1431655765 +; run: %transplant_39205_i32(1431655765, 1431655765) == -1431655766 +; run: %transplant_39205_i32(2147483647, 0) == 2147483647 +; run: %transplant_39205_i32(2147483647, 31) == -2 +; run: %transplant_39205_i32(2147483647, 2147483647) == -2 + +function %transplant_39205_i64(i64, i64) -> i64 { +block0(v0: i64, v1: i64): + v2 = bnot v0 + v3 = rotr v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39205_i64(-9223372036854775808, -9223372036854775808) == -9223372036854775808 +; run: %transplant_39205_i64(-9223372036854775808, -6148914691236517206) == 2097152 +; run: %transplant_39205_i64(-9223372036854775808, 0) == -9223372036854775808 +; run: %transplant_39205_i64(-6148914691236517206, -6148914691236517206) == -6148914691236517206 +; run: %transplant_39205_i64(-6148914691236517206, 65) == 6148914691236517205 +; run: %transplant_39205_i64(-1, -1) == -1 +; run: %transplant_39205_i64(-1, 0) == -1 +; run: %transplant_39205_i64(-1, 6148914691236517205) == -1 +; run: %transplant_39205_i64(0, -9223372036854775808) == 0 +; run: %transplant_39205_i64(0, -1) == 0 +; run: %transplant_39205_i64(0, 0) == 0 +; run: %transplant_39205_i64(0, 1) == 0 +; run: %transplant_39205_i64(0, 9223372036854775807) == 0 +; run: %transplant_39205_i64(1, 0) == 1 +; run: %transplant_39205_i64(1, 1) == -9223372036854775808 +; run: %transplant_39205_i64(1, 9223372036854775807) == 2 +; run: %transplant_39205_i64(2, 0) == 2 +; run: %transplant_39205_i64(2, 2) == -9223372036854775808 +; run: %transplant_39205_i64(13, 1) == -9223372036854775802 +; run: %transplant_39205_i64(13, 13) == 29273397577908224 +; run: %transplant_39205_i64(42, -1) == 84 +; run: %transplant_39205_i64(42, 42) == 176160768 +; run: %transplant_39205_i64(63, 2) == -4611686018427387889 +; run: %transplant_39205_i64(63, 63) == 126 +; run: %transplant_39205_i64(64, 13) == 144115188075855872 +; run: %transplant_39205_i64(64, 64) == 64 +; run: %transplant_39205_i64(65, 42) == 272629760 +; run: %transplant_39205_i64(65, 65) == -9223372036854775776 +; run: %transplant_39205_i64(6148914691236517205, 64) == 6148914691236517205 +; run: %transplant_39205_i64(6148914691236517205, 6148914691236517205) == -6148914691236517206 +; run: %transplant_39205_i64(9223372036854775807, 0) == 9223372036854775807 +; run: %transplant_39205_i64(9223372036854775807, 63) == -2 +; run: %transplant_39205_i64(9223372036854775807, 9223372036854775807) == -2 diff --git a/cranelift/filetests/filetests/runtests/simd-band.clif b/cranelift/filetests/filetests/runtests/simd-band.clif index 09777768c394..30d016e589cd 100644 --- a/cranelift/filetests/filetests/runtests/simd-band.clif +++ b/cranelift/filetests/filetests/runtests/simd-band.clif @@ -14,6 +14,10 @@ target pulley64 target pulley64be +set opt_level=speed +set enable_multi_ret_implicit_sret=false +target x86_64 + function %band_i8x16(i8x16, i8x16) -> i8x16 { block0(v0:i8x16, v1:i8x16): v2 = band v0, v1 @@ -92,3 +96,572 @@ block0(v0: i32x4, v1: i32x4): ; run: %bor_bnot_band_absorb_i32x4([0 -1 -2147483648 1431655765], [0 -1 2147483647 0xaaaaaaaa]) == [-1 -1 -1 -1] ; run: %bor_bnot_band_absorb_i32x4([0 1 240 -1], [-1 0 204 0]) == [-1 -1 -1 -1] + +function %transplant_41834_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = band v0, v1 + v3 = ineg v2 + v4 = iadd v3, v0 + return v4 +} +; run: %transplant_41834_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_41834_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 0 -1 -2147483648] +; run: %transplant_41834_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41834_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [715827882 1 0 0] +; run: %transplant_41834_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41834_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_41834_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41834_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41834_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41834_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_41772_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = iadd v3, v5 + return v6 +} +; run: %transplant_41772_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_41772_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 0 -1 -1] +; run: %transplant_41772_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41772_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [715827882 -1431655765 -2147483648 0] +; run: %transplant_41772_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41772_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_41772_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41772_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41772_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41772_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_44291_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = smax v2, v3 + return v4 +} +; run: %transplant_44291_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] +; run: %transplant_44291_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 -2 0 2147483647] +; run: %transplant_44291_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_44291_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_44291_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_44291_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 1431655765 2147483647 -1] +; run: %transplant_44291_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_44291_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_44291_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_44291_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 0 0 2147483647] + +function %transplant_45214_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = umax v2, v3 + return v4 +} +; run: %transplant_45214_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] +; run: %transplant_45214_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 -2 -1 -2147483648] +; run: %transplant_45214_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_45214_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 -2 -1 -2147483648] +; run: %transplant_45214_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_45214_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_45214_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_45214_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_45214_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_45214_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_44346_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = smin v2, v3 + return v4 +} +; run: %transplant_44346_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] +; run: %transplant_44346_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_44346_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_44346_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_44346_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_44346_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1431655766 -1 -1 -2147483648] +; run: %transplant_44346_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_44346_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_44346_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_44346_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 0] + +function %transplant_45269_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v1 + v4 = umin v2, v3 + return v4 +} +; run: %transplant_45269_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] +; run: %transplant_45269_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-2147483648 -2 0 2147483647] +; run: %transplant_45269_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_45269_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-2147483648 1431655765 2147483647 -2147483648] +; run: %transplant_45269_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_45269_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_45269_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_45269_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_45269_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_45269_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 0 0 0] + +function %transplant_42334_i32x4(i32x4) -> i32x4 { +block0(v0: i32x4): + v1 = ineg v0 + v2 = bnot v0 + v3 = isub v1, v2 + return v3 +} +; run: %transplant_42334_i32x4([0 1 -1 -2147483648]) == [1 1 1 1] +; run: %transplant_42334_i32x4([0 1 -1 -2147483648]) == [1 1 1 1] +; run: %transplant_42334_i32x4([2147483647 1 0 2147483647]) == [1 1 1 1] +; run: %transplant_42334_i32x4([2147483647 1 0 2147483647]) == [1 1 1 1] +; run: %transplant_42334_i32x4([1431655765 -1431655766 -2147483648 2147483647]) == [1 1 1 1] +; run: %transplant_42334_i32x4([1431655765 -1431655766 -2147483648 2147483647]) == [1 1 1 1] +; run: %transplant_42334_i32x4([0 0 0 0]) == [1 1 1 1] +; run: %transplant_42334_i32x4([0 0 0 0]) == [1 1 1 1] +; run: %transplant_42334_i32x4([-1 -1 -1 -1]) == [1 1 1 1] +; run: %transplant_42334_i32x4([-1 -1 -1 -1]) == [1 1 1 1] + +function %transplant_41059_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bxor v3, v0 + return v4 +} +; run: %transplant_41059_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] +; run: %transplant_41059_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 -2 -1 -1] +; run: %transplant_41059_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_41059_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 -1 -1 -2147483648] +; run: %transplant_41059_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_41059_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41059_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41059_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41059_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41059_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_38578_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38578_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] +; run: %transplant_38578_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 1 0 0] +; run: %transplant_38578_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_38578_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 0 0 2147483647] +; run: %transplant_38578_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_38578_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_38578_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_38578_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_38578_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_38578_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] + +function %transplant_39078_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = band v2, v3 + return v4 +} +; run: %transplant_39078_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] +; run: %transplant_39078_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 1 0 0] +; run: %transplant_39078_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_39078_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 0 0 2147483647] +; run: %transplant_39078_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_39078_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_39078_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_39078_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39078_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_39078_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] + +function %transplant_40372_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40372_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] +; run: %transplant_40372_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 1 -1 -1] +; run: %transplant_40372_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_40372_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [2147483647 -1431655765 -2147483648 2147483647] +; run: %transplant_40372_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_40372_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_40372_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_40372_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_40372_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_40372_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] + +function %transplant_40790_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bor v2, v3 + return v4 +} +; run: %transplant_40790_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] +; run: %transplant_40790_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 1 -1 -1] +; run: %transplant_40790_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_40790_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [2147483647 -1431655765 -2147483648 2147483647] +; run: %transplant_40790_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_40790_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_40790_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_40790_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_40790_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_40790_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] + +function %transplant_41171_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = smax v0, v1 + v3 = smin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41171_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_41171_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 0 -1 -1] +; run: %transplant_41171_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41171_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [715827882 -1431655765 -2147483648 0] +; run: %transplant_41171_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41171_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_41171_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41171_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41171_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41171_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_41251_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = bxor v2, v3 + return v4 +} +; run: %transplant_41251_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_41251_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 0 -1 -1] +; run: %transplant_41251_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41251_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [715827882 -1431655765 -2147483648 0] +; run: %transplant_41251_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41251_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_41251_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41251_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41251_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41251_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_41053_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41053_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_41053_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 0 -1 -1] +; run: %transplant_41053_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41053_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [715827882 -1431655765 -2147483648 0] +; run: %transplant_41053_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41053_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_41053_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41053_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41053_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41053_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_41026_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = band v2, v1 + v4 = bnot v1 + v5 = band v4, v0 + v6 = bxor v3, v5 + return v6 +} +; run: %transplant_41026_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_41026_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [2147483647 0 -1 -1] +; run: %transplant_41026_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41026_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [715827882 -1431655765 -2147483648 0] +; run: %transplant_41026_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41026_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_41026_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41026_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41026_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41026_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_37458_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bor v2, v1 + v4 = bnot v1 + v5 = bor v4, v0 + v6 = band v3, v5 + return v6 +} +; run: %transplant_37458_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] +; run: %transplant_37458_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-2147483648 -1 0 0] +; run: %transplant_37458_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_37458_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-715827883 1431655764 2147483647 -1] +; run: %transplant_37458_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_37458_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_37458_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_37458_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_37458_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_37458_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 1 -1 -2147483648] + +function %transplant_39206_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = smax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39206_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 -1 -2147483648] +; run: %transplant_39206_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_39206_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_39206_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1 0 -2147483648] +; run: %transplant_39206_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 -1431655766 -2147483648 -2147483648] +; run: %transplant_39206_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1431655766 -2147483648 -1] +; run: %transplant_39206_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_39206_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39206_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_39206_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 -1 -1] + +function %transplant_39214_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = umax v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39214_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 1 0 2147483647] +; run: %transplant_39214_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 1 -1 -2147483648] +; run: %transplant_39214_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_39214_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_39214_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 1431655765 2147483647 2147483647] +; run: %transplant_39214_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1431655766 -2147483648 2147483647] +; run: %transplant_39214_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_39214_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39214_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39214_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -2 0 2147483647] + +function %transplant_39208_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = smin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39208_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 1 0 2147483647] +; run: %transplant_39208_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 1 -1 -2147483648] +; run: %transplant_39208_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [2147483647 1 0 2147483647] +; run: %transplant_39208_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [2147483647 1431655765 2147483647 2147483647] +; run: %transplant_39208_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [1431655765 1431655765 2147483647 2147483647] +; run: %transplant_39208_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [1431655765 -1 -1 2147483647] +; run: %transplant_39208_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_39208_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39208_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39208_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -1 0 2147483647] + +function %transplant_39216_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = umin v2, v1 + v4 = bnot v3 + return v4 +} +; run: %transplant_39216_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -2 -1 -2147483648] +; run: %transplant_39216_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_39216_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-2147483648 -2 -1 -2147483648] +; run: %transplant_39216_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 1431655765 2147483647 -2147483648] +; run: %transplant_39216_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1431655766 -1431655766 -2147483648 -2147483648] +; run: %transplant_39216_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_39216_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_39216_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_39216_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_39216_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] + +function %transplant_41371_i32x4(i32x4) -> i32x4 { +block0(v0: i32x4): + v1 = iconst.i32 1 + v2 = ishl v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41371_i32x4([0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41371_i32x4([0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41371_i32x4([2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41371_i32x4([2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41371_i32x4([1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41371_i32x4([1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41371_i32x4([0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41371_i32x4([0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41371_i32x4([-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41371_i32x4([-1 -1 -1 -1]) == [0 0 0 0] + +function %transplant_41468_i32x4(i32x4) -> i32x4 { +block0(v0: i32x4): + v1 = iconst.i32 1 + v2 = ushr v0, v1 + v3 = icmp eq v2, v0 + return v3 +} +; run: %transplant_41468_i32x4([0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41468_i32x4([0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41468_i32x4([2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41468_i32x4([2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41468_i32x4([1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41468_i32x4([1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41468_i32x4([0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41468_i32x4([0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41468_i32x4([-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41468_i32x4([-1 -1 -1 -1]) == [0 0 0 0] + +function %transplant_41309_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = band v2, v1 + v4 = icmp eq v3, v1 + return v4 +} +; run: %transplant_41309_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41309_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 0 -1 -1] +; run: %transplant_41309_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41309_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 -1 -1 0] +; run: %transplant_41309_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41309_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41309_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41309_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41309_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41309_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 0 0 0] + +function %transplant_41459_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v993 = iconst.i32 0 + v3 = splat.i32x4 v993 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41459_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41459_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_41459_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41459_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41459_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41459_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41459_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41459_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41459_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41459_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 0 0 0] + +function %transplant_42478_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v993 = iconst.i32 0 + v3 = splat.i32x4 v993 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42478_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 -1 -1 -1] +; run: %transplant_42478_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_42478_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-1 -1 0 -1] +; run: %transplant_42478_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_42478_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_42478_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_42478_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_42478_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_42478_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_42478_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] + +function %transplant_41460_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp eq v2, v3 + return v4 +} +; run: %transplant_41460_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] +; run: %transplant_41460_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 -1 0 0] +; run: %transplant_41460_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_41460_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 -1] +; run: %transplant_41460_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_41460_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_41460_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41460_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41460_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41460_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 0 -1 0] + +function %transplant_42479_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = umax v0, v1 + v3 = umin v0, v1 + v4 = icmp ne v2, v3 + return v4 +} +; run: %transplant_42479_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [0 0 0 0] +; run: %transplant_42479_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 0 -1 -1] +; run: %transplant_42479_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 0 0] +; run: %transplant_42479_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 0] +; run: %transplant_42479_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_42479_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_42479_i32x4([0 0 0 0], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_42479_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_42479_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_42479_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 -1 0 -1] + +function %transplant_41327_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = bnot v0 + v3 = bnot v0 + v4 = bor v3, v1 + v5 = icmp eq v2, v4 + return v5 +} +; run: %transplant_41327_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 0 0 0] +; run: %transplant_41327_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [-1 0 -1 -1] +; run: %transplant_41327_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [0 0 -1 0] +; run: %transplant_41327_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 -1 -1 0] +; run: %transplant_41327_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 0] +; run: %transplant_41327_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41327_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_41327_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_41327_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_41327_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [-1 0 0 0] + +function %transplant_38178_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = icmp sge v0, v1 + v3 = icmp sge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38178_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] +; run: %transplant_38178_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 -1 0 0] +; run: %transplant_38178_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_38178_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 -1] +; run: %transplant_38178_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_38178_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_38178_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_38178_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_38178_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_38178_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 0 -1 0] + +function %transplant_38685_i32x4(i32x4, i32x4) -> i32x4 { +block0(v0: i32x4, v1: i32x4): + v2 = icmp uge v0, v1 + v3 = icmp uge v1, v0 + v4 = band v2, v3 + return v4 +} +; run: %transplant_38685_i32x4([0 1 -1 -2147483648], [0 1 -1 -2147483648]) == [-1 -1 -1 -1] +; run: %transplant_38685_i32x4([0 1 -1 -2147483648], [2147483647 1 0 2147483647]) == [0 -1 0 0] +; run: %transplant_38685_i32x4([2147483647 1 0 2147483647], [2147483647 1 0 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_38685_i32x4([2147483647 1 0 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [0 0 0 -1] +; run: %transplant_38685_i32x4([1431655765 -1431655766 -2147483648 2147483647], [1431655765 -1431655766 -2147483648 2147483647]) == [-1 -1 -1 -1] +; run: %transplant_38685_i32x4([1431655765 -1431655766 -2147483648 2147483647], [0 0 0 0]) == [0 0 0 0] +; run: %transplant_38685_i32x4([0 0 0 0], [0 0 0 0]) == [-1 -1 -1 -1] +; run: %transplant_38685_i32x4([0 0 0 0], [-1 -1 -1 -1]) == [0 0 0 0] +; run: %transplant_38685_i32x4([-1 -1 -1 -1], [-1 -1 -1 -1]) == [-1 -1 -1 -1] +; run: %transplant_38685_i32x4([-1 -1 -1 -1], [0 1 -1 -2147483648]) == [0 0 -1 0]