| # RUN: not --crash llc -o - -mtriple=amdgcn-amd-amdhsa -run-pass=none %s 2>&1 | FileCheck %s |
| |
| --- |
| name: test_copy_lanemask_instruction_0 |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr0, $vgpr1 |
| |
| %0:vgpr_32 = IMPLICIT_DEF |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK must read at least one lane *** |
| $vgpr2 = COPY_LANEMASK $vgpr0, lanemask(0) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK attempts to read from the lanes that don't exist in the source register *** |
| $vgpr3 = COPY_LANEMASK $vgpr1, lanemask(0xFFFFFFFFFFFFFFFF) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK cannot be used to do full copy *** |
| $vgpr4_vgpr5 = COPY_LANEMASK $vgpr2_vgpr3, lanemask(0x000000000000000F) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK cannot be used to do full copy *** |
| %1:vgpr_32 = COPY_LANEMASK %0, lanemask(0x0000000000000003) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK attempts to read from the lanes that don't exist in the source register *** |
| %2:vgpr_32 = COPY_LANEMASK %1, lanemask(0x0000000FFFFFFFFF) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK attempts to read from the lanes that don't exist in the source register *** |
| %3:vreg_64 = COPY_LANEMASK $vgpr4_vgpr5, lanemask(0x00000000000000FF) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK cannot be used to do full copy *** |
| $vgpr6_vgpr7 = COPY_LANEMASK %3, lanemask(0x000000000000000F) |
| |
| ; CHECK: *** Bad machine code: COPY_LANEMASK must not use a subregister index *** |
| %4:vgpr_32 = COPY_LANEMASK %3.sub0, lanemask(0x0000000000000003) |
| |
| S_ENDPGM 0 |
| ... |