public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Martin Liska <marxin@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc r12-7514] translation: reuse string and use switch for codes
Date: Mon,  7 Mar 2022 10:38:09 +0000 (GMT)	[thread overview]
Message-ID: <20220307103809.ACC373858410@sourceware.org> (raw)

https://gcc.gnu.org/g:cfb46c944e8a05653c7eedd79116dae9ce7ad91c

commit r12-7514-gcfb46c944e8a05653c7eedd79116dae9ce7ad91c
Author: Martin Liska <mliska@suse.cz>
Date:   Mon Mar 7 10:56:43 2022 +0100

    translation: reuse string and use switch for codes
    
            PR target/104794
    
    gcc/ChangeLog:
    
            * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
            message.  Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
            have only range [0,32].

Diff:
---
 gcc/config/arm/arm-builtins.cc | 127 +++++++++++++++++++++++++----------------
 1 file changed, 77 insertions(+), 50 deletions(-)

diff --git a/gcc/config/arm/arm-builtins.cc b/gcc/config/arm/arm-builtins.cc
index a7acc1d71e7..6c0b1bda66a 100644
--- a/gcc/config/arm/arm-builtins.cc
+++ b/gcc/config/arm/arm-builtins.cc
@@ -3922,65 +3922,92 @@ arm_expand_builtin (tree exp,
       if (GET_MODE (op1) == VOIDmode)
 	{
 	  imm = INTVAL (op1);
-	  if ((fcode == ARM_BUILTIN_WRORHI || fcode == ARM_BUILTIN_WRORWI
-	       || fcode == ARM_BUILTIN_WRORH || fcode == ARM_BUILTIN_WRORW)
+	  if ((fcode == ARM_BUILTIN_WRORWI || fcode == ARM_BUILTIN_WRORW)
 	      && (imm < 0 || imm > 32))
 	    {
-	      if (fcode == ARM_BUILTIN_WRORHI)
-		error ("the range of count should be in 0 to 32; please check the intrinsic %<_mm_rori_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WRORWI)
-		error ("the range of count should be in 0 to 32; please check the intrinsic %<_mm_rori_pi32%> in code");
-	      else if (fcode == ARM_BUILTIN_WRORH)
-		error ("the range of count should be in 0 to 32; please check the intrinsic %<_mm_ror_pi16%> in code");
-	      else
-		error ("the range of count should be in 0 to 32; please check the intrinsic %<_mm_ror_pi32%> in code");
+	      const char *builtin = (fcode == ARM_BUILTIN_WRORWI
+				     ? "_mm_rori_pi32" : "_mm_ror_pi32");
+	      error ("the range of count should be in 0 to 32; "
+		     "please check the intrinsic %qs in code", builtin);
+	    }
+	  else if ((fcode == ARM_BUILTIN_WRORHI || fcode == ARM_BUILTIN_WRORH)
+		   && (imm < 0 || imm > 16))
+	    {
+	      const char *builtin = (fcode == ARM_BUILTIN_WRORHI
+				     ? "_mm_rori_pi16" : "_mm_ror_pi16");
+	      error ("the range of count should be in 0 to 16; "
+		     "please check the intrinsic %qs in code", builtin);
 	    }
 	  else if ((fcode == ARM_BUILTIN_WRORDI || fcode == ARM_BUILTIN_WRORD)
 		   && (imm < 0 || imm > 64))
 	    {
-	      if (fcode == ARM_BUILTIN_WRORDI)
-		error ("the range of count should be in 0 to 64; please check the intrinsic %<_mm_rori_si64%> in code");
-	      else
-		error ("the range of count should be in 0 to 64; please check the intrinsic %<_mm_ror_si64%> in code");
+	      const char *builtin = (fcode == ARM_BUILTIN_WRORDI
+				     ? "_mm_rori_si64" : "_mm_ror_si64");
+	      error ("the range of count should be in 0 to 64; "
+		     "please check the intrinsic %qs in code", builtin);
 	    }
 	  else if (imm < 0)
 	    {
-	      if (fcode == ARM_BUILTIN_WSRLHI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srli_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRLWI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srli_pi32%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRLDI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srli_si64%> in code");
-	      else if (fcode == ARM_BUILTIN_WSLLHI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_slli_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WSLLWI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_slli_pi32%> in code");
-	      else if (fcode == ARM_BUILTIN_WSLLDI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_slli_si64%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRAHI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srai_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRAWI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srai_pi32%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRADI)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srai_si64%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRLH)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srl_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRLW)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srl_pi32%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRLD)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_srl_si64%> in code");
-	      else if (fcode == ARM_BUILTIN_WSLLH)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_sll_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WSLLW)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_sll_pi32%> in code");
-	      else if (fcode == ARM_BUILTIN_WSLLD)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_sll_si64%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRAH)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_sra_pi16%> in code");
-	      else if (fcode == ARM_BUILTIN_WSRAW)
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_sra_pi32%> in code");
-	      else
-		error ("the count should be no less than 0; please check the intrinsic %<_mm_sra_si64%> in code");
+	      const char *builtin;
+	      switch (fcode)
+		{
+		  case ARM_BUILTIN_WSRLHI:
+		    builtin = "_mm_srli_pi16";
+		    break;
+		  case ARM_BUILTIN_WSRLWI:
+		    builtin = "_mm_srli_pi32";
+		    break;
+		  case ARM_BUILTIN_WSRLDI:
+		    builtin = "_mm_srli_si64";
+		    break;
+		  case ARM_BUILTIN_WSLLHI:
+		    builtin = "_mm_slli_pi16";
+		    break;
+		  case ARM_BUILTIN_WSLLWI:
+		    builtin = "_mm_slli_pi32";
+		    break;
+		  case ARM_BUILTIN_WSLLDI:
+		    builtin = "_mm_slli_si64";
+		    break;
+		  case ARM_BUILTIN_WSRAHI:
+		    builtin = "_mm_srai_pi16";
+		    break;
+		  case ARM_BUILTIN_WSRAWI:
+		    builtin = "_mm_srai_pi32";
+		    break;
+		  case ARM_BUILTIN_WSRADI:
+		    builtin = "_mm_srai_si64";
+		    break;
+		  case ARM_BUILTIN_WSRLH:
+		    builtin = "_mm_srl_pi16";
+		    break;
+		  case ARM_BUILTIN_WSRLW:
+		    builtin = "_mm_srl_pi32";
+		    break;
+		  case ARM_BUILTIN_WSRLD:
+		    builtin = "_mm_srl_si64";
+		    break;
+		  case ARM_BUILTIN_WSLLH:
+		    builtin = "_mm_sll_pi16";
+		    break;
+		  case ARM_BUILTIN_WSLLW:
+		    builtin = "_mm_sll_pi32";
+		    break;
+		  case ARM_BUILTIN_WSLLD:
+		    builtin = "_mm_sll_si64";
+		    break;
+		  case ARM_BUILTIN_WSRAH:
+		    builtin = "_mm_sra_pi16";
+		    break;
+		  case ARM_BUILTIN_WSRAW:
+		    builtin = "_mm_sra_si64";
+		    break;
+		  default:
+		    builtin = "_mm_sra_si64";
+		    break;
+		}
+	      error ("the count should be no less than 0; "
+		     "please check the intrinsic %qs in code", builtin);
 	    }
 	}
       return arm_expand_binop_builtin (icode, exp, target);


                 reply	other threads:[~2022-03-07 10:38 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220307103809.ACC373858410@sourceware.org \
    --to=marxin@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).