On Aug 30 2017, "Jon Beniston" <j...@beniston.com> wrote:

> gcc/
> 2017-08-30  Jon Beniston  <j...@beniston.com>
>             Richard Biener  <rguent...@suse.de>
>
> diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
> index cfdb72c..5ebeac2 100644
> --- a/gcc/tree-vect-patterns.c
> +++ b/gcc/tree-vect-patterns.c
> @@ -4150,7 +4150,7 @@ vect_pattern_recog_1 (vect_recog_func *recog_func,
>    loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
>   
>    if (VECTOR_BOOLEAN_TYPE_P (type_in)
> -      || VECTOR_MODE_P (TYPE_MODE (type_in)))
> +      || VECTOR_TYPE_P (type_in))
>      {
>        /* No need to check target support (already checked by the pattern
>           recognition function).  */
> diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
> index 013fb1f..fc62efb 100644
> --- a/gcc/tree-vect-stmts.c
> +++ b/gcc/tree-vect-stmts.c
> @@ -9098,7 +9098,8 @@ get_vectype_for_scalar_type_and_size (tree
> scalar_type, unsigned size)
>    else
>      simd_mode = mode_for_vector (inner_mode, size / nbytes);
>    nunits = GET_MODE_SIZE (simd_mode) / nbytes;
> -  if (nunits <= 1)
> +  /* NOTE: nunits == 1 is allowed to support single element vector types.
> */
> +  if (nunits < 1)
>      return NULL_TREE;
>  
>    vectype = build_vector_type (scalar_type, nunits);
>
>
>

That breaks vect/pr68577.c on aarch64.

during RTL pass: expand
/opt/gcc/gcc-20170902/gcc/testsuite/gcc.dg/vect/pr68577.c: In function 
'slp_test':
/opt/gcc/gcc-20170902/gcc/testsuite/gcc.dg/vect/pr68577.c:20:12: internal 
compiler error: in simplify_subreg, at simplify-rtx.c:6050
0xb55983 simplify_subreg(machine_mode, rtx_def*, machine_mode, unsigned int)
        ../../gcc/simplify-rtx.c:6049
0xb595f7 simplify_gen_subreg(machine_mode, rtx_def*, machine_mode, unsigned int)
        ../../gcc/simplify-rtx.c:6278
0x81d277 store_bit_field_1
        ../../gcc/expmed.c:798
0x81d55f store_bit_field(rtx_def*, unsigned long, unsigned long, unsigned long, 
unsigned long, machine_mode, rtx_def*, bool)
        ../../gcc/expmed.c:1133
0x840bf7 store_field
        ../../gcc/expr.c:6950
0x84792f store_constructor_field
        ../../gcc/expr.c:6142
0x83edbf store_constructor
        ../../gcc/expr.c:6726
0x840443 expand_constructor
        ../../gcc/expr.c:8027
0x82d5bf expand_expr_real_1(tree_node*, rtx_def*, machine_mode, 
expand_modifier, rtx_def**, bool)
        ../../gcc/expr.c:10133
0x82eaeb expand_expr_real_1(tree_node*, rtx_def*, machine_mode, 
expand_modifier, rtx_def**, bool)
        ../../gcc/expr.c:9819
0x82dadf expand_expr_real_1(tree_node*, rtx_def*, machine_mode, 
expand_modifier, rtx_def**, bool)
        ../../gcc/expr.c:10942
0x82eaeb expand_expr_real_1(tree_node*, rtx_def*, machine_mode, 
expand_modifier, rtx_def**, bool)
        ../../gcc/expr.c:9819
0x83d197 expand_expr
        ../../gcc/expr.h:276
0x83d197 expand_assignment(tree_node*, tree_node*, bool)
        ../../gcc/expr.c:4971
0x71e2f3 expand_gimple_stmt_1
        ../../gcc/cfgexpand.c:3653
0x71e2f3 expand_gimple_stmt
        ../../gcc/cfgexpand.c:3751
0x721cdb expand_gimple_basic_block
        ../../gcc/cfgexpand.c:5750
0x726b07 execute
        ../../gcc/cfgexpand.c:6357

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

Reply via email to