mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Revert r205965, which essentially reverts r205018 for the second time.
=[ Turns out that this was the root cause of PR19621. We found a crasher only recently (likely due to improvements elsewhere in the SLP vectorizer) but the reduced test case failed all the way back to here. I've confirmed that reverting this patch both fixes the reduced test case in PR19621 and the actual source file that led to it, so it seems to really be rooted here. I've replied to the commit thread with discussion of my (feeble) attempts to debug this. Didn't make it very far, so reverting now that we have a good test case so that things can get back to healthy while the debugging carries on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207746 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -195,30 +195,6 @@ define <4 x float> @simple_select_partial_vector(<4 x float> %a, <4 x float> %b,
|
||||
ret <4 x float> %rb
|
||||
}
|
||||
|
||||
; Make sure that vectorization happens even if insertelements operations
|
||||
; must be rescheduled. The case here is from compiling Julia.
|
||||
define <4 x float> @reschedule_extract(<4 x float> %a, <4 x float> %b) {
|
||||
; CHECK-LABEL: @reschedule_extract(
|
||||
; CHECK: %1 = fadd <4 x float> %a, %b
|
||||
%a0 = extractelement <4 x float> %a, i32 0
|
||||
%b0 = extractelement <4 x float> %b, i32 0
|
||||
%c0 = fadd float %a0, %b0
|
||||
%v0 = insertelement <4 x float> undef, float %c0, i32 0
|
||||
%a1 = extractelement <4 x float> %a, i32 1
|
||||
%b1 = extractelement <4 x float> %b, i32 1
|
||||
%c1 = fadd float %a1, %b1
|
||||
%v1 = insertelement <4 x float> %v0, float %c1, i32 1
|
||||
%a2 = extractelement <4 x float> %a, i32 2
|
||||
%b2 = extractelement <4 x float> %b, i32 2
|
||||
%c2 = fadd float %a2, %b2
|
||||
%v2 = insertelement <4 x float> %v1, float %c2, i32 2
|
||||
%a3 = extractelement <4 x float> %a, i32 3
|
||||
%b3 = extractelement <4 x float> %b, i32 3
|
||||
%c3 = fadd float %a3, %b3
|
||||
%v3 = insertelement <4 x float> %v2, float %c3, i32 3
|
||||
ret <4 x float> %v3
|
||||
}
|
||||
|
||||
; Check that cost model for vectorization takes credit for
|
||||
; instructions that are erased.
|
||||
define <4 x float> @take_credit(<4 x float> %a, <4 x float> %b) {
|
||||
|
Reference in New Issue
Block a user