middle-end: Store and use the SLP instance kind when aborting load/store lanes
authorTamar Christina <tamar.christina@arm.com>
Thu, 5 Nov 2020 09:02:29 +0000 (09:02 +0000)
committerTamar Christina <tamar.christina@arm.com>
Thu, 5 Nov 2020 09:02:29 +0000 (09:02 +0000)
commite3587a2d8b005d72f882a21864fb132f8a966366
tree057abcf3b4403444eac78664cd0483d3f0cd7454
parent025f434a87336e38bf5140fba2005081876aa911
middle-end: Store and use the SLP instance kind when aborting load/store lanes

This patch stores the SLP instance kind in the SLP instance so that we can use
it later when detecting load/store lanes support.

This also changes the load/store lane support check to only check if the SLP
kind is a store.  This means that in order for the load/lanes to work all
instances must be of kind store.

gcc/ChangeLog:

* tree-vect-loop.c (vect_analyze_loop_2): Check kind.
* tree-vect-slp.c (vect_build_slp_instance): New.
(enum slp_instance_kind): Move to...
* tree-vectorizer.h (enum slp_instance_kind): .. Here
(SLP_INSTANCE_KIND): New.
gcc/tree-vect-loop.c
gcc/tree-vect-slp.c
gcc/tree-vectorizer.h