1. [MIPS GlobalISel] Select MSA vector generic and builtin fabs (details)
Commit e3b49df50e4f463f1b0bed5a0a476eafafd1d426 by petar.avramovic
[MIPS GlobalISel] Select MSA vector generic and builtin fabs
selectImpl is able to select G_FABS when we set bank for vector operands
to fprb. Add detailed tests. Note: G_FABS is generated from llvm-ir
intrinsics llvm.fabs.*, and at the moment MIPS is not able to generate
this intrinsic for vector type (some targets generate vector llvm.fabs.*
from calls to a builtin function). We can handle fabs using
__builtin_msa_fmax_a_<format> and passing same vector as both arguments.
__builtin_msa_fmax_a_<format> will be directly selected into
FMAX_A_<format> in legalizeIntrinsic.
Differential Revision:
The file was modifiedllvm/lib/Target/Mips/MipsRegisterBankInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was addedllvm/test/CodeGen/Mips/GlobalISel/legalizer/fabs_vec_builtin.mir
The file was addedllvm/test/CodeGen/Mips/GlobalISel/legalizer/fabs_vec.mir
The file was addedllvm/test/CodeGen/Mips/GlobalISel/llvm-ir/fabs_vec.ll
The file was addedllvm/test/CodeGen/Mips/GlobalISel/llvm-ir/fabs_vec_builtin.ll
The file was addedllvm/test/CodeGen/Mips/GlobalISel/regbankselect/fabs_vec.mir
The file was addedllvm/test/CodeGen/Mips/GlobalISel/instruction-select/fabs_vec.mir