Bill Wendling | cd6df16 | 2012-04-24 09:15:38 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s |
Owen Anderson | 1caf7fe | 2009-02-04 05:16:46 +0000 | [diff] [blame] | 2 | |
| 3 | @flag0 = internal global i32 zeroinitializer |
| 4 | @turn = internal global i32 zeroinitializer |
| 5 | |
Bill Wendling | cd6df16 | 2012-04-24 09:15:38 +0000 | [diff] [blame] | 6 | ; CHECK: ret i32 0 |
Owen Anderson | 1caf7fe | 2009-02-04 05:16:46 +0000 | [diff] [blame] | 7 | |
| 8 | define i32 @main() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 9 | %a = load i32, i32* @flag0 |
Eli Friedman | 5c91891 | 2011-09-26 20:15:28 +0000 | [diff] [blame] | 10 | %b = atomicrmw xchg i32* @turn, i32 1 monotonic |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 11 | %c = load i32, i32* @flag0 |
Chris Lattner | faa0320 | 2009-10-13 17:39:29 +0000 | [diff] [blame] | 12 | %d = sub i32 %a, %c |
| 13 | ret i32 %d |
Owen Anderson | 1caf7fe | 2009-02-04 05:16:46 +0000 | [diff] [blame] | 14 | } |