From 16ee5c64e60b388df40a2b91d4a145159629cbcd Mon Sep 17 00:00:00 2001 From: Alfie Richards Date: Wed, 11 Sep 2024 14:56:28 +0200 Subject: [PATCH] arm: [MVE intrinsics] Add support for predicated contiguous loads and stores This patch extends function_expander::use_contiguous_load_insn and function_expander::use_contiguous_store_insn functions to support predicated versions. 2024-09-11 Alfie Richards Christophe Lyon gcc/ * config/arm/arm-mve-builtins.cc (function_expander::use_contiguous_load_insn): Add support for PRED_z. (function_expander::use_contiguous_store_insn): Add support for PRED_p. --- gcc/config/arm/arm-mve-builtins.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc index 804eb88b6a5..2bde8221564 100644 --- a/gcc/config/arm/arm-mve-builtins.cc +++ b/gcc/config/arm/arm-mve-builtins.cc @@ -2327,6 +2327,8 @@ function_expander::use_contiguous_load_insn (insn_code icode) add_output_operand (icode); add_mem_operand (mem_mode, get_contiguous_base ()); + if (pred == PRED_z) + add_input_operand (icode, args[1]); return generate_insn (icode); } @@ -2339,6 +2341,8 @@ function_expander::use_contiguous_store_insn (insn_code icode) add_mem_operand (mem_mode, get_contiguous_base ()); add_input_operand (icode, args[1]); + if (pred == PRED_p) + add_input_operand (icode, args[2]); return generate_insn (icode); }