MOUse.setReg(CopySrcReg);
if (!CopySrc.isRenamable())
MOUse.setIsRenamable(false);
+ MOUse.setIsUndef(CopySrc.isUndef());
LLVM_DEBUG(dbgs() << "MCP: After replacement: " << MI << "\n");
--- /dev/null
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
+# RUN: llc -o - %s -march=amdgcn -mcpu=gfx1010 -run-pass=machine-cp -verify-machineinstrs | FileCheck %s
+
+---
+name: undef_copy_propagation
+tracksRegLiveness: true
+body: |
+ bb.0:
+
+ ; CHECK-LABEL: name: undef_copy_propagation
+ ; CHECK: renamable $vgpr0 = COPY undef renamable $sgpr42, implicit $exec
+ ; CHECK-NEXT: renamable $vgpr1 = COPY undef $sgpr42
+ ; CHECK-NEXT: renamable $vgpr2 = COPY undef $sgpr42
+ ; CHECK-NEXT: renamable $vgpr3 = COPY undef $sgpr42
+ ; CHECK-NEXT: EXP_DONE 0, killed $vgpr0, killed $vgpr1, killed $vgpr2, killed $vgpr3, -1, -1, 15, implicit $exec
+ renamable $vgpr0 = COPY undef renamable $sgpr42, implicit $exec
+ renamable $vgpr1 = COPY renamable $vgpr0
+ renamable $vgpr2 = COPY renamable $vgpr0
+ renamable $vgpr3 = COPY renamable $vgpr0
+
+ EXP_DONE 0, killed $vgpr0, killed $vgpr1, killed $vgpr2, killed $vgpr3, -1, -1, 15, implicit $exec
+...