1 ; RUN: llc -O0 -fast-isel-abort=1 -verify-machineinstrs -mtriple=arm64-apple-darwin < %s | FileCheck %s 2 3 ; Materialize using fmov 4 define float @fmov_float1() { 5 ; CHECK-LABEL: fmov_float1 6 ; CHECK: fmov s0, #1.25000000 7 ret float 1.250000e+00 8 } 9 10 define float @fmov_float2() { 11 ; CHECK-LABEL: fmov_float2 12 ; CHECK: fmov s0, wzr 13 ret float 0.0e+00 14 } 15 16 define double @fmov_double1() { 17 ; CHECK-LABEL: fmov_double1 18 ; CHECK: fmov d0, #1.25000000 19 ret double 1.250000e+00 20 } 21 22 define double @fmov_double2() { 23 ; CHECK-LABEL: fmov_double2 24 ; CHECK: fmov d0, xzr 25 ret double 0.0e+00 26 } 27 28 ; Materialize from constant pool 29 define float @cp_float() { 30 ; CHECK-LABEL: cp_float 31 ; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE 32 ; CHECK-NEXT: ldr s0, {{\[}}[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF{{\]}} 33 ret float 0x400921FB60000000 34 } 35 36 define double @cp_double() { 37 ; CHECK-LABEL: cp_double 38 ; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE 39 ; CHECK-NEXT: ldr d0, {{\[}}[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF{{\]}} 40 ret double 0x400921FB54442D18 41 } 42