[DAGCombiner] Simplify test case from r348759
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Mon, 10 Dec 2018 16:04:56 +0000 (16:04 +0000)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Mon, 10 Dec 2018 16:04:56 +0000 (16:04 +0000)
Thanks Simon for pointing that out.

llvm-svn: 348765

llvm/test/CodeGen/X86/combine-concatvectors.ll

index ce2ec1a..40568d2 100644 (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
-
-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
+; 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
 
-bazr:                                             ; preds = %baz, %foo
-  %exn.obj = extractvalue { i8*, i32 } undef, 0
+baz:
+  %extr1 = extractelement <2 x float> %bc, i64 0
   unreachable
 }