xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/peephole-bitcast.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; XFAIL: *
3*9880d681SAndroid Build Coastguard Worker; PR11364
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker; vmov s0, r0 + vmov r0, s0 should have been optimized away.
6*9880d681SAndroid Build Coastguard Worker; rdar://9104514
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; Peephole leaves a dead vmovsr instruction behind, and depends on linear scan
9*9880d681SAndroid Build Coastguard Worker; to remove it.
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine void @t(float %x) nounwind ssp {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL:     t:
14*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov
15*9880d681SAndroid Build Coastguard Worker; CHECK:     bl
16*9880d681SAndroid Build Coastguard Worker  %0 = bitcast float %x to i32
17*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult i32 %0, 2139095039
18*9880d681SAndroid Build Coastguard Worker  br i1 %cmp, label %if.then, label %if.end
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %entry
21*9880d681SAndroid Build Coastguard Worker  tail call void @doSomething(float %x) nounwind
22*9880d681SAndroid Build Coastguard Worker  br label %if.end
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerif.end:                                           ; preds = %if.then, %entry
25*9880d681SAndroid Build Coastguard Worker  ret void
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdeclare void @doSomething(float)
29