[llvm] [PowerPC] Add phony subregisters to cover the high half of the VSX registers. (PR #94628)

Chen Zheng via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 15 19:08:05 PDT 2024


================
@@ -750,25 +750,21 @@ entry:
 define <2 x double> @testDoubleImm1(<2 x double> %a, double %b) {
 ; CHECK-64-LABEL: testDoubleImm1:
 ; CHECK-64:       # %bb.0: # %entry
-; CHECK-64-NEXT:    # kill: def $f1 killed $f1 def $vsl1
----------------
chenzheng1030 wrote:

this looks like degradation.
```
> renamable $f1 = COPY $f1, implicit-def $vsl1
Identity copy: renamable $f1 = COPY $f1, implicit-def $vsl1
  replace by: renamable $f1 = KILL $f1, implicit-def $vsl1
```
The `Kill` pseudo opcode is inserted from this register rewrite.

`Kill` can tell the later pass that the f1/vsl1 is killed before instruction `COPY`. See `VirtRegRewriter::handleIdentityCopy()`.  I don't think adding phony registers for the high part of vsl1 should break this part.

https://github.com/llvm/llvm-project/pull/94628


More information about the llvm-commits mailing list