summaryrefslogtreecommitdiff
path: root/gcc/config/i386/subst.md
diff options
context:
space:
mode:
authorkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>2013-12-18 08:18:22 +0000
committerkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>2013-12-18 08:18:22 +0000
commit9a5ea1d5984652dda5998268c6bd79600ba708ba (patch)
treea6d58997fc2a55f8b89ab9563904829ed116bf02 /gcc/config/i386/subst.md
parentc3d9b08926175f0b9c9623c3a3f16e80dd4e8b89 (diff)
downloadgcc-9a5ea1d5984652dda5998268c6bd79600ba708ba.tar.gz
* config/i386/sse.md (*fma_fmadd_<mode>): Extend to support masking.
(*fma_fmsub_<mode>): Ditto. (*fma_fnmadd_<mode>): Ditto. (*fma_fnmsub_<mode>): Ditto. (*fma_fmaddsub_<mode>): Ditto. (*fma_fmsubadd_<mode>): Ditto. (avx512f_vternlog<mode>): Ditto. (avx512f_fixupimm<mode>): Ditto. (avx512f_sfixupimm<mode>): Ditto. (avx512f_vpermi2var<mode>3): Ditto. (avx512f_vpermt2var<mode>3): Ditto. (avx512f_fmaddsub_<mode>_maskz): New. (avx512f_vternlog<mode>_maskz): Ditto. (avx512f_fixupimm<mode>_maskz): Ditto. (avx512f_sfixupimm<mode>_maskz): Ditto. (avx512f_vpermi2var<mode>3_maskz): Ditto. (avx512f_vpermt2var<mode>3_maskz): Ditto. (avx512f_expand<mode>_maskz): Ditto. * config/i386/subst.md (sd_maskz_name): Ditto. (sd_mask_op4): Ditto. (sd_mask_op5): Ditto. (sd_mask_codefor): Ditto. (sd_mask_mode512bit_condition): Ditto. (sd): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206081 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/subst.md')
-rw-r--r--gcc/config/i386/subst.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/config/i386/subst.md b/gcc/config/i386/subst.md
index 0fdef6d77cc..594dc438922 100644
--- a/gcc/config/i386/subst.md
+++ b/gcc/config/i386/subst.md
@@ -70,3 +70,20 @@
(and:SUBST_S
(match_dup 1)
(match_operand:SUBST_S 3 "register_operand" "k")))])
+
+(define_subst_attr "sd_maskz_name" "sd" "" "_maskz_1")
+(define_subst_attr "sd_mask_op4" "sd" "" "%{%5%}%N4")
+(define_subst_attr "sd_mask_op5" "sd" "" "%{%6%}%N5")
+(define_subst_attr "sd_mask_codefor" "sd" "*" "")
+(define_subst_attr "sd_mask_mode512bit_condition" "sd" "1" "(GET_MODE_SIZE (GET_MODE (operands[0])) == 64)")
+
+(define_subst "sd"
+ [(set (match_operand:SUBST_V 0)
+ (match_operand:SUBST_V 1))]
+ ""
+ [(set (match_dup 0)
+ (vec_merge:SUBST_V
+ (match_dup 1)
+ (match_operand:SUBST_V 2 "const0_operand" "C")
+ (match_operand:<avx512fmaskmode> 3 "register_operand" "k")))
+])