[all-commits] [llvm/llvm-project] 5263bf: [AMDGPU][GlobalISel] Legalization of G_ROTL and G_...
Mirko BrkuĊĦanin via All-commits
all-commits at lists.llvm.org
Tue Sep 7 07:38:35 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5263bf583a26f3f99c2ac34843e89d210bb4fe26
https://github.com/llvm/llvm-project/commit/5263bf583a26f3f99c2ac34843e89d210bb4fe26
Author: Mirko Brkusanin <Mirko.Brkusanin at amd.com>
Date: 2021-09-07 (Tue, 07 Sep 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-rotl-rotr.mir
Log Message:
-----------
[AMDGPU][GlobalISel] Legalization of G_ROTL and G_ROTR
Add implementation for the legalization of G_ROTL and G_ROTR machine
instructions. They are very similar to funnel shift instructions, the only
difference is funnel shifts have 3 operands, whereas rotate instructions have
two operands, the first being the register that is being rotated and the second
being the number of shifts. The legalization of G_ROTL/G_ROTR is just lowering
them into funnel shift instructions if they are legal.
Patch by: Mateja Marjanovic
Differential Revision: https://reviews.llvm.org/D105347
Commit: 6c4b634da6191b2fa10e833a9393115b83e768d1
https://github.com/llvm/llvm-project/commit/6c4b634da6191b2fa10e833a9393115b83e768d1
Author: Mirko Brkusanin <Mirko.Brkusanin at amd.com>
Date: 2021-09-07 (Tue, 07 Sep 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
M llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-mul.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Legalize G_MUL for non-standard types
Legalizing G_MUL for non-standard types (like i33) generated an error. Putting
minScalar and maxScalar instead of clampScalar. Also using new rule, instead
of widening to the next power of 2, widen to the next multiple of the passed
argument (32 in this case), so instead of widening i65 to i128, we widen it to
i96.
Patch by: Mateja Marjanovic
Differential Revision: https://reviews.llvm.org/D109228
Compare: https://github.com/llvm/llvm-project/compare/0d48ee27749c...6c4b634da619
More information about the All-commits
mailing list