summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2017-08-24 14:47:06 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2017-08-24 14:47:06 +0000
commitb0eb5fb317cbe831badc4da5843b1d526eff758a (patch)
tree5bad3561b183330982f728d67b5cdd06d978c660 /llvm/test/CodeGen
parent5d67d8916e711daf4dd961d27f49ed408938be7c (diff)
downloadbcm5719-llvm-b0eb5fb317cbe831badc4da5843b1d526eff758a.tar.gz
bcm5719-llvm-b0eb5fb317cbe831badc4da5843b1d526eff758a.zip
[AArch64] Add FMOVH0: materialize 0 using zero register for f16 values
Instead of loading 0 from a constant pool, it's of course much better to materialize it using an fmov and the zero register. Thanks to Ahmed Bougacha for the suggestion. Differential Revision: https://reviews.llvm.org/D37102 llvm-svn: 311662
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/AArch64/f16-imm.ll13
1 files changed, 8 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/AArch64/f16-imm.ll b/llvm/test/CodeGen/AArch64/f16-imm.ll
index 760df037f22..84c27312d1e 100644
--- a/llvm/test/CodeGen/AArch64/f16-imm.ll
+++ b/llvm/test/CodeGen/AArch64/f16-imm.ll
@@ -1,15 +1,18 @@
; RUN: llc < %s -mtriple=aarch64-none-eabi -mattr=+fullfp16 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ILLEGAL
+; RUN: llc < %s -mtriple=aarch64-none-eabi -mattr=+fullfp16,+zcz | FileCheck %s --check-prefix=CHECK-ZCZ
; RUN: llc < %s -mtriple=aarch64-none-eabi -mattr=-fullfp16 | FileCheck %s --check-prefix=CHECK-NOFP16 --check-prefix=CHECK-ILLEGAL
define half @Const0() {
entry:
ret half 0xH0000
}
-; CHECK-ILLEGAL: .[[LBL0:LCPI0_[0-9]]]:
-; CHECK-ILLEGAL-NEXT: .hword 0 // half 0
-; CHECK-ILLEGAL-LABEL: Const0:
-; CHECK-ILLEGAL: adrp x[[NUM:[0-9]+]], .[[LBL0]]
-; CHECK-ILLEGAL-NEXT: ldr h0, [x[[NUM]], :lo12:.[[LBL0]]]
+; CHECK-DAG-ILLEGAL-LABEL: Const0:
+; CHECK-DAG-ILLEGAL-NEXT: fmov h0, wzr
+; CHECK-DAG-ILLEGAL-NEXT: ret
+
+; CHECK-ZCZ-LABEL: Const0:
+; CHECK-ZCZ: movi v0.2d, #0000000000000000
+; CHECK-ZCZ-NEXT: ret
define half @Const1() {
entry:
OpenPOWER on IntegriCloud