[DAGCombiner] Simplify test case from r348759

Thanks Simon for pointing that out.

llvm-svn: 348765
This commit is contained in:
Francis Visoiu Mistrih 2018-12-10 16:04:56 +00:00
parent c5929138f5
commit 0ad1af72cd

View File

@ -17,43 +17,23 @@ define void @PR32957(<2 x float>* %in, <8 x float>* %out) {
ret void
}
declare { i8, double } @fun()
; Check that this does not fail to combine concat_vectors of a value from
; merge_values through a bitcast.
define void @d() personality i8* undef {
define void @d(i1 %cmp) {
; CHECK-LABEL: d:
; CHECK: # %bb.0: # %entry
; CHECK: # %bb.0: # %bar
; CHECK-NEXT: pushq %rax
; CHECK-NEXT: .cfi_def_cfa_offset 16
; CHECK-NEXT: .Ltmp0:
; CHECK-NEXT: callq *%rax
; CHECK-NEXT: .Ltmp1:
; CHECK-NEXT: # %bb.1: # %bar
; CHECK-NEXT: .Ltmp2:
; CHECK-NEXT: callq *%rax
; CHECK-NEXT: .Ltmp3:
; CHECK-NEXT: # %bb.2: # %baz
; CHECK-NEXT: .LBB1_3: # %foo
; CHECK-NEXT: .Ltmp4:
entry:
%call16 = invoke { i8, double } undef()
to label %bar unwind label %foo
; CHECK-NEXT: callq fun
bar:
%val = call { i8, double } @fun()
%extr = extractvalue { i8, double } %val, 1
%bc = bitcast double %extr to <2 x float>
br label %baz
foo: ; preds = %bar, %entry
%0 = landingpad { i8*, i32 }
cleanup
br label %bazr
bar: ; preds = %entry
%1 = extractvalue { i8, double } %call16, 1
%2 = bitcast double %1 to <2 x float>
invoke void undef()
to label %baz unwind label %foo
baz: ; preds = %bar
%3 = extractelement <2 x float> %2, i64 0
br label %bazr
bazr: ; preds = %baz, %foo
%exn.obj = extractvalue { i8*, i32 } undef, 0
baz:
%extr1 = extractelement <2 x float> %bc, i64 0
unreachable
}