diff --git a/cranelift/codegen/src/isa/aarch64/lower.isle b/cranelift/codegen/src/isa/aarch64/lower.isle index 7e7115e05c..772b3ac482 100644 --- a/cranelift/codegen/src/isa/aarch64/lower.isle +++ b/cranelift/codegen/src/isa/aarch64/lower.isle @@ -81,9 +81,6 @@ (rule (lower (has_type ty @ (multi_lane _ _) (iadd x y))) (add_vec x y (vector_size ty))) -(rule (lower (has_type ty @ (dynamic_lane _ _) (iadd x y))) - (value_reg (vec_rrr (VecALUOp.Add) (put_in_reg x) (put_in_reg y) (vector_size ty)))) - ;; `i128` (rule (lower (has_type $I128 (iadd x y))) (let @@ -199,8 +196,6 @@ ;; vectors (rule (lower (has_type ty @ (multi_lane _ _) (isub x y))) (sub_vec x y (vector_size ty))) -(rule (lower (has_type ty @ (dynamic_lane _ _) (isub x y))) - (value_reg (sub_vec (put_in_reg x) (put_in_reg y) (vector_size ty)))) ;; `i128` (rule (lower (has_type $I128 (isub x y))) @@ -288,10 +283,6 @@ (rule (lower (has_type (ty_vec128 ty @ (not_i64x2)) (imul x y))) (mul x y (vector_size ty))) -;; Case for 'dynamic' i8x16, i16x8, and i32x4. -(rule (lower (has_type ty @ (dynamic_lane _ _) (imul x y))) - (value_reg (vec_rrr (VecALUOp.Mul) (put_in_reg x) (put_in_reg y) (vector_size ty)))) - ;; Special lowering for i64x2. ;; ;; This I64X2 multiplication is performed with several 32-bit diff --git a/cranelift/codegen/src/isa/aarch64/lower_dynamic_neon.isle b/cranelift/codegen/src/isa/aarch64/lower_dynamic_neon.isle index 3b9337094d..c6f6115af9 100644 --- a/cranelift/codegen/src/isa/aarch64/lower_dynamic_neon.isle +++ b/cranelift/codegen/src/isa/aarch64/lower_dynamic_neon.isle @@ -1,17 +1,17 @@ ;;;; Rules for `iadd` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (rule (lower (has_type ty @ (dynamic_lane _ _) (iadd x y))) - (value_reg (vec_rrr (VecALUOp.Add) (put_in_reg x) (put_in_reg y) (vector_size ty)))) + (value_reg (add_vec (put_in_reg x) (put_in_reg y) (vector_size ty)))) ;;;; Rules for `isub` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (rule (lower (has_type ty @ (dynamic_lane _ _) (isub x y))) - (value_reg (vec_rrr (VecALUOp.Sub) (put_in_reg x) (put_in_reg y) (vector_size ty)))) + (value_reg (sub_vec (put_in_reg x) (put_in_reg y) (vector_size ty)))) ;;;; Rules for `imul` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (rule (lower (has_type (lane_fits_in_32 ty @ (dynamic_lane _ _)) (imul x y))) (value_reg (vec_rrr (VecALUOp.Mul) (put_in_reg x) (put_in_reg y) (vector_size ty)))) -;;;; Rules for `fsub` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; Rules for `fadd` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (rule (lower (has_type ty @ (dynamic_lane _ _) (fadd x y))) (value_reg (vec_rrr (VecALUOp.Fadd) (put_in_reg x) (put_in_reg y) (vector_size ty))))