diff options
| author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2017-08-24 14:47:06 +0000 |
|---|---|---|
| committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2017-08-24 14:47:06 +0000 |
| commit | b0eb5fb317cbe831badc4da5843b1d526eff758a (patch) | |
| tree | 5bad3561b183330982f728d67b5cdd06d978c660 /llvm/test/CodeGen | |
| parent | 5d67d8916e711daf4dd961d27f49ed408938be7c (diff) | |
| download | bcm5719-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.ll | 13 |
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: |

