[ARM] Generate 8.1-m CSINC, CSNEG and CSINV instructions.
[llvm-core.git] / test / CodeGen / Thumb2 / cbnz.ll
blobe11c4038678c4b7873acdbd014bf6cddb354d61e
1 ; RUN: llc -mtriple thumbv7-unknown-linux -o - %s | FileCheck %s
3 declare void @x()
4 declare void @y()
6 define void @f(i32 %x, i32 %y) {
7   ; CHECK-LABEL: f:
8   ; CHECK: cbnz
9   %p = icmp eq i32 %x, 0
10   br i1 %p, label %t, label %f
13   call void @x()
14   call void @x()
15   call void @x()
16   call void @x()
17   call void @x()
18   call void @x()
19   call void @x()
20   call void @x()
21   call void @x()
22   call void @x()
23   call void @x()
24   call void @x()
25   call void @x()
26   call void @x()
27   call void @x()
28   call void @x()
29   ; CHECK: cbz
30   %q = icmp eq i32 %y, 0
31   br i1 %q, label %t2, label %f
33 t2:
34   call void @x()
35   call void @x()
36   call void @x()
37   call void @x()
38   call void @x()
39   call void @x()
40   call void @x()
41   call void @x()
42   call void @x()
43   call void @x()
44   call void @x()
45   call void @x()
46   call void @x()
47   call void @x()
48   call void @x()
49   br label %f
52   call void @y()
53   ret void