https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95256
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Depends on| |95125
CC| |crazylht at gmail dot com
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
This PR and PR95211 will be fixed by the for PR95125. Here, the offending
pattern should be renamed to something like
avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>
and an expander should be added:
(define_expand "fix<fixunssuffix>_truncv2sfv2di2"
[(set (match_operand:V2DI 0 "register_operand")
(any_fix:V2DI
(match_operand:V2SF 1 "nonimmediate_operand")))]
"TARGET_AVX512DQ && TARGET_AVX512VL"
{
if (!MEM_P (operands[1]))
{
operands[1] = simplify_gen_subreg (V4SFmode, operands[1], V2SFmode, 0);
emit_insn (gen_avx512dq_fix<fixunssuffix>_truncv2sfv2di2 (operands[0],
operands[1]));
DONE;
}
})
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95125
[Bug 95125] Unoptimal code for vectorized conversions