129 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -verify-machineinstrs -mtriple=aarch64-none-linux-gnu < %s | FileCheck %s3; RUN: llc -verify-machineinstrs -mtriple=arm64-apple-macosx -mcpu=apple-m1 < %s | FileCheck %s --check-prefix=APPLE4 5define float @float_0mov() {6; CHECK-LABEL: float_0mov:7; CHECK: // %bb.0:8; CHECK-NEXT: fmov s0, #1.000000009; CHECK-NEXT: ret10;11; APPLE-LABEL: float_0mov:12; APPLE: ; %bb.0:13; APPLE-NEXT: fmov s0, #1.0000000014; APPLE-NEXT: ret15 ret float 1.016}17 18define float @float_1mov() {19; CHECK-LABEL: float_1mov:20; CHECK: // %bb.0:21; CHECK-NEXT: mov w8, #2143289344 // =0x7fc0000022; CHECK-NEXT: fmov s0, w823; CHECK-NEXT: ret24;25; APPLE-LABEL: float_1mov:26; APPLE: ; %bb.0:27; APPLE-NEXT: mov w8, #2143289344 ; =0x7fc0000028; APPLE-NEXT: fmov s0, w829; APPLE-NEXT: ret30 ret float 0x7FF800000000000031}32 33define float @float_2mov() {34; CHECK-LABEL: float_2mov:35; CHECK: // %bb.0:36; CHECK-NEXT: mov w8, #34952 // =0x888837; CHECK-NEXT: movk w8, #32704, lsl #1638; CHECK-NEXT: fmov s0, w839; CHECK-NEXT: ret40;41; APPLE-LABEL: float_2mov:42; APPLE: ; %bb.0:43; APPLE-NEXT: mov w8, #34952 ; =0x888844; APPLE-NEXT: movk w8, #32704, lsl #1645; APPLE-NEXT: fmov s0, w846; APPLE-NEXT: ret47 ret float 0x7FF811110000000048}49 50define double @double_0mov() {51; CHECK-LABEL: double_0mov:52; CHECK: // %bb.0:53; CHECK-NEXT: fmov d0, #1.0000000054; CHECK-NEXT: ret55;56; APPLE-LABEL: double_0mov:57; APPLE: ; %bb.0:58; APPLE-NEXT: fmov d0, #1.0000000059; APPLE-NEXT: ret60 ret double 1.061}62 63define double @double_1mov() {64; CHECK-LABEL: double_1mov:65; CHECK: // %bb.0:66; CHECK-NEXT: mov x8, #4096 // =0x100067; CHECK-NEXT: fmov d0, x868; CHECK-NEXT: ret69;70; APPLE-LABEL: double_1mov:71; APPLE: ; %bb.0:72; APPLE-NEXT: mov x8, #4096 ; =0x100073; APPLE-NEXT: fmov d0, x874; APPLE-NEXT: ret75 ret double 0x100076}77 78define double @double_2mov() {79; CHECK-LABEL: double_2mov:80; CHECK: // %bb.0:81; CHECK-NEXT: mov x8, #4096 // =0x100082; CHECK-NEXT: movk x8, #8192, lsl #1683; CHECK-NEXT: fmov d0, x884; CHECK-NEXT: ret85;86; APPLE-LABEL: double_2mov:87; APPLE: ; %bb.0:88; APPLE-NEXT: mov x8, #4096 ; =0x100089; APPLE-NEXT: movk x8, #8192, lsl #1690; APPLE-NEXT: fmov d0, x891; APPLE-NEXT: ret92 ret double 0x2000100093}94 95define double @double_3mov() {96; CHECK-LABEL: double_3mov:97; CHECK: // %bb.0:98; CHECK-NEXT: adrp x8, .LCPI6_099; CHECK-NEXT: ldr d0, [x8, :lo12:.LCPI6_0]100; CHECK-NEXT: ret101;102; APPLE-LABEL: double_3mov:103; APPLE: ; %bb.0:104; APPLE-NEXT: mov x8, #4096 ; =0x1000105; APPLE-NEXT: movk x8, #8192, lsl #16106; APPLE-NEXT: movk x8, #12288, lsl #32107; APPLE-NEXT: fmov d0, x8108; APPLE-NEXT: ret109 ret double 0x300020001000110}111 112define double @double_4mov() {113; CHECK-LABEL: double_4mov:114; CHECK: // %bb.0:115; CHECK-NEXT: adrp x8, .LCPI7_0116; CHECK-NEXT: ldr d0, [x8, :lo12:.LCPI7_0]117; CHECK-NEXT: ret118;119; APPLE-LABEL: double_4mov:120; APPLE: ; %bb.0:121; APPLE-NEXT: mov x8, #4096 ; =0x1000122; APPLE-NEXT: movk x8, #8192, lsl #16123; APPLE-NEXT: movk x8, #12288, lsl #32124; APPLE-NEXT: movk x8, #16384, lsl #48125; APPLE-NEXT: fmov d0, x8126; APPLE-NEXT: ret127 ret double 0x4000300020001000128}129