Eli Friedman | 9c73a57 | 2011-08-24 22:33:28 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=x86 | FileCheck %s |
| 2 | |
| 3 | ; 64-bit load/store on x86-32 |
| 4 | ; FIXME: The generated code can be substantially improved. |
| 5 | |
| 6 | define void @test1(i64* %ptr, i64 %val1) { |
| 7 | ; CHECK: test1 |
| 8 | ; CHECK: cmpxchg8b |
| 9 | ; CHECK-NEXT: jne |
Eli Friedman | f151821 | 2011-09-13 20:50:54 +0000 | [diff] [blame] | 10 | store atomic i64 %val1, i64* %ptr seq_cst, align 8 |
Eli Friedman | 9c73a57 | 2011-08-24 22:33:28 +0000 | [diff] [blame] | 11 | ret void |
| 12 | } |
| 13 | |
| 14 | define i64 @test2(i64* %ptr) { |
| 15 | ; CHECK: test2 |
| 16 | ; CHECK: cmpxchg8b |
Eli Friedman | f151821 | 2011-09-13 20:50:54 +0000 | [diff] [blame] | 17 | %val = load atomic i64* %ptr seq_cst, align 8 |
Eli Friedman | 9c73a57 | 2011-08-24 22:33:28 +0000 | [diff] [blame] | 18 | ret i64 %val |
| 19 | } |