42 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s2; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s3 4; Make sure that the subfic is generated iff possible5 6define i64 @subtract_from_imm1(i64 %v) nounwind readnone {7entry:8; CHECK-LABEL: subtract_from_imm19; CHECK: subfic 3, 3, 3276710; CHECK: blr11 %sub = sub i64 32767, %v12 ret i64 %sub13}14 15define i64 @subtract_from_imm2(i64 %v) nounwind readnone {16entry:17; CHECK-LABEL: subtract_from_imm218; CHECK-NOT: subfic19; CHECK: blr20 %sub = sub i64 32768, %v21 ret i64 %sub22}23 24define i64 @subtract_from_imm3(i64 %v) nounwind readnone {25entry:26; CHECK-LABEL: subtract_from_imm327; CHECK: subfic 3, 3, -3276828; CHECK: blr29 %sub = sub i64 -32768, %v30 ret i64 %sub31}32 33define i64 @subtract_from_imm4(i64 %v) nounwind readnone {34entry:35; CHECK-LABEL: subtract_from_imm436; CHECK-NOT: subfic37; CHECK: blr38 %sub = sub i64 -32769, %v39 ret i64 %sub40}41 42