aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.c
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2021-09-08 16:19:37 +0800
committerliuhongt <hongtao.liu@intel.com>2021-09-09 09:33:40 +0800
commit60eec23b5eda0f350e572586eee738eab0804a74 (patch)
tree2b6f7a765bac97ef89278cfb643d2166181bddd1 /gcc/tree-ssa-loop-im.c
parentb6db7cd41ccf821ffb10ff4f18845465e98803cd (diff)
downloadgcc-60eec23b5eda0f350e572586eee738eab0804a74.zip
gcc-60eec23b5eda0f350e572586eee738eab0804a74.tar.gz
gcc-60eec23b5eda0f350e572586eee738eab0804a74.tar.bz2
Optimize vec_extract for 256/512-bit vector when index exceeds the lower 128 bits.
- vextracti32x8 $0x1, %zmm0, %ymm0 - vmovd %xmm0, %eax + valignd $8, %zmm0, %zmm0, %zmm1 + vmovd %xmm1, %eax - vextracti32x8 $0x1, %zmm0, %ymm0 - vextracti128 $0x1, %ymm0, %xmm0 - vpextrd $3, %xmm0, %eax + valignd $15, %zmm0, %zmm0, %zmm1 + vmovd %xmm1, %eax - vextractf64x2 $0x1, %ymm0, %xmm0 + valignq $2, %ymm0, %ymm0, %ymm0 - vextractf64x4 $0x1, %zmm0, %ymm0 - vextractf64x2 $0x1, %ymm0, %xmm0 - vunpckhpd %xmm0, %xmm0, %xmm0 + valignq $7, %zmm0, %zmm0, %zmm0 gcc/ChangeLog: PR target/91103 * config/i386/sse.md (*vec_extract<mode><ssescalarmodelower>_valign): New define_insn. gcc/testsuite/ChangeLog: PR target/91103 * gcc.target/i386/pr91103-1.c: New test. * gcc.target/i386/pr91103-2.c: New test.
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
0 files changed, 0 insertions, 0 deletions