This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/65546] FAIL: gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
- From: "msebor at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 24 Mar 2015 22:59:27 +0000
- Subject: [Bug target/65546] FAIL: gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
- Auto-submitted: auto-generated
- References: <bug-65546-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65546
--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
It's not clear to me if this should be considered a regression. The test
passes with 4.9.2, but neither it nor 5.0 vectorizes the loop. The difference
and the cause of the test failure appears to be in that 4.9.2 applies loop
peeling to align the access but in the end also decides not to vectorize
because doing so would not match the profitability criteria, while 5.0 doesn't
get that far because it doesn't peel the loop so it gives up earlier (and for a
different reason). Here's the relevant portion of the .vect dump with 4.9.2:
costmodel-vect-31a.c:27:3: note: === vect_analyze_data_refs_alignment ===
costmodel-vect-31a.c:27:3: note: vect_compute_data_ref_alignment:
costmodel-vect-31a.c:27:3: note: force alignment of tmp.b[i_15]
costmodel-vect-31a.c:27:3: note: misalign = 1 bytes of ref tmp.b[i_15]
costmodel-vect-31a.c:27:3: note: === vect_prune_runtime_alias_test_list ===
costmodel-vect-31a.c:27:3: note: === vect_enhance_data_refs_alignment ===
costmodel-vect-31a.c:27:3: note: data size =1. misalignment = 1.
costmodel-vect-31a.c:27:3: note: vect_can_advance_ivs_p:
costmodel-vect-31a.c:27:3: note: Analyze phi: i_15 = PHI <i_6(4), 0(2)>
costmodel-vect-31a.c:27:3: note: Analyze phi: .MEM_17 = PHI <.MEM_5(4),
.MEM_4(D)(2)>
costmodel-vect-31a.c:27:3: note: virtual phi. skip.
costmodel-vect-31a.c:27:3: note: Analyze phi: ivtmp_1 = PHI <ivtmp_12(4),
16(2)>
costmodel-vect-31a.c:27:3: note: vect_model_store_cost: aligned.
costmodel-vect-31a.c:27:3: note: vect_get_data_access_cost: inside_cost = 1,
outside_cost = 0.
costmodel-vect-31a.c:27:3: note: Try peeling by 15
costmodel-vect-31a.c:27:3: note: Alignment of access forced using peeling.
costmodel-vect-31a.c:27:3: note: Peeling for alignment will be applied.