diff options
author | liuhongt <hongtao.liu@intel.com> | 2024-05-28 10:32:12 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2024-05-28 13:45:37 +0800 |
commit | c65002347e595cda8b15e59e734d209283faf2b6 (patch) | |
tree | 9da7018c6a9e4a712bf1482e0393d3836ab46e0a | |
parent | ded91d857772c0183cc342cdc54d9128f6c57fa2 (diff) | |
download | gcc-c65002347e595cda8b15e59e734d209283faf2b6.zip gcc-c65002347e595cda8b15e59e734d209283faf2b6.tar.gz gcc-c65002347e595cda8b15e59e734d209283faf2b6.tar.bz2 |
Fix predicate mismatch between vfcmaddcph's define_insn and define_expand.
When I applied Roger's patch [1], there's ICE due to it.
The patch fix the latent bug.
[1] https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651365.html
gcc/ChangeLog:
* config/i386/sse.md
(<avx512>_<complexopname>_<mode>_mask<round_name>): Align
operands' predicate with corresponding expander.
(<avx512>_<complexopname>_<mode><maskc_name><round_name>):
Ditto.
-rw-r--r-- | gcc/config/i386/sse.md | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index b59c988..0f4fbcb 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -6867,9 +6867,9 @@ [(set (match_operand:VHF_AVX512VL 0 "register_operand" "=&v") (vec_merge:VHF_AVX512VL (unspec:VHF_AVX512VL - [(match_operand:VHF_AVX512VL 1 "nonimmediate_operand" "<int_comm>v") - (match_operand:VHF_AVX512VL 2 "nonimmediate_operand" "<round_constraint>") - (match_operand:VHF_AVX512VL 3 "register_operand" "0")] + [(match_operand:VHF_AVX512VL 1 "<round_nimm_predicate>" "<int_comm>v") + (match_operand:VHF_AVX512VL 2 "<round_nimm_predicate>" "<round_constraint>") + (match_operand:VHF_AVX512VL 3 "<round_nimm_predicate>" "0")] UNSPEC_COMPLEX_F_C_MA) (match_dup 1) (unspec:<avx512fmaskmode> @@ -6892,8 +6892,8 @@ (define_insn "<avx512>_<complexopname>_<mode><maskc_name><round_name>" [(set (match_operand:VHF_AVX512VL 0 "register_operand" "=&v") (unspec:VHF_AVX512VL - [(match_operand:VHF_AVX512VL 1 "nonimmediate_operand" "<int_comm>v") - (match_operand:VHF_AVX512VL 2 "nonimmediate_operand" "<round_constraint>")] + [(match_operand:VHF_AVX512VL 1 "<round_nimm_predicate>" "<int_comm>v") + (match_operand:VHF_AVX512VL 2 "<round_nimm_predicate>" "<round_constraint>")] UNSPEC_COMPLEX_F_C_MUL))] "TARGET_AVX512FP16 && <round_mode512bit_condition>" { |