brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · be1311c Raw
42 lines · plain
1# RUN: not --crash llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -run-pass=none -filetype=null %s 2>&1 | FileCheck %s2 3# sub16_sub17_sub18_sub19 is outside the bounds of a 512-bit4# register. Make sure the verification doesn't assert. This was only5# broken for targets that require even aligned VGPRs due to the manual6# alignment check.7 8---9name: uses_invalid_subregister_for_regclass10tracksRegLiveness: true11body:             |12  bb.0:13    %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec14    S_NOP 0, implicit-def %1:vreg_512_align215 16 17    ; CHECK: *** Bad machine code: Invalid subregister index for virtual register ***18    ; CHECK-NEXT: - function:    uses_invalid_subregister_for_regclass19    ; CHECK-NEXT: - basic block: %bb.020    ; CHECK-NEXT: - instruction: GLOBAL_STORE_DWORDX4_SADDR %0:vgpr_32, %1.sub16_sub17_sub18_sub19:vreg_512_align2, undef $sgpr8_sgpr9, 80, 0, implicit $exec :: (store (s128), addrspace 1)21    ; CHECK-NEXT: - operand 1:   %1.sub16_sub17_sub18_sub19:vreg_512_align222    ; CHECK-NEXT: Register class VReg_512_Align2 does not support subreg index sub16_sub17_sub18_sub1923 24    ; CHECK: *** Bad machine code: Subtarget requires even aligned vector registers ***25    ; CHECK-NEXT: - function:    uses_invalid_subregister_for_regclass26    ; CHECK-NEXT: - basic block: %bb.027    ; CHECK-NEXT: - instruction: GLOBAL_STORE_DWORDX4_SADDR %0:vgpr_32, %2.sub16_sub17_sub18_sub19:vreg_512, undef $sgpr8_sgpr9, 80, 0, implicit $exec :: (store (s128), addrspace 1)28    GLOBAL_STORE_DWORDX4_SADDR %0, %1.sub16_sub17_sub18_sub19, undef $sgpr8_sgpr9, 80, 0, implicit $exec :: (store (s128), addrspace 1)29 30    ; Test with unaligned class31    ; CHECK: *** Bad machine code: Invalid subregister index for virtual register ***32    ; CHECK-NEXT: - function:    uses_invalid_subregister_for_regclass33    ; CHECK-NEXT: - basic block: %bb.034    ; CHECK-NEXT: - instruction: GLOBAL_STORE_DWORDX4_SADDR %0:vgpr_32, %2.sub16_sub17_sub18_sub19:vreg_512, undef $sgpr8_sgpr9, 80, 0, implicit $exec :: (store (s128), addrspace 1)35    ; CHECK-NEXT: - operand 1:   %2.sub16_sub17_sub18_sub19:vreg_51236    ; CHECK-NEXT: Register class VReg_512 does not support subreg index sub16_sub17_sub18_sub1937    S_NOP 0, implicit-def %2:vreg_51238    GLOBAL_STORE_DWORDX4_SADDR %0, %2.sub16_sub17_sub18_sub19, undef $sgpr8_sgpr9, 80, 0, implicit $exec :: (store (s128), addrspace 1)39    S_ENDPGM 040 41...42