diff options
Diffstat (limited to 'test/CodeGen/AArch64/fpimm.ll')
-rw-r--r-- | test/CodeGen/AArch64/fpimm.ll | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/test/CodeGen/AArch64/fpimm.ll b/test/CodeGen/AArch64/fpimm.ll index e59520c..b7db918 100644 --- a/test/CodeGen/AArch64/fpimm.ll +++ b/test/CodeGen/AArch64/fpimm.ll @@ -1,4 +1,6 @@ -; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-linux-gnu | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-apple-darwin -code-model=large -verify-machineinstrs < %s | FileCheck %s --check-prefix=LARGE +; RUN: llc -mtriple=aarch64-apple-darwin -code-model=large -fast-isel -fast-isel-abort -verify-machineinstrs < %s | FileCheck %s --check-prefix=LARGE @varf32 = global float 0.0 @varf64 = global double 0.0 @@ -34,3 +36,22 @@ define void @check_double() { ; CHECK: ret ret void } + +; LARGE-LABEL: check_float2 +; LARGE: movz [[REG:w[0-9]+]], #0x4049, lsl #16 +; LARGE-NEXT: movk [[REG]], #0xfdb +; LARGE-NEXT: fmov s0, [[REG]] +define float @check_float2() { + ret float 3.14159274101257324218750 +} + +; LARGE-LABEL: check_double2 +; LARGE: movz [[REG:x[0-9]+]], #0x4009, lsl #48 +; LARGE-NEXT: movk [[REG]], #0x21fb, lsl #32 +; LARGE-NEXT: movk [[REG]], #0x5444, lsl #16 +; LARGE-NEXT: movk [[REG]], #0x2d18 +; LARGE-NEXT: fmov d0, [[REG]] +define double @check_double2() { + ret double 3.1415926535897931159979634685441851615905761718750 +} + |