aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorLingling Kong <lingling.kong@intel.com>2024-08-02 10:31:39 +0800
committerLingling Kong <lingling.kong@intel.com>2024-08-02 10:57:00 +0800
commitd80dcff99f3ca8721eecd82097281095a3122079 (patch)
treeb9944b12224096e74b434dc28352026d473f4580 /gcc
parentc48f38288fb17b70784ae5e71cb741e664da023a (diff)
downloadgcc-d80dcff99f3ca8721eecd82097281095a3122079.zip
gcc-d80dcff99f3ca8721eecd82097281095a3122079.tar.gz
gcc-d80dcff99f3ca8721eecd82097281095a3122079.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index caa3773..db7789c 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")))]