117 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s6 7---8 9name: or_s32_sgpr_sgpr_sgpr10legalized: true11regBankSelected: true12tracksRegLiveness: true13 14body: |15 bb.0:16 liveins: $sgpr0, $sgpr1, $sgpr217 ; GFX8-LABEL: name: or_s32_sgpr_sgpr_sgpr18 ; GFX8: liveins: $sgpr0, $sgpr1, $sgpr219 ; GFX8-NEXT: {{ $}}20 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr021 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr122 ; GFX8-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr223 ; GFX8-NEXT: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc24 ; GFX8-NEXT: [[S_OR_B32_1:%[0-9]+]]:sreg_32 = S_OR_B32 [[S_OR_B32_]], [[COPY2]], implicit-def dead $scc25 ; GFX8-NEXT: S_ENDPGM 0, implicit [[S_OR_B32_1]]26 ;27 ; GFX9-LABEL: name: or_s32_sgpr_sgpr_sgpr28 ; GFX9: liveins: $sgpr0, $sgpr1, $sgpr229 ; GFX9-NEXT: {{ $}}30 ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr031 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr132 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr233 ; GFX9-NEXT: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 [[COPY]], [[COPY1]], implicit-def dead $scc34 ; GFX9-NEXT: [[S_OR_B32_1:%[0-9]+]]:sreg_32 = S_OR_B32 [[S_OR_B32_]], [[COPY2]], implicit-def dead $scc35 ; GFX9-NEXT: S_ENDPGM 0, implicit [[S_OR_B32_1]]36 %0:sgpr(s32) = COPY $sgpr037 %1:sgpr(s32) = COPY $sgpr138 %2:sgpr(s32) = COPY $sgpr239 %3:sgpr(s32) = G_OR %0, %140 %4:sgpr(s32) = G_OR %3, %241 S_ENDPGM 0, implicit %442...43 44---45 46name: or_s32_vgpr_vgpr_vgpr47legalized: true48regBankSelected: true49tracksRegLiveness: true50 51body: |52 bb.0:53 liveins: $vgpr0, $vgpr1, $vgpr254 ; GFX8-LABEL: name: or_s32_vgpr_vgpr_vgpr55 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr256 ; GFX8-NEXT: {{ $}}57 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr058 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr159 ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr260 ; GFX8-NEXT: [[V_OR_B32_e64_:%[0-9]+]]:vgpr_32 = V_OR_B32_e64 [[COPY]], [[COPY1]], implicit $exec61 ; GFX8-NEXT: [[V_OR_B32_e64_1:%[0-9]+]]:vgpr_32 = V_OR_B32_e64 [[V_OR_B32_e64_]], [[COPY2]], implicit $exec62 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_OR_B32_e64_1]]63 ;64 ; GFX9-LABEL: name: or_s32_vgpr_vgpr_vgpr65 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr266 ; GFX9-NEXT: {{ $}}67 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr068 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr169 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr270 ; GFX9-NEXT: [[V_OR3_B32_e64_:%[0-9]+]]:vgpr_32 = V_OR3_B32_e64 [[COPY]], [[COPY1]], [[COPY2]], implicit $exec71 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_OR3_B32_e64_]]72 %0:vgpr(s32) = COPY $vgpr073 %1:vgpr(s32) = COPY $vgpr174 %2:vgpr(s32) = COPY $vgpr275 %3:vgpr(s32) = G_OR %0, %176 %4:vgpr(s32) = G_OR %3, %277 S_ENDPGM 0, implicit %478...79 80---81 82name: or_s32_vgpr_vgpr_vgpr_multi_use83legalized: true84regBankSelected: true85tracksRegLiveness: true86 87body: |88 bb.0:89 liveins: $vgpr0, $vgpr1, $vgpr290 ; GFX8-LABEL: name: or_s32_vgpr_vgpr_vgpr_multi_use91 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr292 ; GFX8-NEXT: {{ $}}93 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr094 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr195 ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr296 ; GFX8-NEXT: [[V_OR_B32_e64_:%[0-9]+]]:vgpr_32 = V_OR_B32_e64 [[COPY]], [[COPY1]], implicit $exec97 ; GFX8-NEXT: [[V_OR_B32_e64_1:%[0-9]+]]:vgpr_32 = V_OR_B32_e64 [[V_OR_B32_e64_]], [[COPY2]], implicit $exec98 ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_OR_B32_e64_1]], implicit [[V_OR_B32_e64_]]99 ;100 ; GFX9-LABEL: name: or_s32_vgpr_vgpr_vgpr_multi_use101 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2102 ; GFX9-NEXT: {{ $}}103 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0104 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1105 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2106 ; GFX9-NEXT: [[V_OR_B32_e64_:%[0-9]+]]:vgpr_32 = V_OR_B32_e64 [[COPY]], [[COPY1]], implicit $exec107 ; GFX9-NEXT: [[V_OR_B32_e64_1:%[0-9]+]]:vgpr_32 = V_OR_B32_e64 [[V_OR_B32_e64_]], [[COPY2]], implicit $exec108 ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_OR_B32_e64_1]], implicit [[V_OR_B32_e64_]]109 %0:vgpr(s32) = COPY $vgpr0110 %1:vgpr(s32) = COPY $vgpr1111 %2:vgpr(s32) = COPY $vgpr2112 %3:vgpr(s32) = G_OR %0, %1113 %4:vgpr(s32) = G_OR %3, %2114 S_ENDPGM 0, implicit %4, implicit %3115...116 117