Hi

I hope someone can help me. I've been trying to write some tight integer loops 
in way that could be auto-vectorized, saving me to write assembler or using 
specific vectorization extensions. Unfortunately I've not yet managed to make 
gcc vectorize any of them. 

I've simplified the case to just perform the very first operation in the loop; 
converting from two's complement to sign-and-magnitude.

I've then used -ftree-vectorizer-verbose to examine if and if not, why not the 
loops were not vectorized, but I am afraid I don't understand the output.

The simplest version of the loop is here (it appears the branch is not a 
problem, but I have another version without).

inline uint16_t transsign(int16_t v) {
    if (v<0) {
        return 0x8000U | (1-v);
    } else {
        return v;
    }
}

It very simply converts in a fashion that maintains the full effective bit-
width.

The error from the vectorizer is:
vectorizesign.cpp:42: note: not vectorized: relevant stmt not supported: 
v.1_16 = (uint16_t) D.2157_11;

It appears the unsupported operation in vectorization is the typecast from 
int16_t to uint16_t, can this really be the case, or is the output misleading?

If it is the case, then is there good reason for it, or can I fix it myself by 
adding additional vectorizable operations?

I've attached both test case and full output of ftree-vectorized-verbose=9

Best regards
`Allan

#include <stdint.h>

inline uint16_t transsign1(int16_t v) {
    // written with no control-flow to facilitate auto-vectorization
    uint16_t sv = v >> 15; // signed left-shift gives a classic sign selector -1 or 0
    sv = sv & 0x7FFFU; // never invert the sign-bit
    return v ^ sv; // conditional invertion by xor
}

inline uint16_t transsign2(int16_t v) {
    if (v<0) {
        return 0x8000U | ~v;
    } else {
        return v;
    }
}

inline uint16_t transsign3(int16_t v) {
    if (v<0) {
        return 0x8000U | (1-v);
    } else {
        return v;
    }
}

// candidate for vectorizaton
void convertts1(uint16_t* out, int16_t* in, uint32_t len) {
    for(unsigned int i=0;i<len;++i) {
        out[i] = transsign1(in[i]);
    }
}

// candidate for vectorizaton
void convertts2(uint16_t* out, int16_t* in, uint32_t len) {
    for(unsigned int i=0;i<len;++i) {
        out[i] = transsign2(in[i]);
    }
}

// candidate for vectorizaton
void convertts3(uint16_t* out, int16_t* in, uint32_t len) {
    for(unsigned int i=0;i<len;++i) {
        out[i] = transsign3(in[i]);
    }
}

gcc: 2: No such file or directory

vectorizesign.cpp:28: note: ===== analyze_loop_nest =====
vectorizesign.cpp:28: note: === vect_analyze_loop_form ===
vectorizesign.cpp:28: note: split exit edge.
vectorizesign.cpp:28: note: === get_loop_niters ===
vectorizesign.cpp:28: note: ==> get_loop_niters:len_3(D)
vectorizesign.cpp:28: note: Symbolic number of iterations is len_3(D)
vectorizesign.cpp:28: note: === vect_analyze_data_refs ===

vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: get vectype with 8 units of type short unsigned int
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: === vect_analyze_scalar_cycles ===
vectorizesign.cpp:28: note: Analyze phi: i_16 = PHI <i_14(5), 0(3)>

vectorizesign.cpp:28: note: Access function of PHI: {0, +, 1}_1
vectorizesign.cpp:28: note: step: 1,  init: 0
vectorizesign.cpp:28: note: Detected induction.
vectorizesign.cpp:28: note: Analyze phi: SMT.12_27 = PHI <SMT.12_26(5), 
SMT.12_25(D)(3)>

vectorizesign.cpp:28: note: === vect_pattern_recog ===
vectorizesign.cpp:28: note: vect_is_simple_use: operand i_16
vectorizesign.cpp:28: note: def_stmt: i_16 = PHI <i_14(5), 0(3)>

vectorizesign.cpp:28: note: type of def: 4.
vectorizesign.cpp:28: note: === vect_mark_stmts_to_be_vectorized ===
vectorizesign.cpp:28: note: init: phi relevant? i_16 = PHI <i_14(5), 0(3)>

vectorizesign.cpp:28: note: init: phi relevant? SMT.12_27 = PHI <SMT.12_26(5), 
SMT.12_25(D)(3)>

vectorizesign.cpp:28: note: init: stmt relevant? D.2120_5 = i_16 * 2;

vectorizesign.cpp:28: note: init: stmt relevant? D.2121_7 = out_6(D) + D.2120_5;

vectorizesign.cpp:28: note: init: stmt relevant? D.2122_10 = in_9(D) + D.2120_5;

vectorizesign.cpp:28: note: init: stmt relevant? D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: init: stmt relevant? D.2124_12 = (int) D.2123_11;

vectorizesign.cpp:28: note: init: stmt relevant? D.2170_17 = D.2124_12 >> 15;

vectorizesign.cpp:28: note: init: stmt relevant? sv_18 = (uint16_t) D.2170_17;

vectorizesign.cpp:28: note: init: stmt relevant? sv_19 = sv_18 & 32767;

vectorizesign.cpp:28: note: init: stmt relevant? sv.0_20 = (short int) sv_19;

vectorizesign.cpp:28: note: init: stmt relevant? D.2167_21 = sv.0_20 ^ 
D.2123_11;

vectorizesign.cpp:28: note: init: stmt relevant? D.2166_22 = (uint16_t) 
D.2167_21;

vectorizesign.cpp:28: note: init: stmt relevant? *D.2121_7 = D.2166_22;

vectorizesign.cpp:28: note: vec_stmt_relevant_p: stmt has vdefs.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: init: stmt relevant? i_14 = i_16 + 1;

vectorizesign.cpp:28: note: init: stmt relevant? if (len_3(D) > i_14)

vectorizesign.cpp:28: note: worklist: examine stmt: *D.2121_7 = D.2166_22;

vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2166_22
vectorizesign.cpp:28: note: def_stmt: D.2166_22 = (uint16_t) D.2167_21;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: D.2166_22 = (uint16_t) 
D.2167_21;

vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2167_21
vectorizesign.cpp:28: note: def_stmt: D.2167_21 = sv.0_20 ^ D.2123_11;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: D.2167_21 = sv.0_20 ^ 
D.2123_11;

vectorizesign.cpp:28: note: vect_is_simple_use: operand sv.0_20
vectorizesign.cpp:28: note: def_stmt: sv.0_20 = (short int) sv_19;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2123_11
vectorizesign.cpp:28: note: def_stmt: D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: worklist: examine stmt: sv.0_20 = (short int) sv_19;

vectorizesign.cpp:28: note: vect_is_simple_use: operand sv_19
vectorizesign.cpp:28: note: def_stmt: sv_19 = sv_18 & 32767;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: sv_19 = sv_18 & 32767;

vectorizesign.cpp:28: note: vect_is_simple_use: operand sv_18
vectorizesign.cpp:28: note: def_stmt: sv_18 = (uint16_t) D.2170_17;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: sv_18 = (uint16_t) 
D.2170_17;

vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2170_17
vectorizesign.cpp:28: note: def_stmt: D.2170_17 = D.2124_12 >> 15;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: D.2170_17 = D.2124_12 >> 15;

vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2124_12
vectorizesign.cpp:28: note: def_stmt: D.2124_12 = (int) D.2123_11;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: worklist: examine stmt: D.2124_12 = (int) D.2123_11;

vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2123_11
vectorizesign.cpp:28: note: def_stmt: D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: mark relevant 4, live 0.
vectorizesign.cpp:28: note: already marked relevant/live.
vectorizesign.cpp:28: note: === vect_analyze_data_refs_alignment ===
vectorizesign.cpp:28: note: vect_compute_data_ref_alignment:
vectorizesign.cpp:28: note: can't force alignment of ref: *D.2122_10
vectorizesign.cpp:28: note: vect_compute_data_ref_alignment:
vectorizesign.cpp:28: note: can't force alignment of ref: *D.2121_7
vectorizesign.cpp:28: note: === vect_determine_vectorization_factor ===
vectorizesign.cpp:28: note: ==> examining phi: i_16 = PHI <i_14(5), 0(3)>

vectorizesign.cpp:28: note: ==> examining phi: SMT.12_27 = PHI <SMT.12_26(5), 
SMT.12_25(D)(3)>

vectorizesign.cpp:28: note: ==> examining statement: D.2120_5 = i_16 * 2;

vectorizesign.cpp:28: note: skip.
vectorizesign.cpp:28: note: ==> examining statement: D.2121_7 = out_6(D) + 
D.2120_5;

vectorizesign.cpp:28: note: skip.
vectorizesign.cpp:28: note: ==> examining statement: D.2122_10 = in_9(D) + 
D.2120_5;

vectorizesign.cpp:28: note: skip.
vectorizesign.cpp:28: note: ==> examining statement: D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: D.2124_12 = (int) 
D.2123_11;

vectorizesign.cpp:28: note: get vectype for scalar type:  short int
vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: D.2170_17 = D.2124_12 >> 
15;

vectorizesign.cpp:28: note: get vectype for scalar type:  int
vectorizesign.cpp:28: note: get vectype with 4 units of type int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: nunits = 4
vectorizesign.cpp:28: note: ==> examining statement: sv_18 = (uint16_t) 
D.2170_17;

vectorizesign.cpp:28: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: sv_19 = sv_18 & 32767;

vectorizesign.cpp:28: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: sv.0_20 = (short int) 
sv_19;

vectorizesign.cpp:28: note: get vectype for scalar type:  short int
vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: D.2167_21 = sv.0_20 ^ 
D.2123_11;

vectorizesign.cpp:28: note: get vectype for scalar type:  short int
vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: D.2166_22 = (uint16_t) 
D.2167_21;

vectorizesign.cpp:28: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: *D.2121_7 = D.2166_22;

vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: nunits = 8
vectorizesign.cpp:28: note: ==> examining statement: i_14 = i_16 + 1;

vectorizesign.cpp:28: note: skip.
vectorizesign.cpp:28: note: ==> examining statement: if (len_3(D) > i_14)

vectorizesign.cpp:28: note: skip.
vectorizesign.cpp:28: note: vectorization factor = 8
vectorizesign.cpp:28: note: === vect_analyze_dependences ===
vectorizesign.cpp:28: note: versioning for alias required: can't determine 
dependence between *D.2122_10 and *D.2121_7
vectorizesign.cpp:28: note: mark for run-time aliasing test between *D.2122_10 
and *D.2121_7
vectorizesign.cpp:28: note: === vect_analyze_data_ref_accesses ===
vectorizesign.cpp:28: note: === vect_prune_runtime_alias_test_list ===
vectorizesign.cpp:28: note: === vect_analyze_slp ===
vectorizesign.cpp:28: note: === vect_make_slp_decision ===
vectorizesign.cpp:28: note: === vect_detect_hybrid_slp ===
vectorizesign.cpp:28: note: === vect_enhance_data_refs_alignment ===
vectorizesign.cpp:28: note: Unknown misalignment, is_packed = 0
vectorizesign.cpp:28: note: Alignment of access forced using versioning.
vectorizesign.cpp:28: note: Versioning for alignment will be applied.
vectorizesign.cpp:28: note: Vectorizing an unaligned access.
vectorizesign.cpp:28: note: === vect_analyze_operations ===
vectorizesign.cpp:28: note: examining phi: i_16 = PHI <i_14(5), 0(3)>

vectorizesign.cpp:28: note: examining phi: SMT.12_27 = PHI <SMT.12_26(5), 
SMT.12_25(D)(3)>

vectorizesign.cpp:28: note: ==> examining statement: D.2120_5 = i_16 * 2;

vectorizesign.cpp:28: note: irrelevant.
vectorizesign.cpp:28: note: ==> examining statement: D.2121_7 = out_6(D) + 
D.2120_5;

vectorizesign.cpp:28: note: irrelevant.
vectorizesign.cpp:28: note: ==> examining statement: D.2122_10 = in_9(D) + 
D.2120_5;

vectorizesign.cpp:28: note: irrelevant.
vectorizesign.cpp:28: note: ==> examining statement: D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: vect_is_simple_use: operand *D.2122_10
vectorizesign.cpp:28: note: not ssa-name.
vectorizesign.cpp:28: note: use not simple.
vectorizesign.cpp:28: note: vect_is_simple_use: operand *D.2122_10
vectorizesign.cpp:28: note: not ssa-name.
vectorizesign.cpp:28: note: use not simple.
vectorizesign.cpp:28: note: vect_model_load_cost: unaligned supported by 
hardware.
vectorizesign.cpp:28: note: vect_model_load_cost: inside_cost = 2, outside_cost 
= 0 .
vectorizesign.cpp:28: note: ==> examining statement: D.2124_12 = (int) 
D.2123_11;

vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: get vectype with 4 units of type int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2123_11
vectorizesign.cpp:28: note: def_stmt: D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: get vectype with 4 units of type int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: === vectorizable_promotion ===
vectorizesign.cpp:28: note: vect_model_simple_cost: inside_cost = 2, 
outside_cost = 0 .
vectorizesign.cpp:28: note: ==> examining statement: D.2170_17 = D.2124_12 >> 
15;

vectorizesign.cpp:28: note: get vectype with 4 units of type int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2124_12
vectorizesign.cpp:28: note: def_stmt: D.2124_12 = (int) D.2123_11;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: vect_is_simple_use: operand 15
vectorizesign.cpp:28: note: vector/scalar shift/rotate found.
vectorizesign.cpp:28: note: === vectorizable_operation ===
vectorizesign.cpp:28: note: vect_model_simple_cost: inside_cost = 2, 
outside_cost = 1 .
vectorizesign.cpp:28: note: ==> examining statement: sv_18 = (uint16_t) 
D.2170_17;

vectorizesign.cpp:28: note: get vectype with 4 units of type int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: get vectype with 4 units of type int
vectorizesign.cpp:28: note: vectype: vector int
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: vect_is_simple_use: operand D.2170_17
vectorizesign.cpp:28: note: def_stmt: D.2170_17 = D.2124_12 >> 15;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: === vectorizable_demotion ===
vectorizesign.cpp:28: note: vect_model_simple_cost: inside_cost = 1, 
outside_cost = 0 .
vectorizesign.cpp:28: note: ==> examining statement: sv_19 = sv_18 & 32767;

vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: vect_is_simple_use: operand sv_18
vectorizesign.cpp:28: note: def_stmt: sv_18 = (uint16_t) D.2170_17;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: vect_is_simple_use: operand 32767
vectorizesign.cpp:28: note: === vectorizable_operation ===
vectorizesign.cpp:28: note: vect_model_simple_cost: inside_cost = 1, 
outside_cost = 1 .
vectorizesign.cpp:28: note: ==> examining statement: sv.0_20 = (short int) 
sv_19;

vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: vect_is_simple_use: operand sv_19
vectorizesign.cpp:28: note: def_stmt: sv_19 = sv_18 & 32767;

vectorizesign.cpp:28: note: type of def: 3.
vectorizesign.cpp:28: note: no optab.
vectorizesign.cpp:28: note: not vectorized: relevant stmt not supported: 
sv.0_20 = (short int) sv_19;

vectorizesign.cpp:28: note: bad operation or unsupported loop bound.
vectorizesign.cpp:27: note: vectorized 0 loops in function.

vectorizesign.cpp:35: note: ===== analyze_loop_nest =====
vectorizesign.cpp:35: note: === vect_analyze_loop_form ===
vectorizesign.cpp:35: note: split exit edge.
vectorizesign.cpp:35: note: === get_loop_niters ===
vectorizesign.cpp:35: note: ==> get_loop_niters:len_3(D)
vectorizesign.cpp:35: note: Symbolic number of iterations is len_3(D)
vectorizesign.cpp:35: note: === vect_analyze_data_refs ===

vectorizesign.cpp:35: note: get vectype with 8 units of type short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: get vectype with 8 units of type short unsigned int
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: === vect_analyze_scalar_cycles ===
vectorizesign.cpp:35: note: Analyze phi: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:35: note: Access function of PHI: {0, +, 1}_1
vectorizesign.cpp:35: note: step: 1,  init: 0
vectorizesign.cpp:35: note: Detected induction.
vectorizesign.cpp:35: note: Analyze phi: SMT.54_15 = PHI <SMT.54_24(8), 
SMT.54_23(D)(3)>

vectorizesign.cpp:35: note: === vect_pattern_recog ===
vectorizesign.cpp:35: note: vect_is_simple_use: operand i_8
vectorizesign.cpp:35: note: def_stmt: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:35: note: type of def: 4.
vectorizesign.cpp:35: note: === vect_mark_stmts_to_be_vectorized ===
vectorizesign.cpp:35: note: init: phi relevant? i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:35: note: init: phi relevant? SMT.54_15 = PHI <SMT.54_24(8), 
SMT.54_23(D)(3)>

vectorizesign.cpp:35: note: init: stmt relevant? D.2137_5 = i_8 * 2;

vectorizesign.cpp:35: note: init: stmt relevant? D.2139_10 = in_9(D) + D.2137_5;

vectorizesign.cpp:35: note: init: stmt relevant? D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: init: stmt relevant? D.2175_16 = ~D.2140_11;

vectorizesign.cpp:35: note: init: stmt relevant? D.2174_17 = (uint16_t) 
D.2175_16;

vectorizesign.cpp:35: note: init: stmt relevant? D.2173_18 = D.2174_17 | 32768;

vectorizesign.cpp:35: note: init: stmt relevant? D.2173_19 = (uint16_t) 
D.2140_11;

vectorizesign.cpp:35: note: init: stmt relevant? D.2173_20 = [cond_expr] 
D.2140_11 < 0 ? D.2173_18 : D.2173_19;

vectorizesign.cpp:35: note: init: stmt relevant? D.2138_7 = out_6(D) + D.2137_5;

vectorizesign.cpp:35: note: init: stmt relevant? *D.2138_7 = D.2173_20;

vectorizesign.cpp:35: note: vec_stmt_relevant_p: stmt has vdefs.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: init: stmt relevant? i_14 = i_8 + 1;

vectorizesign.cpp:35: note: init: stmt relevant? if (len_3(D) > i_14)

vectorizesign.cpp:35: note: worklist: examine stmt: *D.2138_7 = D.2173_20;

vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2173_20
vectorizesign.cpp:35: note: def_stmt: D.2173_20 = [cond_expr] D.2140_11 < 0 ? 
D.2173_18 : D.2173_19;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: worklist: examine stmt: D.2173_20 = [cond_expr] 
D.2140_11 < 0 ? D.2173_18 : D.2173_19;

vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2140_11
vectorizesign.cpp:35: note: def_stmt: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2173_18
vectorizesign.cpp:35: note: def_stmt: D.2173_18 = D.2174_17 | 32768;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2173_19
vectorizesign.cpp:35: note: def_stmt: D.2173_19 = (uint16_t) D.2140_11;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: worklist: examine stmt: D.2173_19 = (uint16_t) 
D.2140_11;

vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2140_11
vectorizesign.cpp:35: note: def_stmt: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: already marked relevant/live.
vectorizesign.cpp:35: note: worklist: examine stmt: D.2173_18 = D.2174_17 | 
32768;

vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2174_17
vectorizesign.cpp:35: note: def_stmt: D.2174_17 = (uint16_t) D.2175_16;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: worklist: examine stmt: D.2174_17 = (uint16_t) 
D.2175_16;

vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2175_16
vectorizesign.cpp:35: note: def_stmt: D.2175_16 = ~D.2140_11;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: worklist: examine stmt: D.2175_16 = ~D.2140_11;

vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2140_11
vectorizesign.cpp:35: note: def_stmt: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: mark relevant 4, live 0.
vectorizesign.cpp:35: note: already marked relevant/live.
vectorizesign.cpp:35: note: worklist: examine stmt: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: === vect_analyze_data_refs_alignment ===
vectorizesign.cpp:35: note: vect_compute_data_ref_alignment:
vectorizesign.cpp:35: note: can't force alignment of ref: *D.2139_10
vectorizesign.cpp:35: note: vect_compute_data_ref_alignment:
vectorizesign.cpp:35: note: can't force alignment of ref: *D.2138_7
vectorizesign.cpp:35: note: === vect_determine_vectorization_factor ===
vectorizesign.cpp:35: note: ==> examining phi: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:35: note: ==> examining phi: SMT.54_15 = PHI <SMT.54_24(8), 
SMT.54_23(D)(3)>

vectorizesign.cpp:35: note: ==> examining statement: D.2137_5 = i_8 * 2;

vectorizesign.cpp:35: note: skip.
vectorizesign.cpp:35: note: ==> examining statement: D.2139_10 = in_9(D) + 
D.2137_5;

vectorizesign.cpp:35: note: skip.
vectorizesign.cpp:35: note: ==> examining statement: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: D.2175_16 = ~D.2140_11;

vectorizesign.cpp:35: note: get vectype for scalar type:  short int
vectorizesign.cpp:35: note: get vectype with 8 units of type short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: D.2174_17 = (uint16_t) 
D.2175_16;

vectorizesign.cpp:35: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: D.2173_18 = D.2174_17 | 
32768;

vectorizesign.cpp:35: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: D.2173_19 = (uint16_t) 
D.2140_11;

vectorizesign.cpp:35: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: D.2173_20 = [cond_expr] 
D.2140_11 < 0 ? D.2173_18 : D.2173_19;

vectorizesign.cpp:35: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: D.2138_7 = out_6(D) + 
D.2137_5;

vectorizesign.cpp:35: note: skip.
vectorizesign.cpp:35: note: ==> examining statement: *D.2138_7 = D.2173_20;

vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: nunits = 8
vectorizesign.cpp:35: note: ==> examining statement: i_14 = i_8 + 1;

vectorizesign.cpp:35: note: skip.
vectorizesign.cpp:35: note: ==> examining statement: if (len_3(D) > i_14)

vectorizesign.cpp:35: note: skip.
vectorizesign.cpp:35: note: vectorization factor = 8
vectorizesign.cpp:35: note: === vect_analyze_dependences ===
vectorizesign.cpp:35: note: versioning for alias required: can't determine 
dependence between *D.2139_10 and *D.2138_7
vectorizesign.cpp:35: note: mark for run-time aliasing test between *D.2139_10 
and *D.2138_7
vectorizesign.cpp:35: note: === vect_analyze_data_ref_accesses ===
vectorizesign.cpp:35: note: === vect_prune_runtime_alias_test_list ===
vectorizesign.cpp:35: note: === vect_analyze_slp ===
vectorizesign.cpp:35: note: === vect_make_slp_decision ===
vectorizesign.cpp:35: note: === vect_detect_hybrid_slp ===
vectorizesign.cpp:35: note: === vect_enhance_data_refs_alignment ===
vectorizesign.cpp:35: note: Unknown misalignment, is_packed = 0
vectorizesign.cpp:35: note: Alignment of access forced using versioning.
vectorizesign.cpp:35: note: Versioning for alignment will be applied.
vectorizesign.cpp:35: note: Vectorizing an unaligned access.
vectorizesign.cpp:35: note: === vect_analyze_operations ===
vectorizesign.cpp:35: note: examining phi: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:35: note: examining phi: SMT.54_15 = PHI <SMT.54_24(8), 
SMT.54_23(D)(3)>

vectorizesign.cpp:35: note: ==> examining statement: D.2137_5 = i_8 * 2;

vectorizesign.cpp:35: note: irrelevant.
vectorizesign.cpp:35: note: ==> examining statement: D.2139_10 = in_9(D) + 
D.2137_5;

vectorizesign.cpp:35: note: irrelevant.
vectorizesign.cpp:35: note: ==> examining statement: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: get vectype with 8 units of type short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: vect_is_simple_use: operand *D.2139_10
vectorizesign.cpp:35: note: not ssa-name.
vectorizesign.cpp:35: note: use not simple.
vectorizesign.cpp:35: note: vect_is_simple_use: operand *D.2139_10
vectorizesign.cpp:35: note: not ssa-name.
vectorizesign.cpp:35: note: use not simple.
vectorizesign.cpp:35: note: vect_model_load_cost: unaligned supported by 
hardware.
vectorizesign.cpp:35: note: vect_model_load_cost: inside_cost = 2, outside_cost 
= 0 .
vectorizesign.cpp:35: note: ==> examining statement: D.2175_16 = ~D.2140_11;

vectorizesign.cpp:35: note: get vectype with 8 units of type short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2140_11
vectorizesign.cpp:35: note: def_stmt: D.2140_11 = *D.2139_10;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: === vectorizable_operation ===
vectorizesign.cpp:35: note: vect_model_simple_cost: inside_cost = 1, 
outside_cost = 0 .
vectorizesign.cpp:35: note: ==> examining statement: D.2174_17 = (uint16_t) 
D.2175_16;

vectorizesign.cpp:35: note: get vectype with 8 units of type short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: get vectype with 8 units of type short int
vectorizesign.cpp:35: note: vectype: vector short int
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:35: note: vectype: vector short unsigned int
vectorizesign.cpp:35: note: vect_is_simple_use: operand D.2175_16
vectorizesign.cpp:35: note: def_stmt: D.2175_16 = ~D.2140_11;

vectorizesign.cpp:35: note: type of def: 3.
vectorizesign.cpp:35: note: no optab.
vectorizesign.cpp:35: note: not vectorized: relevant stmt not supported: 
D.2174_17 = (uint16_t) D.2175_16;

vectorizesign.cpp:35: note: bad operation or unsupported loop bound.
vectorizesign.cpp:34: note: vectorized 0 loops in function.

vectorizesign.cpp:42: note: ===== analyze_loop_nest =====
vectorizesign.cpp:42: note: === vect_analyze_loop_form ===
vectorizesign.cpp:42: note: split exit edge.
vectorizesign.cpp:42: note: === get_loop_niters ===
vectorizesign.cpp:42: note: ==> get_loop_niters:len_3(D)
vectorizesign.cpp:42: note: Symbolic number of iterations is len_3(D)
vectorizesign.cpp:42: note: === vect_analyze_data_refs ===

vectorizesign.cpp:42: note: get vectype with 8 units of type short int
vectorizesign.cpp:42: note: vectype: vector short int
vectorizesign.cpp:42: note: get vectype with 8 units of type short unsigned int
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: === vect_analyze_scalar_cycles ===
vectorizesign.cpp:42: note: Analyze phi: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:42: note: Access function of PHI: {0, +, 1}_1
vectorizesign.cpp:42: note: step: 1,  init: 0
vectorizesign.cpp:42: note: Detected induction.
vectorizesign.cpp:42: note: Analyze phi: SMT.90_15 = PHI <SMT.90_24(8), 
SMT.90_23(D)(3)>

vectorizesign.cpp:42: note: === vect_pattern_recog ===
vectorizesign.cpp:42: note: vect_is_simple_use: operand i_8
vectorizesign.cpp:42: note: def_stmt: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:42: note: type of def: 4.
vectorizesign.cpp:42: note: === vect_mark_stmts_to_be_vectorized ===
vectorizesign.cpp:42: note: init: phi relevant? i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:42: note: init: phi relevant? SMT.90_15 = PHI <SMT.90_24(8), 
SMT.90_23(D)(3)>

vectorizesign.cpp:42: note: init: stmt relevant? D.2154_5 = i_8 * 2;

vectorizesign.cpp:42: note: init: stmt relevant? D.2156_10 = in_9(D) + D.2154_5;

vectorizesign.cpp:42: note: init: stmt relevant? D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: init: stmt relevant? v.1_16 = (uint16_t) D.2157_11;

vectorizesign.cpp:42: note: init: stmt relevant? D.2179_17 = 1 - v.1_16;

vectorizesign.cpp:42: note: init: stmt relevant? D.2178_18 = D.2179_17 | 32768;

vectorizesign.cpp:42: note: init: stmt relevant? D.2178_19 = (uint16_t) 
D.2157_11;

vectorizesign.cpp:42: note: init: stmt relevant? D.2178_20 = [cond_expr] 
D.2157_11 < 0 ? D.2178_18 : D.2178_19;

vectorizesign.cpp:42: note: init: stmt relevant? D.2155_7 = out_6(D) + D.2154_5;

vectorizesign.cpp:42: note: init: stmt relevant? *D.2155_7 = D.2178_20;

vectorizesign.cpp:42: note: vec_stmt_relevant_p: stmt has vdefs.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: init: stmt relevant? i_14 = i_8 + 1;

vectorizesign.cpp:42: note: init: stmt relevant? if (len_3(D) > i_14)

vectorizesign.cpp:42: note: worklist: examine stmt: *D.2155_7 = D.2178_20;

vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2178_20
vectorizesign.cpp:42: note: def_stmt: D.2178_20 = [cond_expr] D.2157_11 < 0 ? 
D.2178_18 : D.2178_19;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: worklist: examine stmt: D.2178_20 = [cond_expr] 
D.2157_11 < 0 ? D.2178_18 : D.2178_19;

vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2157_11
vectorizesign.cpp:42: note: def_stmt: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2178_18
vectorizesign.cpp:42: note: def_stmt: D.2178_18 = D.2179_17 | 32768;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2178_19
vectorizesign.cpp:42: note: def_stmt: D.2178_19 = (uint16_t) D.2157_11;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: worklist: examine stmt: D.2178_19 = (uint16_t) 
D.2157_11;

vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2157_11
vectorizesign.cpp:42: note: def_stmt: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: already marked relevant/live.
vectorizesign.cpp:42: note: worklist: examine stmt: D.2178_18 = D.2179_17 | 
32768;

vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2179_17
vectorizesign.cpp:42: note: def_stmt: D.2179_17 = 1 - v.1_16;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: worklist: examine stmt: D.2179_17 = 1 - v.1_16;

vectorizesign.cpp:42: note: vect_is_simple_use: operand v.1_16
vectorizesign.cpp:42: note: def_stmt: v.1_16 = (uint16_t) D.2157_11;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: worklist: examine stmt: v.1_16 = (uint16_t) 
D.2157_11;

vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2157_11
vectorizesign.cpp:42: note: def_stmt: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: mark relevant 4, live 0.
vectorizesign.cpp:42: note: already marked relevant/live.
vectorizesign.cpp:42: note: worklist: examine stmt: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: === vect_analyze_data_refs_alignment ===
vectorizesign.cpp:42: note: vect_compute_data_ref_alignment:
vectorizesign.cpp:42: note: can't force alignment of ref: *D.2156_10
vectorizesign.cpp:42: note: vect_compute_data_ref_alignment:
vectorizesign.cpp:42: note: can't force alignment of ref: *D.2155_7
vectorizesign.cpp:42: note: === vect_determine_vectorization_factor ===
vectorizesign.cpp:42: note: ==> examining phi: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:42: note: ==> examining phi: SMT.90_15 = PHI <SMT.90_24(8), 
SMT.90_23(D)(3)>

vectorizesign.cpp:42: note: ==> examining statement: D.2154_5 = i_8 * 2;

vectorizesign.cpp:42: note: skip.
vectorizesign.cpp:42: note: ==> examining statement: D.2156_10 = in_9(D) + 
D.2154_5;

vectorizesign.cpp:42: note: skip.
vectorizesign.cpp:42: note: ==> examining statement: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: vectype: vector short int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: v.1_16 = (uint16_t) 
D.2157_11;

vectorizesign.cpp:42: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: D.2179_17 = 1 - v.1_16;

vectorizesign.cpp:42: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: D.2178_18 = D.2179_17 | 
32768;

vectorizesign.cpp:42: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: D.2178_19 = (uint16_t) 
D.2157_11;

vectorizesign.cpp:42: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: D.2178_20 = [cond_expr] 
D.2157_11 < 0 ? D.2178_18 : D.2178_19;

vectorizesign.cpp:42: note: get vectype for scalar type:  uint16_t
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: D.2155_7 = out_6(D) + 
D.2154_5;

vectorizesign.cpp:42: note: skip.
vectorizesign.cpp:42: note: ==> examining statement: *D.2155_7 = D.2178_20;

vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: nunits = 8
vectorizesign.cpp:42: note: ==> examining statement: i_14 = i_8 + 1;

vectorizesign.cpp:42: note: skip.
vectorizesign.cpp:42: note: ==> examining statement: if (len_3(D) > i_14)

vectorizesign.cpp:42: note: skip.
vectorizesign.cpp:42: note: vectorization factor = 8
vectorizesign.cpp:42: note: === vect_analyze_dependences ===
vectorizesign.cpp:42: note: versioning for alias required: can't determine 
dependence between *D.2156_10 and *D.2155_7
vectorizesign.cpp:42: note: mark for run-time aliasing test between *D.2156_10 
and *D.2155_7
vectorizesign.cpp:42: note: === vect_analyze_data_ref_accesses ===
vectorizesign.cpp:42: note: === vect_prune_runtime_alias_test_list ===
vectorizesign.cpp:42: note: === vect_analyze_slp ===
vectorizesign.cpp:42: note: === vect_make_slp_decision ===
vectorizesign.cpp:42: note: === vect_detect_hybrid_slp ===
vectorizesign.cpp:42: note: === vect_enhance_data_refs_alignment ===
vectorizesign.cpp:42: note: Unknown misalignment, is_packed = 0
vectorizesign.cpp:42: note: Alignment of access forced using versioning.
vectorizesign.cpp:42: note: Versioning for alignment will be applied.
vectorizesign.cpp:42: note: Vectorizing an unaligned access.
vectorizesign.cpp:42: note: === vect_analyze_operations ===
vectorizesign.cpp:42: note: examining phi: i_8 = PHI <i_14(8), 0(3)>

vectorizesign.cpp:42: note: examining phi: SMT.90_15 = PHI <SMT.90_24(8), 
SMT.90_23(D)(3)>

vectorizesign.cpp:42: note: ==> examining statement: D.2154_5 = i_8 * 2;

vectorizesign.cpp:42: note: irrelevant.
vectorizesign.cpp:42: note: ==> examining statement: D.2156_10 = in_9(D) + 
D.2154_5;

vectorizesign.cpp:42: note: irrelevant.
vectorizesign.cpp:42: note: ==> examining statement: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: get vectype with 8 units of type short int
vectorizesign.cpp:42: note: vectype: vector short int
vectorizesign.cpp:42: note: vect_is_simple_use: operand *D.2156_10
vectorizesign.cpp:42: note: not ssa-name.
vectorizesign.cpp:42: note: use not simple.
vectorizesign.cpp:42: note: vect_is_simple_use: operand *D.2156_10
vectorizesign.cpp:42: note: not ssa-name.
vectorizesign.cpp:42: note: use not simple.
vectorizesign.cpp:42: note: vect_model_load_cost: unaligned supported by 
hardware.
vectorizesign.cpp:42: note: vect_model_load_cost: inside_cost = 2, outside_cost 
= 0 .
vectorizesign.cpp:42: note: ==> examining statement: v.1_16 = (uint16_t) 
D.2157_11;

vectorizesign.cpp:42: note: get vectype with 8 units of type short int
vectorizesign.cpp:42: note: vectype: vector short int
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: get vectype with 8 units of type short int
vectorizesign.cpp:42: note: vectype: vector short int
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: get vectype with 8 units of type uint16_t
vectorizesign.cpp:42: note: vectype: vector short unsigned int
vectorizesign.cpp:42: note: vect_is_simple_use: operand D.2157_11
vectorizesign.cpp:42: note: def_stmt: D.2157_11 = *D.2156_10;

vectorizesign.cpp:42: note: type of def: 3.
vectorizesign.cpp:42: note: no optab.
vectorizesign.cpp:42: note: not vectorized: relevant stmt not supported: v.1_16 
= (uint16_t) D.2157_11;

vectorizesign.cpp:42: note: bad operation or unsupported loop bound.
vectorizesign.cpp:41: note: vectorized 0 loops in function.

Reply via email to