blob: 608becd9c3a9e98e90dfc7761f3f28a1f2e11c64 [file] [log] [blame]
Owen Anderson7c856c02008-08-16 00:00:54 +00001; RUN: llvm-as < %s | opt -reassociate -gvn -instcombine | llvm-dis | not grep add
Chris Lattnerf4946df2005-05-08 20:56:02 +00002
Tanya Lattner7f40dea2008-03-19 04:36:04 +00003@a = weak global i32 0 ; <i32*> [#uses=1]
4@b = weak global i32 0 ; <i32*> [#uses=1]
5@c = weak global i32 0 ; <i32*> [#uses=1]
6@d = weak global i32 0 ; <i32*> [#uses=0]
Chris Lattnerf4946df2005-05-08 20:56:02 +00007
Tanya Lattner7f40dea2008-03-19 04:36:04 +00008define i32 @foo() {
9 %tmp.0 = load i32* @a ; <i32> [#uses=2]
10 %tmp.1 = load i32* @b ; <i32> [#uses=2]
11 ; (a+b)
12 %tmp.2 = add i32 %tmp.0, %tmp.1 ; <i32> [#uses=1]
13 %tmp.4 = load i32* @c ; <i32> [#uses=2]
14 ; (a+b)+c
15 %tmp.5 = add i32 %tmp.2, %tmp.4 ; <i32> [#uses=1]
16 ; (a+c)
17 %tmp.8 = add i32 %tmp.0, %tmp.4 ; <i32> [#uses=1]
18 ; (a+c)+b
19 %tmp.11 = add i32 %tmp.8, %tmp.1 ; <i32> [#uses=1]
20 ; X ^ X = 0
21 %RV = xor i32 %tmp.5, %tmp.11 ; <i32> [#uses=1]
22 ret i32 %RV
Chris Lattnerf4946df2005-05-08 20:56:02 +000023}