113 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX6 %s3# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX6 %s4 5# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s7 8---9name: umulh_s32_ss10legalized: true11 12body: |13 bb.0:14 liveins: $sgpr0, $sgpr115 16 ; GFX6-LABEL: name: umulh_s32_ss17 ; GFX6: liveins: $sgpr0, $sgpr118 ; GFX6-NEXT: {{ $}}19 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr020 ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr121 ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)22 ; GFX6-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)23 ; GFX6-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY2]], [[COPY3]]24 ; GFX9-LABEL: name: umulh_s32_ss25 ; GFX9: liveins: $sgpr0, $sgpr126 ; GFX9-NEXT: {{ $}}27 ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr028 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr129 ; GFX9-NEXT: [[UMULH:%[0-9]+]]:sgpr(s32) = G_UMULH [[COPY]], [[COPY1]]30 %0:_(s32) = COPY $sgpr031 %1:_(s32) = COPY $sgpr132 %2:_(s32) = G_UMULH %0, %133...34 35---36name: umulh_s32_sv37legalized: true38 39body: |40 bb.0:41 liveins: $sgpr0, $vgpr042 43 ; GFX6-LABEL: name: umulh_s32_sv44 ; GFX6: liveins: $sgpr0, $vgpr045 ; GFX6-NEXT: {{ $}}46 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr047 ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr048 ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)49 ; GFX6-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY2]], [[COPY1]]50 ; GFX9-LABEL: name: umulh_s32_sv51 ; GFX9: liveins: $sgpr0, $vgpr052 ; GFX9-NEXT: {{ $}}53 ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr054 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr055 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)56 ; GFX9-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY2]], [[COPY1]]57 %0:_(s32) = COPY $sgpr058 %1:_(s32) = COPY $vgpr059 %2:_(s32) = G_UMULH %0, %160...61 62---63name: umulh_s32_vs64legalized: true65 66body: |67 bb.0:68 liveins: $sgpr0, $vgpr069 70 ; GFX6-LABEL: name: umulh_s32_vs71 ; GFX6: liveins: $sgpr0, $vgpr072 ; GFX6-NEXT: {{ $}}73 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr074 ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr075 ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)76 ; GFX6-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY]], [[COPY2]]77 ; GFX9-LABEL: name: umulh_s32_vs78 ; GFX9: liveins: $sgpr0, $vgpr079 ; GFX9-NEXT: {{ $}}80 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr081 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr082 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)83 ; GFX9-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY]], [[COPY2]]84 %0:_(s32) = COPY $vgpr085 %1:_(s32) = COPY $sgpr086 %2:_(s32) = G_UMULH %0, %187...88 89---90name: umulh_s32_vv91legalized: true92 93body: |94 bb.0:95 liveins: $vgpr0, $vgpr196 97 ; GFX6-LABEL: name: umulh_s32_vv98 ; GFX6: liveins: $vgpr0, $vgpr199 ; GFX6-NEXT: {{ $}}100 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0101 ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1102 ; GFX6-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY]], [[COPY1]]103 ; GFX9-LABEL: name: umulh_s32_vv104 ; GFX9: liveins: $vgpr0, $vgpr1105 ; GFX9-NEXT: {{ $}}106 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0107 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1108 ; GFX9-NEXT: [[UMULH:%[0-9]+]]:vgpr(s32) = G_UMULH [[COPY]], [[COPY1]]109 %0:_(s32) = COPY $vgpr0110 %1:_(s32) = COPY $vgpr1111 %2:_(s32) = G_UMULH %0, %1112...113