Mercurial > hg > CbC > CbC_llvm
comparison 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 |
comparison
equal
deleted
inserted
replaced
134:3a76565eade5 | 147:c2174574ed3a |
---|---|
1 ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-linux-gnu -mcpu=cyclone | FileCheck %s | 1 ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-linux-gnu -mcpu=cyclone | FileCheck %s |
2 ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-linux-gnu -code-model=large -mcpu=cyclone | FileCheck --check-prefix=CHECK-LARGE %s | 2 ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-linux-gnu -code-model=large -mcpu=cyclone | FileCheck --check-prefix=CHECK-LARGE %s |
3 ; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-none-none-eabi -code-model=tiny -mcpu=cyclone | FileCheck --check-prefix=CHECK-TINY %s | |
3 ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP %s | 4 ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP %s |
4 ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -code-model=large -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP-LARGE %s | 5 ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -code-model=large -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP-LARGE %s |
6 ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-none-eabi -code-model=tiny -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP-TINY %s | |
5 | 7 |
6 @varfloat = global float 0.0 | 8 @varfloat = global float 0.0 |
7 @vardouble = global double 0.0 | 9 @vardouble = global double 0.0 |
8 | 10 |
9 define void @floating_lits() { | 11 define void @floating_lits() { |
10 ; CHECK-LABEL: floating_lits: | 12 ; CHECK-LABEL: floating_lits: |
11 | 13 |
12 %floatval = load float, float* @varfloat | 14 %floatval = load float, float* @varfloat |
13 %newfloat = fadd float %floatval, 128.0 | 15 %newfloat = fadd float %floatval, 128.0 |
14 ; CHECK: adrp x[[LITBASE:[0-9]+]], [[CURLIT:.LCPI[0-9]+_[0-9]+]] | 16 ; CHECK: mov [[W128:w[0-9]+]], #1124073472 |
15 ; CHECK: ldr [[LIT128:s[0-9]+]], [x[[LITBASE]], {{#?}}:lo12:[[CURLIT]]] | 17 ; CHECK: fmov [[LIT128:s[0-9]+]], [[W128]] |
16 ; CHECK-NOFP-NOT: ldr {{s[0-9]+}}, | 18 ; CHECK-NOFP-NOT: ldr {{s[0-9]+}}, |
17 | 19 |
18 ; CHECK-LARGE: movz x[[LITADDR:[0-9]+]], #:abs_g0_nc:[[CURLIT:.LCPI[0-9]+_[0-9]+]] | 20 ; CHECK-TINY: mov [[W128:w[0-9]+]], #1124073472 |
19 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g1_nc:[[CURLIT]] | 21 ; CHECK-TINE: fmov [[LIT128:s[0-9]+]], [[W128]] |
20 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g2_nc:[[CURLIT]] | 22 ; CHECK-NOFP-TINY-NOT: ldr {{s[0-9]+}}, |
21 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g3:[[CURLIT]] | 23 |
22 ; CHECK-LARGE: ldr {{s[0-9]+}}, [x[[LITADDR]]] | 24 ; CHECK-LARGE: mov [[W128:w[0-9]+]], #1124073472 |
25 ; CHECK-LARGE: fmov [[LIT128:s[0-9]+]], [[W128]] | |
23 ; CHECK-LARGE: fadd | 26 ; CHECK-LARGE: fadd |
24 ; CHECK-NOFP-LARGE-NOT: ldr {{s[0-9]+}}, | 27 ; CHECK-NOFP-LARGE-NOT: ldr {{s[0-9]+}}, |
25 ; CHECK-NOFP-LARGE-NOT: fadd | 28 ; CHECK-NOFP-LARGE-NOT: fadd |
26 | 29 |
27 store float %newfloat, float* @varfloat | 30 store float %newfloat, float* @varfloat |
28 | 31 |
29 %doubleval = load double, double* @vardouble | 32 %doubleval = load double, double* @vardouble |
30 %newdouble = fadd double %doubleval, 129.0 | 33 %newdouble = fadd double %doubleval, 129.0 |
31 ; CHECK: adrp x[[LITBASE:[0-9]+]], [[CURLIT:.LCPI[0-9]+_[0-9]+]] | |
32 ; CHECK: ldr [[LIT129:d[0-9]+]], [x[[LITBASE]], {{#?}}:lo12:[[CURLIT]]] | |
33 ; CHECK-NOFP-NOT: ldr {{d[0-9]+}}, | 34 ; CHECK-NOFP-NOT: ldr {{d[0-9]+}}, |
35 ; CHECK: mov [[W129:x[0-9]+]], #35184372088832 | |
36 ; CHECK: movk [[W129]], #16480, lsl #48 | |
37 ; CHECK: fmov {{d[0-9]+}}, [[W129]] | |
34 ; CHECK-NOFP-NOT: fadd | 38 ; CHECK-NOFP-NOT: fadd |
35 | 39 |
36 ; CHECK-LARGE: movz x[[LITADDR:[0-9]+]], #:abs_g0_nc:[[CURLIT:.LCPI[0-9]+_[0-9]+]] | 40 ; CHECK-TINY: mov [[W129:x[0-9]+]], #35184372088832 |
41 ; CHECK-TINY: movk [[W129]], #16480, lsl #48 | |
42 ; CHECK-TINY: fmov {{d[0-9]+}}, [[W129]] | |
43 ; CHECK-NOFP-TINY-NOT: ldr {{d[0-9]+}}, | |
44 ; CHECK-NOFP-TINY-NOT: fadd | |
45 | |
46 ; CHECK-LARGE: movz x[[LITADDR:[0-9]+]], #:abs_g0_nc:[[CURLIT:vardouble]] | |
37 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g1_nc:[[CURLIT]] | 47 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g1_nc:[[CURLIT]] |
38 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g2_nc:[[CURLIT]] | 48 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g2_nc:[[CURLIT]] |
39 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g3:[[CURLIT]] | 49 ; CHECK-LARGE: movk x[[LITADDR]], #:abs_g3:[[CURLIT]] |
40 ; CHECK-LARGE: ldr {{d[0-9]+}}, [x[[LITADDR]]] | 50 ; CHECK-LARGE: ldr {{d[0-9]+}}, [x[[LITADDR]]] |
41 ; CHECK-NOFP-LARGE-NOT: ldr {{d[0-9]+}}, | 51 ; CHECK-NOFP-LARGE-NOT: ldr {{d[0-9]+}}, |