Fix non-comforming expander for floatv2div2sf2,floatunsv2div2sf2,fix_truncv2sfv2di...
authorliuhongt <hongtao.liu@intel.com>
Tue, 26 May 2020 03:14:31 +0000 (11:14 +0800)
committerliuhongt <hongtao.liu@intel.com>
Tue, 26 May 2020 03:41:15 +0000 (11:41 +0800)
commit9d0dc47de6ed9609fe7445ea0941a6a822c80f88
tree42c72bdd1af98da7af0e6f454ecd133ebde4eb41
parent0b0d9a77d0a00b79b5f19e7428d8004a68f00180
Fix non-comforming expander for floatv2div2sf2,floatunsv2div2sf2,fix_truncv2sfv2di,fixuns_truncv2sfv2di.

2020-05-26  Hongtao Liu  <hongtao.liu@intel.com>
    Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog:
PR target/95211
PR target/95256
* config/i386/sse.md (<floatunssuffix>v2div2sf2): New expander.
(fix<fixunssuffix>_truncv2sfv2di2): Ditto.
(avx512dq_float<floatunssuffix>v2div2sf2): Renaming from
float<floatunssuffix>v2div2sf2.
(avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
Renaming from fix<fixunssuffix>_truncv2sfv2di2<mask_name>.
(vec_pack<floatprefix>_float_<mode>): Adjust icode name.
(vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
(vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
* config/i386/i386-builtin.def: Ditto.
* emit-rtl.c (validate_subreg): Allow use of *paradoxical* vector
subregs when both omode and imode are vector mode and
have the same inner mode.

gcc/testsuite/ChangeLog
* gcc.target/i386/pr95211.c: New test.
gcc/config/i386/i386-builtin.def
gcc/config/i386/sse.md
gcc/emit-rtl.c
gcc/testsuite/gcc.target/i386/pr95211.c [new file with mode: 0644]