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