Test that prune-eh doesn't make deductions based
[oota-llvm.git] / test / Transforms / GCSE / 2002-05-14-OperandSwap.ll
1 ; This entire chain of computation should be optimized away, but
2 ; wasn't because the two multiplies were not detected as being identical.
3 ;
4 ; RUN: llvm-as < %s | opt -gcse -instcombine -dce | \
5 ; RUN:    llvm-dis | not grep sub
6
7 define i32 @vnum_test4(i32* %data) {
8         %idx1 = getelementptr i32* %data, i64 1         ; <i32*> [#uses=1]
9         %idx2 = getelementptr i32* %data, i64 3         ; <i32*> [#uses=1]
10         %reg1101 = load i32* %idx1              ; <i32> [#uses=2]
11         %reg1111 = load i32* %idx2              ; <i32> [#uses=2]
12         %reg109 = mul i32 %reg1101, %reg1111            ; <i32> [#uses=1]
13         %reg108 = mul i32 %reg1111, %reg1101            ; <i32> [#uses=1]
14         %reg121 = sub i32 %reg108, %reg109              ; <i32> [#uses=1]
15         ret i32 %reg121
16 }
17