diff options
| author | Juergen Ributzka <juergen@apple.com> | 2014-08-19 20:35:07 +0000 |
|---|---|---|
| committer | Juergen Ributzka <juergen@apple.com> | 2014-08-19 20:35:07 +0000 |
| commit | 6afeffb0780f97ec1c5fd1db9c9368c4b6ac8ecc (patch) | |
| tree | 96708f2ce9ea458ccb44d7732ea59f0a3801e79d | |
| parent | 066b46abcb558d5bc8a03664441fdc29bc1ff1e6 (diff) | |
| download | llvm-6afeffb0780f97ec1c5fd1db9c9368c4b6ac8ecc.zip llvm-6afeffb0780f97ec1c5fd1db9c9368c4b6ac8ecc.tar.gz llvm-6afeffb0780f97ec1c5fd1db9c9368c4b6ac8ecc.tar.bz2 | |
[FastISel][AArch64] Extend floating-point materialization test.
This adds the missing test that I promised for r215753 to test the
materialization of the floating-point value +0.0.
Related to <rdar://problem/18027157>.
llvm-svn: 216019
| -rw-r--r-- | llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll b/llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll index ffac131..14dc0dd 100644 --- a/llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll +++ b/llvm/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 -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 } |
