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

commit r15-2661-gd80dcff99f3ca8721eecd82097281095a3122079
Author: Lingling Kong <lingling.k...@intel.com>
Date:   Fri Aug 2 10:31:39 2024 +0800

    i386: Fix memory constraint for APX NF
    
    The je constraint should be used for APX NDD ADD with register source
    operand. The jM is for APX NDD patterns with immediate operand.
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (nf_mem_constraint): Fixed the constraint
            for the define_subst_attr.
            (nf_mem_constraint): Added new define_subst_attr.
            (*add<mode>_1<nf_name>): Fixed the constraint.

Diff:
---
 gcc/config/i386/i386.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index caa3773a5212..db7789c17d2a 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -6500,7 +6500,8 @@
 (define_subst_attr "nf_name" "nf_subst" "_nf" "")
 (define_subst_attr "nf_prefix" "nf_subst" "%{nf%} " "")
 (define_subst_attr "nf_condition" "nf_subst" "TARGET_APX_NF" "true")
-(define_subst_attr "nf_mem_constraint" "nf_subst" "je" "m")
+(define_subst_attr "nf_add_mem_constraint" "nf_subst" "je" "m")
+(define_subst_attr "nf_mem_constraint" "nf_subst" "jM" "m")
 (define_subst_attr "nf_applied" "nf_subst" "true" "false")
 (define_subst_attr "nf_nonf_attr" "nf_subst"  "noapx_nf" "*")
 (define_subst_attr "nf_nonf_x64_attr" "nf_subst" "noapx_nf" "x64")
@@ -6514,7 +6515,7 @@
        (clobber (reg:CC FLAGS_REG))])
 
 (define_insn "*add<mode>_1<nf_name>"
-  [(set (match_operand:SWI48 0 "nonimmediate_operand" 
"=rm,r<nf_mem_constraint>,r,r,r,r,r,r")
+  [(set (match_operand:SWI48 0 "nonimmediate_operand" 
"=r<nf_add_mem_constraint>,r<nf_mem_constraint>,r,r,r,r,r,r")
        (plus:SWI48
          (match_operand:SWI48 1 "nonimmediate_operand" "%0,0,0,r,r,rje,jM,r")
          (match_operand:SWI48 2 "x86_64_general_operand" 
"r,e,BM,0,le,r,e,BM")))]

Reply via email to