60 lines · plain
1# RUN: not --crash llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=none -filetype=null %s 2>&1 | FileCheck %s2 3--- 4name: fix-illegal-vector-copies 5tracksRegLiveness: true 6machineFunctionInfo: 7 isEntryFunction: true 8body: | 9 bb.0: 10 %0:vgpr_32 = IMPLICIT_DEF 11 %0:vgpr_32 = IMPLICIT_DEF ; Break SSA format 12 %1:vgpr_32 = IMPLICIT_DEF 13 %2:sgpr_32 = IMPLICIT_DEF 14 %3:sgpr_32 = IMPLICIT_DEF 15 %4:agpr_32 = IMPLICIT_DEF 16 %5:agpr_32 = IMPLICIT_DEF 17 18 ; copy from virtual VGPR to virtual SGPR 19 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR *** 20 ; CHECK: - instruction: %6:sgpr_32 = COPY %0:vgpr_32 21 %6:sgpr_32 = COPY %0:vgpr_32 22 23 ; copy from virtual VGPR to physical SGPR 24 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR *** 25 ; CHECK: - instruction: $sgpr0 = COPY %0:vgpr_32 26 $sgpr0 = COPY %0:vgpr_32 27 28 ; copy from physical VGPR to physical SGPR 29 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR *** 30 ; CHECK: - instruction: $sgpr1 = COPY $vgpr0 31 $sgpr1 = COPY $vgpr0 32 33 ; copy from virtual AGPR to virtual SGPR 34 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR *** 35 ; CHECK: - instruction: %7:sgpr_32 = COPY %4:agpr_32 36 %7:sgpr_32 = COPY %4:agpr_32 37 38 ; copy from virtual AGPR to physical SGPR 39 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR *** 40 ; CHECK: - instruction: $sgpr2 = COPY %4:agpr_32 41 $sgpr2 = COPY %4:agpr_32 42 43 ; copy from physical AGPR to physical SGPR 44 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR *** 45 ; CHECK: - instruction: $sgpr3 = COPY $agpr0 46 $sgpr3 = COPY $agpr0 47 48 ; copy from tuple of physical VGPRs to tuple of physical SGPRs 49 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***50 ; CHECK: - instruction: $sgpr4_sgpr5 = COPY $vgpr0_vgpr1 51 $sgpr4_sgpr5 = COPY $vgpr0_vgpr152 53 ; copy from tuple of physical AGPRs to tuple of physical SGPRs 54 ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***55 ; CHECK: - instruction: $sgpr6_sgpr7 = COPY $agpr0_agpr156 $sgpr6_sgpr7 = COPY $agpr0_agpr1 57 58 S_ENDPGM 0 59... 60