; Reassociation should apply to Add, Mul, And, Or, & Xor
;
; RUN: llvm-as < %s | opt -reassociate -constprop -instcombine -die | llvm-dis | not grep 12

define i32 @test_mul(i32 %arg) {
	%tmp1 = mul i32 12, %arg		; <i32> [#uses=1]
	%tmp2 = mul i32 %tmp1, 12		; <i32> [#uses=1]
	ret i32 %tmp2
}

define i32 @test_and(i32 %arg) {
	%tmp1 = and i32 14, %arg		; <i32> [#uses=1]
	%tmp2 = and i32 %tmp1, 14		; <i32> [#uses=1]
	ret i32 %tmp2
}

define i32 @test_or(i32 %arg) {
	%tmp1 = or i32 14, %arg		; <i32> [#uses=1]
	%tmp2 = or i32 %tmp1, 14		; <i32> [#uses=1]
	ret i32 %tmp2
}

define i32 @test_xor(i32 %arg) {
	%tmp1 = xor i32 12, %arg		; <i32> [#uses=1]
	%tmp2 = xor i32 %tmp1, 12		; <i32> [#uses=1]
	ret i32 %tmp2
}

