Skip to content
Snippets Groups Projects
Commit 5bfb5e77 authored by Juzhe-Zhong's avatar Juzhe-Zhong Committed by Pan Li
Browse files

VECT: Fix ICE on MASK_LEN_{LOAD, STORE} when no LEN recorded[PR110989]

This ICE is caused because of this situation:

mask__49.21_99 = vect__17.19_96 == { 0.0, ... };
...
vect__6.24_107 = .MASK_LEN_LOAD (vectp.22_105, 32B, mask__49.21_99, POLY_INT_CST [2, 2], 0);

The MASK_LEN_LOAD is using real MASK which is produced by the EQ comparison wheras the LEN
is the dummy LEN which is the vectorization factor.

In this situation, we didn't enter 'vect_record_loop_len' since there is no LEN loop control.
Then 'LOOP_VINFO_RGROUP_IV_TYPE' is not suitable type for 'build_int_cst' used for producing
LEN argument for 'MASK_LEN_LOAD', so use sizetype instead which is perfectly matching
RVV length requirement.

gcc/ChangeLog:
	PR middle-end/110989
	* tree-vect-stmts.cc (vectorizable_store): Replace iv_type with sizetype.
	(vectorizable_load): Ditto.

gcc/testsuite/ChangeLog:
	PR middle-end/110989
	* gcc.target/riscv/rvv/autovec/pr110989.c: New test.
parent 2b1b804d
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment