[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / llvm / test / CodeGen / ARM / float-ops-xo.ll
blob6ff85ad0b6f767c05b48220b49e3cfad24752762
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; RUN: llc < %s -mtriple=thumbv8.1m.main-none-eabihf -mattr=+mve,+execute-only | FileCheck %s
3 ; RUN: llc < %s -mtriple=thumbv6m -mattr=+execute-only | FileCheck %s --check-prefix=V6M
5 declare void @ext_fn(float)
7 define void @test1() {
8 ; CHECK-LABEL: test1:
9 ; CHECK:       @ %bb.0: @ %entry
10 ; CHECK-NEXT:    .save {r7, lr}
11 ; CHECK-NEXT:    push {r7, lr}
12 ; CHECK-NEXT:    movs r0, #0
13 ; CHECK-NEXT:    vmov s0, r0
14 ; CHECK-NEXT:    bl ext_fn
15 ; CHECK-NEXT:    pop {r7, pc}
17 ; V6M-LABEL: test1:
18 ; V6M:       @ %bb.0: @ %entry
19 ; V6M-NEXT:    push {r7, lr}
20 ; V6M-NEXT:    movs r0, #0
21 ; V6M-NEXT:    bl ext_fn
22 ; V6M-NEXT:    pop {r7, pc}
23 entry:
24   call void @ext_fn(float 0.000000e+00)
25   ret void
28 define float @test2() {
29 ; CHECK-LABEL: test2:
30 ; CHECK:       @ %bb.0: @ %entry
31 ; CHECK-NEXT:    movw r0, #63911
32 ; CHECK-NEXT:    movt r0, #16673
33 ; CHECK-NEXT:    vmov s0, r0
34 ; CHECK-NEXT:    bx lr
36 ; V6M-LABEL: test2:
37 ; V6M:       @ %bb.0: @ %entry
38 ; V6M-NEXT:    movs r0, #65
39 ; V6M-NEXT:    lsls r0, r0, #8
40 ; V6M-NEXT:    adds r0, #33
41 ; V6M-NEXT:    lsls r0, r0, #8
42 ; V6M-NEXT:    adds r0, #249
43 ; V6M-NEXT:    lsls r0, r0, #8
44 ; V6M-NEXT:    adds r0, #167
45 ; V6M-NEXT:    bx lr
46 entry:
47   ret float 0x40243F34E0000000