using_partial_vectors_p (false),
using_decrementing_iv_p (false),
using_select_vl_p (false),
- epil_using_partial_vectors_p (false),
allow_mutual_alignment (false),
partial_load_store_bias (0),
peeling_for_gaps (false),
In this case:
LOOP_VINFO_USING_PARTIAL_VECTORS_P == true
- LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P == false
LOOP_VINFO_PEELING_FOR_NITER == false
(2) Make LOOP_VINFO operate on full vectors and use an epilogue loop
LOOP_VINFO_USING_PARTIAL_VECTORS_P == false
LOOP_VINFO_PEELING_FOR_NITER == true
- There are two choices:
-
- (2a) Consider vectorizing the epilogue loop at the same VF as the
- main loop, but using partial vectors instead of full vectors.
- In this case:
-
- LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P == true
-
- (2b) Consider vectorizing the epilogue loop at lower VFs only.
- In this case:
-
- LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P == false
*/
opt_result
/* Decide whether to vectorize the loop with partial vectors. */
LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) = false;
- LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P (loop_vinfo) = false;
if (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo)
&& LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P (loop_vinfo))
LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) = true;
|| loop_vinfo->suggested_unroll_factor > 1)
&& !LOOP_VINFO_EPILOGUE_P (loop_vinfo)
&& !vect_known_niters_smaller_than_vf (loop_vinfo))
- LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P (loop_vinfo) = true;
+ ;
else
LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) = true;
}
for single-rgroup control. */
bool using_select_vl_p;
- /* True if we've decided to use partially-populated vectors for the
- epilogue of loop. */
- bool epil_using_partial_vectors_p;
-
/* True if we've decided to use peeling with versioning together, which allows
unaligned unsupported data refs to be uniformly aligned after a certain
amount of peeling (mutual alignment). Otherwise, we use versioning alone
#define LOOP_VINFO_USING_PARTIAL_VECTORS_P(L) (L)->using_partial_vectors_p
#define LOOP_VINFO_USING_DECREMENTING_IV_P(L) (L)->using_decrementing_iv_p
#define LOOP_VINFO_USING_SELECT_VL_P(L) (L)->using_select_vl_p
-#define LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P(L) \
- (L)->epil_using_partial_vectors_p
#define LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT(L) (L)->allow_mutual_alignment
#define LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS(L) (L)->partial_load_store_bias
#define LOOP_VINFO_VECT_FACTOR(L) (L)->vectorization_factor