blob: 4a2d6000bbc7bfd0962f23daa47e96e09321786b [file] [log] [blame]
Jim Grosbach92bf81d2011-07-12 16:06:01 +00001; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
Jim Grosbach25e6d482011-07-08 21:50:04 +00002; If-conversion defeats the purpose of this test, which is to check CBZ
Jim Grosbach92bf81d2011-07-12 16:06:01 +00003; generation, so use memory barrier instruction to make sure it doesn't
4; happen and we get actual branches.
Evan Chenged338e82009-07-11 07:26:20 +00005
6define i32 @t1(i32 %a, i32 %b, i32 %c) {
Evan Cheng1107f032009-11-01 18:13:29 +00007; CHECK: t1:
8; CHECK: cbz
Eli Friedman47d3ee52011-09-26 21:36:10 +00009 %tmp2 = icmp eq i32 %a, 0
10 br i1 %tmp2, label %cond_false, label %cond_true
Evan Chenged338e82009-07-11 07:26:20 +000011
12cond_true:
Eli Friedman47d3ee52011-09-26 21:36:10 +000013 fence seq_cst
14 %tmp5 = add i32 %b, 1
15 %tmp6 = and i32 %tmp5, %c
16 ret i32 %tmp6
Evan Chenged338e82009-07-11 07:26:20 +000017
18cond_false:
Eli Friedman47d3ee52011-09-26 21:36:10 +000019 fence seq_cst
20 %tmp7 = add i32 %b, -1
21 %tmp8 = xor i32 %tmp7, %c
22 ret i32 %tmp8
Evan Chenged338e82009-07-11 07:26:20 +000023}