Bill Wendling | d5cc8b8 | 2012-04-24 09:15:38 +0000 | [diff] [blame^] | 1 | ; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s |
Owen Anderson | fe9388c | 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 | d5cc8b8 | 2012-04-24 09:15:38 +0000 | [diff] [blame^] | 6 | ; CHECK: ret i32 0 |
Owen Anderson | fe9388c | 2009-02-04 05:16:46 +0000 | [diff] [blame] | 7 | |
| 8 | define i32 @main() { |
| 9 | %a = load i32* @flag0 |
Eli Friedman | 46cb5af | 2011-09-26 20:15:28 +0000 | [diff] [blame] | 10 | %b = atomicrmw xchg i32* @turn, i32 1 monotonic |
Owen Anderson | fe9388c | 2009-02-04 05:16:46 +0000 | [diff] [blame] | 11 | %c = load i32* @flag0 |
Chris Lattner | 2d17506 | 2009-10-13 17:39:29 +0000 | [diff] [blame] | 12 | %d = sub i32 %a, %c |
| 13 | ret i32 %d |
Owen Anderson | fe9388c | 2009-02-04 05:16:46 +0000 | [diff] [blame] | 14 | } |