Evan Cheng | 7da9ecf | 2010-01-13 00:30:23 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=x86-64 | FileCheck %s |
| 2 | ; rdar://7529457 |
Evan Cheng | 7da9ecf | 2010-01-13 00:30:23 +0000 | [diff] [blame] | 3 | |
| 4 | define i64 @t(i64 %A, i64 %B, i32* %P, i64 *%P2) nounwind { |
| 5 | ; CHECK: t: |
Bill Wendling | d336de3 | 2011-04-14 01:46:37 +0000 | [diff] [blame] | 6 | ; CHECK: movslq %e{{.*}}, %rax |
Evan Cheng | 7da9ecf | 2010-01-13 00:30:23 +0000 | [diff] [blame] | 7 | ; CHECK: movq %rax |
| 8 | ; CHECK: movl %eax |
| 9 | %C = add i64 %A, %B |
| 10 | %D = trunc i64 %C to i32 |
Chris Lattner | d2bf432 | 2011-11-27 06:54:59 +0000 | [diff] [blame] | 11 | store volatile i32 %D, i32* %P |
Evan Cheng | 7da9ecf | 2010-01-13 00:30:23 +0000 | [diff] [blame] | 12 | %E = shl i64 %C, 32 |
| 13 | %F = ashr i64 %E, 32 |
Chris Lattner | d2bf432 | 2011-11-27 06:54:59 +0000 | [diff] [blame] | 14 | store volatile i64 %F, i64 *%P2 |
| 15 | store volatile i32 %D, i32* %P |
Evan Cheng | 7da9ecf | 2010-01-13 00:30:23 +0000 | [diff] [blame] | 16 | ret i64 undef |
| 17 | } |