1; RUN: llc < %s
2; rdar://5707064
3
4define i32 @f(i16* %pc) {
5entry:
6	%acc = alloca i64, align 8		; <i64*> [#uses=4]
7	%tmp97 = load i64* %acc, align 8		; <i64> [#uses=1]
8	%tmp98 = and i64 %tmp97, 4294967295		; <i64> [#uses=1]
9	%tmp99 = load i64* null, align 8		; <i64> [#uses=1]
10	%tmp100 = and i64 %tmp99, 4294967295		; <i64> [#uses=1]
11	%tmp101 = mul i64 %tmp98, %tmp100		; <i64> [#uses=1]
12	%tmp103 = lshr i64 %tmp101, 0		; <i64> [#uses=1]
13	%tmp104 = load i64* %acc, align 8		; <i64> [#uses=1]
14	%.cast105 = zext i32 32 to i64		; <i64> [#uses=1]
15	%tmp106 = lshr i64 %tmp104, %.cast105		; <i64> [#uses=1]
16	%tmp107 = load i64* null, align 8		; <i64> [#uses=1]
17	%tmp108 = and i64 %tmp107, 4294967295		; <i64> [#uses=1]
18	%tmp109 = mul i64 %tmp106, %tmp108		; <i64> [#uses=1]
19	%tmp112 = add i64 %tmp109, 0		; <i64> [#uses=1]
20	%tmp116 = add i64 %tmp112, 0		; <i64> [#uses=1]
21	%tmp117 = add i64 %tmp103, %tmp116		; <i64> [#uses=1]
22	%tmp118 = load i64* %acc, align 8		; <i64> [#uses=1]
23	%tmp120 = lshr i64 %tmp118, 0		; <i64> [#uses=1]
24	%tmp121 = load i64* null, align 8		; <i64> [#uses=1]
25	%tmp123 = lshr i64 %tmp121, 0		; <i64> [#uses=1]
26	%tmp124 = mul i64 %tmp120, %tmp123		; <i64> [#uses=1]
27	%tmp126 = shl i64 %tmp124, 0		; <i64> [#uses=1]
28	%tmp127 = add i64 %tmp117, %tmp126		; <i64> [#uses=1]
29	store i64 %tmp127, i64* %acc, align 8
30	ret i32 0
31}
32