Dan Gohman | fce288f | 2009-09-09 00:09:15 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s |
Evan Cheng | 1e249e3 | 2009-06-25 20:59:23 +0000 | [diff] [blame] | 2 | |
| 3 | define i64 @f1(i64 %a, i64 %b) { |
| 4 | entry: |
Evan Cheng | 05c269c | 2009-08-12 01:49:45 +0000 | [diff] [blame] | 5 | ; CHECK: f1: |
| 6 | ; CHECK: subs r0, r0, r2 |
| 7 | ; CHECK: sbcs r1, r3 |
Evan Cheng | 1e249e3 | 2009-06-25 20:59:23 +0000 | [diff] [blame] | 8 | %tmp = sub i64 %a, %b |
| 9 | ret i64 %tmp |
| 10 | } |
| 11 | |
| 12 | define i64 @f2(i64 %a, i64 %b) { |
| 13 | entry: |
Evan Cheng | 05c269c | 2009-08-12 01:49:45 +0000 | [diff] [blame] | 14 | ; CHECK: f2: |
| 15 | ; CHECK: adds r0, r0, r0 |
| 16 | ; CHECK: adcs r1, r1 |
| 17 | ; CHECK: subs r0, r0, r2 |
| 18 | ; CHECK: sbcs r1, r3 |
Evan Cheng | 1e249e3 | 2009-06-25 20:59:23 +0000 | [diff] [blame] | 19 | %tmp1 = shl i64 %a, 1 |
| 20 | %tmp2 = sub i64 %tmp1, %b |
| 21 | ret i64 %tmp2 |
| 22 | } |