# RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs -run-pass dead-mi-elimination -o - %s | FileCheck -check-prefix=GCN %s # GCN-LABEL: name: dead_undef # GCN: bb.0: # GCN-NEXT: S_ENDPGM 0 --- name: dead_undef tracksRegLiveness: true registers: - { id: 0, class: vgpr_32 } - { id: 1, class: vgpr_32 } - { id: 2, class: vgpr_32 } body: | bb.0: %0 = IMPLICIT_DEF %1 = IMPLICIT_DEF dead %2:vgpr_32 = V_MAC_F32_e32 %0:vgpr_32, %1:vgpr_32, undef %2:vgpr_32, implicit $exec S_ENDPGM 0 # GCN-LABEL: name: dead_defined # GCN: bb.0: # GCN-NEXT: S_ENDPGM 0 --- name: dead_defined tracksRegLiveness: true registers: - { id: 0, class: vgpr_32 } - { id: 1, class: vgpr_32 } - { id: 2, class: vgpr_32 } body: | bb.0: %0 = IMPLICIT_DEF %1 = IMPLICIT_DEF %2 = IMPLICIT_DEF dead %2:vgpr_32 = V_MAC_F32_e32 %0:vgpr_32, %1:vgpr_32, %2:vgpr_32, implicit $exec S_ENDPGM 0 # Probably this dead mac can be removed anyway. # GCN-LABEL: name: dead_def_live_use # GCN: dead %2:vgpr_32 = V_MAC_F32_e32 %0, %1, %2, implicit $exec --- name: dead_def_live_use tracksRegLiveness: true registers: - { id: 0, class: vgpr_32 } - { id: 1, class: vgpr_32 } - { id: 2, class: vgpr_32 } body: | bb.0: %0 = IMPLICIT_DEF %1 = IMPLICIT_DEF %2 = IMPLICIT_DEF GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %2, 0, 0, 0, 0, implicit $exec dead %2:vgpr_32 = V_MAC_F32_e32 %0:vgpr_32, %1:vgpr_32, %2:vgpr_32, implicit $exec S_ENDPGM 0