[libcxx-commits] [libcxx] [clang] [flang] [compiler-rt] [llvm] [clang-tools-extra] [libcxxabi] [lldb] [mlir] [openmp] [MachineCopyPropagation] When the source of PreviousCopy is undef, we cannot replace sub register (PR #74682)

David Green via libcxx-commits libcxx-commits at lists.llvm.org
Thu Dec 7 12:15:33 PST 2023


davemgreen wrote:

Hello. I think that if you removed undef from the first instruction the result would still be incorrect. With:
```
$x8 = ORRXrs $xzr, $x0, 0, implicit $w0
$w8 = ORRWrs $wzr, $w0, 0, implicit-def $x8
```
The second instruction will zero-extend the w0 register to x8. It would be OK to remove the first instruction (it is dead), it is not OK to remove the second if something is relying on the top bits being zero. I assume that's what goes wrong in your case? The top bits are not zero into the function?

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


More information about the libcxx-commits mailing list