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: linkBe 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).