[AArch64] Use simd mov to materialize big fp constants
authorzhongyunde <zhongyunde@huawei.com>
Fri, 4 Mar 2022 14:44:14 +0000 (22:44 +0800)
committerCongzheUalberta <congzhecao@gmail.com>
Fri, 4 Mar 2022 16:34:20 +0000 (11:34 -0500)
commit7a605ab7bfbc681c34335684f45b7da32d495db1
tree17df67d78b19f484f54c4b7765d93385719c3d4c
parent8ba84ceda0025457e8aef86c06c3a5ea04bc6e3d
[AArch64] Use simd mov to materialize big fp constants

mov w8, #1325400064 + fmov s0, w8 ==> movi v0.2s, 0x4f, lsl 24
Fix https://github.com/llvm/llvm-project/issues/53651

Reviewed By: dmgreen, fhahn

Differential Revision: https://reviews.llvm.org/D120452
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/fabs.ll
llvm/test/CodeGen/AArch64/fcvt-fixed.ll
llvm/test/CodeGen/AArch64/fpimm.ll
llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll
llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
llvm/test/CodeGen/AArch64/remat-const-float-simd.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/vecreduce-fadd-legalization.ll