Mercurial > hg > CbC > CbC_llvm
diff test/CodeGen/AArch64/literal_pools_float.ll @ 147:c2174574ed3a
LLVM 10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 16:55:33 +0900 |
parents | 803732b1fca8 |
children |
line wrap: on
line diff
--- a/test/CodeGen/AArch64/literal_pools_float.ll Sat Feb 17 09:57:20 2018 +0900 +++ b/test/CodeGen/AArch64/literal_pools_float.ll Wed Aug 14 16:55:33 2019 +0900 @@ -1,7 +1,9 @@ ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-linux-gnu -mcpu=cyclone | FileCheck %s ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-linux-gnu -code-model=large -mcpu=cyclone | FileCheck --check-prefix=CHECK-LARGE %s +; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-none-eabi -code-model=tiny -mcpu=cyclone | FileCheck --check-prefix=CHECK-TINY %s ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP %s ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -code-model=large -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP-LARGE %s +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-none-eabi -code-model=tiny -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP-TINY %s @varfloat = global float 0.0 @vardouble = global double 0.0 @@ -11,15 +13,16 @@ %floatval = load float, float* @varfloat %newfloat = fadd float %floatval, 128.0 -; CHECK: adrp x[[LITBASE:[0-9]+]], [[CURLIT:.LCPI[0-9]+_[0-9]+]] -; CHECK: ldr [[LIT128:s[0-9]+]], [x[[LITBASE]], {{#?}}:lo12:[[CURLIT]]] +; CHECK: mov [[W128:w[0-9]+]], #1124073472 +; CHECK: fmov [[LIT128:s[0-9]+]], [[W128]] ; CHECK-NOFP-NOT: ldr {{s[0-9]+}}, -; CHECK-LARGE: movz x[[LITADDR:[0-9]+]], #:abs_g0_nc:[[CURLIT:.LCPI[0-9]+_[0-9]+]] -; CHECK-LARGE: movk x[[LITADDR]], #:abs_g1_nc:[[CURLIT]] -; CHECK-LARGE: movk x[[LITADDR]], #:abs_g2_nc:[[CURLIT]] -; CHECK-LARGE: movk x[[LITADDR]], #:abs_g3:[[CURLIT]] -; CHECK-LARGE: ldr {{s[0-9]+}}, [x[[LITADDR]]] +; CHECK-TINY: mov [[W128:w[0-9]+]], #1124073472 +; CHECK-TINE: fmov [[LIT128:s[0-9]+]], [[W128]] +; CHECK-NOFP-TINY-NOT: ldr {{s[0-9]+}}, + +; CHECK-LARGE: mov [[W128:w[0-9]+]], #1124073472 +; CHECK-LARGE: fmov [[LIT128:s[0-9]+]], [[W128]] ; CHECK-LARGE: fadd ; CHECK-NOFP-LARGE-NOT: ldr {{s[0-9]+}}, ; CHECK-NOFP-LARGE-NOT: fadd @@ -28,12 +31,19 @@ %doubleval = load double, double* @vardouble %newdouble = fadd double %doubleval, 129.0 -; CHECK: adrp x[[LITBASE:[0-9]+]], [[CURLIT:.LCPI[0-9]+_[0-9]+]] -; CHECK: ldr [[LIT129:d[0-9]+]], [x[[LITBASE]], {{#?}}:lo12:[[CURLIT]]] ; CHECK-NOFP-NOT: ldr {{d[0-9]+}}, +; CHECK: mov [[W129:x[0-9]+]], #35184372088832 +; CHECK: movk [[W129]], #16480, lsl #48 +; CHECK: fmov {{d[0-9]+}}, [[W129]] ; CHECK-NOFP-NOT: fadd -; CHECK-LARGE: movz x[[LITADDR:[0-9]+]], #:abs_g0_nc:[[CURLIT:.LCPI[0-9]+_[0-9]+]] +; CHECK-TINY: mov [[W129:x[0-9]+]], #35184372088832 +; CHECK-TINY: movk [[W129]], #16480, lsl #48 +; CHECK-TINY: fmov {{d[0-9]+}}, [[W129]] +; CHECK-NOFP-TINY-NOT: ldr {{d[0-9]+}}, +; CHECK-NOFP-TINY-NOT: fadd + +; CHECK-LARGE: movz x[[LITADDR:[0-9]+]], #:abs_g0_nc:[[CURLIT:vardouble]] ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g1_nc:[[CURLIT]] ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g2_nc:[[CURLIT]] ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g3:[[CURLIT]]