blob: ad56339997b95db9d3a7f060378137f4b562b405 [file] [log] [blame]
Dan Gohman5bb7c7c2009-09-08 22:34:10 +00001; RUN: opt %s -reassociate -gvn -instcombine -S | not grep add
Dan Gohmanf17a25c2007-07-18 16:29:46 +00002
Tanya Lattner028031a2008-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]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007
Tanya Lattner028031a2008-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
Dan Gohmanf17a25c2007-07-18 16:29:46 +000023}