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