Nemanja Ivanovic | 195c545 | 2017-02-24 18:16:06 +0000 | [diff] [blame] | 1 | ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s |
| 2 | ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s |
| 3 | |
| 4 | ; Make sure that the subfic is generated iff possible |
| 5 | |
| 6 | define i64 @subtract_from_imm1(i64 %v) nounwind readnone { |
| 7 | entry: |
| 8 | ; CHECK-LABEL: subtract_from_imm1 |
| 9 | ; CHECK: subfic 3, 3, 32767 |
| 10 | ; CHECK: blr |
| 11 | %sub = sub i64 32767, %v |
| 12 | ret i64 %sub |
| 13 | } |
| 14 | |
| 15 | define i64 @subtract_from_imm2(i64 %v) nounwind readnone { |
| 16 | entry: |
| 17 | ; CHECK-LABEL: subtract_from_imm2 |
| 18 | ; CHECK-NOT: subfic |
| 19 | ; CHECK: blr |
| 20 | %sub = sub i64 32768, %v |
| 21 | ret i64 %sub |
| 22 | } |
| 23 | |
| 24 | define i64 @subtract_from_imm3(i64 %v) nounwind readnone { |
| 25 | entry: |
| 26 | ; CHECK-LABEL: subtract_from_imm3 |
| 27 | ; CHECK: subfic 3, 3, -32768 |
| 28 | ; CHECK: blr |
| 29 | %sub = sub i64 -32768, %v |
| 30 | ret i64 %sub |
| 31 | } |
| 32 | |
| 33 | define i64 @subtract_from_imm4(i64 %v) nounwind readnone { |
| 34 | entry: |
| 35 | ; CHECK-LABEL: subtract_from_imm4 |
| 36 | ; CHECK-NOT: subfic |
| 37 | ; CHECK: blr |
| 38 | %sub = sub i64 -32769, %v |
| 39 | ret i64 %sub |
| 40 | } |
| 41 | |