aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-path.cc
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-01-30 10:08:14 -0800
committerH.J. Lu <hjl.tools@gmail.com>2022-02-09 04:30:13 -0800
commit5390a2f191682dae3c6d1e1deac20e05be413514 (patch)
tree8e601cbe75954c26b809329c26b25f3d8a4d138d /gcc/gimple-range-path.cc
parent59b31f0e2d187ebdb3d399661e22b28e4ebd8099 (diff)
downloadgcc-5390a2f191682dae3c6d1e1deac20e05be413514.zip
gcc-5390a2f191682dae3c6d1e1deac20e05be413514.tar.gz
gcc-5390a2f191682dae3c6d1e1deac20e05be413514.tar.bz2
x86: Check each component of source operand for AVX_U128_DIRTY
commit 9775e465c1fbfc32656de77c618c61acf5bd905d Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Jul 27 07:46:04 2021 -0700 x86: Don't set AVX_U128_DIRTY when zeroing YMM/ZMM register called ix86_check_avx_upper_register to check mode on source operand. But ix86_check_avx_upper_register doesn't work on source operand like (vec_select:V2DI (reg/v:V4DI 23 xmm3 [orig:91 ymm ] [91]) (parallel [ (const_int 2 [0x2]) (const_int 3 [0x3]) ])) Add ix86_avx_u128_mode_source to check mode for each component of source operand. gcc/ PR target/104441 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function. (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN. Call ix86_avx_u128_mode_source to check mode for each component of source operand. gcc/testsuite/ PR target/104441 * gcc.target/i386/pr104441-1a.c: New test. * gcc.target/i386/pr104441-1b.c: Likewise.
Diffstat (limited to 'gcc/gimple-range-path.cc')
0 files changed, 0 insertions, 0 deletions