ARM pop of a single register encodes as post-indexed LDR.
[oota-llvm.git] / test / CodeGen / ARM / peephole-bitcast.ll
1 ; RUN: llc < %s -march=arm -mcpu=cortex-a8 -regalloc=linearscan | FileCheck %s
2
3 ; vmov s0, r0 + vmov r0, s0 should have been optimized away.
4 ; rdar://9104514
5
6 ; Peephole leaves a dead vmovsr instruction behind, and depends on linear scan
7 ; to remove it.
8
9 define void @t(float %x) nounwind ssp {
10 entry:
11 ; CHECK:     t:
12 ; CHECK-NOT: vmov
13 ; CHECK:     bl
14   %0 = bitcast float %x to i32
15   %cmp = icmp ult i32 %0, 2139095039
16   br i1 %cmp, label %if.then, label %if.end
17
18 if.then:                                          ; preds = %entry
19   tail call void @doSomething(float %x) nounwind
20   br label %if.end
21
22 if.end:                                           ; preds = %if.then, %entry
23   ret void
24 }
25
26 declare void @doSomething(float)