diff options
Diffstat (limited to 'test/CodeGen/SystemZ')
-rw-r--r-- | test/CodeGen/SystemZ/DAGCombiner_illegal_BUILD_VECTOR.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CodeGen/SystemZ/DAGCombiner_illegal_BUILD_VECTOR.ll b/test/CodeGen/SystemZ/DAGCombiner_illegal_BUILD_VECTOR.ll new file mode 100644 index 00000000000..3e5757c902c --- /dev/null +++ b/test/CodeGen/SystemZ/DAGCombiner_illegal_BUILD_VECTOR.ll @@ -0,0 +1,26 @@ +; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s +; +; Check that DAGCombiner does not crash after producing an illegal +; BUILD_VECTOR node. + + +define void @pr32422() { +; CHECK: cdbr %f0, %f0 +; CHECK: jo .LBB0_1 + +BB: + %I = insertelement <8 x i8> zeroinitializer, i8 -95, i32 3 + %I8 = insertelement <8 x i8> zeroinitializer, i8 -119, i32 2 + %FC = uitofp <8 x i8> %I8 to <8 x float> + %Cmp18 = fcmp uno <8 x float> zeroinitializer, %FC + %I22 = insertelement <8 x i1> %Cmp18, i1 true, i32 5 + br label %CF + +CF: ; preds = %CF, %BB + %Cmp40 = fcmp uno double 0xC663C682E9619F00, undef + br i1 %Cmp40, label %CF, label %CF353 + +CF353: ; preds = %CF + %E195 = extractelement <8 x i1> %I22, i32 4 + ret void +} |