diff options
Diffstat (limited to 'test/CodeGen/AArch64/arm64-fast-isel-materialize.ll')
-rw-r--r-- | test/CodeGen/AArch64/arm64-fast-isel-materialize.ll | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll b/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll index ffac131..1dea5d9 100644 --- a/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll +++ b/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll @@ -1,27 +1,41 @@ -; RUN: llc < %s -O0 -fast-isel-abort -mtriple=arm64-apple-darwin | FileCheck %s +; RUN: llc -O0 -fast-isel-abort -verify-machineinstrs -mtriple=arm64-apple-darwin < %s | FileCheck %s ; Materialize using fmov -define void @float_(float* %value) { -; CHECK: @float_ -; CHECK: fmov s0, #1.25000000 - store float 1.250000e+00, float* %value, align 4 - ret void +define float @fmov_float1() { +; CHECK-LABEL: fmov_float1 +; CHECK: fmov s0, #1.25000000 + ret float 1.250000e+00 } -define void @double_(double* %value) { -; CHECK: @double_ -; CHECK: fmov d0, #1.25000000 - store double 1.250000e+00, double* %value, align 8 - ret void +define float @fmov_float2() { +; CHECK-LABEL: fmov_float2 +; CHECK: fmov s0, wzr + ret float 0.0e+00 +} + +define double @fmov_double1() { +; CHECK-LABEL: fmov_double1 +; CHECK: fmov d0, #1.25000000 + ret double 1.250000e+00 +} + +define double @fmov_double2() { +; CHECK-LABEL: fmov_double2 +; CHECK: fmov d0, xzr + ret double 0.0e+00 } ; Materialize from constant pool -define float @float_cp() { -; CHECK: @float_cp +define float @cp_float() { +; CHECK-LABEL: cp_float +; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE +; CHECK-NEXT: ldr s0, {{\[}}[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF{{\]}} ret float 0x400921FB60000000 } -define double @double_cp() { -; CHECK: @double_cp +define double @cp_double() { +; CHECK-LABEL: cp_double +; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE +; CHECK-NEXT: ldr d0, {{\[}}[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF{{\]}} ret double 0x400921FB54442D18 } |