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

commit r16-2786-ga58d770fa1d17ead3c38417b299cce3f19f392db
Author: H.J. Lu <hjl.to...@gmail.com>
Date:   Fri Aug 1 08:34:49 2025 -0700

    x86: Update *one_cmplqi_ext<mode>_1
    
    After
    
    commit 965564eafb721f8000013a3112f1bba8d8fae32b
    Author: Richard Sandiford <richard.sandif...@arm.com>
    Date:   Tue Jul 29 15:58:34 2025 +0100
    
        simplify-rtx: Simplify subregs of logic ops
    
    combine generates
    
    (set (zero_extract:SI (reg/v:SI 101 [ a ])
            (const_int 8 [0x8])
            (const_int 8 [0x8]))
        (not:SI (sign_extract:SI (reg:SI 107 [ b ])
                (const_int 8 [0x8])
                (const_int 8 [0x8]))))
    
    instead of
    
    (set (zero_extract:SI (reg/v:SI 101 [ a ])
            (const_int 8 [0x8])
            (const_int 8 [0x8]))
        (subreg:SI (not:QI (subreg:QI (sign_extract:SI (reg:SI 107 [ b ])
                        (const_int 8 [0x8])
                        (const_int 8 [0x8])) 0)) 0))
    
    Update *one_cmplqi_ext<mode>_1 to support the new pattern.
    
            PR target/121306
            * config/i386/i386.md (*one_cmplqi_ext<mode>_1): Updated to
            support the new pattern.
    
    Signed-off-by: H.J. Lu <hjl.to...@gmail.com>

Diff:
---
 gcc/config/i386/i386.md | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index a50475bdaf4c..a9d1948e4410 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -15351,13 +15351,11 @@
          (match_operand 0 "int248_register_operand" "+Q,&Q")
          (const_int 8)
          (const_int 8))
-       (subreg:SWI248
-         (not:QI
-           (subreg:QI
-             (match_operator:SWI248 2 "extract_operator"
-               [(match_operand 1 "int248_register_operand" "0,!Q")
-                (const_int 8)
-                (const_int 8)]) 0)) 0))]
+       (not:SWI248
+         (match_operator:SWI248 2 "extract_operator"
+           [(match_operand 1 "int248_register_operand" "0,!Q")
+         (const_int 8)
+         (const_int 8)])))]
   ""
   "@
    not{b}\t%h0
@@ -15370,11 +15368,8 @@
          (match_dup 1) (const_int 8) (const_int 8)))
    (set (zero_extract:SWI248
          (match_dup 0) (const_int 8) (const_int 8))
-       (subreg:SWI248
-         (not:QI
-           (subreg:QI
-             (match_op_dup 2
-               [(match_dup 0) (const_int 8) (const_int 8)]) 0)) 0))]
+       (not:SWI248
+         (match_op_dup 2 [(match_dup 0) (const_int 8) (const_int 8)])))]
   ""
   [(set_attr "type" "negnot")
    (set_attr "mode" "QI")])

Reply via email to