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) 27