diff options
| author | Sam Tebbs <samuel.tebbs@arm.com> | 2025-10-28 16:59:53 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-28 16:59:53 +0000 |
| commit | 22f860a55d193d98e42cf19fac57539cdb0ab124 (patch) | |
| tree | 493f7de0fbd6a7c70bcf521d661795647e317039 /llvm/test/DebugInfo/Sparc | |
| parent | 87f9e1b17afefd461e7ce07f817183c55b0a5571 (diff) | |
| download | llvm-main.zip llvm-main.tar.gz llvm-main.tar.bz2 | |
A reduction (including partial reductions) with a multiply of a constant
value can be bundled by first converting it from `reduce.add(mul(ext,
const))` to `reduce.add(mul(ext, ext(const)))` as long as it is safe to
extend the constant.
This PR adds such bundling by first truncating the constant to the
source type of the other extend, then extending it to the destination
type of the extend. The first truncate is necessary so that the types of
each extend's operand are then the same, and the call to
canConstantBeExtended proves that the extend following a truncate is
safe to do. The truncate is removed by optimisations.
This is a stacked PR, 1a and 1b can be merged in any order:
1a. https://github.com/llvm/llvm-project/pull/147302
1b. https://github.com/llvm/llvm-project/pull/163175
2. -> https://github.com/llvm/llvm-project/pull/162503
Diffstat (limited to 'llvm/test/DebugInfo/Sparc')
0 files changed, 0 insertions, 0 deletions
