Strip of a vector load which is only used partially.
authorliuhongt <hongtao.liu@intel.com>
Fri, 8 Apr 2022 03:26:46 +0000 (11:26 +0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 13 May 2022 01:02:48 +0000 (09:02 +0800)
commit8ab4b484153031c407b7d8c760b6a2605da1199a
treedeaeccc923e04d132dfd3ba6edb77a0fb8c92816
parent49ace834ab15c1614a96a81005304eae0f2f525e
Strip of a vector load which is only used partially.

Optimize

  _4 = VEC_PERM_EXPR <_1, _1, { 4, 5, 6, 7, 4, 5, 6, 7 }>;
  _5 = BIT_FIELD_REF <_4, 128, 0>;

to

  _5 = BIT_FIELD_REF <_1, 128, 128>;

gcc/ChangeLog:

PR tree-optimization/102583
* tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
contiguous stride in the VEC_PERM_EXPR.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr102583.c: New test.
* gcc.target/i386/pr92645-2.c: Adjust testcase.
* gcc.target/i386/pr92645-3.c: Ditto.
gcc/testsuite/gcc.target/i386/pr102583.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr92645-2.c
gcc/testsuite/gcc.target/i386/pr92645-3.c
gcc/tree-ssa-forwprop.cc