[all-commits] [llvm/llvm-project] ee572e: [AArch64] Optimize when storing symmetry constants...
hanbeom via All-commits
all-commits at lists.llvm.org
Tue Aug 20 06:29:47 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: ee572ed4ac2d9e2ff37217d6bedc20f530a5d3af
https://github.com/llvm/llvm-project/commit/ee572ed4ac2d9e2ff37217d6bedc20f530a5d3af
Author: hanbeom <kese111 at gmail.com>
Date: 2024-08-20 (Tue, 20 Aug 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/test/CodeGen/AArch64/movimm-expand-ldst.ll
M llvm/test/CodeGen/AArch64/movimm-expand-ldst.mir
Log Message:
-----------
[AArch64] Optimize when storing symmetry constants (#93717)
This change looks for instructions of storing symmetric constants
instruction 32-bit units. usually consisting of several 'MOV' and
one or less 'ORR'.
If found, load only the lower 32-bit constant and change it to copy
and save to the upper 32-bit using the 'STP' instruction.
For example:
renamable $x8 = MOVZXi 49370, 0
renamable $x8 = MOVKXi $x8, 320, 16
renamable $x8 = ORRXrs $x8, $x8, 32
STRXui killed renamable $x8, killed renamable $x0, 0
becomes
$w8 = MOVZWi 49370, 0
$w8 = MOVKWi $w8, 320, 16
STPWi killed renamable $w8, killed renamable $w8, killed renamable $x0,
0
related issue : https://github.com/llvm/llvm-project/issues/51483
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list