50 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=thumbv8.1m.main-none-eabihf -mattr=+mve,+execute-only | FileCheck %s3; RUN: llc < %s -mtriple=thumbv6m -mattr=+execute-only | FileCheck %s --check-prefix=V6M4 5declare void @ext_fn(float)6 7define void @test1() {8; CHECK-LABEL: test1:9; CHECK: @ %bb.0: @ %entry10; CHECK-NEXT: .save {r7, lr}11; CHECK-NEXT: push {r7, lr}12; CHECK-NEXT: movs r0, #013; CHECK-NEXT: vmov s0, r014; CHECK-NEXT: bl ext_fn15; CHECK-NEXT: pop {r7, pc}16;17; V6M-LABEL: test1:18; V6M: @ %bb.0: @ %entry19; V6M-NEXT: push {r7, lr}20; V6M-NEXT: movs r0, #021; V6M-NEXT: bl ext_fn22; V6M-NEXT: pop {r7, pc}23entry:24 call void @ext_fn(float 0.000000e+00)25 ret void26}27 28define float @test2() {29; CHECK-LABEL: test2:30; CHECK: @ %bb.0: @ %entry31; CHECK-NEXT: movw r0, #6391132; CHECK-NEXT: movt r0, #1667333; CHECK-NEXT: vmov s0, r034; CHECK-NEXT: bx lr35;36; V6M-LABEL: test2:37; V6M: @ %bb.0: @ %entry38; V6M-NEXT: movs r0, #6539; V6M-NEXT: lsls r0, r0, #840; V6M-NEXT: adds r0, #3341; V6M-NEXT: lsls r0, r0, #842; V6M-NEXT: adds r0, #24943; V6M-NEXT: lsls r0, r0, #844; V6M-NEXT: adds r0, #16745; V6M-NEXT: bx lr46entry:47 ret float 0x40243F34E000000048}49 50