diff options
author | Lingling Kong <lingling.kong@intel.com> | 2024-08-02 10:31:39 +0800 |
---|---|---|
committer | Lingling Kong <lingling.kong@intel.com> | 2024-08-02 10:57:00 +0800 |
commit | d80dcff99f3ca8721eecd82097281095a3122079 (patch) | |
tree | b9944b12224096e74b434dc28352026d473f4580 /gcc | |
parent | c48f38288fb17b70784ae5e71cb741e664da023a (diff) | |
download | gcc-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.md | 5 |
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")))] |