]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Committed] PR target/106640: Fix use of XINT in TImode compute_convert_gain.
authorRoger Sayle <roger@nextmovesoftware.com>
Wed, 17 Aug 2022 21:23:33 +0000 (22:23 +0100)
committerRoger Sayle <roger@nextmovesoftware.com>
Wed, 17 Aug 2022 21:23:33 +0000 (22:23 +0100)
Thanks to Zdenek Sojka for reporting PR target/106640 where an RTL checking
build reveals a thinko in my recent patch to support TImode shifts/rotates
in STV.  My "senior moment" was to inappropriately use XINT where I should
be using INTVAL of XEXP.

2022-08-17  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
PR target/106640
* config/i386/i386-features.cc
(timde_scalar_chain::compute_convert_gain): Replace incorrect use
of XINT with INTVAL (XEXP (src, 1)).

gcc/config/i386/i386-features.cc

index 821d8c76839556e73db2a9573be62c2f618631ab..d6bb66cbe018c8aeb13c26350d335131bb5c15eb 100644 (file)
@@ -1248,7 +1248,7 @@ timode_scalar_chain::compute_convert_gain ()
        case ASHIFT:
        case LSHIFTRT:
          /* See ix86_expand_v1ti_shift.  */
-         op1val = XINT (src, 1);
+         op1val = INTVAL (XEXP (src, 1));
          if (optimize_insn_for_size_p ())
            {
              if (op1val == 64 || op1val == 65)
@@ -1282,7 +1282,7 @@ timode_scalar_chain::compute_convert_gain ()
 
        case ASHIFTRT:
          /* See ix86_expand_v1ti_ashiftrt.  */
-         op1val = XINT (src, 1);
+         op1val = INTVAL (XEXP (src, 1));
          if (optimize_insn_for_size_p ())
            {
              if (op1val == 64 || op1val == 127)
@@ -1355,7 +1355,7 @@ timode_scalar_chain::compute_convert_gain ()
        case ROTATE:
        case ROTATERT:
          /* See ix86_expand_v1ti_rotate.  */
-         op1val = XINT (src, 1);
+         op1val = INTVAL (XEXP (src, 1));
          if (optimize_insn_for_size_p ())
            {
              scost = COSTS_N_BYTES (13);