• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=thumbv6m-eabi -verify-machineinstrs < %s | FileCheck --check-prefix=CHECK --check-prefix=T1 %s
2; RUN: llc -mtriple=thumbv7m-eabi -verify-machineinstrs < %s | FileCheck --check-prefix=CHECK --check-prefix=T2 %s
3
4; CHECK-LABEL: addri1:
5; T1: adds r0, r0, #3
6; T1-NEXT: b{{eq|ne}}
7; T2: adds r0, #3
8; T2-NOT: cmp
9define i32 @addri1(i32 %a, i32 %b) {
10  %c = add i32 %a, 3
11  %d = icmp eq i32 %c, 0
12  br i1 %d, label %true, label %false
13
14true:
15  ret i32 4
16false:
17  ret i32 5
18}
19
20; CHECK-LABEL: addri2:
21; CHECK: adds r0, #254
22; T1-NEXT: b{{eq|ne}}
23; T2-NOT: cmp
24define i32 @addri2(i32 %a, i32 %b) {
25  %c = add i32 %a, 254
26  %d = icmp eq i32 %c, 0
27  br i1 %d, label %true, label %false
28
29true:
30  ret i32 4
31false:
32  ret i32 5
33}
34