summaryrefslogtreecommitdiff
path: root/gcc/config/riscv/riscv-vector-builtins-bases.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/riscv/riscv-vector-builtins-bases.cc')
-rw-r--r--gcc/config/riscv/riscv-vector-builtins-bases.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.cc b/gcc/config/riscv/riscv-vector-builtins-bases.cc
index ab5b4dc9515..a8113f6602b 100644
--- a/gcc/config/riscv/riscv-vector-builtins-bases.cc
+++ b/gcc/config/riscv/riscv-vector-builtins-bases.cc
@@ -260,6 +260,12 @@ template<rtx_code CODE>
class binop : public function_base
{
public:
+ bool has_rounding_mode_operand_p () const override
+ {
+ return CODE == SS_PLUS || CODE == SS_MINUS || CODE == US_PLUS
+ || CODE == US_MINUS;
+ }
+
rtx expand (function_expander &e) const override
{
switch (e.op_info->op)
@@ -596,6 +602,8 @@ template<int UNSPEC>
class sat_op : public function_base
{
public:
+ bool has_rounding_mode_operand_p () const override { return true; }
+
rtx expand (function_expander &e) const override
{
switch (e.op_info->op)
@@ -616,6 +624,8 @@ template<int UNSPEC>
class vnclip : public function_base
{
public:
+ bool has_rounding_mode_operand_p () const override { return true; }
+
rtx expand (function_expander &e) const override
{
switch (e.op_info->op)