1 ; RUN: llc < %s -mtriple=i386-apple-darwin | grep xorl | grep {%e} 2 ; Make sure xorl operands are 32-bit registers. 3 4 %struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* } 5 %struct.wxDateTime = type { %struct.wxLongLong } 6 %"struct.wxDateTime::TimeZone" = type { i32 } 7 %struct.wxLongLong = type { i64 } 8 %struct.wxString = type { %struct.wxStringBase } 9 %struct.wxStringBase = type { i32* } 10 @.str = external constant [27 x i32] ; <[27 x i32]*> [#uses=1] 11 @.str4 = external constant [14 x i32] ; <[14 x i32]*> [#uses=1] 12 @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__ = external constant [6 x i8] ; <[6 x i8]*> [#uses=1] 13 @.str33 = external constant [29 x i32] ; <[29 x i32]*> [#uses=1] 14 @.str89 = external constant [5 x i32] ; <[5 x i32]*> [#uses=1] 15 16 define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(%struct.wxString* noalias sret %agg.result, %struct.wxDateTime* %this, i32* %format, %"struct.wxDateTime::TimeZone"* %tz, i1 %foo) { 17 entry: 18 br i1 %foo, label %bb116.i, label %bb115.critedge.i 19 bb115.critedge.i: ; preds = %entry 20 ret void 21 bb116.i: ; preds = %entry 22 br i1 %foo, label %bb52.i.i, label %bb3118 23 bb3118: ; preds = %bb116.i 24 ret void 25 bb52.i.i: ; preds = %bb116.i 26 br i1 %foo, label %bb142.i, label %bb115.critedge.i.i 27 bb115.critedge.i.i: ; preds = %bb52.i.i 28 ret void 29 bb142.i: ; preds = %bb52.i.i 30 br i1 %foo, label %bb161.i, label %bb182.i 31 bb161.i: ; preds = %bb142.i 32 br label %bb3261 33 bb182.i: ; preds = %bb142.i 34 ret void 35 bb3261: ; preds = %bb7834, %bb161.i 36 %tmp3263 = load i32* null, align 4 ; <i32> [#uses=1] 37 %tmp3264 = icmp eq i32 %tmp3263, 37 ; <i1> [#uses=1] 38 br i1 %tmp3264, label %bb3306, label %bb3267 39 bb3267: ; preds = %bb3261 40 ret void 41 bb3306: ; preds = %bb3261 42 %tmp3310 = invoke %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw( %struct.wxStringBase* null, i32* getelementptr ([5 x i32]* @.str89, i32 0, i32 0) ) 43 to label %bb3314 unwind label %lpad ; <%struct.wxStringBase*> [#uses=0] 44 bb3314: ; preds = %bb3306 45 %tmp3316 = load i32* null, align 4 ; <i32> [#uses=1] 46 switch i32 %tmp3316, label %bb7595 [ 47 i32 0, label %bb7819 48 i32 37, label %bb7806 49 i32 66, label %bb3477 50 i32 72, label %bb5334 51 i32 73, label %bb5484 52 i32 77, label %bb6118 53 i32 83, label %bb6406 54 i32 85, label %bb6556 55 i32 87, label %bb6708 56 i32 89, label %bb7308 57 i32 98, label %bb3477 58 i32 99, label %bb3626 59 i32 100, label %bb5184 60 i32 106, label %bb5657 61 i32 108, label %bb5809 62 i32 109, label %bb5968 63 i32 119, label %bb6860 64 i32 120, label %bb3626 65 i32 121, label %bb7158 66 ] 67 bb3477: ; preds = %bb3314, %bb3314 68 ret void 69 bb3626: ; preds = %bb3314, %bb3314 70 ret void 71 bb5184: ; preds = %bb3314 72 ret void 73 bb5334: ; preds = %bb3314 74 ret void 75 bb5484: ; preds = %bb3314 76 ret void 77 bb5657: ; preds = %bb3314 78 %tmp5661 = invoke zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE( %struct.wxDateTime* %this, %"struct.wxDateTime::TimeZone"* %tz ) 79 to label %invcont5660 unwind label %lpad ; <i16> [#uses=0] 80 invcont5660: ; preds = %bb5657 81 ret void 82 bb5809: ; preds = %bb3314 83 %tmp61.i.i8486 = icmp sgt i64 0, -1 ; <i1> [#uses=1] 84 %tmp95.i.i8490 = icmp slt i64 0, 2147483647000 ; <i1> [#uses=1] 85 %bothcond9308 = and i1 %tmp61.i.i8486, %tmp95.i.i8490 ; <i1> [#uses=1] 86 br i1 %bothcond9308, label %bb91.i8504, label %bb115.critedge.i.i8492 87 bb115.critedge.i.i8492: ; preds = %bb5809 88 ret void 89 bb91.i8504: ; preds = %bb5809 90 br i1 %foo, label %bb155.i8541, label %bb182.i8560 91 bb155.i8541: ; preds = %bb91.i8504 92 %tmp156.i85398700 = invoke %struct.tm* @gmtime_r( i32* null, %struct.tm* null ) 93 to label %bb182.i8560 unwind label %lpad ; <%struct.tm*> [#uses=1] 94 bb182.i8560: ; preds = %bb155.i8541, %bb91.i8504 95 %tm48.0.i8558 = phi %struct.tm* [ null, %bb91.i8504 ], [ %tmp156.i85398700, %bb155.i8541 ] ; <%struct.tm*> [#uses=0] 96 br i1 %foo, label %bb278.i8617, label %bb187.i8591 97 bb187.i8591: ; preds = %bb182.i8560 98 %tmp245.i8588 = srem i64 0, 86400000 ; <i64> [#uses=1] 99 br i1 %foo, label %bb264.i8592, label %bb265.i8606 100 bb264.i8592: ; preds = %bb187.i8591 101 ret void 102 bb265.i8606: ; preds = %bb187.i8591 103 %tmp268269.i8593 = trunc i64 %tmp245.i8588 to i32 ; <i32> [#uses=1] 104 %tmp273.i8594 = srem i32 %tmp268269.i8593, 1000 ; <i32> [#uses=1] 105 %tmp273274.i8595 = trunc i32 %tmp273.i8594 to i16 ; <i16> [#uses=1] 106 br label %invcont5814 107 bb278.i8617: ; preds = %bb182.i8560 108 %timeOnly50.0.i8622 = add i32 0, 0 ; <i32> [#uses=1] 109 br i1 %foo, label %bb440.i8663, label %bb448.i8694 110 bb440.i8663: ; preds = %bb278.i8617 111 invoke void @_Z10wxOnAssertPKwiPKcS0_S0_( i32* getelementptr ([27 x i32]* @.str, i32 0, i32 0), i32 1717, i8* getelementptr ([6 x i8]* @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__, i32 0, i32 0), i32* getelementptr ([29 x i32]* @.str33, i32 0, i32 0), i32* getelementptr ([14 x i32]* @.str4, i32 0, i32 0) ) 112 to label %bb448.i8694 unwind label %lpad 113 bb448.i8694: ; preds = %bb440.i8663, %bb278.i8617 114 %tmp477.i8669 = srem i32 %timeOnly50.0.i8622, 1000 ; <i32> [#uses=1] 115 %tmp477478.i8670 = trunc i32 %tmp477.i8669 to i16 ; <i16> [#uses=1] 116 br label %invcont5814 117 invcont5814: ; preds = %bb448.i8694, %bb265.i8606 118 %tmp812.0.0 = phi i16 [ %tmp477478.i8670, %bb448.i8694 ], [ %tmp273274.i8595, %bb265.i8606 ] ; <i16> [#uses=1] 119 %tmp58165817 = zext i16 %tmp812.0.0 to i32 ; <i32> [#uses=1] 120 invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret null, i32* null, i32 %tmp58165817 ) 121 to label %invcont5831 unwind label %lpad 122 invcont5831: ; preds = %invcont5814 123 %tmp5862 = invoke zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm( %struct.wxStringBase* null, i32 0, i32* null, i32 0 ) 124 to label %bb7834 unwind label %lpad8185 ; <i8> [#uses=0] 125 bb5968: ; preds = %bb3314 126 invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret null, i32* null, i32 0 ) 127 to label %invcont5981 unwind label %lpad 128 invcont5981: ; preds = %bb5968 129 ret void 130 bb6118: ; preds = %bb3314 131 ret void 132 bb6406: ; preds = %bb3314 133 ret void 134 bb6556: ; preds = %bb3314 135 ret void 136 bb6708: ; preds = %bb3314 137 ret void 138 bb6860: ; preds = %bb3314 139 ret void 140 bb7158: ; preds = %bb3314 141 ret void 142 bb7308: ; preds = %bb3314 143 ret void 144 bb7595: ; preds = %bb3314 145 ret void 146 bb7806: ; preds = %bb3314 147 %tmp7814 = invoke %struct.wxStringBase* @_ZN12wxStringBase6appendEmw( %struct.wxStringBase* null, i32 1, i32 0 ) 148 to label %bb7834 unwind label %lpad ; <%struct.wxStringBase*> [#uses=0] 149 bb7819: ; preds = %bb3314 150 ret void 151 bb7834: ; preds = %bb7806, %invcont5831 152 br label %bb3261 153 lpad: ; preds = %bb7806, %bb5968, %invcont5814, %bb440.i8663, %bb155.i8541, %bb5657, %bb3306 154 %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 155 cleanup 156 ret void 157 lpad8185: ; preds = %invcont5831 158 %exn8185 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 159 cleanup 160 ret void 161 } 162 163 declare void @_Z10wxOnAssertPKwiPKcS0_S0_(i32*, i32, i8*, i32*, i32*) 164 165 declare zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(%struct.wxStringBase*, i32, i32*, i32) 166 167 declare %struct.tm* @gmtime_r(i32*, %struct.tm*) 168 169 declare zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE(%struct.wxDateTime*, %"struct.wxDateTime::TimeZone"*) 170 171 declare %struct.wxStringBase* @_ZN12wxStringBase6appendEmw(%struct.wxStringBase*, i32, i32) 172 173 declare %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw(%struct.wxStringBase*, i32*) 174 175 declare void @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret , i32*, ...) 176 177 declare i32 @__gxx_personality_v0(...) 178