blob: fbf86a9f583000dbca44e9d3554708df5e305837 [file] [log] [blame]
Tanya Lattner7f40dea2008-03-19 04:36:04 +00001; RUN: llvm-as < %s | opt -reassociate -gcse -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}