| # RUN: llc -o - %s -mtriple=amdgcn-amd-amdhsa-opencl -run-pass=simple-register-coalescing | FileCheck %s | |
| --- | |
| # Checks for a bug where subregister liveranges were not properly pruned for | |
| # an IMPLCITI_DEF that gets removed completely. | |
| # | |
| # CHECK-LABEL: name: func | |
| # IMPLICIT_DEF should be gone without llc hitting assertion failures. | |
| # CHECK-NOT: IMPLICIT_DEF | |
| name: func | |
| tracksRegLiveness: true | |
| body: | | |
| bb.0: | |
| undef %5.sub1 = V_MOV_B32_e32 0, implicit $exec | |
| %6 = COPY %5 | |
| S_CBRANCH_VCCZ %bb.2, implicit undef $vcc | |
| bb.1: | |
| %1 : sreg_32_xm0 = S_MOV_B32 0 | |
| undef %0.sub0 : sreg_64 = COPY %1 | |
| %0.sub1 = COPY %1 | |
| %4 : vreg_64 = COPY killed %0 | |
| %5 : vreg_64 = IMPLICIT_DEF | |
| %6 : vreg_64 = COPY killed %4 | |
| bb.2: | |
| %2 : vgpr_32 = V_CVT_F32_I32_e32 killed %5.sub1, implicit $exec | |
| bb.3: | |
| %3 : vgpr_32 = V_CVT_F32_I32_e32 killed %6.sub1, implicit $exec | |
| S_ENDPGM | |
| ... |