diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2021-07-08 12:19:54 +0200 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2021-07-08 12:20:29 +0200 |
commit | 663a014e77709bfbd4145c605b178169eaf334fc (patch) | |
tree | ea3d44f186a1d556fc6b691fe26a37a33bcc277c /gcc/ada/debug.adb | |
parent | 852b11da11a181df517c0348df044354ff0656d6 (diff) | |
download | gcc-663a014e77709bfbd4145c605b178169eaf334fc.zip gcc-663a014e77709bfbd4145c605b178169eaf334fc.tar.gz gcc-663a014e77709bfbd4145c605b178169eaf334fc.tar.bz2 |
i386: Add pack/unpack patterns for 32bit vectors [PR100637]
V1SI mode shift is needed to shift 32bit operands and consequently we
need to implement V1SI moves and pushes.
2021-07-08 Uroš Bizjak <ubizjak@gmail.com>
gcc/
PR target/100637
* config/i386/i386-expand.c (ix86_expand_sse_unpack):
Handle V4QI mode.
* config/i386/mmx.md (V_32): New mode iterator.
(mov<V_32:mode>): Use V_32 mode iterator.
(*mov<V_32:mode>_internal): Ditto.
(*push<V_32:mode>2_rex64): Ditto.
(*push<V_32:mode>2): Ditto.
(movmisalign<V_32:mode>): Ditto.
(mmx_<any_shiftrt:insn>v1si3): New insn pattern.
(sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
(vec_unpacks_lo_v4qi): New expander.
(vec_unpacks_hi_v4qi): Ditto.
(vec_unpacku_lo_v4qi): Ditto.
(vec_unpacku_hi_v4qi): Ditto.
* config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
(VALID_INT_MODE_P): Ditto.
Diffstat (limited to 'gcc/ada/debug.adb')
0 files changed, 0 insertions, 0 deletions