Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / X86 / 2009-11-25-ImpDefBug.ll
blob72fa8600c1f9802e4df43bd81b661202768641e7
1 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
2 ; pr5600
4 %struct..0__pthread_mutex_s = type { i32, i32, i32, i32, i32, i32, %struct.__pthread_list_t }
5 %struct.ASN1ObjHeader = type { i8, %"struct.__gmp_expr<__mpz_struct [1],__mpz_struct [1]>", i64, i32, i32, i32 }
6 %struct.ASN1Object = type { ptr, i32, i32, i64 }
7 %struct.ASN1Unit = type { [4 x ptr], %"struct.std::ASN1ObjList" }
8 %"struct.__gmp_expr<__mpz_struct [1],__mpz_struct [1]>" = type { [1 x %struct.__mpz_struct] }
9 %struct.__mpz_struct = type { i32, i32, ptr }
10 %struct.__pthread_list_t = type { ptr, ptr }
11 %struct.pthread_attr_t = type { i64, [48 x i8] }
12 %struct.pthread_mutex_t = type { %struct..0__pthread_mutex_s }
13 %struct.pthread_mutexattr_t = type { i32 }
14 %"struct.std::ASN1ObjList" = type { %"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >" }
15 %"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >" = type { %"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >::_Vector_impl" }
16 %"struct.std::_Vector_base<ASN1Object*,std::allocator<ASN1Object*> >::_Vector_impl" = type { ptr, ptr, ptr }
17 %struct.xmstream = type { ptr, i64, i64, i64, i8 }
19 declare void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(ptr nocapture, i64, ptr nocapture)
21 declare i32 @_Z17LoadObjectFromBERR8xmstreamPP10ASN1ObjectPPF10ASN1StatusP13ASN1ObjHeaderS3_E(ptr, ptr, ptr)
23 define i32 @_ZN8ASN1Unit4loadER8xmstreamjm18ASN1LengthEncoding(ptr %this, ptr nocapture %stream, i32 %numObjects, i64 %size, i32 %lEncoding) personality ptr @__gxx_personality_v0 {
24 entry:
25   br label %meshBB85
27 bb5:                                              ; preds = %bb13.fragment.cl135, %bb13.fragment.cl, %bb.i.i.bbcl.disp, %bb13.fragment
28   %0 = invoke i32 @_Z17LoadObjectFromBERR8xmstreamPP10ASN1ObjectPPF10ASN1StatusP13ASN1ObjHeaderS3_E(ptr undef, ptr undef, ptr undef)
29           to label %meshBB81.bbcl.disp unwind label %lpad ; <i32> [#uses=0]
31 bb10.fragment:                                    ; preds = %bb13.fragment.bbcl.disp
32   br i1 undef, label %bb1.i.fragment.bbcl.disp, label %bb.i.i.bbcl.disp
34 bb1.i.fragment:                                   ; preds = %bb1.i.fragment.bbcl.disp
35   invoke void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(ptr undef, i64 undef, ptr undef)
36           to label %meshBB81.bbcl.disp unwind label %lpad
38 bb13.fragment:                                    ; preds = %bb13.fragment.bbcl.disp
39   br i1 undef, label %meshBB81.bbcl.disp, label %bb5
41 bb.i4:                                            ; preds = %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp
42   ret i32 undef
44 bb1.i5:                                           ; preds = %bb.i1
45   ret i32 undef
47 lpad:                                             ; preds = %bb1.i.fragment.cl, %bb1.i.fragment, %bb5
48   %.SV10.phi807 = phi ptr [ undef, %bb1.i.fragment.cl ], [ undef, %bb1.i.fragment ], [ undef, %bb5 ] ; <ptr> [#uses=1]
49   %exn = landingpad {ptr, i32}
50             cleanup
51   %1 = load i8, ptr %.SV10.phi807, align 8            ; <i8> [#uses=0]
52   br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp
54 bb.i1:                                            ; preds = %bb.i.i.bbcl.disp
55   br i1 undef, label %meshBB81.bbcl.disp, label %bb1.i5
57 meshBB81:                                         ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp
58   br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp
60 meshBB85:                                         ; preds = %meshBB81.bbcl.disp, %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp, %bb.i.i.bbcl.disp, %entry
61   br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp
63 bb.i.i.bbcl.disp:                                 ; preds = %bb10.fragment
64   switch i8 undef, label %meshBB85 [
65     i8 123, label %bb.i1
66     i8 97, label %bb5
67     i8 44, label %meshBB81
68     i8 1, label %meshBB81.cl
69     i8 51, label %meshBB81.cl141
70   ]
72 bb1.i.fragment.cl:                                ; preds = %bb1.i.fragment.bbcl.disp
73   invoke void @_ZNSt6vectorIP10ASN1ObjectSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(ptr undef, i64 undef, ptr undef)
74           to label %meshBB81.bbcl.disp unwind label %lpad
76 bb1.i.fragment.bbcl.disp:                         ; preds = %bb10.fragment
77   switch i8 undef, label %bb.i4 [
78     i8 97, label %bb1.i.fragment
79     i8 7, label %bb1.i.fragment.cl
80     i8 35, label %bb.i4.cl
81     i8 77, label %meshBB85
82   ]
84 bb13.fragment.cl:                                 ; preds = %bb13.fragment.bbcl.disp
85   br i1 undef, label %meshBB81.bbcl.disp, label %bb5
87 bb13.fragment.cl135:                              ; preds = %bb13.fragment.bbcl.disp
88   br i1 undef, label %meshBB81.bbcl.disp, label %bb5
90 bb13.fragment.bbcl.disp:                          ; preds = %meshBB85, %lpad
91   switch i8 undef, label %bb10.fragment [
92     i8 67, label %bb13.fragment.cl
93     i8 108, label %bb13.fragment
94     i8 58, label %bb13.fragment.cl135
95   ]
97 bb.i4.cl:                                         ; preds = %bb.i4.bbcl.disp, %bb1.i.fragment.bbcl.disp
98   ret i32 undef
100 bb.i4.bbcl.disp:                                  ; preds = %meshBB81.cl141, %meshBB81.cl, %meshBB81
101   switch i8 undef, label %bb.i4 [
102     i8 35, label %bb.i4.cl
103     i8 77, label %meshBB85
104   ]
106 meshBB81.cl:                                      ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp
107   br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp
109 meshBB81.cl141:                                   ; preds = %meshBB81.bbcl.disp, %bb.i.i.bbcl.disp
110   br i1 undef, label %meshBB81.bbcl.disp, label %bb.i4.bbcl.disp
112 meshBB81.bbcl.disp:                               ; preds = %meshBB81.cl141, %meshBB81.cl, %bb13.fragment.cl135, %bb13.fragment.cl, %bb1.i.fragment.cl, %meshBB85, %meshBB81, %bb.i1, %lpad, %bb13.fragment, %bb1.i.fragment, %bb5
113   switch i8 undef, label %meshBB85 [
114     i8 44, label %meshBB81
115     i8 1, label %meshBB81.cl
116     i8 51, label %meshBB81.cl141
117   ]
120 declare i32 @__gxx_personality_v0(...)