52 lines · plain
1; RUN: llc -O0 -fast-isel -fast-isel-abort=1 -verify-machineinstrs -mtriple=arm64-apple-darwin < %s | FileCheck %s2; RUN: llc -O0 -global-isel -verify-machineinstrs -mtriple=arm64-apple-darwin %s -o - | FileCheck %s --check-prefix=GISEL3 4 5; Materialize using fmov6define float @fmov_float1() {7; CHECK-LABEL: fmov_float18; CHECK: fmov s0, #1.250000009; GISEL-LABEL: fmov_float110; GISEL: fmov s0, #1.2500000011 ret float 1.250000e+0012}13 14define float @fmov_float2() {15; CHECK-LABEL: fmov_float216; CHECK: fmov s0, wzr17; GISEL-LABEL: fmov_float218; GISEL: movi d0, #000000000000000019 ret float 0.0e+0020}21 22define double @fmov_double1() {23; CHECK-LABEL: fmov_double124; CHECK: fmov d0, #1.2500000025; GISEL-LABEL: fmov_double126; GISEL: fmov d0, #1.2500000027 ret double 1.250000e+0028}29 30define double @fmov_double2() {31; CHECK-LABEL: fmov_double232; CHECK: fmov d0, xzr33; GISEL-LABEL: fmov_double234; GISEL: movi d0, #000000000000000035 ret double 0.0e+0036}37 38; Materialize from constant pool39define float @cp_float() {40; CHECK-LABEL: cp_float41; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE42; CHECK-NEXT: ldr s0, [[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF]43 ret float 0x400921FB6000000044}45 46define double @cp_double() {47; CHECK-LABEL: cp_double48; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE49; CHECK-NEXT: ldr d0, [[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF]50 ret double 0x400921FB54442D1851}52