1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mcpu=i386 | not grep 255 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker %struct.CONSTRAINT = type { i32, i32, i32, i32 } 4*9880d681SAndroid Build Coastguard Worker %struct.FIRST_UNION = type { %struct.anon } 5*9880d681SAndroid Build Coastguard Worker %struct.FOURTH_UNION = type { %struct.CONSTRAINT } 6*9880d681SAndroid Build Coastguard Worker %struct.LIST = type { %struct.rec*, %struct.rec* } 7*9880d681SAndroid Build Coastguard Worker %struct.SECOND_UNION = type { { i16, i8, i8 } } 8*9880d681SAndroid Build Coastguard Worker %struct.THIRD_UNION = type { { [2 x i32], [2 x i32] } } 9*9880d681SAndroid Build Coastguard Worker %struct.anon = type { i8, i8, i32 } 10*9880d681SAndroid Build Coastguard Worker %struct.head_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, %struct.FOURTH_UNION, %struct.rec*, { %struct.rec* }, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, i32 } 11*9880d681SAndroid Build Coastguard Worker %struct.rec = type { %struct.head_type } 12*9880d681SAndroid Build Coastguard Worker %struct.symbol_type = type <{ [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, i16, i16, i8, i8, i8, i8 }> 13*9880d681SAndroid Build Coastguard Worker %struct.word_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, [4 x i8] } 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine void @InsertSym_bb1163(%struct.rec** %s) { 16*9880d681SAndroid Build Coastguard WorkernewFuncRoot: 17*9880d681SAndroid Build Coastguard Worker br label %bb1163 18*9880d681SAndroid Build Coastguard Workerbb1233.exitStub: ; preds = %bb1163 19*9880d681SAndroid Build Coastguard Worker ret void 20*9880d681SAndroid Build Coastguard Workerbb1163: ; preds = %newFuncRoot 21*9880d681SAndroid Build Coastguard Worker %tmp1164 = load %struct.rec*, %struct.rec** %s, align 4 ; <%struct.rec*> [#uses=1] 22*9880d681SAndroid Build Coastguard Worker %tmp1165 = getelementptr %struct.rec, %struct.rec* %tmp1164, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 23*9880d681SAndroid Build Coastguard Worker %tmp11651166 = bitcast %struct.head_type* %tmp1165 to %struct.symbol_type* ; <%struct.symbol_type*> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker %tmp1167 = getelementptr %struct.symbol_type, %struct.symbol_type* %tmp11651166, i32 0, i32 3 ; <%struct.rec**> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker %tmp1168 = load %struct.rec*, %struct.rec** %tmp1167, align 1 ; <%struct.rec*> [#uses=2] 26*9880d681SAndroid Build Coastguard Worker %tmp1169 = load %struct.rec*, %struct.rec** %s, align 4 ; <%struct.rec*> [#uses=1] 27*9880d681SAndroid Build Coastguard Worker %tmp1170 = getelementptr %struct.rec, %struct.rec* %tmp1169, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 28*9880d681SAndroid Build Coastguard Worker %tmp11701171 = bitcast %struct.head_type* %tmp1170 to %struct.symbol_type* ; <%struct.symbol_type*> [#uses=1] 29*9880d681SAndroid Build Coastguard Worker %tmp1172 = getelementptr %struct.symbol_type, %struct.symbol_type* %tmp11701171, i32 0, i32 3 ; <%struct.rec**> [#uses=1] 30*9880d681SAndroid Build Coastguard Worker %tmp1173 = load %struct.rec*, %struct.rec** %tmp1172, align 1 ; <%struct.rec*> [#uses=2] 31*9880d681SAndroid Build Coastguard Worker %tmp1174 = getelementptr %struct.rec, %struct.rec* %tmp1173, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 32*9880d681SAndroid Build Coastguard Worker %tmp11741175 = bitcast %struct.head_type* %tmp1174 to %struct.word_type* ; <%struct.word_type*> [#uses=1] 33*9880d681SAndroid Build Coastguard Worker %tmp1176 = getelementptr %struct.word_type, %struct.word_type* %tmp11741175, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1] 34*9880d681SAndroid Build Coastguard Worker %tmp1177 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1176, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1] 35*9880d681SAndroid Build Coastguard Worker %tmp11771178 = bitcast { i16, i8, i8 }* %tmp1177 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1] 36*9880d681SAndroid Build Coastguard Worker %tmp1179 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11771178, i32 0, i32 2 ; <i8*> [#uses=2] 37*9880d681SAndroid Build Coastguard Worker %mask1180 = and i8 1, 1 ; <i8> [#uses=2] 38*9880d681SAndroid Build Coastguard Worker %tmp1181 = load i8, i8* %tmp1179, align 1 ; <i8> [#uses=1] 39*9880d681SAndroid Build Coastguard Worker %tmp1182 = shl i8 %mask1180, 7 ; <i8> [#uses=1] 40*9880d681SAndroid Build Coastguard Worker %tmp1183 = and i8 %tmp1181, 127 ; <i8> [#uses=1] 41*9880d681SAndroid Build Coastguard Worker %tmp1184 = or i8 %tmp1183, %tmp1182 ; <i8> [#uses=1] 42*9880d681SAndroid Build Coastguard Worker store i8 %tmp1184, i8* %tmp1179, align 1 43*9880d681SAndroid Build Coastguard Worker %mask1185 = and i8 %mask1180, 1 ; <i8> [#uses=0] 44*9880d681SAndroid Build Coastguard Worker %tmp1186 = getelementptr %struct.rec, %struct.rec* %tmp1173, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 45*9880d681SAndroid Build Coastguard Worker %tmp11861187 = bitcast %struct.head_type* %tmp1186 to %struct.word_type* ; <%struct.word_type*> [#uses=1] 46*9880d681SAndroid Build Coastguard Worker %tmp1188 = getelementptr %struct.word_type, %struct.word_type* %tmp11861187, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1] 47*9880d681SAndroid Build Coastguard Worker %tmp1189 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1188, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1] 48*9880d681SAndroid Build Coastguard Worker %tmp11891190 = bitcast { i16, i8, i8 }* %tmp1189 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1] 49*9880d681SAndroid Build Coastguard Worker %tmp1191 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11891190, i32 0, i32 2 ; <i8*> [#uses=1] 50*9880d681SAndroid Build Coastguard Worker %tmp1192 = load i8, i8* %tmp1191, align 1 ; <i8> [#uses=1] 51*9880d681SAndroid Build Coastguard Worker %tmp1193 = lshr i8 %tmp1192, 7 ; <i8> [#uses=1] 52*9880d681SAndroid Build Coastguard Worker %mask1194 = and i8 %tmp1193, 1 ; <i8> [#uses=2] 53*9880d681SAndroid Build Coastguard Worker %mask1195 = and i8 %mask1194, 1 ; <i8> [#uses=0] 54*9880d681SAndroid Build Coastguard Worker %tmp1196 = getelementptr %struct.rec, %struct.rec* %tmp1168, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 55*9880d681SAndroid Build Coastguard Worker %tmp11961197 = bitcast %struct.head_type* %tmp1196 to %struct.word_type* ; <%struct.word_type*> [#uses=1] 56*9880d681SAndroid Build Coastguard Worker %tmp1198 = getelementptr %struct.word_type, %struct.word_type* %tmp11961197, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1] 57*9880d681SAndroid Build Coastguard Worker %tmp1199 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1198, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1] 58*9880d681SAndroid Build Coastguard Worker %tmp11991200 = bitcast { i16, i8, i8 }* %tmp1199 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1] 59*9880d681SAndroid Build Coastguard Worker %tmp1201 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11991200, i32 0, i32 1 ; <i8*> [#uses=2] 60*9880d681SAndroid Build Coastguard Worker %mask1202 = and i8 %mask1194, 1 ; <i8> [#uses=2] 61*9880d681SAndroid Build Coastguard Worker %tmp1203 = load i8, i8* %tmp1201, align 1 ; <i8> [#uses=1] 62*9880d681SAndroid Build Coastguard Worker %tmp1204 = shl i8 %mask1202, 1 ; <i8> [#uses=1] 63*9880d681SAndroid Build Coastguard Worker %tmp1205 = and i8 %tmp1204, 2 ; <i8> [#uses=1] 64*9880d681SAndroid Build Coastguard Worker %tmp1206 = and i8 %tmp1203, -3 ; <i8> [#uses=1] 65*9880d681SAndroid Build Coastguard Worker %tmp1207 = or i8 %tmp1206, %tmp1205 ; <i8> [#uses=1] 66*9880d681SAndroid Build Coastguard Worker store i8 %tmp1207, i8* %tmp1201, align 1 67*9880d681SAndroid Build Coastguard Worker %mask1208 = and i8 %mask1202, 1 ; <i8> [#uses=0] 68*9880d681SAndroid Build Coastguard Worker %tmp1209 = getelementptr %struct.rec, %struct.rec* %tmp1168, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 69*9880d681SAndroid Build Coastguard Worker %tmp12091210 = bitcast %struct.head_type* %tmp1209 to %struct.word_type* ; <%struct.word_type*> [#uses=1] 70*9880d681SAndroid Build Coastguard Worker %tmp1211 = getelementptr %struct.word_type, %struct.word_type* %tmp12091210, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1] 71*9880d681SAndroid Build Coastguard Worker %tmp1212 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1211, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1] 72*9880d681SAndroid Build Coastguard Worker %tmp12121213 = bitcast { i16, i8, i8 }* %tmp1212 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1] 73*9880d681SAndroid Build Coastguard Worker %tmp1214 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp12121213, i32 0, i32 1 ; <i8*> [#uses=1] 74*9880d681SAndroid Build Coastguard Worker %tmp1215 = load i8, i8* %tmp1214, align 1 ; <i8> [#uses=1] 75*9880d681SAndroid Build Coastguard Worker %tmp1216 = shl i8 %tmp1215, 6 ; <i8> [#uses=1] 76*9880d681SAndroid Build Coastguard Worker %tmp1217 = lshr i8 %tmp1216, 7 ; <i8> [#uses=1] 77*9880d681SAndroid Build Coastguard Worker %mask1218 = and i8 %tmp1217, 1 ; <i8> [#uses=2] 78*9880d681SAndroid Build Coastguard Worker %mask1219 = and i8 %mask1218, 1 ; <i8> [#uses=0] 79*9880d681SAndroid Build Coastguard Worker %tmp1220 = load %struct.rec*, %struct.rec** %s, align 4 ; <%struct.rec*> [#uses=1] 80*9880d681SAndroid Build Coastguard Worker %tmp1221 = getelementptr %struct.rec, %struct.rec* %tmp1220, i32 0, i32 0 ; <%struct.head_type*> [#uses=1] 81*9880d681SAndroid Build Coastguard Worker %tmp12211222 = bitcast %struct.head_type* %tmp1221 to %struct.word_type* ; <%struct.word_type*> [#uses=1] 82*9880d681SAndroid Build Coastguard Worker %tmp1223 = getelementptr %struct.word_type, %struct.word_type* %tmp12211222, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1] 83*9880d681SAndroid Build Coastguard Worker %tmp1224 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1223, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1] 84*9880d681SAndroid Build Coastguard Worker %tmp12241225 = bitcast { i16, i8, i8 }* %tmp1224 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1] 85*9880d681SAndroid Build Coastguard Worker %tmp1226 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp12241225, i32 0, i32 1 ; <i8*> [#uses=2] 86*9880d681SAndroid Build Coastguard Worker %mask1227 = and i8 %mask1218, 1 ; <i8> [#uses=2] 87*9880d681SAndroid Build Coastguard Worker %tmp1228 = load i8, i8* %tmp1226, align 1 ; <i8> [#uses=1] 88*9880d681SAndroid Build Coastguard Worker %tmp1229 = and i8 %mask1227, 1 ; <i8> [#uses=1] 89*9880d681SAndroid Build Coastguard Worker %tmp1230 = and i8 %tmp1228, -2 ; <i8> [#uses=1] 90*9880d681SAndroid Build Coastguard Worker %tmp1231 = or i8 %tmp1230, %tmp1229 ; <i8> [#uses=1] 91*9880d681SAndroid Build Coastguard Worker store i8 %tmp1231, i8* %tmp1226, align 1 92*9880d681SAndroid Build Coastguard Worker %mask1232 = and i8 %mask1227, 1 ; <i8> [#uses=0] 93*9880d681SAndroid Build Coastguard Worker br label %bb1233.exitStub 94*9880d681SAndroid Build Coastguard Worker} 95