335 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s3; Make sure xorl operands are 32-bit registers.4 5 %struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr }6 %struct.wxDateTime = type { %struct.wxLongLong }7 %"struct.wxDateTime::TimeZone" = type { i32 }8 %struct.wxLongLong = type { i64 }9 %struct.wxString = type { %struct.wxStringBase }10 %struct.wxStringBase = type { ptr }11@.str = external constant [27 x i32] ; <ptr> [#uses=1]12@.str4 = external constant [14 x i32] ; <ptr> [#uses=1]13@_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__ = external constant [6 x i8] ; <ptr> [#uses=1]14@.str33 = external constant [29 x i32] ; <ptr> [#uses=1]15@.str89 = external constant [5 x i32] ; <ptr> [#uses=1]16 17define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct.wxString) %agg.result, ptr %this, ptr %format, ptr %tz, i1 %foo) personality ptr @__gxx_personality_v0 {18; CHECK-LABEL: _ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE:19; CHECK: ## %bb.0: ## %entry20; CHECK-NEXT: pushl %ebp21; CHECK-NEXT: .cfi_def_cfa_offset 822; CHECK-NEXT: pushl %ebx23; CHECK-NEXT: .cfi_def_cfa_offset 1224; CHECK-NEXT: pushl %edi25; CHECK-NEXT: .cfi_def_cfa_offset 1626; CHECK-NEXT: pushl %esi27; CHECK-NEXT: .cfi_def_cfa_offset 2028; CHECK-NEXT: subl $28, %esp29; CHECK-NEXT: .cfi_def_cfa_offset 4830; CHECK-NEXT: .cfi_offset %esi, -2031; CHECK-NEXT: .cfi_offset %edi, -1632; CHECK-NEXT: .cfi_offset %ebx, -1233; CHECK-NEXT: .cfi_offset %ebp, -834; CHECK-NEXT: movl {{[0-9]+}}(%esp), %esi35; CHECK-NEXT: movzbl {{[0-9]+}}(%esp), %ebx36; CHECK-NEXT: testb $1, %bl37; CHECK-NEXT: je LBB0_2538; CHECK-NEXT: ## %bb.1: ## %bb116.i39; CHECK-NEXT: je LBB0_2540; CHECK-NEXT: ## %bb.2: ## %bb52.i.i41; CHECK-NEXT: je LBB0_2542; CHECK-NEXT: ## %bb.3: ## %bb142.i43; CHECK-NEXT: je LBB0_2544; CHECK-NEXT: ## %bb.4:45; CHECK-NEXT: movl L_.str89$non_lazy_ptr, %edi46; CHECK-NEXT: movb $1, %bh47; CHECK-NEXT: movl L_.str$non_lazy_ptr, %ebp48; CHECK-NEXT: jmp LBB0_549; CHECK-NEXT: LBB0_21: ## %bb780650; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=151; CHECK-NEXT: Ltmp16: ## EH_LABEL52; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)53; CHECK-NEXT: movl $1, {{[0-9]+}}(%esp)54; CHECK-NEXT: movl $0, (%esp)55; CHECK-NEXT: calll __ZN12wxStringBase6appendEmw56; CHECK-NEXT: Ltmp17: ## EH_LABEL57; CHECK-NEXT: LBB0_5: ## %bb326158; CHECK-NEXT: ## =>This Inner Loop Header: Depth=159; CHECK-NEXT: cmpl $37, 060; CHECK-NEXT: jne LBB0_2561; CHECK-NEXT: ## %bb.6: ## %bb330662; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=163; CHECK-NEXT: Ltmp0: ## EH_LABEL64; CHECK-NEXT: movl %edi, {{[0-9]+}}(%esp)65; CHECK-NEXT: movl $0, (%esp)66; CHECK-NEXT: calll __ZN12wxStringBaseaSEPKw67; CHECK-NEXT: Ltmp1: ## EH_LABEL68; CHECK-NEXT: ## %bb.7: ## %bb331469; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=170; CHECK-NEXT: movl 0, %eax71; CHECK-NEXT: cmpl $121, %eax72; CHECK-NEXT: ja LBB0_2573; CHECK-NEXT: ## %bb.8: ## %bb331474; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=175; CHECK-NEXT: jmpl *LJTI0_0(,%eax,4)76; CHECK-NEXT: LBB0_10: ## %bb580977; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=178; CHECK-NEXT: xorl %eax, %eax79; CHECK-NEXT: testb %al, %al80; CHECK-NEXT: jne LBB0_2581; CHECK-NEXT: ## %bb.11: ## %bb580982; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=183; CHECK-NEXT: testb %bh, %bh84; CHECK-NEXT: je LBB0_2585; CHECK-NEXT: ## %bb.12: ## %bb91.i850486; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=187; CHECK-NEXT: testb $1, %bl88; CHECK-NEXT: je LBB0_1489; CHECK-NEXT: ## %bb.13: ## %bb155.i854190; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=191; CHECK-NEXT: Ltmp4: ## EH_LABEL92; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)93; CHECK-NEXT: movl $0, (%esp)94; CHECK-NEXT: calll _gmtime_r95; CHECK-NEXT: Ltmp5: ## EH_LABEL96; CHECK-NEXT: LBB0_14: ## %bb182.i856097; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=198; CHECK-NEXT: testb $1, %bl99; CHECK-NEXT: je LBB0_15100; CHECK-NEXT: ## %bb.16: ## %bb278.i8617101; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1102; CHECK-NEXT: je LBB0_18103; CHECK-NEXT: ## %bb.17: ## %bb440.i8663104; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1105; CHECK-NEXT: Ltmp6: ## EH_LABEL106; CHECK-NEXT: movl L_.str4$non_lazy_ptr, %eax107; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)108; CHECK-NEXT: movl L_.str33$non_lazy_ptr, %eax109; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)110; CHECK-NEXT: movl L__ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__$non_lazy_ptr, %eax111; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)112; CHECK-NEXT: movl %ebp, (%esp)113; CHECK-NEXT: movl $1717, {{[0-9]+}}(%esp) ## imm = 0x6B5114; CHECK-NEXT: calll __Z10wxOnAssertPKwiPKcS0_S0_115; CHECK-NEXT: Ltmp7: ## EH_LABEL116; CHECK-NEXT: jmp LBB0_18117; CHECK-NEXT: LBB0_15: ## %bb187.i8591118; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1119; CHECK-NEXT: jne LBB0_25120; CHECK-NEXT: LBB0_18: ## %invcont5814121; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1122; CHECK-NEXT: Ltmp8: ## EH_LABEL123; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)124; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)125; CHECK-NEXT: movl $0, (%esp)126; CHECK-NEXT: calll __ZN8wxString6FormatEPKwz127; CHECK-NEXT: subl $4, %esp128; CHECK-NEXT: Ltmp9: ## EH_LABEL129; CHECK-NEXT: ## %bb.19: ## %invcont5831130; CHECK-NEXT: ## in Loop: Header=BB0_5 Depth=1131; CHECK-NEXT: Ltmp10: ## EH_LABEL132; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)133; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)134; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)135; CHECK-NEXT: movl $0, (%esp)136; CHECK-NEXT: calll __ZN12wxStringBase10ConcatSelfEmPKwm137; CHECK-NEXT: Ltmp11: ## EH_LABEL138; CHECK-NEXT: jmp LBB0_5139; CHECK-NEXT: LBB0_9: ## %bb5657140; CHECK-NEXT: Ltmp13: ## EH_LABEL141; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax142; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)143; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax144; CHECK-NEXT: movl %eax, (%esp)145; CHECK-NEXT: calll __ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE146; CHECK-NEXT: Ltmp14: ## EH_LABEL147; CHECK-NEXT: jmp LBB0_25148; CHECK-NEXT: LBB0_20: ## %bb5968149; CHECK-NEXT: Ltmp2: ## EH_LABEL150; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)151; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp)152; CHECK-NEXT: movl $0, (%esp)153; CHECK-NEXT: calll __ZN8wxString6FormatEPKwz154; CHECK-NEXT: subl $4, %esp155; CHECK-NEXT: Ltmp3: ## EH_LABEL156; CHECK-NEXT: LBB0_25: ## %bb115.critedge.i157; CHECK-NEXT: movl %esi, %eax158; CHECK-NEXT: addl $28, %esp159; CHECK-NEXT: popl %esi160; CHECK-NEXT: popl %edi161; CHECK-NEXT: popl %ebx162; CHECK-NEXT: popl %ebp163; CHECK-NEXT: retl $4164; CHECK-NEXT: LBB0_23: ## %lpad.loopexit.split-lp165; CHECK-NEXT: Ltmp15: ## EH_LABEL166; CHECK-NEXT: jmp LBB0_25167; CHECK-NEXT: LBB0_24: ## %lpad8185168; CHECK-NEXT: Ltmp12: ## EH_LABEL169; CHECK-NEXT: jmp LBB0_25170; CHECK-NEXT: LBB0_22: ## %lpad.loopexit171; CHECK-NEXT: Ltmp18: ## EH_LABEL172; CHECK-NEXT: jmp LBB0_25173; CHECK-NEXT: Lfunc_end0:174entry:175 br i1 %foo, label %bb116.i, label %bb115.critedge.i176bb115.critedge.i: ; preds = %entry177 ret void178bb116.i: ; preds = %entry179 br i1 %foo, label %bb52.i.i, label %bb3118180bb3118: ; preds = %bb116.i181 ret void182bb52.i.i: ; preds = %bb116.i183 br i1 %foo, label %bb142.i, label %bb115.critedge.i.i184bb115.critedge.i.i: ; preds = %bb52.i.i185 ret void186bb142.i: ; preds = %bb52.i.i187 br i1 %foo, label %bb161.i, label %bb182.i188bb161.i: ; preds = %bb142.i189 br label %bb3261190bb182.i: ; preds = %bb142.i191 ret void192bb3261: ; preds = %bb7834, %bb161.i193 %tmp3263 = load i32, ptr null, align 4 ; <i32> [#uses=1]194 %tmp3264 = icmp eq i32 %tmp3263, 37 ; <i1> [#uses=1]195 br i1 %tmp3264, label %bb3306, label %bb3267196bb3267: ; preds = %bb3261197 ret void198bb3306: ; preds = %bb3261199 %tmp3310 = invoke ptr @_ZN12wxStringBaseaSEPKw( ptr null, ptr @.str89 )200 to label %bb3314 unwind label %lpad ; <ptr> [#uses=0]201bb3314: ; preds = %bb3306202 %tmp3316 = load i32, ptr null, align 4 ; <i32> [#uses=1]203 switch i32 %tmp3316, label %bb7595 [204 i32 0, label %bb7819205 i32 37, label %bb7806206 i32 66, label %bb3477207 i32 72, label %bb5334208 i32 73, label %bb5484209 i32 77, label %bb6118210 i32 83, label %bb6406211 i32 85, label %bb6556212 i32 87, label %bb6708213 i32 89, label %bb7308214 i32 98, label %bb3477215 i32 99, label %bb3626216 i32 100, label %bb5184217 i32 106, label %bb5657218 i32 108, label %bb5809219 i32 109, label %bb5968220 i32 119, label %bb6860221 i32 120, label %bb3626222 i32 121, label %bb7158223 ]224bb3477: ; preds = %bb3314, %bb3314225 ret void226bb3626: ; preds = %bb3314, %bb3314227 ret void228bb5184: ; preds = %bb3314229 ret void230bb5334: ; preds = %bb3314231 ret void232bb5484: ; preds = %bb3314233 ret void234bb5657: ; preds = %bb3314235 %tmp5661 = invoke zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE( ptr %this, ptr %tz )236 to label %invcont5660 unwind label %lpad ; <i16> [#uses=0]237invcont5660: ; preds = %bb5657238 ret void239bb5809: ; preds = %bb3314240 %tmp61.i.i8486 = icmp sgt i64 0, -1 ; <i1> [#uses=1]241 %tmp95.i.i8490 = icmp slt i64 0, 2147483647000 ; <i1> [#uses=1]242 %bothcond9308 = and i1 %tmp61.i.i8486, %tmp95.i.i8490 ; <i1> [#uses=1]243 br i1 %bothcond9308, label %bb91.i8504, label %bb115.critedge.i.i8492244bb115.critedge.i.i8492: ; preds = %bb5809245 ret void246bb91.i8504: ; preds = %bb5809247 br i1 %foo, label %bb155.i8541, label %bb182.i8560248bb155.i8541: ; preds = %bb91.i8504249 %tmp156.i85398700 = invoke ptr @gmtime_r( ptr null, ptr null )250 to label %bb182.i8560 unwind label %lpad ; <ptr> [#uses=1]251bb182.i8560: ; preds = %bb155.i8541, %bb91.i8504252 %tm48.0.i8558 = phi ptr [ null, %bb91.i8504 ], [ %tmp156.i85398700, %bb155.i8541 ] ; <ptr> [#uses=0]253 br i1 %foo, label %bb278.i8617, label %bb187.i8591254bb187.i8591: ; preds = %bb182.i8560255 %tmp245.i8588 = srem i64 0, 86400000 ; <i64> [#uses=1]256 br i1 %foo, label %bb264.i8592, label %bb265.i8606257bb264.i8592: ; preds = %bb187.i8591258 ret void259bb265.i8606: ; preds = %bb187.i8591260 %tmp268269.i8593 = trunc i64 %tmp245.i8588 to i32 ; <i32> [#uses=1]261 %tmp273.i8594 = srem i32 %tmp268269.i8593, 1000 ; <i32> [#uses=1]262 %tmp273274.i8595 = trunc i32 %tmp273.i8594 to i16 ; <i16> [#uses=1]263 br label %invcont5814264bb278.i8617: ; preds = %bb182.i8560265 %timeOnly50.0.i8622 = add i32 0, 0 ; <i32> [#uses=1]266 br i1 %foo, label %bb440.i8663, label %bb448.i8694267bb440.i8663: ; preds = %bb278.i8617268 invoke void @_Z10wxOnAssertPKwiPKcS0_S0_( ptr @.str, i32 1717, ptr @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__, ptr @.str33, ptr @.str4 )269 to label %bb448.i8694 unwind label %lpad270bb448.i8694: ; preds = %bb440.i8663, %bb278.i8617271 %tmp477.i8669 = srem i32 %timeOnly50.0.i8622, 1000 ; <i32> [#uses=1]272 %tmp477478.i8670 = trunc i32 %tmp477.i8669 to i16 ; <i16> [#uses=1]273 br label %invcont5814274invcont5814: ; preds = %bb448.i8694, %bb265.i8606275 %tmp812.0.0 = phi i16 [ %tmp477478.i8670, %bb448.i8694 ], [ %tmp273274.i8595, %bb265.i8606 ] ; <i16> [#uses=1]276 %tmp58165817 = zext i16 %tmp812.0.0 to i32 ; <i32> [#uses=1]277 invoke void (ptr, ptr, ...) @_ZN8wxString6FormatEPKwz(ptr noalias sret(%struct.wxString) null, ptr null, i32 %tmp58165817 )278 to label %invcont5831 unwind label %lpad279invcont5831: ; preds = %invcont5814280 %tmp5862 = invoke zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(ptr null, i32 0, ptr null, i32 0 )281 to label %bb7834 unwind label %lpad8185 ; <i8> [#uses=0]282bb5968: ; preds = %bb3314283 invoke void (ptr, ptr, ...) @_ZN8wxString6FormatEPKwz(ptr noalias sret(%struct.wxString) null, ptr null, i32 0 )284 to label %invcont5981 unwind label %lpad285invcont5981: ; preds = %bb5968286 ret void287bb6118: ; preds = %bb3314288 ret void289bb6406: ; preds = %bb3314290 ret void291bb6556: ; preds = %bb3314292 ret void293bb6708: ; preds = %bb3314294 ret void295bb6860: ; preds = %bb3314296 ret void297bb7158: ; preds = %bb3314298 ret void299bb7308: ; preds = %bb3314300 ret void301bb7595: ; preds = %bb3314302 ret void303bb7806: ; preds = %bb3314304 %tmp7814 = invoke ptr @_ZN12wxStringBase6appendEmw( ptr null, i32 1, i32 0 )305 to label %bb7834 unwind label %lpad ; <ptr> [#uses=0]306bb7819: ; preds = %bb3314307 ret void308bb7834: ; preds = %bb7806, %invcont5831309 br label %bb3261310lpad: ; preds = %bb7806, %bb5968, %invcont5814, %bb440.i8663, %bb155.i8541, %bb5657, %bb3306311 %exn = landingpad {ptr, i32}312 cleanup313 ret void314lpad8185: ; preds = %invcont5831315 %exn8185 = landingpad {ptr, i32}316 cleanup317 ret void318}319 320declare void @_Z10wxOnAssertPKwiPKcS0_S0_(ptr, i32, ptr, ptr, ptr)321 322declare zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(ptr, i32, ptr, i32)323 324declare ptr @gmtime_r(ptr, ptr)325 326declare zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE(ptr, ptr)327 328declare ptr @_ZN12wxStringBase6appendEmw(ptr, i32, i32)329 330declare ptr @_ZN12wxStringBaseaSEPKw(ptr, ptr)331 332declare void @_ZN8wxString6FormatEPKwz(ptr noalias sret(%struct.wxString) , ptr, ...)333 334declare i32 @__gxx_personality_v0(...)335