[ARM] Masked load and store and predicate tests. NFC
[llvm-core.git] / test / CodeGen / Thumb2 / ifcvt-compare.ll
blob688195f579ebf2983ae41d615ba72504cf0ee9de
1 ; RUN: llc -mtriple=thumbv7-unknown-linux %s -o - | FileCheck %s
3 declare void @x()
5 define void @f0(i32 %x) optsize {
6   ; CHECK-LABEL: f0:
7   ; CHECK: cbz
8   %p = icmp eq i32 %x, 0
9   br i1 %p, label %t, label %f
12   call void @x()
13   br label %f
16   ret void
19 define void @f1(i32 %x) optsize {
20   ; CHECK-LABEL: f1:
21   ; CHECK: cmp r0, #1
22   ; CHECK: it ne
23   ; CHECK-NEXT: bxne lr
24   %p = icmp eq i32 %x, 1
25   br i1 %p, label %t, label %f
28   call void @x()
29   br label %f
32   ret void
35 define void @f2(i32 %x) {
36   ; CHECK-LABEL: f2:
37   ; CHECK: cmp r0, #0
38   ; CHECK: it ne
39   ; CHECK-NEXT: bxne lr
40   %p = icmp eq i32 %x, 0
41   br i1 %p, label %t, label %f
44   call void @x()
45   br label %f
48   ret void