[AVX512] add PSLLD and PSLLQ Intrinsic
[oota-llvm.git] / test / CodeGen / X86 / 2008-03-07-APIntBug.ll
index 5d1ccad745ade9b007f15f24c6a3377dccac37fd..409bcd51a13b0b53dd0f1e429c7503c52421d3dc 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386 | not grep 255
+; RUN: llc < %s -march=x86 -mcpu=i386 | not grep 255
 
        %struct.CONSTRAINT = type { i32, i32, i32, i32 }
        %struct.FIRST_UNION = type { %struct.anon }
@@ -18,73 +18,73 @@ newFuncRoot:
 bb1233.exitStub:               ; preds = %bb1163
        ret void
 bb1163:                ; preds = %newFuncRoot
-       %tmp1164 = load %struct.rec** %s, align 4               ; <%struct.rec*> [#uses=1]
-       %tmp1165 = getelementptr %struct.rec* %tmp1164, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1164 = load %struct.rec*, %struct.rec** %s, align 4         ; <%struct.rec*> [#uses=1]
+       %tmp1165 = getelementptr %struct.rec, %struct.rec* %tmp1164, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp11651166 = bitcast %struct.head_type* %tmp1165 to %struct.symbol_type*              ; <%struct.symbol_type*> [#uses=1]
-       %tmp1167 = getelementptr %struct.symbol_type* %tmp11651166, i32 0, i32 3                ; <%struct.rec**> [#uses=1]
-       %tmp1168 = load %struct.rec** %tmp1167, align 1         ; <%struct.rec*> [#uses=2]
-       %tmp1169 = load %struct.rec** %s, align 4               ; <%struct.rec*> [#uses=1]
-       %tmp1170 = getelementptr %struct.rec* %tmp1169, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1167 = getelementptr %struct.symbol_type, %struct.symbol_type* %tmp11651166, i32 0, i32 3           ; <%struct.rec**> [#uses=1]
+       %tmp1168 = load %struct.rec*, %struct.rec** %tmp1167, align 1           ; <%struct.rec*> [#uses=2]
+       %tmp1169 = load %struct.rec*, %struct.rec** %s, align 4         ; <%struct.rec*> [#uses=1]
+       %tmp1170 = getelementptr %struct.rec, %struct.rec* %tmp1169, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp11701171 = bitcast %struct.head_type* %tmp1170 to %struct.symbol_type*              ; <%struct.symbol_type*> [#uses=1]
-       %tmp1172 = getelementptr %struct.symbol_type* %tmp11701171, i32 0, i32 3                ; <%struct.rec**> [#uses=1]
-       %tmp1173 = load %struct.rec** %tmp1172, align 1         ; <%struct.rec*> [#uses=2]
-       %tmp1174 = getelementptr %struct.rec* %tmp1173, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1172 = getelementptr %struct.symbol_type, %struct.symbol_type* %tmp11701171, i32 0, i32 3           ; <%struct.rec**> [#uses=1]
+       %tmp1173 = load %struct.rec*, %struct.rec** %tmp1172, align 1           ; <%struct.rec*> [#uses=2]
+       %tmp1174 = getelementptr %struct.rec, %struct.rec* %tmp1173, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp11741175 = bitcast %struct.head_type* %tmp1174 to %struct.word_type*                ; <%struct.word_type*> [#uses=1]
-       %tmp1176 = getelementptr %struct.word_type* %tmp11741175, i32 0, i32 2          ; <%struct.SECOND_UNION*> [#uses=1]
-       %tmp1177 = getelementptr %struct.SECOND_UNION* %tmp1176, i32 0, i32 0           ; <{ i16, i8, i8 }*> [#uses=1]
+       %tmp1176 = getelementptr %struct.word_type, %struct.word_type* %tmp11741175, i32 0, i32 2               ; <%struct.SECOND_UNION*> [#uses=1]
+       %tmp1177 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1176, i32 0, i32 0             ; <{ i16, i8, i8 }*> [#uses=1]
        %tmp11771178 = bitcast { i16, i8, i8 }* %tmp1177 to <{ i8, i8, i8, i8 }>*               ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
-       %tmp1179 = getelementptr <{ i8, i8, i8, i8 }>* %tmp11771178, i32 0, i32 2               ; <i8*> [#uses=2]
+       %tmp1179 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11771178, i32 0, i32 2         ; <i8*> [#uses=2]
        %mask1180 = and i8 1, 1         ; <i8> [#uses=2]
-       %tmp1181 = load i8* %tmp1179, align 1           ; <i8> [#uses=1]
+       %tmp1181 = load i8, i8* %tmp1179, align 1               ; <i8> [#uses=1]
        %tmp1182 = shl i8 %mask1180, 7          ; <i8> [#uses=1]
        %tmp1183 = and i8 %tmp1181, 127         ; <i8> [#uses=1]
        %tmp1184 = or i8 %tmp1183, %tmp1182             ; <i8> [#uses=1]
        store i8 %tmp1184, i8* %tmp1179, align 1
        %mask1185 = and i8 %mask1180, 1         ; <i8> [#uses=0]
-       %tmp1186 = getelementptr %struct.rec* %tmp1173, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1186 = getelementptr %struct.rec, %struct.rec* %tmp1173, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp11861187 = bitcast %struct.head_type* %tmp1186 to %struct.word_type*                ; <%struct.word_type*> [#uses=1]
-       %tmp1188 = getelementptr %struct.word_type* %tmp11861187, i32 0, i32 2          ; <%struct.SECOND_UNION*> [#uses=1]
-       %tmp1189 = getelementptr %struct.SECOND_UNION* %tmp1188, i32 0, i32 0           ; <{ i16, i8, i8 }*> [#uses=1]
+       %tmp1188 = getelementptr %struct.word_type, %struct.word_type* %tmp11861187, i32 0, i32 2               ; <%struct.SECOND_UNION*> [#uses=1]
+       %tmp1189 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1188, i32 0, i32 0             ; <{ i16, i8, i8 }*> [#uses=1]
        %tmp11891190 = bitcast { i16, i8, i8 }* %tmp1189 to <{ i8, i8, i8, i8 }>*               ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
-       %tmp1191 = getelementptr <{ i8, i8, i8, i8 }>* %tmp11891190, i32 0, i32 2               ; <i8*> [#uses=1]
-       %tmp1192 = load i8* %tmp1191, align 1           ; <i8> [#uses=1]
+       %tmp1191 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11891190, i32 0, i32 2         ; <i8*> [#uses=1]
+       %tmp1192 = load i8, i8* %tmp1191, align 1               ; <i8> [#uses=1]
        %tmp1193 = lshr i8 %tmp1192, 7          ; <i8> [#uses=1]
        %mask1194 = and i8 %tmp1193, 1          ; <i8> [#uses=2]
        %mask1195 = and i8 %mask1194, 1         ; <i8> [#uses=0]
-       %tmp1196 = getelementptr %struct.rec* %tmp1168, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1196 = getelementptr %struct.rec, %struct.rec* %tmp1168, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp11961197 = bitcast %struct.head_type* %tmp1196 to %struct.word_type*                ; <%struct.word_type*> [#uses=1]
-       %tmp1198 = getelementptr %struct.word_type* %tmp11961197, i32 0, i32 2          ; <%struct.SECOND_UNION*> [#uses=1]
-       %tmp1199 = getelementptr %struct.SECOND_UNION* %tmp1198, i32 0, i32 0           ; <{ i16, i8, i8 }*> [#uses=1]
+       %tmp1198 = getelementptr %struct.word_type, %struct.word_type* %tmp11961197, i32 0, i32 2               ; <%struct.SECOND_UNION*> [#uses=1]
+       %tmp1199 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1198, i32 0, i32 0             ; <{ i16, i8, i8 }*> [#uses=1]
        %tmp11991200 = bitcast { i16, i8, i8 }* %tmp1199 to <{ i8, i8, i8, i8 }>*               ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
-       %tmp1201 = getelementptr <{ i8, i8, i8, i8 }>* %tmp11991200, i32 0, i32 1               ; <i8*> [#uses=2]
+       %tmp1201 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11991200, i32 0, i32 1         ; <i8*> [#uses=2]
        %mask1202 = and i8 %mask1194, 1         ; <i8> [#uses=2]
-       %tmp1203 = load i8* %tmp1201, align 1           ; <i8> [#uses=1]
+       %tmp1203 = load i8, i8* %tmp1201, align 1               ; <i8> [#uses=1]
        %tmp1204 = shl i8 %mask1202, 1          ; <i8> [#uses=1]
        %tmp1205 = and i8 %tmp1204, 2           ; <i8> [#uses=1]
        %tmp1206 = and i8 %tmp1203, -3          ; <i8> [#uses=1]
        %tmp1207 = or i8 %tmp1206, %tmp1205             ; <i8> [#uses=1]
        store i8 %tmp1207, i8* %tmp1201, align 1
        %mask1208 = and i8 %mask1202, 1         ; <i8> [#uses=0]
-       %tmp1209 = getelementptr %struct.rec* %tmp1168, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1209 = getelementptr %struct.rec, %struct.rec* %tmp1168, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp12091210 = bitcast %struct.head_type* %tmp1209 to %struct.word_type*                ; <%struct.word_type*> [#uses=1]
-       %tmp1211 = getelementptr %struct.word_type* %tmp12091210, i32 0, i32 2          ; <%struct.SECOND_UNION*> [#uses=1]
-       %tmp1212 = getelementptr %struct.SECOND_UNION* %tmp1211, i32 0, i32 0           ; <{ i16, i8, i8 }*> [#uses=1]
+       %tmp1211 = getelementptr %struct.word_type, %struct.word_type* %tmp12091210, i32 0, i32 2               ; <%struct.SECOND_UNION*> [#uses=1]
+       %tmp1212 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1211, i32 0, i32 0             ; <{ i16, i8, i8 }*> [#uses=1]
        %tmp12121213 = bitcast { i16, i8, i8 }* %tmp1212 to <{ i8, i8, i8, i8 }>*               ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
-       %tmp1214 = getelementptr <{ i8, i8, i8, i8 }>* %tmp12121213, i32 0, i32 1               ; <i8*> [#uses=1]
-       %tmp1215 = load i8* %tmp1214, align 1           ; <i8> [#uses=1]
+       %tmp1214 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp12121213, i32 0, i32 1         ; <i8*> [#uses=1]
+       %tmp1215 = load i8, i8* %tmp1214, align 1               ; <i8> [#uses=1]
        %tmp1216 = shl i8 %tmp1215, 6           ; <i8> [#uses=1]
        %tmp1217 = lshr i8 %tmp1216, 7          ; <i8> [#uses=1]
        %mask1218 = and i8 %tmp1217, 1          ; <i8> [#uses=2]
        %mask1219 = and i8 %mask1218, 1         ; <i8> [#uses=0]
-       %tmp1220 = load %struct.rec** %s, align 4               ; <%struct.rec*> [#uses=1]
-       %tmp1221 = getelementptr %struct.rec* %tmp1220, i32 0, i32 0            ; <%struct.head_type*> [#uses=1]
+       %tmp1220 = load %struct.rec*, %struct.rec** %s, align 4         ; <%struct.rec*> [#uses=1]
+       %tmp1221 = getelementptr %struct.rec, %struct.rec* %tmp1220, i32 0, i32 0               ; <%struct.head_type*> [#uses=1]
        %tmp12211222 = bitcast %struct.head_type* %tmp1221 to %struct.word_type*                ; <%struct.word_type*> [#uses=1]
-       %tmp1223 = getelementptr %struct.word_type* %tmp12211222, i32 0, i32 2          ; <%struct.SECOND_UNION*> [#uses=1]
-       %tmp1224 = getelementptr %struct.SECOND_UNION* %tmp1223, i32 0, i32 0           ; <{ i16, i8, i8 }*> [#uses=1]
+       %tmp1223 = getelementptr %struct.word_type, %struct.word_type* %tmp12211222, i32 0, i32 2               ; <%struct.SECOND_UNION*> [#uses=1]
+       %tmp1224 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1223, i32 0, i32 0             ; <{ i16, i8, i8 }*> [#uses=1]
        %tmp12241225 = bitcast { i16, i8, i8 }* %tmp1224 to <{ i8, i8, i8, i8 }>*               ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
-       %tmp1226 = getelementptr <{ i8, i8, i8, i8 }>* %tmp12241225, i32 0, i32 1               ; <i8*> [#uses=2]
+       %tmp1226 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp12241225, i32 0, i32 1         ; <i8*> [#uses=2]
        %mask1227 = and i8 %mask1218, 1         ; <i8> [#uses=2]
-       %tmp1228 = load i8* %tmp1226, align 1           ; <i8> [#uses=1]
+       %tmp1228 = load i8, i8* %tmp1226, align 1               ; <i8> [#uses=1]
        %tmp1229 = and i8 %mask1227, 1          ; <i8> [#uses=1]
        %tmp1230 = and i8 %tmp1228, -2          ; <i8> [#uses=1]
        %tmp1231 = or i8 %tmp1230, %tmp1229             ; <i8> [#uses=1]