brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · 956a8b8 Raw
93 lines · plain
1# RUN: not --crash llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -run-pass=none -filetype=null %s 2>&1 | FileCheck -implicit-check-not=Bad %s2 3---4name: invalid_mixed_agpr_vgpr_ops_ds_atomic5tracksRegLiveness: true6body:             |7  bb.0:8 9  %addr:vgpr_32 = IMPLICIT_DEF10  %vgpr:vgpr_32 = IMPLICIT_DEF11  %agpr:agpr_32 = IMPLICIT_DEF12  %a_or_v:av_32 = IMPLICIT_DEF13 14  ; CHECK: Bad machine code: Invalid register class: vdata and vdst should be both VGPR or AGPR15  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***16  %4:agpr_32 = DS_CMPST_RTN_B32_gfx9 %addr, %vgpr, %vgpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)17 18  ; CHECK: Bad machine code: Invalid register class: vdata and vdst should be both VGPR or AGPR19  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***20  %5:vgpr_32 = DS_CMPST_RTN_B32_gfx9 %addr, %agpr, %vgpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)21 22  ; CHECK: *** Bad machine code: Invalid register class: both data operands should be VGPR or AGPR ***23  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***24  %6:vgpr_32 = DS_CMPST_RTN_B32_gfx9 %addr, %vgpr, %agpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)25 26  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***27  %7:av_32 = DS_CMPST_RTN_B32_gfx9 %addr, %vgpr, %vgpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)28 29  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***30  %8:vgpr_32 = DS_CMPST_RTN_B32_gfx9 %vgpr, %a_or_v, %vgpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)31 32  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***33  %9:vgpr_32 = DS_CMPST_RTN_B32_gfx9 %vgpr, %vgpr, %a_or_v, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)34 35  ; CHECK: *** Bad machine code: Invalid register class: vdata and vdst should be both VGPR or AGPR ***36  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***37  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***38  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***39  %10:av_32 = DS_CMPST_RTN_B32_gfx9 %addr, %agpr, %agpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)40 41  ; CHECK: *** Bad machine code: Invalid register class: vdata and vdst should be both VGPR or AGPR ***42  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***43  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***44  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***45  %11:agpr_32 = DS_CMPST_RTN_B32_gfx9 %addr, %a_or_v, %agpr, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)46 47  ; CHECK: *** Bad machine code: Invalid register class: both data operands should be VGPR or AGPR ***48  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***49  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***50  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***51  %12:agpr_32 = DS_CMPST_RTN_B32_gfx9 %addr, %agpr, %a_or_v, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)52 53  ; CHECK: *** Bad machine code: Invalid register class: vdata and vdst should be both VGPR or AGPR ***54  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***55  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***56  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***57  %13:agpr_32 = DS_CMPST_RTN_B32_gfx9 %addr, %a_or_v, %a_or_v, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)58 59  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***60  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***61  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***62  %14:av_32 = DS_CMPST_RTN_B32_gfx9 %addr, %a_or_v, %a_or_v, 0, 0, implicit $exec :: (load store seq_cst monotonic (s32), addrspace 3)63 64  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***65  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***66  DS_WRITE2_B32_gfx9 %addr, %a_or_v, %a_or_v, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)67 68  ; CHECK: *** Bad machine code: Invalid register class: both data operands should be VGPR or AGPR ***69  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***70  DS_WRITE2_B32_gfx9 %addr, %agpr, %vgpr, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)71 72  ; CHECK: *** Bad machine code: Invalid register class: both data operands should be VGPR or AGPR ***73  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***74  DS_WRITE2_B32_gfx9 %addr, %vgpr, %agpr, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)75 76  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***77  DS_WRITE2_B32_gfx9 %addr, %vgpr, %a_or_v, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)78 79  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***80  DS_WRITE2_B32_gfx9 %addr, %a_or_v, %vgpr, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)81 82  ; CHECK: *** Bad machine code: Invalid register class: both data operands should be VGPR or AGPR ***83  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***84  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***85  DS_WRITE2_B32_gfx9 %addr, %agpr, %a_or_v, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)86 87  ; CHECK: *** Bad machine code: Invalid register class: both data operands should be VGPR or AGPR ***88  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***89  ; CHECK: *** Bad machine code: Illegal virtual register for instruction ***90  DS_WRITE2_B32_gfx9 %addr, %a_or_v, %agpr, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3), (store (s32), addrspace 3)91 92...93