124 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GFX9 %s3# RUN: FileCheck -check-prefixes=ERR-GFX910,ERR %s < %t4 5# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GFX10 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GFX10 %s7# RUN: FileCheck -check-prefixes=ERR-GFX910,ERR %s < %t8 9# ERR-NOT: remark10# ERR-GFX910: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_LSHR %0:sgpr, %1:sgpr(<2 x s16>) (in function: lshr_v2s16_ss)11# ERR-NOT: remark12 13---14name: lshr_v2s16_ss15legalized: true16regBankSelected: true17 18body: |19 bb.0:20 liveins: $sgpr0, $sgpr121 ; GFX9-LABEL: name: lshr_v2s16_ss22 ; GFX9: liveins: $sgpr0, $sgpr123 ; GFX9-NEXT: {{ $}}24 ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr025 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr126 ; GFX9-NEXT: [[LSHR:%[0-9]+]]:sgpr(<2 x s16>) = G_LSHR [[COPY]], [[COPY1]](<2 x s16>)27 ; GFX9-NEXT: S_ENDPGM 0, implicit [[LSHR]](<2 x s16>)28 ; GFX10-LABEL: name: lshr_v2s16_ss29 ; GFX10: liveins: $sgpr0, $sgpr130 ; GFX10-NEXT: {{ $}}31 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr032 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr133 ; GFX10-NEXT: [[LSHR:%[0-9]+]]:sgpr(<2 x s16>) = G_LSHR [[COPY]], [[COPY1]](<2 x s16>)34 ; GFX10-NEXT: S_ENDPGM 0, implicit [[LSHR]](<2 x s16>)35 %0:sgpr(<2 x s16>) = COPY $sgpr036 %1:sgpr(<2 x s16>) = COPY $sgpr137 %2:sgpr(<2 x s16>) = G_LSHR %0, %138 S_ENDPGM 0, implicit %239...40 41---42name: lshr_v2s16_sv43legalized: true44regBankSelected: true45 46body: |47 bb.0:48 liveins: $sgpr0, $vgpr049 ; GFX9-LABEL: name: lshr_v2s16_sv50 ; GFX9: liveins: $sgpr0, $vgpr051 ; GFX9-NEXT: {{ $}}52 ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr053 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr054 ; GFX9-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY1]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec55 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_PK_LSHRREV_B16_]]56 ; GFX10-LABEL: name: lshr_v2s16_sv57 ; GFX10: liveins: $sgpr0, $vgpr058 ; GFX10-NEXT: {{ $}}59 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr060 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr061 ; GFX10-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY1]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec62 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_PK_LSHRREV_B16_]]63 %0:sgpr(<2 x s16>) = COPY $sgpr064 %1:vgpr(<2 x s16>) = COPY $vgpr065 %2:vgpr(<2 x s16>) = G_LSHR %0, %166 S_ENDPGM 0, implicit %267...68 69---70name: lshr_v2s16_vs71legalized: true72regBankSelected: true73 74body: |75 bb.0:76 liveins: $sgpr0, $vgpr077 ; GFX9-LABEL: name: lshr_v2s16_vs78 ; GFX9: liveins: $sgpr0, $vgpr079 ; GFX9-NEXT: {{ $}}80 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr081 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr082 ; GFX9-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY1]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec83 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_PK_LSHRREV_B16_]]84 ; GFX10-LABEL: name: lshr_v2s16_vs85 ; GFX10: liveins: $sgpr0, $vgpr086 ; GFX10-NEXT: {{ $}}87 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr088 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr089 ; GFX10-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY1]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec90 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_PK_LSHRREV_B16_]]91 %0:vgpr(<2 x s16>) = COPY $vgpr092 %1:sgpr(<2 x s16>) = COPY $sgpr093 %2:vgpr(<2 x s16>) = G_LSHR %0, %194 S_ENDPGM 0, implicit %295...96 97---98name: lshr_v2s16_vv99legalized: true100regBankSelected: true101 102body: |103 bb.0:104 liveins: $vgpr0, $vgpr1105 ; GFX9-LABEL: name: lshr_v2s16_vv106 ; GFX9: liveins: $vgpr0, $vgpr1107 ; GFX9-NEXT: {{ $}}108 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0109 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1110 ; GFX9-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY1]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec111 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_PK_LSHRREV_B16_]]112 ; GFX10-LABEL: name: lshr_v2s16_vv113 ; GFX10: liveins: $vgpr0, $vgpr1114 ; GFX10-NEXT: {{ $}}115 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0116 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1117 ; GFX10-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY1]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec118 ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_PK_LSHRREV_B16_]]119 %0:vgpr(<2 x s16>) = COPY $vgpr0120 %1:vgpr(<2 x s16>) = COPY $vgpr1121 %2:vgpr(<2 x s16>) = G_LSHR %0, %1122 S_ENDPGM 0, implicit %2123...124