[MIPS GlobalISel] Select bitreverse. Recommit
authorPetar Avramovic <Petar.Avramovic@rt-rk.com>
Mon, 30 Dec 2019 17:06:29 +0000 (18:06 +0100)
committerPetar Avramovic <Petar.Avramovic@rt-rk.com>
Mon, 30 Dec 2019 17:06:29 +0000 (18:06 +0100)
commit98f72a5107ce781a8ec93c524c3fdb08c241f0e5
tree5f6f1766782cd0e7cb7dfb82b72e32ceb7786b0d
parent1247865fe024e073c206b3803096df8477a60bab
[MIPS GlobalISel] Select bitreverse. Recommit

G_BITREVERSE is generated from llvm.bitreverse.<type> intrinsics,
clang genrates these intrinsics from __builtin_bitreverse32 and
__builtin_bitreverse64.
Add lower and narrowscalar for G_BITREVERSE.
Lower G_BITREVERSE on MIPS32.

Recommit notes:
Introduce temporary variables in order to make sure
instructions get inserted into MachineFunction in same order
regardless of compiler used to build llvm.

Differential Revision: https://reviews.llvm.org/D71363
llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-bitreverse.mir
llvm/test/CodeGen/Mips/GlobalISel/legalizer/bitreverse.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/bitreverse.ll [new file with mode: 0644]